MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-ValidationLayers / CreateTLAS

Function CreateTLAS

tests/framework/ray_tracing_objects.cpp:2018–2040  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2016}
2017
2018vkt::as::BuildGeometryInfoKHR CreateTLAS(vkt::Device& device, std::vector<vkt::as::GeometryKHR>&& blas_vec) {
2019 vkt::as::BuildGeometryInfoKHR tlas(&device);
2020
2021 tlas.SetType(VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR);
2022 tlas.SetBuildType(VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR);
2023 tlas.SetMode(VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR);
2024
2025 tlas.SetGeometries(std::move(blas_vec));
2026 tlas.SetBuildRanges(tlas.GetBuildRangeInfosFromGeometries());
2027
2028 // Set source and destination acceleration structures info. Does not create handles, it is done in Build()
2029 tlas.SetSrcAS(vkt::as::blueprint::AccelStructNull(device));
2030 const VkDeviceSize dst_as_size = tlas.GetSizeInfo().accelerationStructureSize;
2031 auto dst_as = vkt::as::blueprint::AccelStructSimpleOnDeviceTopLevel(device, dst_as_size);
2032 tlas.SetDstAS(std::move(dst_as));
2033 tlas.SetUpdateDstAccelStructSizeBeforeBuild(true);
2034
2035 tlas.SetInfoCount(1);
2036 tlas.SetNullInfos(false);
2037 tlas.SetNullBuildRangeInfos(false);
2038
2039 return tlas;
2040}
2041
2042} // namespace blueprint
2043

Callers 3

GetCubesTLASFunction · 0.85
TEST_FFunction · 0.85
TEST_FFunction · 0.85

Calls 4

AccelStructNullFunction · 0.85
GetSizeInfoMethod · 0.80

Tested by

no test coverage detected