From 28842d96dff11b0c96251ca3201d2a9b15b46281 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 23 Jul 2022 12:29:05 -0400 Subject: [PATCH] radeonsi: cosmetic changes around do_hardware_msaa_resolve - move gfx_level checking into the function - rename the function - call it in si_blit later - set the SQTT event Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_blit.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 5409552..55957ea 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -1026,9 +1026,14 @@ static bool resolve_formats_compatible(enum pipe_format src, enum pipe_format ds return *need_rgb_to_bgr; } -static bool do_hardware_msaa_resolve(struct pipe_context *ctx, const struct pipe_blit_info *info) +static bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info) { struct si_context *sctx = (struct si_context *)ctx; + + /* Gfx11 doesn't have CB_RESOLVE. */ + if (sctx->gfx_level >= GFX11) + return false; + struct si_texture *src = (struct si_texture *)info->src.resource; struct si_texture *dst = (struct si_texture *)info->dst.resource; ASSERTED struct si_texture *stmp; @@ -1156,11 +1161,6 @@ static void si_blit(struct pipe_context *ctx, const struct pipe_blit_info *info) struct si_context *sctx = (struct si_context *)ctx; struct si_texture *sdst = (struct si_texture *)info->dst.resource; - /* Gfx11 doesn't have CB_RESOLVE. */ - /* TODO: Use compute-based resolving instead. */ - if (sctx->gfx_level < GFX11 && do_hardware_msaa_resolve(ctx, info)) - return; - if (sctx->gfx_level >= GFX7 && (info->dst.resource->bind & PIPE_BIND_PRIME_BLIT_DST) && sdst->surface.is_linear && /* Use SDMA or async compute when copying to a DRI_PRIME imported linear surface. */ @@ -1197,6 +1197,12 @@ static void si_blit(struct pipe_context *ctx, const struct pipe_blit_info *info) } if (unlikely(sctx->thread_trace_enabled)) + sctx->sqtt_next_event = EventCmdResolveImage; + + if (si_msaa_resolve_blit_via_CB(ctx, info)) + return; + + if (unlikely(sctx->thread_trace_enabled)) sctx->sqtt_next_event = EventCmdCopyImage; /* Using compute for copying to a linear texture in GTT is much faster than -- 2.7.4