From 1b967c4240675c4a3aa6e630c1204d0d34294887 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Sun, 27 Nov 2022 00:50:20 +0100 Subject: [PATCH] Cleanup required features and adjusted context allocator create flags Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- projects/rtx_ambient_occlusion/src/main.cpp | 11 +---------- src/vkcv/Context.cpp | 12 +++++++++++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/projects/rtx_ambient_occlusion/src/main.cpp b/projects/rtx_ambient_occlusion/src/main.cpp index 3136e92c..0992d457 100644 --- a/projects/rtx_ambient_occlusion/src/main.cpp +++ b/projects/rtx_ambient_occlusion/src/main.cpp @@ -12,17 +12,9 @@ int main(int argc, const char** argv) { const std::string applicationName = "RTX Ambient Occlusion"; vkcv::Features features; - features.requireExtension(VK_KHR_MAINTENANCE3_EXTENSION_NAME); features.requireExtension(VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME); - features.requireExtension(VK_KHR_SPIRV_1_4_EXTENSION_NAME); - features.requireExtension(VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME); features.requireExtension(VK_KHR_SWAPCHAIN_EXTENSION_NAME); - features.requireExtensionFeature<vk::PhysicalDeviceDescriptorIndexingFeatures>( - VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, - [](vk::PhysicalDeviceDescriptorIndexingFeatures& features) {} - ); - features.requireExtensionFeature<vk::PhysicalDeviceBufferDeviceAddressFeatures>( VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, [](vk::PhysicalDeviceBufferDeviceAddressFeatures& features) { @@ -54,8 +46,7 @@ int main(int argc, const char** argv) { applicationName, VK_MAKE_VERSION(0, 0, 1), { vk::QueueFlagBits::eGraphics ,vk::QueueFlagBits::eCompute , vk::QueueFlagBits::eTransfer }, - features, - { VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME } + features ); vkcv::rtx::ASManager asManager(&core); diff --git a/src/vkcv/Context.cpp b/src/vkcv/Context.cpp index 43bf5de2..9a3ef1ff 100644 --- a/src/vkcv/Context.cpp +++ b/src/vkcv/Context.cpp @@ -465,13 +465,23 @@ namespace vkcv { return features.deviceCoherentMemory; } ); + + const bool bufferDeviceAddress = featureManager.checkFeatures<vk::PhysicalDeviceBufferDeviceAddressFeatures>( + vk::StructureType::ePhysicalDeviceBufferDeviceAddressFeatures, + [](const vk::PhysicalDeviceBufferDeviceAddressFeatures &features) { + return features.bufferDeviceAddress; + } + ); vma::AllocatorCreateFlags vmaFlags; + if (coherentDeviceMemory) { vmaFlags |= vma::AllocatorCreateFlagBits::eAmdDeviceCoherentMemory; } - vmaFlags |= vma::AllocatorCreateFlagBits::eBufferDeviceAddress; + if (bufferDeviceAddress) { + vmaFlags |= vma::AllocatorCreateFlagBits::eBufferDeviceAddress; + } const vma::AllocatorCreateInfo allocatorCreateInfo( vmaFlags, -- GitLab