From f1ae6523b13824c2c2c77a897330c40138307e6f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 22 Jul 2022 00:34:46 -0400 Subject: [PATCH] llvmpipe: add a shortcut for blitter resolves if this is only going to do a sample0 resolve, the functionality is equivalent to just copying the first sample, and in llvmpipe terms, this just means doing a direct copy at offset=0 Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/llvmpipe/lp_surface.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/gallium/drivers/llvmpipe/lp_surface.c b/src/gallium/drivers/llvmpipe/lp_surface.c index 32f24e3007d..4c86af9cbd0 100644 --- a/src/gallium/drivers/llvmpipe/lp_surface.c +++ b/src/gallium/drivers/llvmpipe/lp_surface.c @@ -127,6 +127,17 @@ static void lp_blit(struct pipe_context *pipe, return; /* done */ } + if (blit_info->src.resource->format == blit_info->src.format && + blit_info->dst.resource->format == blit_info->dst.format && + blit_info->src.format == blit_info->dst.format && + blit_info->src.resource->nr_samples > 1 && + blit_info->dst.resource->nr_samples < 2 && + blit_info->sample0_only) { + util_resource_copy_region(pipe, blit_info->dst.resource, blit_info->dst.level, blit_info->dst.box.x, blit_info->dst.box.y, blit_info->dst.box.z, + blit_info->src.resource, blit_info->src.level, &blit_info->src.box); + return; + } + if (!util_blitter_is_blit_supported(lp->blitter, &info)) { debug_printf("llvmpipe: blit unsupported %s -> %s\n", util_format_short_name(info.src.resource->format),