Mesa (main): llvmpipe: add a shortcut for blitter resolves

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 26 00:44:18 UTC 2022


Module: Mesa
Branch: main
Commit: f1ae6523b13824c2c2c77a897330c40138307e6f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1ae6523b13824c2c2c77a897330c40138307e6f

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri Jul 22 00:34:46 2022 -0400

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 <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17705>

---

 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),



More information about the mesa-commit mailing list