From 03888bf09c0dce42d1857f3c7acbb86715837198 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 29 Mar 2022 08:48:33 +0200 Subject: [PATCH] radv: fix mismatch between radv_GetPhysicalDeviceMemoryProperties*() This fixes a regression with dEQP-VK.api.info.get_physical_device_properties2.memory_properties. This test expects the unused array elements to be untouched. Fixes: 87b65af43e2 ("radv: Use common GetPhysicalDeviceMemoryProperties") Signed-off-by: Samuel Pitoiset Reviewed-By: Mike Blumenkrantz Part-of: --- src/amd/vulkan/radv_device.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index debca9c5e14..ff296d9bb57 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -2610,8 +2610,22 @@ radv_GetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 *pMemoryProperties) { RADV_FROM_HANDLE(radv_physical_device, pdevice, physicalDevice); - - pMemoryProperties->memoryProperties = pdevice->memory_properties; + + pMemoryProperties->memoryProperties.memoryTypeCount = pdevice->memory_properties.memoryTypeCount; + for (uint32_t i = 0; i < pdevice->memory_properties.memoryTypeCount; i++) { + pMemoryProperties->memoryProperties.memoryTypes[i] = (VkMemoryType) { + .propertyFlags = pdevice->memory_properties.memoryTypes[i].propertyFlags, + .heapIndex = pdevice->memory_properties.memoryTypes[i].heapIndex, + }; + } + + pMemoryProperties->memoryProperties.memoryHeapCount = pdevice->memory_properties.memoryHeapCount; + for (uint32_t i = 0; i < pdevice->memory_properties.memoryHeapCount; i++) { + pMemoryProperties->memoryProperties.memoryHeaps[i] = (VkMemoryHeap) { + .size = pdevice->memory_properties.memoryHeaps[i].size, + .flags = pdevice->memory_properties.memoryHeaps[i].flags, + }; + } VkPhysicalDeviceMemoryBudgetPropertiesEXT *memory_budget = vk_find_struct(pMemoryProperties->pNext, PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT);