From d87493a46c00be37b820a473c0827bbb865eb222 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 2 Oct 2023 15:39:34 -0700 Subject: More direct-SPIRV fixes. (#3257) * More direct-SPIRV fixes. * Fix array-reg-to-mem. --------- Co-authored-by: Yong He --- tools/gfx/vulkan/vk-device.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tools/gfx/vulkan/vk-device.cpp') diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp index 4fbf987e9..bed9c038a 100644 --- a/tools/gfx/vulkan/vk-device.cpp +++ b/tools/gfx/vulkan/vk-device.cpp @@ -405,6 +405,10 @@ Result DeviceImpl::initVulkanInstanceAndDevice( extendedFeatures.rayTracingPipelineFeatures.pNext = deviceFeatures2.pNext; deviceFeatures2.pNext = &extendedFeatures.rayTracingPipelineFeatures; + // SER features. + extendedFeatures.rayTracingInvocationReorderFeatures.pNext = deviceFeatures2.pNext; + deviceFeatures2.pNext = &extendedFeatures.rayTracingInvocationReorderFeatures; + // Acceleration structure features extendedFeatures.accelerationStructureFeatures.pNext = deviceFeatures2.pNext; deviceFeatures2.pNext = &extendedFeatures.accelerationStructureFeatures; @@ -582,6 +586,16 @@ Result DeviceImpl::initVulkanInstanceAndDevice( m_features.add("mesh-shader"); } + if (extendedFeatures.rayTracingInvocationReorderFeatures.rayTracingInvocationReorder) + { + deviceExtensions.add(VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME); + + extendedFeatures.rayTracingInvocationReorderFeatures.pNext = (void*)deviceCreateInfo.pNext; + deviceCreateInfo.pNext = &extendedFeatures.rayTracingInvocationReorderFeatures; + + m_features.add("shader-execution-reorder"); + } + if (_hasAnySetBits( extendedFeatures.vulkan12Features, offsetof(VkPhysicalDeviceVulkan12Features, pNext) + sizeof(void*))) -- cgit v1.2.3