r600g/sb: Enable SB for geometry shaders

Graphics / Mesa 3D Graphics Library / Mesa - Glenn Kennard [gmail.com] - 7 April 2015 17:18 UTC

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.

f294780 r600g/sb: Enable SB for geometry shaders
src/gallium/drivers/r600/r600_isa.h | 8 ++++----
src/gallium/drivers/r600/r600_shader.c | 12 ++++++++----
src/gallium/drivers/r600/sb/sb_bc_dump.cpp | 2 +-
src/gallium/drivers/r600/sb/sb_bc_finalize.cpp | 2 +-
src/gallium/drivers/r600/sb/sb_bc_parser.cpp | 25 ++++++++++++++++++++++++
src/gallium/drivers/r600/sb/sb_core.cpp | 5 ++++-
src/gallium/drivers/r600/sb/sb_dump.cpp | 4 +++-
src/gallium/drivers/r600/sb/sb_ir.h | 6 +++++-
src/gallium/drivers/r600/sb/sb_ra_init.cpp | 4 ++--
src/gallium/drivers/r600/sb/sb_sched.cpp | 2 +-
src/gallium/drivers/r600/sb/sb_valtable.cpp | 1 +
11 files changed, 55 insertions(+), 16 deletions(-)

Upstream: cgit.freedesktop.org


  • Share