summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2013-08-13 18:53:49 +0200
committerRoland Scheidegger <[email protected]>2013-08-15 00:40:14 +0200
commite858921d527bfcbbda27760f781c25cab469e852 (patch)
treeb9aa4b862817e9f9d1afbf0b44500395226c8e09
parente58c2310b845ca809bb99d5fcdab909ff8598c28 (diff)
ilo: implement new float comparison instructions
untested. Reviewed-by: Chia-I Wu <[email protected]>
-rw-r--r--src/gallium/drivers/ilo/shader/toy_tgsi.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/gallium/drivers/ilo/shader/toy_tgsi.c b/src/gallium/drivers/ilo/shader/toy_tgsi.c
index bf1e37ef584..93fe3b1f7e7 100644
--- a/src/gallium/drivers/ilo/shader/toy_tgsi.c
+++ b/src/gallium/drivers/ilo/shader/toy_tgsi.c
@@ -209,15 +209,18 @@ aos_set_on_cond(struct toy_compiler *tc,
case TGSI_OPCODE_SLT:
case TGSI_OPCODE_ISLT:
case TGSI_OPCODE_USLT:
+ case TGSI_OPCODE_FSLT:
cond = BRW_CONDITIONAL_L;
break;
case TGSI_OPCODE_SGE:
case TGSI_OPCODE_ISGE:
case TGSI_OPCODE_USGE:
+ case TGSI_OPCODE_FSGE:
cond = BRW_CONDITIONAL_GE;
break;
case TGSI_OPCODE_SEQ:
case TGSI_OPCODE_USEQ:
+ case TGSI_OPCODE_FSEQ:
cond = BRW_CONDITIONAL_EQ;
break;
case TGSI_OPCODE_SGT:
@@ -228,6 +231,7 @@ aos_set_on_cond(struct toy_compiler *tc,
break;
case TGSI_OPCODE_SNE:
case TGSI_OPCODE_USNE:
+ case TGSI_OPCODE_FSNE:
cond = BRW_CONDITIONAL_NEQ;
break;
default:
@@ -935,10 +939,10 @@ static const toy_tgsi_translate aos_translate_table[TGSI_OPCODE_LAST] = {
[105] = aos_unsupported,
[106] = aos_unsupported,
[TGSI_OPCODE_NOP] = aos_simple,
- [108] = aos_unsupported,
- [109] = aos_unsupported,
- [110] = aos_unsupported,
- [111] = aos_unsupported,
+ [TGSI_OPCODE_FSEQ] = aos_set_on_cond,
+ [TGSI_OPCODE_FSGE] = aos_set_on_cond,
+ [TGSI_OPCODE_FSLT] = aos_set_on_cond,
+ [TGSI_OPCODE_FSNE] = aos_set_on_cond,
[TGSI_OPCODE_NRM4] = aos_NRM4,
[TGSI_OPCODE_CALLNZ] = aos_unsupported,
[TGSI_OPCODE_BREAKC] = aos_unsupported,
@@ -1551,10 +1555,10 @@ static const toy_tgsi_translate soa_translate_table[TGSI_OPCODE_LAST] = {
[105] = soa_unsupported,
[106] = soa_unsupported,
[TGSI_OPCODE_NOP] = soa_passthrough,
- [108] = soa_unsupported,
- [109] = soa_unsupported,
- [110] = soa_unsupported,
- [111] = soa_unsupported,
+ [TGSI_OPCODE_FSEQ] = soa_per_channel,
+ [TGSI_OPCODE_FSGE] = soa_per_channel,
+ [TGSI_OPCODE_FSLT] = soa_per_channel,
+ [TGSI_OPCODE_FSNE] = soa_per_channel,
[TGSI_OPCODE_NRM4] = soa_NRM4,
[TGSI_OPCODE_CALLNZ] = soa_unsupported,
[TGSI_OPCODE_BREAKC] = soa_unsupported,