zink: reject swizzled format blits

e.g., R8G8B8A8 -> B8G8R8A8 is invalid, so use u_blitter

fixes (various gl configs):
KHR-GL46.blend_equation_advanced*

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17523>
This commit is contained in:
Mike Blumenkrantz 2022-07-12 19:40:38 -04:00 committed by Marge Bot
parent 3a0a8688d3
commit 89a9220cbf
1 changed files with 3 additions and 0 deletions

View File

@ -44,9 +44,12 @@ blit_resolve(struct zink_context *ctx, const struct pipe_blit_info *info, bool *
struct zink_resource *dst = zink_resource(info->dst.resource);
struct zink_screen *screen = zink_screen(ctx->base.screen);
/* aliased/swizzled formats need u_blitter */
if (src->format != zink_get_format(screen, info->src.format) ||
dst->format != zink_get_format(screen, info->dst.format))
return false;
if (src->format != dst->format)
return false;
apply_dst_clears(ctx, info, false);
zink_fb_clears_apply_region(ctx, info->src.resource, zink_rect_from_box(&info->src.box));