summaryrefslogtreecommitdiff
path: root/tools/gfx/vulkan/vk-shader-object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/vulkan/vk-shader-object.cpp')
-rw-r--r--tools/gfx/vulkan/vk-shader-object.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/gfx/vulkan/vk-shader-object.cpp b/tools/gfx/vulkan/vk-shader-object.cpp
index eaee69edb..58cb23f22 100644
--- a/tools/gfx/vulkan/vk-shader-object.cpp
+++ b/tools/gfx/vulkan/vk-shader-object.cpp
@@ -504,7 +504,6 @@ void ShaderObjectImpl::writeAccelerationStructureDescriptor(
static_cast<AccelerationStructureImpl*>(resourceViews[i].Ptr());
VkWriteDescriptorSetAccelerationStructureKHR writeAS = {};
writeAS.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
- VkAccelerationStructureKHR nullHandle = VK_NULL_HANDLE;
if (accelerationStructure)
{
writeAS.accelerationStructureCount = 1;
@@ -512,6 +511,12 @@ void ShaderObjectImpl::writeAccelerationStructureDescriptor(
}
else
{
+ // The Vulkan spec states: If the nullDescriptor feature is not enabled, each element of
+ // pAccelerationStructures must not be VK_NULL_HANDLE
+ SLANG_ASSERT(
+ context.device->m_api.m_extendedFeatures.robustness2Features.nullDescriptor);
+
+ static const VkAccelerationStructureKHR nullHandle = VK_NULL_HANDLE;
writeAS.accelerationStructureCount = 1;
writeAS.pAccelerationStructures = &nullHandle;
}