|
| | GeneralShaderBindingTable (RtShaderGroupType groupType, VkDeviceSize entryDataSize=0) |
| |
| void | SetGroup (GroupIndex groupIndex, core::ShaderModule *shader) |
| | Set shader group with shader.
|
| |
| void | SetGroup (GroupIndex groupIndex, core::ShaderModule *shader, const void *data) |
| | Set shader group with shader and custom data.
|
| |
| virtual void | WriteToShaderCollection (RtShaderCollection &collection) const override |
| | For any shader group defined, register it with the collection.
|
| |
| virtual VectorRange | WriteToShaderGroupCiVector (std::vector< VkRayTracingShaderGroupCreateInfoKHR > &groupCis, const RtShaderCollection &shaderCollection) const override |
| | Write the shader groups to groupCis vector.
|
| |
| virtual void | Destroy () override |
| |
| | ShaderBindingTableBase (VkDeviceSize entryDataSize=0) |
| |
| virtual void | Build (core::Context *context, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR &pipelineProperties, const std::vector< const uint8_t * > &handles) |
| | Rebuilds the SBT buffer according to the pipeline properties and matching indices.
|
| |
| std::vector< uint8_t > & | GroupDataAt (GroupIndex groupIndex) |
| | Access the custom data entry for a group.
|
| |
| const std::vector< uint8_t > & | GroupDataAt (GroupIndex groupIndex) const |
| | Access the custom data entry for a group.
|
| |
| template<typename TData > |
| TData * | GroupDataAt (GroupIndex groupIndex) |
| | Access the custom data entry for a group. May return nullptr!
|
| |
| template<typename TData > |
| const TData * | GroupDataAt (GroupIndex groupIndex) const |
| | Access the custom data entry for a group. May return nullptr!
|
| |
| void | SetData (GroupIndex groupIndex, const void *data) |
| | Set the custom data entry for a group.
|
| |
| template<typename TData > |
| void | SetData (GroupIndex groupIndex, const TData &data) |
| | Set the custom data entry for a group.
|
| |
| virtual ShaderBindingTableBase & | SetEntryDataSize (VkDeviceSize newSize) |
| | Set the custom entry data size. Any non-zero custom data is resized according to std::vector<uint8_t>::resize(newSize)!
|
| |
| virtual | ~ShaderBindingTableBase () |
| |
Shader binding table for storing raygen, miss and callable shader groups.