diff --git a/examples/raytracinggltf/raytracinggltf.cpp b/examples/raytracinggltf/raytracinggltf.cpp index 9cac21c9..2edd9be6 100644 --- a/examples/raytracinggltf/raytracinggltf.cpp +++ b/examples/raytracinggltf/raytracinggltf.cpp @@ -6,10 +6,6 @@ * This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) */ -/* - * @todo - */ - #include "VulkanRaytracingSample.h" #define VK_GLTF_MATERIAL_IDS #include "VulkanglTFModel.h" @@ -75,12 +71,6 @@ public: enabledDeviceExtensions.push_back(VK_KHR_MAINTENANCE3_EXTENSION_NAME); enabledDeviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME); - physicalDeviceDescriptorIndexingFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT; - physicalDeviceDescriptorIndexingFeatures.shaderSampledImageArrayNonUniformIndexing = VK_TRUE; - physicalDeviceDescriptorIndexingFeatures.runtimeDescriptorArray = VK_TRUE; - physicalDeviceDescriptorIndexingFeatures.descriptorBindingVariableDescriptorCount = VK_TRUE; - - deviceCreatepNextChain = &physicalDeviceDescriptorIndexingFeatures; } ~VulkanExample() @@ -98,6 +88,7 @@ public: shaderBindingTables.miss.destroy(); shaderBindingTables.hit.destroy(); ubo.destroy(); + geometryNodesBuffer.destroy(); } void createAccelerationStructureBuffer(AccelerationStructure &accelerationStructure, VkAccelerationStructureBuildSizesInfoKHR buildSizeInfo) @@ -220,7 +211,7 @@ public: accelerationStructureBuildGeometryInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR; accelerationStructureBuildGeometryInfo.type = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR; accelerationStructureBuildGeometryInfo.flags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR; - accelerationStructureBuildGeometryInfo.geometryCount = geometries.size(); + accelerationStructureBuildGeometryInfo.geometryCount = static_cast(geometries.size()); accelerationStructureBuildGeometryInfo.pGeometries = geometries.data(); const uint32_t numTriangles = maxPrimitiveCounts[0]; @@ -373,7 +364,6 @@ public: VkAccelerationStructureDeviceAddressInfoKHR accelerationDeviceAddressInfo{}; accelerationDeviceAddressInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR; accelerationDeviceAddressInfo.accelerationStructure = topLevelAS.handle; - topLevelAS.deviceAddress = vkGetAccelerationStructureDeviceAddressKHR(device, &accelerationDeviceAddressInfo); deleteScratchBuffer(scratchBuffer); instancesBuffer.destroy(); @@ -447,7 +437,6 @@ public: 0, 0, 0, - 0, VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT }; setLayoutBindingFlags.pBindingFlags = descriptorBindingFlags.data(); @@ -734,7 +723,13 @@ public: enabledAccelerationStructureFeatures.accelerationStructure = VK_TRUE; enabledAccelerationStructureFeatures.pNext = &enabledRayTracingPipelineFeatures; - deviceCreatepNextChain = &enabledAccelerationStructureFeatures; + physicalDeviceDescriptorIndexingFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT; + physicalDeviceDescriptorIndexingFeatures.shaderSampledImageArrayNonUniformIndexing = VK_TRUE; + physicalDeviceDescriptorIndexingFeatures.runtimeDescriptorArray = VK_TRUE; + physicalDeviceDescriptorIndexingFeatures.descriptorBindingVariableDescriptorCount = VK_TRUE; + physicalDeviceDescriptorIndexingFeatures.pNext = &enabledAccelerationStructureFeatures; + + deviceCreatepNextChain = &physicalDeviceDescriptorIndexingFeatures; enabledFeatures.samplerAnisotropy = VK_TRUE; }