diff options
author | Mike Blumenkrantz <[email protected]> | 2020-06-14 00:03:31 -0400 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-07-14 12:57:22 +0000 |
commit | ab78831baa6329ad1b43dfd0203e6be508e4194d (patch) | |
tree | 9d27cc446fc7d1cdc5b05bfe29728792f49702f1 /src/gallium/drivers | |
parent | 34fe561895bed253070b7dadaa86b4473ad7b51a (diff) |
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5888>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/zink/zink_blit.c | 7 |
1 files changed, 7 insertions, 0 deletions
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), |