|
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.