summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-11-03 11:47:55 +1000
committerDave Airlie <[email protected]>2017-12-06 23:21:02 +0000
commitf51458637cce0fc19d968cc19a02f78a880f2fba (patch)
tree670c1d552a60cac2395366e932fec376d941133b /src/gallium
parenta5a50d9c893db80ff03c2beb7383516c06bf4b4d (diff)
r600/compute: add support for emitting compute image/buffer atoms
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r600/evergreen_compute.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c
index 688ea58ae42..0f97bbe3cb0 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -697,6 +697,8 @@ static void compute_emit_cs(struct r600_context *rctx,
rctx->b.dma.flush(rctx, PIPE_FLUSH_ASYNC, NULL);
}
+ r600_update_compressed_resource_state(rctx, true);
+
r600_need_cs_space(rctx, 0, true);
if (rctx->cs_shader_state.shader->ir_type == PIPE_SHADER_IR_TGSI) {
r600_shader_select(&rctx->b.b, rctx->cs_shader_state.shader->sel, &compute_dirty);
@@ -759,7 +761,13 @@ static void compute_emit_cs(struct r600_context *rctx,
/* Emit sampler view (texture resource) state */
r600_emit_atom(rctx, &rctx->samplers[PIPE_SHADER_COMPUTE].views.atom);
- /* Emit compute shader state */
+ /* Emit images state */
+ r600_emit_atom(rctx, &rctx->compute_images.atom);
+
+ /* Emit buffers state */
+ r600_emit_atom(rctx, &rctx->compute_buffers.atom);
+
+ /* Emit shader state */
r600_emit_atom(rctx, &rctx->cs_shader_state.atom);
/* Emit dispatch state and dispatch packet */