r600: add support for hw atomic counters. (v3)
authorDave Airlie <airlied@redhat.com>
Thu, 2 Nov 2017 00:26:51 +0000 (10:26 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 9 Nov 2017 22:39:36 +0000 (08:39 +1000)
commit06993e4ee350b9c2ab1e3ee7686878add3900d39
tree354a8654e8f0ef19dd201b469b922f937e0f8085
parent9e62654d4b47adfd5bdd60389dee17fdd17dba73
r600: add support for hw atomic counters. (v3)

This adds support for the evergreen/cayman atomic counters.

These are implemented using GDS append/consume counters. The values
for each counter are loaded before drawing and saved after each draw
using special CP packets.

v2: move hw atomic assignment into driver.
v3: fix messing up caps (Gert Wollny), only store ranges in driver,
drop buffers.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-By: Gert Wollny <gw.fossdev@gmail.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_shader.h
src/gallium/drivers/r600/r600_state_common.c
src/gallium/drivers/r600/r600d_common.h