From e7d7fc674098edff2786acfb4e1751376ce75ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 6 Nov 2022 21:35:37 -0500 Subject: [PATCH] radeonsi: fix AMD_TEST=computeblit being rejected on gfx < 11 Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_blit.c | 2 +- src/gallium/drivers/radeonsi/si_compute_blit.c | 4 ++-- src/gallium/drivers/radeonsi/si_pipe.h | 2 +- src/gallium/drivers/radeonsi/si_test_image_copy_region.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 91e97e2620b..0450de767e6 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -1230,7 +1230,7 @@ static void si_blit(struct pipe_context *ctx, const struct pipe_blit_info *info) return; } - if (si_compute_blit(sctx, info)) + if (si_compute_blit(sctx, info, false)) return; si_gfx_blit(ctx, info); diff --git a/src/gallium/drivers/radeonsi/si_compute_blit.c b/src/gallium/drivers/radeonsi/si_compute_blit.c index ff11b47828c..84187a609a5 100644 --- a/src/gallium/drivers/radeonsi/si_compute_blit.c +++ b/src/gallium/drivers/radeonsi/si_compute_blit.c @@ -1078,7 +1078,7 @@ static bool si_should_blit_clamp_xy(const struct pipe_blit_info *info) return !in_bounds; } -bool si_compute_blit(struct si_context *sctx, const struct pipe_blit_info *info) +bool si_compute_blit(struct si_context *sctx, const struct pipe_blit_info *info, bool testing) { /* Compute blits require D16 right now (see the ISA). * @@ -1088,7 +1088,7 @@ bool si_compute_blit(struct si_context *sctx, const struct pipe_blit_info *info) * * TODO: benchmark the performance on gfx11 */ - if (sctx->gfx_level < GFX11) + if (sctx->gfx_level < GFX11 && !testing) return false; if (!si_can_use_compute_blit(sctx, info->dst.format, info->dst.resource->nr_samples, true, diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 65cc10a5a80..cfa380480b9 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1443,7 +1443,7 @@ void si_retile_dcc(struct si_context *sctx, struct si_texture *tex); void gfx9_clear_dcc_msaa(struct si_context *sctx, struct pipe_resource *res, uint32_t clear_value, unsigned flags, enum si_coherency coher); void si_compute_expand_fmask(struct pipe_context *ctx, struct pipe_resource *tex); -bool si_compute_blit(struct si_context *sctx, const struct pipe_blit_info *info); +bool si_compute_blit(struct si_context *sctx, const struct pipe_blit_info *info, bool testing); void si_init_compute_blit_functions(struct si_context *sctx); /* si_cp_dma.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 b7892c507cf..f15a149642c 100644 --- a/src/gallium/drivers/radeonsi/si_test_image_copy_region.c +++ b/src/gallium/drivers/radeonsi/si_test_image_copy_region.c @@ -948,7 +948,7 @@ void si_test_blit(struct si_screen *sscreen, unsigned test_flags) if (only_cb_resolve) success = si_msaa_resolve_blit_via_CB(ctx, &info); else - success = si_compute_blit(sctx, &info); + success = si_compute_blit(sctx, &info, true); if (success) { printf(" %-7s", only_cb_resolve ? "resolve" : "comp");