From 2f8ede04d9019a1c62f4f5f0c6f72b7b340188ef Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 17 May 2017 11:16:57 -0700 Subject: [PATCH] anv: Set image memory types based on the type count Reviewed-by: Nanley Chery Cc: "17.1" (cherry picked from commit 10fad58b31ee2354330152ca4072327d228fc2e7) Signed-off-by: Juan A. Suarez Romero --- src/intel/vulkan/anv_device.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index b203c29fabc..7ad14b59f90 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1810,6 +1810,7 @@ void anv_GetImageMemoryRequirements( { ANV_FROM_HANDLE(anv_image, image, _image); ANV_FROM_HANDLE(anv_device, device, _device); + struct anv_physical_device *pdevice = &device->instance->physicalDevice; /* The Vulkan spec (git aaed022) says: * @@ -1818,12 +1819,13 @@ void anv_GetImageMemoryRequirements( * only if the memory type `i` in the VkPhysicalDeviceMemoryProperties * structure for the physical device is supported. * - * We support exactly one memory type on LLC, two on non-LLC. + * All types are currently supported for images. */ - pMemoryRequirements->memoryTypeBits = device->info.has_llc ? 1 : 3; + uint32_t memory_types = (1ull << pdevice->memory.type_count) - 1; pMemoryRequirements->size = image->size; pMemoryRequirements->alignment = image->alignment; + pMemoryRequirements->memoryTypeBits = memory_types; } void anv_GetImageSparseMemoryRequirements(