From a4802fd547dea06d3256b8a308cd8f50f1d4dd9d Mon Sep 17 00:00:00 2001 From: Frank Binns Date: Thu, 24 Oct 2024 14:24:51 +0100 Subject: [PATCH] pvr: apply PBE stride alignment when setting up image physical extents Fixes a striding issues seen when running `weston-simple-dmabuf-egl -s 129`. Signed-off-by: Frank Binns Acked-by: Erik Faye-Lund Part-of: --- src/imagination/vulkan/pvr_image.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/imagination/vulkan/pvr_image.c b/src/imagination/vulkan/pvr_image.c index 5341b4add8e..88c11328908 100644 --- a/src/imagination/vulkan/pvr_image.c +++ b/src/imagination/vulkan/pvr_image.c @@ -77,6 +77,16 @@ static void pvr_image_init_physical_extent(struct pvr_image *image) } else { assert(image->memlayout == PVR_MEMLAYOUT_LINEAR); image->physical_extent = image->vk.extent; + + /* If the image is being rendered to (written by the PBE) make sure the + * width is aligned correctly. + */ + if (image->vk.usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT)) { + image->physical_extent.width = + ALIGN(image->physical_extent.width, + ROGUE_PBESTATE_REG_WORD0_LINESTRIDE_UNIT_SIZE); + } } }