Nebula
Loading...
Searching...
No Matches
vkaccelerationstructure.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9//------------------------------------------------------------------------------
10#include "ids/idallocator.h"
12namespace Vulkan
13{
14
16{
17 VkAccelerationStructureBuildSizesInfoKHR buildSizes;
18 VkAccelerationStructureBuildGeometryInfoKHR buildGeometryInfo;
19 VkAccelerationStructureGeometryKHR geometry;
20 VkAccelerationStructureBuildRangeInfoKHR primitiveGroup;
21};
22
23enum
24{
31};
32
34 0xFFF
35 , VkDevice
36 , VkAccelerationStructureKHR
39 , GeometrySetup
40 , VkDeviceAddress
43
45const VkDevice BlasGetVkDevice(const CoreGraphics::BlasId id);
47const VkBuffer BlasGetVkBuffer(const CoreGraphics::BlasId id);
49const VkAccelerationStructureKHR BlasGetVk(const CoreGraphics::BlasId id);
51const VkAccelerationStructureBuildGeometryInfoKHR& BlasGetVkBuild(const CoreGraphics::BlasId id);
53const VkAccelerationStructureBuildRangeInfoKHR& BlasGetVkRanges(const CoreGraphics::BlasId id);
54
56{
57 VkAccelerationStructureGeometryInstancesDataKHR instanceData;
58 VkAccelerationStructureBuildGeometryInfoKHR geometryInfo;
59};
60
61enum
62{
65};
66
68 0xFFFF
69 , VkAccelerationStructureInstanceKHR
71 , uint
74
75
77{
78 VkAccelerationStructureGeometryKHR geo;
79 VkAccelerationStructureBuildGeometryInfoKHR geometryInfo;
80 VkAccelerationStructureBuildSizesInfoKHR buildSizes;
82};
83
84enum
85{
94};
95
97 0xFFF
98 , VkDevice
99 , SceneSetup
100 , VkAccelerationStructureKHR
104 , VkDeviceAddress
105 , VkDeviceAddress
108
110const VkDevice TlasGetVkDevice(const CoreGraphics::TlasId id);
112const VkBuffer TlasGetVkBuffer(const CoreGraphics::TlasId id);
114const VkAccelerationStructureKHR TlasGetVk(const CoreGraphics::TlasId id);
116const VkAccelerationStructureBuildGeometryInfoKHR& TlasGetVkBuild(const CoreGraphics::TlasId id);
119
120} // namespace Vulkan
Definition idallocator.h:106
Nebula's dynamic array class.
Definition array.h:60
Vulkan implementation of GPU acceleration structure.
Definition vkaccelerationstructure.cc:15
VkBlasInstanceAllocator blasInstanceAllocator
Definition vkaccelerationstructure.cc:17
const VkBuffer BlasGetVkBuffer(const CoreGraphics::BlasId id)
Get buffer holding TLAS data.
Definition vkaccelerationstructure.cc:34
const VkDevice TlasGetVkDevice(const CoreGraphics::TlasId id)
Get device used to create Tlas.
Definition vkaccelerationstructure.cc:70
const VkAccelerationStructureBuildGeometryInfoKHR & BlasGetVkBuild(const CoreGraphics::BlasId id)
Get build info for bottom level acceleration structure.
Definition vkaccelerationstructure.cc:52
@ BlasInstance_Transform
Definition vkaccelerationstructure.h:64
@ BlasInstance_Instance
Definition vkaccelerationstructure.h:63
const VkAccelerationStructureKHR TlasGetVk(const CoreGraphics::TlasId id)
Get acceleration structure.
Definition vkaccelerationstructure.cc:88
Ids::IdAllocatorSafe< 0xFFFF, VkAccelerationStructureInstanceKHR, Math::mat4, uint > VkBlasInstanceAllocator
Definition vkaccelerationstructure.h:72
const VkAccelerationStructureKHR BlasGetVk(const CoreGraphics::BlasId id)
Get buffer representing the acceleration structure.
Definition vkaccelerationstructure.cc:43
@ Blas_Geometry
Definition vkaccelerationstructure.h:29
@ Blas_View
Definition vkaccelerationstructure.h:30
@ Blas_Scratch
Definition vkaccelerationstructure.h:28
@ Blas_Device
Definition vkaccelerationstructure.h:25
@ Blas_Buffer
Definition vkaccelerationstructure.h:27
@ Blas_Handle
Definition vkaccelerationstructure.h:26
const VkAccelerationStructureBuildGeometryInfoKHR & TlasGetVkBuild(const CoreGraphics::TlasId id)
Get build info.
Definition vkaccelerationstructure.cc:97
VkBlasAllocator blasAllocator
Definition vkaccelerationstructure.cc:16
const VkDevice BlasGetVkDevice(const CoreGraphics::BlasId id)
Get device used to create blas.
Definition vkaccelerationstructure.cc:25
@ Tlas_UpdateScratch
Definition vkaccelerationstructure.h:91
@ Tlas_BuildScratchAddr
Definition vkaccelerationstructure.h:92
@ Tlas_BuildScratch
Definition vkaccelerationstructure.h:90
@ Tlas_Device
Definition vkaccelerationstructure.h:86
@ Tlas_Scene
Definition vkaccelerationstructure.h:87
@ Tlas_UpdateScratchAddr
Definition vkaccelerationstructure.h:93
@ Tlas_Handle
Definition vkaccelerationstructure.h:88
@ Tlas_Buffer
Definition vkaccelerationstructure.h:89
const Util::Array< VkAccelerationStructureBuildRangeInfoKHR > & TlasGetVkRanges(const CoreGraphics::TlasId id)
Get build ranges.
Definition vkaccelerationstructure.cc:106
const VkBuffer TlasGetVkBuffer(const CoreGraphics::TlasId id)
Get buffer holding TLAS data.
Definition vkaccelerationstructure.cc:79
VkTlasAllocator tlasAllocator
Definition vkaccelerationstructure.cc:18
Ids::IdAllocatorSafe< 0xFFF, VkDevice, VkAccelerationStructureKHR, CoreGraphics::BufferId, CoreGraphics::BufferId, GeometrySetup, VkDeviceAddress > VkBlasAllocator
Definition vkaccelerationstructure.h:41
Ids::IdAllocatorSafe< 0xFFF, VkDevice, SceneSetup, VkAccelerationStructureKHR, CoreGraphics::BufferId, CoreGraphics::BufferId, CoreGraphics::BufferId, VkDeviceAddress, VkDeviceAddress > VkTlasAllocator
Definition vkaccelerationstructure.h:106
const VkAccelerationStructureBuildRangeInfoKHR & BlasGetVkRanges(const CoreGraphics::BlasId id)
Get range infos for bottom level acceleration structure.
Definition vkaccelerationstructure.cc:61
Definition accelerationstructure.h:48
Definition buffer.h:23
Definition accelerationstructure.h:98
A 4x4 single point precision float matrix.
Definition mat4.h:49
Definition vkaccelerationstructure.h:16
VkAccelerationStructureGeometryKHR geometry
Definition vkaccelerationstructure.h:19
VkAccelerationStructureBuildRangeInfoKHR primitiveGroup
Definition vkaccelerationstructure.h:20
VkAccelerationStructureBuildGeometryInfoKHR buildGeometryInfo
Definition vkaccelerationstructure.h:18
VkAccelerationStructureBuildSizesInfoKHR buildSizes
Definition vkaccelerationstructure.h:17
Definition vkaccelerationstructure.h:56
VkAccelerationStructureGeometryInstancesDataKHR instanceData
Definition vkaccelerationstructure.h:57
VkAccelerationStructureBuildGeometryInfoKHR geometryInfo
Definition vkaccelerationstructure.h:58
Definition vkaccelerationstructure.h:77
VkAccelerationStructureGeometryKHR geo
Definition vkaccelerationstructure.h:78
VkAccelerationStructureBuildGeometryInfoKHR geometryInfo
Definition vkaccelerationstructure.h:79
Util::Array< VkAccelerationStructureBuildRangeInfoKHR > rangeInfos
Definition vkaccelerationstructure.h:81
VkAccelerationStructureBuildSizesInfoKHR buildSizes
Definition vkaccelerationstructure.h:80
unsigned int uint
Definition types.h:31