VulkanRaytracingCycles 0.0.0
Cycles Render Engine With VulkanRaytracingShaderModules. ( Experiment , in progress)
|
#include <ObjectVk.h>
Classes | |
struct | AsCache |
Public Member Functions | |
RtObjectsVk (vkmm::Allocator *allocator) | |
~RtObjectsVk () | |
void | probeMemorySizeAS (ray::AccelerationStructure &accel) |
template<typename T > | |
bool | allocateAS (VkDeviceSize cumSize, uint32_t memoryTypeBits, VkDeviceMemory &mem, std::vector< T > &&las) |
bool | buildBlas (std::vector< ray::Blas > &blas, const std::vector< std::vector< VkGeometryNV > > &geoms, VkBuildAccelerationStructureFlagsNV flags=VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV) |
bool | createInstances (StoBache &bach, std::vector< ray::Instance > &instances, std::vector< ray::Blas > &_blas) |
ray::Tlas | buildTlas (const std::vector< ray::Instance > &instances, VkBuffer insta, VkBuildAccelerationStructureFlagsNV flags=VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV) |
VkAccelerationStructureNV | createBTlas (std::vector< Object3D * > &&objs) |
VkDeviceSize | copyShaderIdentifier (uint8_t *data, const uint8_t *shaderHandleStorage, uint32_t groupIndex) |
template<typename T > | |
void | createShaderBindingTable (T &sbt, VkPipeline pipe, uint32_t groupN) |
Public Attributes | |
SRWLOCK | slim |
ObjectsVk * | objVk = nullptr |
VisibleObjectsVk * | vobjVk = nullptr |
vkmm::Allocator * | allocator = VK_NULL_HANDLE |
VkPhysicalDeviceRayTracingPropertiesNV | rayTracingProperties {} |
AsCache | storage |
AsCache | storageT |
struct { | |
uint32_t memTypeOrgin | |
} | cache |
Definition at line 1485 of file ObjectVk.h.
|
inline |
Definition at line 1514 of file ObjectVk.h.
|
inline |
Definition at line 1524 of file ObjectVk.h.
template bool RtObjectsVk::allocateAS | ( | VkDeviceSize | cumSize, |
uint32_t | memoryTypeBits, | ||
VkDeviceMemory & | mem, | ||
std::vector< T > && | las | ||
) |
Definition at line 35 of file rtobjectVk.cpp.
bool RtObjectsVk::buildBlas | ( | std::vector< ray::Blas > & | blas, |
const std::vector< std::vector< VkGeometryNV > > & | geoms, | ||
VkBuildAccelerationStructureFlagsNV | flags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV |
||
) |
m_blas.resize(geoms.size()); std::vector<Blas> _blas;
m_debug.setObjectName(blas.as.accel, (std::string("Blas" + std::to_string(i)).c_str()));
| vkmm::ALLOCATION_CREATE_MAPPED_BIT;
int ctr{ 0 };
Definition at line 89 of file rtobjectVk.cpp.
Tlas RtObjectsVk::buildTlas | ( | const std::vector< ray::Instance > & | instances, |
VkBuffer | insta, | ||
VkBuildAccelerationStructureFlagsNV | flags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV |
||
) |
m_debug.setObjectName(m_tlas.as.accel, "Tlas");
Definition at line 295 of file rtobjectVk.cpp.
VkDeviceSize RtObjectsVk::copyShaderIdentifier | ( | uint8_t * | data, |
const uint8_t * | shaderHandleStorage, | ||
uint32_t | groupIndex | ||
) |
Definition at line 467 of file rtobjectVk.cpp.
VkAccelerationStructureNV RtObjectsVk::createBTlas | ( | std::vector< Object3D * > && | objs | ) |
Definition at line 351 of file rtobjectVk.cpp.
bool RtObjectsVk::createInstances | ( | StoBache & | bach, |
std::vector< ray::Instance > & | instances, | ||
std::vector< ray::Blas > & | _blas | ||
) |
Definition at line 254 of file rtobjectVk.cpp.
template void RtObjectsVk::createShaderBindingTable | ( | T & | sbt, |
VkPipeline | pipe, | ||
uint32_t | groupN | ||
) |
Definition at line 64 of file rtobjectVk.cpp.
void RtObjectsVk::probeMemorySizeAS | ( | ray::AccelerationStructure & | accel | ) |
Definition at line 5 of file rtobjectVk.cpp.
vkmm::Allocator* RtObjectsVk::allocator = VK_NULL_HANDLE |
Definition at line 1489 of file ObjectVk.h.
struct { ... } RtObjectsVk::cache |
uint32_t RtObjectsVk::memTypeOrgin |
Definition at line 1511 of file ObjectVk.h.
ObjectsVk* RtObjectsVk::objVk = nullptr |
Definition at line 1487 of file ObjectVk.h.
VkPhysicalDeviceRayTracingPropertiesNV RtObjectsVk::rayTracingProperties {} |
Definition at line 1490 of file ObjectVk.h.
SRWLOCK RtObjectsVk::slim |
Definition at line 1486 of file ObjectVk.h.
AsCache RtObjectsVk::storage |
Definition at line 1504 of file ObjectVk.h.
AsCache RtObjectsVk::storageT |
Definition at line 1505 of file ObjectVk.h.
VisibleObjectsVk* RtObjectsVk::vobjVk = nullptr |
Definition at line 1488 of file ObjectVk.h.