From 0c545e2fca8a7aecd3d7ed43c52f31adf2ec554b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 15 Apr 2024 00:00:10 -0400 Subject: [PATCH] radeonsi: add fail_if_slow parameter into si_msaa_resolve_blit_via_CB Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_blit.c | 5 +++-- src/gallium/drivers/radeonsi/si_pipe.h | 3 ++- src/gallium/drivers/radeonsi/si_test_image_copy_region.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index d2baac9de3d..74cb308eda2 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -1102,7 +1102,8 @@ static bool resolve_formats_compatible(enum pipe_format src, enum pipe_format ds return *need_rgb_to_bgr; } -bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info) +bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info, + bool fail_if_slow) { struct si_context *sctx = (struct si_context *)ctx; @@ -1226,7 +1227,7 @@ static void si_blit(struct pipe_context *ctx, const struct pipe_blit_info *info) if (unlikely(sctx->sqtt_enabled)) sctx->sqtt_next_event = EventCmdResolveImage; - if (si_msaa_resolve_blit_via_CB(ctx, info)) + if (si_msaa_resolve_blit_via_CB(ctx, info, true)) return; if (unlikely(sctx->sqtt_enabled)) diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index cdf15100ac3..aa11adcfe69 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1401,7 +1401,8 @@ void si_gfx_copy_image(struct si_context *sctx, struct pipe_resource *dst, const struct pipe_box *src_box); void si_decompress_dcc(struct si_context *sctx, struct si_texture *tex); void si_flush_implicit_resources(struct si_context *sctx); -bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info); +bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info, + bool fail_if_slow); void si_gfx_blit(struct pipe_context *ctx, const struct pipe_blit_info *info); /* si_nir_optim.c */ diff --git a/src/gallium/drivers/radeonsi/si_test_image_copy_region.c b/src/gallium/drivers/radeonsi/si_test_image_copy_region.c index 5a04951f1ba..3e8003aa46c 100644 --- a/src/gallium/drivers/radeonsi/si_test_image_copy_region.c +++ b/src/gallium/drivers/radeonsi/si_test_image_copy_region.c @@ -927,7 +927,7 @@ void si_test_blit(struct si_screen *sscreen, unsigned test_flags) bool success; if (only_cb_resolve) - success = si_msaa_resolve_blit_via_CB(ctx, &info); + success = si_msaa_resolve_blit_via_CB(ctx, &info, false); else success = si_compute_blit(sctx, &info, NULL, 0, 0, SI_OP_SYNC_BEFORE_AFTER);