From: Marek Olšák Date: Sat, 23 Jul 2022 16:29:05 +0000 (-0400) Subject: radeonsi: cosmetic changes around do_hardware_msaa_resolve X-Git-Tag: upstream/22.3.5~5295 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=28842d96dff11b0c96251ca3201d2a9b15b46281;p=platform%2Fupstream%2Fmesa.git 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: --- 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