From fae4f1884c357b14b3ff288846ef9b3d2c35f75f Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:50 -0600 Subject: [PATCH] nvk: Advertise KHR_dedicated_allocation We're not requiring or even requesting anything to be dedicated yet but we may as well put in the plumbing. This gets more tests running. Part-of: --- src/nouveau/vulkan/nvk_buffer.c | 8 +++++++- src/nouveau/vulkan/nvk_image.c | 8 +++++++- src/nouveau/vulkan/nvk_physical_device.c | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/nouveau/vulkan/nvk_buffer.c b/src/nouveau/vulkan/nvk_buffer.c index f7a7bfe3f8d..13bea86cdb5 100644 --- a/src/nouveau/vulkan/nvk_buffer.c +++ b/src/nouveau/vulkan/nvk_buffer.c @@ -50,8 +50,14 @@ nvk_GetBufferMemoryRequirements2(VkDevice _device, .memoryTypeBits = BITFIELD_MASK(device->pdev->mem_type_cnt), }; - vk_foreach_struct(ext, pMemoryRequirements->pNext) { + vk_foreach_struct_const(ext, pMemoryRequirements->pNext) { switch (ext->sType) { + case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: { + VkMemoryDedicatedRequirements *dedicated = (void *)ext; + dedicated->prefersDedicatedAllocation = false; + dedicated->requiresDedicatedAllocation = false; + break; + } default: nvk_debug_ignored_stype(ext->sType); break; diff --git a/src/nouveau/vulkan/nvk_image.c b/src/nouveau/vulkan/nvk_image.c index 2a30ad007c6..4873d984cb9 100644 --- a/src/nouveau/vulkan/nvk_image.c +++ b/src/nouveau/vulkan/nvk_image.c @@ -262,8 +262,14 @@ nvk_GetImageMemoryRequirements2(VkDevice _device, pMemoryRequirements->memoryRequirements.alignment = 0x1000; pMemoryRequirements->memoryRequirements.size = image->nil.size_B; - vk_foreach_struct_const(ext, pInfo->pNext) { + vk_foreach_struct_const(ext, pMemoryRequirements->pNext) { switch (ext->sType) { + case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: { + VkMemoryDedicatedRequirements *dedicated = (void *)ext; + dedicated->prefersDedicatedAllocation = false; + dedicated->requiresDedicatedAllocation = false; + break; + } default: nvk_debug_ignored_stype(ext->sType); break; diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index 7b6eb217948..9bfb1a5588c 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -145,6 +145,8 @@ nvk_get_device_extensions(const struct nvk_physical_device *device, { *ext = (struct vk_device_extension_table) { .KHR_copy_commands2 = true, + .KHR_dedicated_allocation = true, + .KHR_get_memory_requirements2 = true, .KHR_format_feature_flags2 = true, #ifdef NVK_USE_WSI_PLATFORM .KHR_swapchain = true,