diff options
author | Dave Airlie <[email protected]> | 2017-11-27 16:12:18 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2017-12-06 23:21:06 +0000 |
commit | 4525cdb7514fc9ffbc7539ebfd7122403f3e0347 (patch) | |
tree | a84e0423b218e2ff2b6414fd68823c0375d90283 /src/gallium/drivers/r600/evergreen_compute.c | |
parent | f51458637cce0fc19d968cc19a02f78a880f2fba (diff) |
r600: handle image/buffer sizes correctly.
This adds support to compute for the resq workarounds (buffer/cube sizes)
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_compute.c')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_compute.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index 0f97bbe3cb0..b527438b617 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -709,6 +709,13 @@ static void compute_emit_cs(struct r600_context *rctx, r600_set_atom_dirty(rctx, &rctx->cs_shader_state.atom, true); } + bool need_buf_const = current->shader.uses_tex_buffers || + current->shader.has_txq_cube_array_z_comp; + + if (need_buf_const) { + eg_setup_buffer_constants(rctx, PIPE_SHADER_COMPUTE); + r600_update_driver_const_buffers(rctx, true); + } if (evergreen_emit_atomic_buffer_setup(rctx, current, combined_atomics, &atomic_used_mask)) { radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 0, 0)); radeon_emit(cs, EVENT_TYPE(EVENT_TYPE_CS_PARTIAL_FLUSH) | EVENT_INDEX(4)); |