summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_isa.h
diff options
context:
space:
mode:
authorGlenn Kennard <[email protected]>2015-04-07 03:00:20 +0200
committerDave Airlie <[email protected]>2015-04-08 08:18:35 +1000
commitf2947807c8c7eae4b98eb37263b8a1d9ebbcafb5 (patch)
treebd7e67b69ab05894656392738586c8383b72ce8a /src/gallium/drivers/r600/r600_isa.h
parent06bb68da4a58403e678b51511e40a7f752dfc046 (diff)
r600g/sb: Enable SB for geometry shaders
Add SV_GEOMETRY_EMIT special variable type to track the implicit dependencies between CUT/EMIT_VERTEX/MEM_RING instructions so GCM/scheduler doesn't reorder them. Mark emit instructions as unkillable so DCE doesn't eat them. Enable only for evergreen/cayman as there are a few unexplained GS piglit regressions on R6xx/R7xx with SB enabled otherwise. Signed-off-by: Glenn Kennard <[email protected]> Reviewed-by: Dave Airlie <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_isa.h')
-rw-r--r--src/gallium/drivers/r600/r600_isa.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_isa.h b/src/gallium/drivers/r600/r600_isa.h
index ec3f7028a98..381f06d5924 100644
--- a/src/gallium/drivers/r600/r600_isa.h
+++ b/src/gallium/drivers/r600/r600_isa.h
@@ -641,7 +641,7 @@ static const struct cf_op_info cf_op_table[] = {
{"MEM_SCRATCH", { 0x24, 0x24, 0x50, 0x50 }, CF_MEM },
{"MEM_REDUCT", { 0x25, 0x25, -1, -1 }, CF_MEM },
- {"MEM_RING", { 0x26, 0x26, 0x52, 0x52 }, CF_MEM },
+ {"MEM_RING", { 0x26, 0x26, 0x52, 0x52 }, CF_MEM | CF_EMIT },
{"EXPORT", { 0x27, 0x27, 0x53, 0x53 }, CF_EXP },
{"EXPORT_DONE", { 0x28, 0x28, 0x54, 0x54 }, CF_EXP },
@@ -649,9 +649,9 @@ static const struct cf_op_info cf_op_table[] = {
{"MEM_EXPORT", { -1, 0x3A, 0x55, 0x55 }, CF_MEM },
{"MEM_RAT", { -1, -1, 0x56, 0x56 }, CF_MEM | CF_RAT },
{"MEM_RAT_NOCACHE", { -1, -1, 0x57, 0x57 }, CF_MEM | CF_RAT },
- {"MEM_RING1", { -1, -1, 0x58, 0x58 }, CF_MEM },
- {"MEM_RING2", { -1, -1, 0x59, 0x59 }, CF_MEM },
- {"MEM_RING3", { -1, -1, 0x5A, 0x5A }, CF_MEM },
+ {"MEM_RING1", { -1, -1, 0x58, 0x58 }, CF_MEM | CF_EMIT },
+ {"MEM_RING2", { -1, -1, 0x59, 0x59 }, CF_MEM | CF_EMIT },
+ {"MEM_RING3", { -1, -1, 0x5A, 0x5A }, CF_MEM | CF_EMIT },
{"MEM_MEM_COMBINED", { -1, -1, 0x5B, 0x5B }, CF_MEM },
{"MEM_RAT_COMBINED_NOCACHE", { -1, -1, 0x5C, 0x5C }, CF_MEM | CF_RAT },
{"MEM_RAT_COMBINED", { -1, -1, -1, 0x5D }, CF_MEM | CF_RAT }, /* ??? not in cayman isa doc */