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