MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / buildAccelerationStructure

Method buildAccelerationStructure

Source/Falcor/Core/API/RenderContext.cpp:610–634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

608}
609
610void RenderContext::buildAccelerationStructure(
611 const RtAccelerationStructure::BuildDesc& desc,
612 uint32_t postBuildInfoCount,
613 RtAccelerationStructurePostBuildInfoDesc* pPostBuildInfoDescs
614)
615{
616 GFXAccelerationStructureBuildInputsTranslator translator = {};
617
618 gfx::IAccelerationStructure::BuildDesc buildDesc = {};
619 buildDesc.dest = desc.dest->getGfxAccelerationStructure();
620 buildDesc.scratchData = desc.scratchData;
621 buildDesc.source = desc.source ? desc.source->getGfxAccelerationStructure() : nullptr;
622 buildDesc.inputs = translator.translate(desc.inputs);
623
624 std::vector<gfx::AccelerationStructureQueryDesc> queryDescs(postBuildInfoCount);
625 for (uint32_t i = 0; i < postBuildInfoCount; i++)
626 {
627 queryDescs[i].firstQueryIndex = pPostBuildInfoDescs[i].index;
628 queryDescs[i].queryPool = pPostBuildInfoDescs[i].pool->getGFXQueryPool();
629 queryDescs[i].queryType = getGFXAccelerationStructurePostBuildQueryType(pPostBuildInfoDescs[i].type);
630 }
631 auto rtEncoder = getLowLevelData()->getRayTracingCommandEncoder();
632 rtEncoder->buildAccelerationStructure(buildDesc, (int)postBuildInfoCount, queryDescs.data());
633 mCommandsPending = true;
634}
635
636void RenderContext::copyAccelerationStructure(
637 RtAccelerationStructure* dest,

Callers 2

buildBlasMethod · 0.80
buildTlasMethod · 0.80

Calls 5

getLowLevelDataFunction · 0.85
translateMethod · 0.80
dataMethod · 0.45

Tested by

no test coverage detected