freedreno/layout: Don't align explicit layouts to page size
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

This could cause importing buffers, in particular multiplanar YUV, since
when the offset of the plane is added, the aligned size could be beyond
the end of the buffer.

Fixes: 27b0f64b3e ("freedreno/a6xx: Use handle for explicit layout")
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36656>
This commit is contained in:
Rob Clark 2025-08-07 15:09:45 -07:00 committed by Marge Bot
parent 4838b85d6c
commit 8c59aacc10
2 changed files with 1 additions and 12 deletions

View file

@ -226,17 +226,6 @@ spec@arb_base_instance@arb_base_instance-drawarrays,Fail
spec@ext_base_instance@arb_base_instance-baseinstance-doesnt-affect-gl-instance-id_gles3,Fail
spec@ext_base_instance@arb_base_instance-drawarrays_gles3,Fail
# Bad assumptions in piglit about layout of multiplanar formats,
# it should use separate buffers per plane:
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-export,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_nv12,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_nv21,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_p010,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_p012,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_p016,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuv420,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yvu420,Fail
# glcts update
dEQP-GLES2.functional.texture.mipmap.cube.projected.nearest_linear,Fail
KHR-GL46.texture_view.view_classes,Fail

View file

@ -317,7 +317,7 @@ fdl6_layout_image(struct fdl_layout *layout, const struct fd_dev_info *info,
}
}
if (layout->layer_first) {
if (layout->layer_first && !explicit_layout) {
layout->layer_size = align64(layout->size, 4096);
layout->size = layout->layer_size * params->array_size;
}