diff options
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_gfx_cs.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_gfx_cs.c | 7 |
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) |