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 159 additions, 0 deletionssrc/gallium/drivers/r600/evergreen_state.c
- src/gallium/drivers/r600/r600_pipe.c 15 additions, 0 deletionssrc/gallium/drivers/r600/r600_pipe.c
- src/gallium/drivers/r600/r600_pipe.h 22 additions, 0 deletionssrc/gallium/drivers/r600/r600_pipe.h
- src/gallium/drivers/r600/r600_shader.c 217 additions, 22 deletionssrc/gallium/drivers/r600/r600_shader.c
- src/gallium/drivers/r600/r600_shader.h 19 additions, 0 deletionssrc/gallium/drivers/r600/r600_shader.h
- src/gallium/drivers/r600/r600_state_common.c 46 additions, 0 deletionssrc/gallium/drivers/r600/r600_state_common.c
- src/gallium/drivers/r600/r600d_common.h 2 additions, 0 deletionssrc/gallium/drivers/r600/r600d_common.h