summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_sq.h
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2012-01-18 15:16:55 +0000
committerDave Airlie <[email protected]>2012-01-20 17:58:53 +0000
commitc96b9834032952492efbd2d1f5511fe225704918 (patch)
tree783d9d5e44adff586afbd3079c916f0d0a7a0db9 /src/gallium/drivers/r600/r600_sq.h
parent0e019cbd1ca4ad8a11c9310d701ca4aab11b5951 (diff)
r600g: fixup AR handling (v5)
So it appears R600s (except rv670) do AR handling different using a different opcode. This patch fixes up r600g to work properly on r600. This fixes ~100 piglit tests here (in GLSL1.30 mode) on rv610. v3: add index_mode as per the docs. This still fails any dst relative tests for some reason I can't quite see yet, but it passes a lot more tests than without. v4: add a nop after dst.rel this could be improved using a second pass, where we only insert nops if two instructions are sure to collide. The docs say r600, rv610, rv630 needs this, and not rv670, rs780, rs880, need AMD to confirm rv620, rv635. v5: add is_nop_inst. NOTE: This is a candidate for stable branches. Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_sq.h')
-rw-r--r--src/gallium/drivers/r600/r600_sq.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_sq.h b/src/gallium/drivers/r600/r600_sq.h
index b9c41260f56..4b2a19a07f7 100644
--- a/src/gallium/drivers/r600/r600_sq.h
+++ b/src/gallium/drivers/r600/r600_sq.h
@@ -471,4 +471,11 @@
#define SQ_ALU_SCL_122 0x00000001
#define SQ_ALU_SCL_212 0x00000002
#define SQ_ALU_SCL_221 0x00000003
+
+#define INDEX_MODE_AR_X 0
+#define INDEX_MODE_AR_Y 1
+#define INDEX_MODE_AR_Z 2
+#define INDEX_MODE_AR_W 3
+#define INDEX_MODE_LOOP 4
+
#endif