summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/radeonsi/si_gfx_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_gfx_cs.c')
-rw-r--r--src/gallium/drivers/radeonsi/si_gfx_cs.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_gfx_cs.c b/src/gallium/drivers/radeonsi/si_gfx_cs.c
index a63e7db6deb..200dceb6003 100644
--- a/src/gallium/drivers/radeonsi/si_gfx_cs.c
+++ b/src/gallium/drivers/radeonsi/si_gfx_cs.c
@@ -551,6 +551,13 @@ void si_begin_new_gfx_cs(struct si_context *ctx, bool first_cs)
ctx->index_ring_base = ctx->index_ring_size_per_ib;
ctx->index_ring_offset = 0;
+
+ /* All buffer references are removed on a flush, so si_check_needs_implicit_sync
+ * cannot determine if si_make_CB_shader_coherent() needs to be called.
+ * ctx->force_cb_shader_coherent will be cleared by the first call to
+ * si_make_CB_shader_coherent.
+ */
+ ctx->force_cb_shader_coherent = true;
}
void si_emit_surface_sync(struct si_context *sctx, struct radeon_cmdbuf *cs, unsigned cp_coher_cntl)