diff options
author | Glenn Kennard <[email protected]> | 2015-04-07 03:00:20 +0200 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2015-04-08 08:18:35 +1000 |
commit | f2947807c8c7eae4b98eb37263b8a1d9ebbcafb5 (patch) | |
tree | bd7e67b69ab05894656392738586c8383b72ce8a /src/gallium/drivers/r600/r600_isa.h | |
parent | 06bb68da4a58403e678b51511e40a7f752dfc046 (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.h | 8 |
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 */ |