Skip to content
Snippets Groups Projects
Commit 7d6996f7 authored by Vanessa Karolek's avatar Vanessa Karolek
Browse files

[#92] add structs for BLAS and TLAS

parent d4730c67
No related branches found
No related tags found
1 merge request!75Resolve "RTX-Module"
...@@ -20,17 +20,25 @@ namespace vkcv::rtx { ...@@ -20,17 +20,25 @@ namespace vkcv::rtx {
vk::Buffer vulkanHandle; vk::Buffer vulkanHandle;
}; };
struct AccelerationStructure { struct BottomLevelAccelerationStructure {
RTXBuffer vertexBuffer; RTXBuffer vertexBuffer;
RTXBuffer indexBuffer; RTXBuffer indexBuffer;
RTXBuffer accelerationBuffer; RTXBuffer accelerationBuffer;
vk::AccelerationStructureKHR vulkanHandle; vk::AccelerationStructureKHR vulkanHandle;
}; };
struct TopLevelAccelerationStructure {
RTXBuffer gpuBufferInstances;
RTXBuffer tlasBuffer;
RTXBuffer tempBuildDataBuffer; // scratch buffer
vk::AccelerationStructureKHR vulkanHandle;
};
class ASManager { class ASManager {
private: private:
Core* m_core; Core* m_core;
std::vector<AccelerationStructure> m_accelerationStructures; std::vector<BottomLevelAccelerationStructure> m_bottomLevelAccelerationStructures;
TopLevelAccelerationStructure m_topLevelAccelerationStructure;
vk::DispatchLoaderDynamic m_rtxDispatcher; vk::DispatchLoaderDynamic m_rtxDispatcher;
...@@ -52,6 +60,7 @@ namespace vkcv::rtx { ...@@ -52,6 +60,7 @@ namespace vkcv::rtx {
/** /**
* @brief Copies @p cpuBuffer data into a @p gpuBuffer. Typical use case is a staging buffer (namely, * @brief Copies @p cpuBuffer data into a @p gpuBuffer. Typical use case is a staging buffer (namely,
* @p cpuBuffer) used to fill a @p gpuBuffer with vk::MemoryPropertyFlagBits::eDeviceLocal flag set. * @p cpuBuffer) used to fill a @p gpuBuffer with vk::MemoryPropertyFlagBits::eDeviceLocal flag set.
* @p cpuBuffer is destroyed and freed after copying.
* @param cpuBuffer * @param cpuBuffer
* @param gpuBuffer * @param gpuBuffer
*/ */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment