[Mesa-dev] [PATCH] anv/wsi: Allocate enough memory for the entire image

Lionel Landwerlin lionel.g.landwerlin at intel.com
Sat Oct 7 22:10:01 UTC 2017


On 07/10/17 22:44, Jason Ekstrand wrote:
> Previously, we allocated memory for image->plane[0].surface.isl.size
> which is great if there is no compression.  However, on BDW, we can do
> CCS_D on X-tiled images so we also have to allocate space for the
> auxiliary buffer.  This fixes hangs in some of the WSI CTS tests and
> should also reduce hangs in real applications.  In particular, it fixes
> the dEQP-VK.wsi.*.incremental_present.* test group.
>
> When we hand the image off to X11 or Wayland, it will ignore the CCS
> entirely which is ok because we do a resolve when it's transitioned to
> VK_IMAGE_LAYOUT_PRESENT_SRC_KHR.
>
> Cc: mesa-stable at lists.freedesktop.org
> ---
>   src/intel/vulkan/anv_wsi.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/intel/vulkan/anv_wsi.c b/src/intel/vulkan/anv_wsi.c
> index 776f3c3..d0b9099 100644
> --- a/src/intel/vulkan/anv_wsi.c
> +++ b/src/intel/vulkan/anv_wsi.c
> @@ -221,7 +221,7 @@ anv_wsi_image_create(VkDevice device_h,
>      result = anv_AllocateMemory(anv_device_to_handle(device),
>         &(VkMemoryAllocateInfo) {
>            .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
> -         .allocationSize = image->planes[0].surface.isl.size,
> +         .allocationSize = image->size,

Do we also need to return the size including the compressed buffer 
further down this function?
Right now it's still : *size = image->planes[0].surface.isl.size;

>            .memoryTypeIndex = 0,
>         },
>         NULL /* XXX: pAllocator */,




More information about the mesa-dev mailing list