Fix descriptor set
Fix pNext chaining Code cleanupFixes #1088 Fixes #1089
This commit is contained in:
parent
1201b8d10c
commit
ef50bf9b8f
1 changed files with 9 additions and 14 deletions
|
|
@ -6,10 +6,6 @@
|
||||||
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
|
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* @todo
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "VulkanRaytracingSample.h"
|
#include "VulkanRaytracingSample.h"
|
||||||
#define VK_GLTF_MATERIAL_IDS
|
#define VK_GLTF_MATERIAL_IDS
|
||||||
#include "VulkanglTFModel.h"
|
#include "VulkanglTFModel.h"
|
||||||
|
|
@ -75,12 +71,6 @@ public:
|
||||||
|
|
||||||
enabledDeviceExtensions.push_back(VK_KHR_MAINTENANCE3_EXTENSION_NAME);
|
enabledDeviceExtensions.push_back(VK_KHR_MAINTENANCE3_EXTENSION_NAME);
|
||||||
enabledDeviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_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()
|
~VulkanExample()
|
||||||
|
|
@ -98,6 +88,7 @@ public:
|
||||||
shaderBindingTables.miss.destroy();
|
shaderBindingTables.miss.destroy();
|
||||||
shaderBindingTables.hit.destroy();
|
shaderBindingTables.hit.destroy();
|
||||||
ubo.destroy();
|
ubo.destroy();
|
||||||
|
geometryNodesBuffer.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
void createAccelerationStructureBuffer(AccelerationStructure &accelerationStructure, VkAccelerationStructureBuildSizesInfoKHR buildSizeInfo)
|
void createAccelerationStructureBuffer(AccelerationStructure &accelerationStructure, VkAccelerationStructureBuildSizesInfoKHR buildSizeInfo)
|
||||||
|
|
@ -220,7 +211,7 @@ public:
|
||||||
accelerationStructureBuildGeometryInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
|
accelerationStructureBuildGeometryInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
|
||||||
accelerationStructureBuildGeometryInfo.type = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR;
|
accelerationStructureBuildGeometryInfo.type = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR;
|
||||||
accelerationStructureBuildGeometryInfo.flags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
|
accelerationStructureBuildGeometryInfo.flags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
|
||||||
accelerationStructureBuildGeometryInfo.geometryCount = geometries.size();
|
accelerationStructureBuildGeometryInfo.geometryCount = static_cast<uint32_t>(geometries.size());
|
||||||
accelerationStructureBuildGeometryInfo.pGeometries = geometries.data();
|
accelerationStructureBuildGeometryInfo.pGeometries = geometries.data();
|
||||||
|
|
||||||
const uint32_t numTriangles = maxPrimitiveCounts[0];
|
const uint32_t numTriangles = maxPrimitiveCounts[0];
|
||||||
|
|
@ -373,7 +364,6 @@ public:
|
||||||
VkAccelerationStructureDeviceAddressInfoKHR accelerationDeviceAddressInfo{};
|
VkAccelerationStructureDeviceAddressInfoKHR accelerationDeviceAddressInfo{};
|
||||||
accelerationDeviceAddressInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
|
accelerationDeviceAddressInfo.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
|
||||||
accelerationDeviceAddressInfo.accelerationStructure = topLevelAS.handle;
|
accelerationDeviceAddressInfo.accelerationStructure = topLevelAS.handle;
|
||||||
topLevelAS.deviceAddress = vkGetAccelerationStructureDeviceAddressKHR(device, &accelerationDeviceAddressInfo);
|
|
||||||
|
|
||||||
deleteScratchBuffer(scratchBuffer);
|
deleteScratchBuffer(scratchBuffer);
|
||||||
instancesBuffer.destroy();
|
instancesBuffer.destroy();
|
||||||
|
|
@ -447,7 +437,6 @@ public:
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
|
||||||
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT
|
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT
|
||||||
};
|
};
|
||||||
setLayoutBindingFlags.pBindingFlags = descriptorBindingFlags.data();
|
setLayoutBindingFlags.pBindingFlags = descriptorBindingFlags.data();
|
||||||
|
|
@ -734,7 +723,13 @@ public:
|
||||||
enabledAccelerationStructureFeatures.accelerationStructure = VK_TRUE;
|
enabledAccelerationStructureFeatures.accelerationStructure = VK_TRUE;
|
||||||
enabledAccelerationStructureFeatures.pNext = &enabledRayTracingPipelineFeatures;
|
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;
|
enabledFeatures.samplerAnisotropy = VK_TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue