From ab78831baa6329ad1b43dfd0203e6be508e4194d Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Sun, 14 Jun 2020 00:03:31 -0400 Subject: [PATCH] zink: try copy_region hook for blits where we can't do a regular blit or resolve in cases where the formats match, we can likely just pass this through for now fixes a ton of spec@!opengl 1.1@depthstencil-default_fb-blit piglit tests Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_blit.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gallium/drivers/zink/zink_blit.c b/src/gallium/drivers/zink/zink_blit.c index 74e1024b616..6dd3caaece1 100644 --- a/src/gallium/drivers/zink/zink_blit.c +++ b/src/gallium/drivers/zink/zink_blit.c @@ -4,6 +4,7 @@ #include "zink_screen.h" #include "util/u_blitter.h" +#include "util/u_surface.h" #include "util/format/u_format.h" static bool @@ -182,6 +183,12 @@ zink_blit(struct pipe_context *pctx, return; } + struct zink_resource *src = zink_resource(info->src.resource); + struct zink_resource *dst = zink_resource(info->dst.resource); + /* if we're copying between resources with matching aspects then we can probably just copy_region */ + if (src->aspect == dst->aspect && util_try_blit_via_copy_region(pctx, info)) + return; + if (!util_blitter_is_blit_supported(ctx->blitter, info)) { debug_printf("blit unsupported %s -> %s\n", util_format_short_name(info->src.resource->format), -- 2.30.2