r600: add ARB_query_buffer_object support
authorDave Airlie <airlied@redhat.com>
Sun, 3 Dec 2017 19:31:46 +0000 (05:31 +1000)
committerDave Airlie <airlied@redhat.com>
Sun, 28 Jan 2018 19:42:28 +0000 (05:42 +1000)
commit1c9ea24a19a28e87f6038281c516287f25ad88b5
treef59e78bd4516fc09ee7133de40c2dfa6fe5eb7e3
parenta7ec366e503cc2b05d6920fa5027b0f001ae9e58
r600: add ARB_query_buffer_object support

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.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_pipe_common.c
src/gallium/drivers/r600/r600_pipe_common.h
src/gallium/drivers/r600/r600_query.c
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_state_common.c
src/gallium/drivers/r600/r600d.h