r600: add ARB_query_buffer_object support

Graphics / Mesa 3D Graphics Library / Mesa - Dave Airlie [redhat.com] - 28 January 2018 19:42 EST

This uses a different shader than radeonsi, as we can't address non-256 aligned ssbos, which the radeonsi code does. This passes some extra offsets into the shader.

It also contains a set of u64 instruction implementation that may or may not be complete (at least the u64div is definitely not something that works outside this use-case). If r600 grows 64-bit integers, it will use the GLSL lowering for divmod.

1c9ea24a19 r600: add ARB_query_buffer_object support
src/gallium/drivers/r600/evergreen_state.c | 60 +++
src/gallium/drivers/r600/r600_hw_context.c | 5 +
src/gallium/drivers/r600/r600_pipe.c | 4 +-
src/gallium/drivers/r600/r600_pipe.h | 1 +
src/gallium/drivers/r600/r600_pipe_common.c | 5 +
src/gallium/drivers/r600/r600_pipe_common.h | 1 +
src/gallium/drivers/r600/r600_query.c | 63 ++-
src/gallium/drivers/r600/r600_shader.c | 707 ++++++++++++++++++++++++++-
src/gallium/drivers/r600/r600_state_common.c | 1 +
src/gallium/drivers/r600/r600d.h | 1 +
10 files changed, 817 insertions(+), 31 deletions(-)

Upstream: cgit.freedesktop.org


  • Share