mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 17:48:10 +02:00
etnaviv: fix YUV tiler blits
The YUV tiling blits are an internal copy into a shadow of the resource.
Thus they don't go through the external context blit hook anymore. Call
the YUV blit function from the two code paths that handle internal copies.
Fixes: d4780f03fc ("etnaviv: use direct BLT/RS blit hook for internal copies")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37605>
This commit is contained in:
parent
51b67a144d
commit
dce859a183
1 changed files with 8 additions and 6 deletions
|
|
@ -134,10 +134,6 @@ etna_blit(struct pipe_context *pctx, const struct pipe_blit_info *blit_info)
|
|||
if (ctx->blit(pctx, &info))
|
||||
goto success;
|
||||
|
||||
if (etna_format_needs_yuv_tiler(blit_info->src.format) &&
|
||||
etna_try_yuv_blit(pctx, blit_info))
|
||||
goto success;
|
||||
|
||||
if (util_try_blit_via_copy_region(pctx, &info, false))
|
||||
goto success;
|
||||
|
||||
|
|
@ -275,7 +271,10 @@ etna_copy_resource(struct pipe_context *pctx, struct pipe_resource *dst,
|
|||
|
||||
for (int z = 0; z < depth; z++) {
|
||||
blit.src.box.z = blit.dst.box.z = z;
|
||||
ctx->blit(pctx, &blit);
|
||||
if (unlikely(etna_format_needs_yuv_tiler(blit.src.format)))
|
||||
etna_try_yuv_blit(pctx, &blit);
|
||||
else
|
||||
ctx->blit(pctx, &blit);
|
||||
}
|
||||
|
||||
if (src == dst)
|
||||
|
|
@ -314,7 +313,10 @@ etna_copy_resource_box(struct pipe_context *pctx, struct pipe_resource *dst,
|
|||
|
||||
for (int z = 0; z < box->depth; z++) {
|
||||
blit.src.box.z = blit.dst.box.z = box->z + z;
|
||||
ctx->blit(pctx, &blit);
|
||||
if (unlikely(etna_format_needs_yuv_tiler(blit.src.format)))
|
||||
etna_try_yuv_blit(pctx, &blit);
|
||||
else
|
||||
ctx->blit(pctx, &blit);
|
||||
}
|
||||
|
||||
if (src == dst)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue