diff options
-rw-r--r-- | src/gallium/drivers/radeonsi/si_blit.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_compute.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_compute_blit.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.h | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_query.c | 7 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_draw.cpp | 2 |
6 files changed, 11 insertions, 10 deletions
diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index cec7f7cb14b..ccf37cda964 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -74,7 +74,7 @@ void si_blitter_begin(struct si_context *sctx, enum si_blitter_op op) } if (op & SI_DISABLE_RENDER_COND) - sctx->render_cond_force_off = true; + sctx->render_cond_enabled = false; if (sctx->screen->dpbb_allowed) { sctx->dpbb_force_off = true; @@ -93,7 +93,7 @@ void si_blitter_end(struct si_context *sctx) si_mark_atom_dirty(sctx, &sctx->atoms.s.dpbb_state); } - sctx->render_cond_force_off = false; + sctx->render_cond_enabled = sctx->render_cond; /* Restore shader pointers because the VS blit shader changed all * non-global VS user SGPRs. */ diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 008972e27f3..40933fee016 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -740,7 +740,7 @@ static void si_emit_dispatch_packets(struct si_context *sctx, const struct pipe_ { struct si_screen *sscreen = sctx->screen; struct radeon_cmdbuf *cs = &sctx->gfx_cs; - bool render_cond_bit = sctx->render_cond && !sctx->render_cond_force_off; + bool render_cond_bit = sctx->render_cond_enabled; unsigned threads_per_threadgroup = info->block[0] * info->block[1] * info->block[2]; unsigned waves_per_threadgroup = DIV_ROUND_UP(threads_per_threadgroup, sscreen->compute_wave_size); diff --git a/src/gallium/drivers/radeonsi/si_compute_blit.c b/src/gallium/drivers/radeonsi/si_compute_blit.c index ec4b77170e1..6ead3c42e9b 100644 --- a/src/gallium/drivers/radeonsi/si_compute_blit.c +++ b/src/gallium/drivers/radeonsi/si_compute_blit.c @@ -76,7 +76,7 @@ void si_launch_grid_internal(struct si_context *sctx, struct pipe_grid_info *inf sctx->flags |= SI_CONTEXT_STOP_PIPELINE_STATS; if (!(flags & SI_CS_RENDER_COND_ENABLE)) - sctx->render_cond_force_off = true; + sctx->render_cond_enabled = false; /* Skip decompression to prevent infinite recursion. */ sctx->blitter_running = true; @@ -87,7 +87,7 @@ void si_launch_grid_internal(struct si_context *sctx, struct pipe_grid_info *inf /* Restore default settings. */ sctx->flags &= ~SI_CONTEXT_STOP_PIPELINE_STATS; sctx->flags |= SI_CONTEXT_START_PIPELINE_STATS; - sctx->render_cond_force_off = false; + sctx->render_cond_enabled = sctx->render_cond; sctx->blitter_running = false; /* Restore the original compute shader. */ diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 80b4d9e0e75..4a55bfeab26 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1262,7 +1262,7 @@ struct si_context { struct pipe_query *render_cond; unsigned render_cond_mode; bool render_cond_invert; - bool render_cond_force_off; /* for u_blitter */ + bool render_cond_enabled; /* for u_blitter */ /* Shader-based queries. */ struct list_head shader_query_buffers; diff --git a/src/gallium/drivers/radeonsi/si_query.c b/src/gallium/drivers/radeonsi/si_query.c index 3a3beaba473..00ab68b0368 100644 --- a/src/gallium/drivers/radeonsi/si_query.c +++ b/src/gallium/drivers/radeonsi/si_query.c @@ -1605,8 +1605,8 @@ static void si_render_condition(struct pipe_context *ctx, struct pipe_query *que } if (needs_workaround && !squery->workaround_buf) { - bool old_force_off = sctx->render_cond_force_off; - sctx->render_cond_force_off = true; + bool old_render_cond_enabled = sctx->render_cond_enabled; + sctx->render_cond_enabled = false; u_suballocator_alloc(&sctx->allocator_zeroed_memory, 8, 8, &squery->workaround_offset, (struct pipe_resource **)&squery->workaround_buf); @@ -1623,13 +1623,14 @@ static void si_render_condition(struct pipe_context *ctx, struct pipe_query *que * so set it here. */ sctx->flags |= sctx->screen->barrier_flags.L2_to_cp | SI_CONTEXT_FLUSH_FOR_RENDER_COND; - sctx->render_cond_force_off = old_force_off; + sctx->render_cond_enabled = old_render_cond_enabled; } } sctx->render_cond = query; sctx->render_cond_invert = condition; sctx->render_cond_mode = mode; + sctx->render_cond_enabled = query; si_set_atom_dirty(sctx, atom, query != NULL); } diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp index 3af06fbce2b..9f8ec51a98b 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.cpp +++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp @@ -1073,7 +1073,7 @@ static void si_emit_draw_packets(struct si_context *sctx, const struct pipe_draw } unsigned sh_base_reg = sctx->shader_pointers.sh_base[PIPE_SHADER_VERTEX]; - bool render_cond_bit = sctx->render_cond && !sctx->render_cond_force_off; + bool render_cond_bit = sctx->render_cond_enabled; if (indirect) { assert(num_draws == 1); |