r600g/sb: Enable SB for geometry shaders
authorGlenn Kennard <glenn.kennard@gmail.com>
Tue, 7 Apr 2015 01:00:20 +0000 (03:00 +0200)
committerDave Airlie <airlied@redhat.com>
Tue, 7 Apr 2015 22:18:35 +0000 (08:18 +1000)
commitf2947807c8c7eae4b98eb37263b8a1d9ebbcafb5
treebd7e67b69ab05894656392738586c8383b72ce8a
parent06bb68da4a58403e678b51511e40a7f752dfc046
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 <glenn.kennard@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/r600_isa.h
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/sb/sb_bc_dump.cpp
src/gallium/drivers/r600/sb/sb_bc_finalize.cpp
src/gallium/drivers/r600/sb/sb_bc_parser.cpp
src/gallium/drivers/r600/sb/sb_core.cpp
src/gallium/drivers/r600/sb/sb_dump.cpp
src/gallium/drivers/r600/sb/sb_ir.h
src/gallium/drivers/r600/sb/sb_ra_init.cpp
src/gallium/drivers/r600/sb/sb_sched.cpp
src/gallium/drivers/r600/sb/sb_valtable.cpp