Nebula
Loading...
Searching...
No Matches
vkaccelerationstructure.cc File Reference

Namespaces

namespace  Vulkan
 Vulkan implementation of GPU acceleration structure.
 
namespace  CoreGraphics
 Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
 

Functions

const VkDevice Vulkan::BlasGetVkDevice (const CoreGraphics::BlasId id)
 Get device used to create blas.
 
const VkBuffer Vulkan::BlasGetVkBuffer (const CoreGraphics::BlasId id)
 Get buffer holding TLAS data.
 
const VkAccelerationStructureKHR Vulkan::BlasGetVk (const CoreGraphics::BlasId id)
 Get buffer representing the acceleration structure.
 
const VkAccelerationStructureBuildGeometryInfoKHR & Vulkan::BlasGetVkBuild (const CoreGraphics::BlasId id)
 Get build info for bottom level acceleration structure.
 
const Util::Array< VkAccelerationStructureBuildRangeInfoKHR > & Vulkan::BlasGetVkRanges (const CoreGraphics::BlasId id)
 Get range infos for bottom level acceleration structure.
 
const VkDevice Vulkan::TlasGetVkDevice (const CoreGraphics::TlasId id)
 Get device used to create Tlas.
 
const VkBuffer Vulkan::TlasGetVkBuffer (const CoreGraphics::TlasId id)
 Get buffer holding TLAS data.
 
const VkAccelerationStructureKHR Vulkan::TlasGetVk (const CoreGraphics::TlasId id)
 Get acceleration structure.
 
const VkAccelerationStructureBuildGeometryInfoKHR & Vulkan::TlasGetVkBuild (const CoreGraphics::TlasId id)
 Get build info.
 
const Util::Array< VkAccelerationStructureBuildRangeInfoKHR > & Vulkan::TlasGetVkRanges (const CoreGraphics::TlasId id)
 Get build ranges.
 
 CoreGraphics::_IMPL_ACQUIRE_RELEASE (BlasInstanceId, Vulkan::blasInstanceAllocator)
 
 CoreGraphics::_IMPL_ACQUIRE_RELEASE (BlasId, Vulkan::blasAllocator)
 
BlasId CoreGraphics::CreateBlas (const BlasCreateInfo &info)
 Create bottom level acceleration structure.
 
void CoreGraphics::DestroyBlas (const BlasId blac)
 Destroy bottom level acceleration structure.
 
BlasInstanceId CoreGraphics::CreateBlasInstance (const BlasInstanceCreateInfo &info)
 Create an instance to a bottom level acceleration structure.
 
void CoreGraphics::DestroyBlasInstance (const BlasInstanceId id)
 Destroy blas instance.
 
void CoreGraphics::BlasInstanceUpdate (const BlasInstanceId id, const Math::mat4 &transform, CoreGraphics::BufferId buf, uint offset)
 Update blas instance and write to buffer.
 
void CoreGraphics::BlasInstanceUpdate (const BlasInstanceId id, CoreGraphics::BufferId buf, uint offset)
 Update blas instance and write to buffer.
 
void CoreGraphics::BlasInstanceSetMask (const BlasInstanceId id, uint mask)
 Set blas instance mask, setting it to 0x0 will disable it.
 
const SizeT CoreGraphics::BlasInstanceGetSize ()
 Get instance size (platform dependent)
 
TlasId CoreGraphics::CreateTlas (const TlasCreateInfo &info)
 Create top level acceleration structure.
 
void CoreGraphics::DestroyTlas (const TlasId tlas)
 Destroy top level acceleration structure.
 
void CoreGraphics::TlasInitBuild (const TlasId tlas)
 Initiate Tlas for build.
 
void CoreGraphics::TlasInitUpdate (const TlasId tlas)
 Initiate Tlas for update.
 

Variables

VkBlasAllocator Vulkan::blasAllocator
 
VkBlasInstanceAllocator Vulkan::blasInstanceAllocator
 
VkTlasAllocator Vulkan::tlasAllocator