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/sb/sb_bc_finalize.cpp | |
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/sb/sb_bc_finalize.cpp')
-rw-r--r-- | src/gallium/drivers/r600/sb/sb_bc_finalize.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp index 08b7d77f1a4..8c2cd1460e5 100644 --- a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp +++ b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp @@ -290,7 +290,7 @@ void bc_finalizer::finalize_alu_group(alu_group_node* g, node *prev_node) { value *d = n->dst.empty() ? NULL : n->dst[0]; if (d && d->is_special_reg()) { - assert(n->bc.op_ptr->flags & AF_MOVA); + assert((n->bc.op_ptr->flags & AF_MOVA) || d->is_geometry_emit()); d = NULL; } |