From a03ecbaeec91554988299e113d2f718e4c94ccd3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 23 Jan 2019 16:54:28 -0500 Subject: [PATCH] radeonsi: handle render_condition_enable in si_compute_clear_render_target --- src/gallium/drivers/radeonsi/si_clear.c | 3 ++- src/gallium/drivers/radeonsi/si_compute_blit.c | 5 ++++- src/gallium/drivers/radeonsi/si_pipe.h | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_clear.c b/src/gallium/drivers/radeonsi/si_clear.c index cac979733ed..a2f34c79104 100644 --- a/src/gallium/drivers/radeonsi/si_clear.c +++ b/src/gallium/drivers/radeonsi/si_clear.c @@ -683,7 +683,8 @@ static void si_clear_render_target(struct pipe_context *ctx, struct si_texture *sdst = (struct si_texture*)dst->texture; if (dst->texture->nr_samples <= 1 && !sdst->dcc_offset) { - si_compute_clear_render_target(ctx, dst, color, dstx, dsty, width, height); + si_compute_clear_render_target(ctx, dst, color, dstx, dsty, width, + height, render_condition_enabled); return; } diff --git a/src/gallium/drivers/radeonsi/si_compute_blit.c b/src/gallium/drivers/radeonsi/si_compute_blit.c index f06497f4dac..1ea0d7517df 100644 --- a/src/gallium/drivers/radeonsi/si_compute_blit.c +++ b/src/gallium/drivers/radeonsi/si_compute_blit.c @@ -432,7 +432,8 @@ void si_compute_clear_render_target(struct pipe_context *ctx, struct pipe_surface *dstsurf, const union pipe_color_union *color, unsigned dstx, unsigned dsty, - unsigned width, unsigned height) + unsigned width, unsigned height, + bool render_condition_enabled) { struct si_context *sctx = (struct si_context *)ctx; unsigned num_layers = dstsurf->u.tex.last_layer - dstsurf->u.tex.first_layer + 1; @@ -452,6 +453,8 @@ void si_compute_clear_render_target(struct pipe_context *ctx, } si_compute_internal_begin(sctx); + sctx->render_cond_force_off = !render_condition_enabled; + sctx->flags |= SI_CONTEXT_CS_PARTIAL_FLUSH | si_get_flush_flags(sctx, SI_COHERENCY_SHADER, L2_STREAM); si_make_CB_shader_coherent(sctx, dstsurf->texture->nr_samples, true); diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 4f2845854c3..ff36b3272b4 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1185,7 +1185,8 @@ void si_compute_clear_render_target(struct pipe_context *ctx, struct pipe_surface *dstsurf, const union pipe_color_union *color, unsigned dstx, unsigned dsty, - unsigned width, unsigned height); + unsigned width, unsigned height, + bool render_condition_enabled); void si_init_compute_blit_functions(struct si_context *sctx); /* si_cp_dma.c */ -- 2.30.2