From e6857939e7de69da02dfb277a0482905c133b1c3 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 29 May 2020 16:35:21 +0200 Subject: vkd3d: Do not enable VK_KHR_dedicated_allocation. Core in 1.1. Signed-off-by: Philip Rebohle --- libs/vkd3d/device.c | 2 -- libs/vkd3d/resource.c | 75 +++++++++++++++++++--------------------------- libs/vkd3d/vkd3d_private.h | 2 -- libs/vkd3d/vulkan_procs.h | 8 ++--- 4 files changed, 33 insertions(+), 54 deletions(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index b25ce8cf..1ecc0cdd 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -138,9 +138,7 @@ static const struct vkd3d_optional_extension_info optional_device_extensions[] = { /* KHR extensions */ VK_EXTENSION(KHR_BUFFER_DEVICE_ADDRESS, KHR_buffer_device_address), - VK_EXTENSION(KHR_DEDICATED_ALLOCATION, KHR_dedicated_allocation), VK_EXTENSION(KHR_DRAW_INDIRECT_COUNT, KHR_draw_indirect_count), - VK_EXTENSION(KHR_GET_MEMORY_REQUIREMENTS_2, KHR_get_memory_requirements2), VK_EXTENSION(KHR_IMAGE_FORMAT_LIST, KHR_image_format_list), VK_EXTENSION(KHR_PUSH_DESCRIPTOR, KHR_push_descriptor), VK_EXTENSION(KHR_TIMELINE_SEMAPHORE, KHR_timeline_semaphore), diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index be5d5c44..26a4a1ac 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -171,34 +171,26 @@ HRESULT vkd3d_allocate_buffer_memory(struct d3d12_device *device, VkBuffer vk_bu memory_requirements = &memory_requirements2.memoryRequirements; - if (heap_flags == D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS && - device->vk_info.KHR_dedicated_allocation) - { - info.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2; - info.pNext = NULL; - info.buffer = vk_buffer; - - dedicated_requirements.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS; - dedicated_requirements.pNext = NULL; + info.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2; + info.pNext = NULL; + info.buffer = vk_buffer; - memory_requirements2.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2; - memory_requirements2.pNext = &dedicated_requirements; + dedicated_requirements.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS; + dedicated_requirements.pNext = NULL; - VK_CALL(vkGetBufferMemoryRequirements2KHR(device->vk_device, &info, &memory_requirements2)); + memory_requirements2.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2; + memory_requirements2.pNext = &dedicated_requirements; - if (dedicated_requirements.prefersDedicatedAllocation) - { - dedicated_allocation = &dedicated_info; + VK_CALL(vkGetBufferMemoryRequirements2(device->vk_device, &info, &memory_requirements2)); - dedicated_info.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO; - dedicated_info.pNext = NULL; - dedicated_info.image = VK_NULL_HANDLE; - dedicated_info.buffer = vk_buffer; - } - } - else + if (heap_flags == D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS && dedicated_requirements.prefersDedicatedAllocation) { - VK_CALL(vkGetBufferMemoryRequirements(device->vk_device, vk_buffer, memory_requirements)); + dedicated_allocation = &dedicated_info; + + dedicated_info.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO; + dedicated_info.pNext = NULL; + dedicated_info.image = VK_NULL_HANDLE; + dedicated_info.buffer = vk_buffer; } if (FAILED(hr = vkd3d_allocate_device_memory(device, heap_properties, heap_flags, @@ -234,33 +226,26 @@ static HRESULT vkd3d_allocate_image_memory(struct d3d12_device *device, VkImage memory_requirements = &memory_requirements2.memoryRequirements; - if (device->vk_info.KHR_dedicated_allocation) - { - info.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2; - info.pNext = NULL; - info.image = vk_image; - - dedicated_requirements.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS; - dedicated_requirements.pNext = NULL; + info.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2; + info.pNext = NULL; + info.image = vk_image; - memory_requirements2.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2; - memory_requirements2.pNext = &dedicated_requirements; + dedicated_requirements.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS; + dedicated_requirements.pNext = NULL; - VK_CALL(vkGetImageMemoryRequirements2KHR(device->vk_device, &info, &memory_requirements2)); + memory_requirements2.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2; + memory_requirements2.pNext = &dedicated_requirements; - if (dedicated_requirements.prefersDedicatedAllocation) - { - dedicated_allocation = &dedicated_info; + VK_CALL(vkGetImageMemoryRequirements2(device->vk_device, &info, &memory_requirements2)); - dedicated_info.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO; - dedicated_info.pNext = NULL; - dedicated_info.image = vk_image; - dedicated_info.buffer = VK_NULL_HANDLE; - } - } - else + if (dedicated_requirements.prefersDedicatedAllocation) { - VK_CALL(vkGetImageMemoryRequirements(device->vk_device, vk_image, memory_requirements)); + dedicated_allocation = &dedicated_info; + + dedicated_info.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO; + dedicated_info.pNext = NULL; + dedicated_info.image = vk_image; + dedicated_info.buffer = VK_NULL_HANDLE; } if (FAILED(hr = vkd3d_allocate_device_memory(device, heap_properties, heap_flags, diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 2cd29e20..df6f8eb4 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -112,9 +112,7 @@ struct vkd3d_vulkan_info /* KHR device extensions */ bool KHR_buffer_device_address; - bool KHR_dedicated_allocation; bool KHR_draw_indirect_count; - bool KHR_get_memory_requirements2; bool KHR_image_format_list; bool KHR_push_descriptor; bool KHR_timeline_semaphore; diff --git a/libs/vkd3d/vulkan_procs.h b/libs/vkd3d/vulkan_procs.h index d1be290f..ddbdc9f9 100644 --- a/libs/vkd3d/vulkan_procs.h +++ b/libs/vkd3d/vulkan_procs.h @@ -151,13 +151,16 @@ VK_DEVICE_PFN(vkFreeCommandBuffers) VK_DEVICE_PFN(vkFreeDescriptorSets) VK_DEVICE_PFN(vkFreeMemory) VK_DEVICE_PFN(vkGetBufferMemoryRequirements) +VK_DEVICE_PFN(vkGetBufferMemoryRequirements2) VK_DEVICE_PFN(vkGetDescriptorSetLayoutSupport) VK_DEVICE_PFN(vkGetDeviceMemoryCommitment) VK_DEVICE_PFN(vkGetDeviceQueue) VK_DEVICE_PFN(vkGetEventStatus) VK_DEVICE_PFN(vkGetFenceStatus) VK_DEVICE_PFN(vkGetImageMemoryRequirements) +VK_DEVICE_PFN(vkGetImageMemoryRequirements2) VK_DEVICE_PFN(vkGetImageSparseMemoryRequirements) +VK_DEVICE_PFN(vkGetImageSparseMemoryRequirements2) VK_DEVICE_PFN(vkGetImageSubresourceLayout) VK_DEVICE_PFN(vkGetPipelineCacheData) VK_DEVICE_PFN(vkGetQueryPoolResults) @@ -192,11 +195,6 @@ VK_DEVICE_EXT_PFN(vkSignalSemaphoreKHR) VK_DEVICE_EXT_PFN(vkCmdDrawIndirectCountKHR) VK_DEVICE_EXT_PFN(vkCmdDrawIndexedIndirectCountKHR) -/* VK_KHR_get_memory_requirements2 */ -VK_DEVICE_EXT_PFN(vkGetBufferMemoryRequirements2KHR) -VK_DEVICE_EXT_PFN(vkGetImageMemoryRequirements2KHR) -VK_DEVICE_EXT_PFN(vkGetImageSparseMemoryRequirements2KHR) - /* VK_KHR_push_descriptor */ VK_DEVICE_EXT_PFN(vkCmdPushDescriptorSetKHR) -- cgit v1.2.3