Diligent Engine  v.2.4.g
Public Types | Public Member Functions | List of all members
Diligent::ShaderBindingTableVkImpl Class Referencefinal

#include <ShaderBindingTableVkImpl.hpp>

Inheritance diagram for Diligent::ShaderBindingTableVkImpl:
Diligent::ShaderBindingTableBase< EngineVkImplTraits > Diligent::DeviceObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface, EngineVkImplTraits ::RenderDeviceImplType, ShaderBindingTableDesc > Diligent::ObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface > Diligent::RefCountedObject< EngineVkImplTraits ::ShaderBindingTableInterface >

Public Types

using TShaderBindingTableBase = ShaderBindingTableBase< EngineVkImplTraits >
 
using BindingTable = TShaderBindingTableBase::BindingTable
 
- Public Types inherited from Diligent::ShaderBindingTableBase< EngineVkImplTraits >
using BaseInterface = typename EngineVkImplTraits ::ShaderBindingTableInterface
 
using RenderDeviceImplType = typename EngineVkImplTraits ::RenderDeviceImplType
 
using PipelineStateImplType = typename EngineVkImplTraits ::PipelineStateImplType
 
using TopLevelASImplType = typename EngineVkImplTraits ::TopLevelASImplType
 
using BufferImplType = typename EngineVkImplTraits ::BufferImplType
 
using TDeviceObjectBase = DeviceObjectBase< BaseInterface, RenderDeviceImplType, ShaderBindingTableDesc >
 
- Public Types inherited from Diligent::DeviceObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface, EngineVkImplTraits ::RenderDeviceImplType, ShaderBindingTableDesc >
typedef ObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface > TBase
 

Public Member Functions

 ShaderBindingTableVkImpl (IReferenceCounters *pRefCounters, RenderDeviceVkImpl *pRenderDeviceVk, const ShaderBindingTableDesc &Desc, bool bIsDeviceInternal=false)
 
 ~ShaderBindingTableVkImpl ()
 
virtual const BindingTableVkGetVkBindingTable () const override final
 
void GetData (BufferVkImpl *&pSBTBufferVk, BindingTable &RayGenShaderRecord, BindingTable &MissShaderTable, BindingTable &HitGroupTable, BindingTable &CallableShaderTable)
 
- Public Member Functions inherited from Diligent::ShaderBindingTableBase< EngineVkImplTraits >
 ShaderBindingTableBase (IReferenceCounters *pRefCounters, RenderDeviceImplType *pDevice, const ShaderBindingTableDesc &Desc, bool bIsDeviceInternal=false)
 
 ~ShaderBindingTableBase ()
 
void Reset (IPipelineState *pPSO) override final
 
void ResetHitGroups () override final
 
void BindRayGenShader (const char *pShaderGroupName, const void *pData, Uint32 DataSize) override final
 
void BindMissShader (const char *pShaderGroupName, Uint32 MissIndex, const void *pData, Uint32 DataSize) override final
 
void BindHitGroupByIndex (Uint32 BindingIndex, const char *pShaderGroupName, const void *pData, Uint32 DataSize) override final
 
void BindHitGroupForGeometry (ITopLevelAS *pTLAS, const char *pInstanceName, const char *pGeometryName, Uint32 RayOffsetInHitGroupIndex, const char *pShaderGroupName, const void *pData, Uint32 DataSize) override final
 
void BindHitGroupForInstance (ITopLevelAS *pTLAS, const char *pInstanceName, Uint32 RayOffsetInHitGroupIndex, const char *pShaderGroupName, const void *pData, Uint32 DataSize) override final
 
void BindHitGroupForTLAS (ITopLevelAS *pTLAS, Uint32 RayOffsetInHitGroupIndex, const char *pShaderGroupName, const void *pData, Uint32 DataSize) override final
 
void BindCallableShader (const char *pShaderGroupName, Uint32 CallableIndex, const void *pData, Uint32 DataSize) override final
 
Bool Verify (VERIFY_SBT_FLAGS Flags) const override final
 
bool HasPendingData () const
 
const BufferImplTypeGetInternalBuffer () const
 
- Public Member Functions inherited from Diligent::DeviceObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface, EngineVkImplTraits ::RenderDeviceImplType, ShaderBindingTableDesc >
 DeviceObjectBase (IReferenceCounters *pRefCounters, EngineVkImplTraits ::RenderDeviceImplType *pDevice, const ShaderBindingTableDesc &ObjDesc, bool bIsDeviceInternal=false)
 
 DeviceObjectBase (const DeviceObjectBase &)=delete
 
 DeviceObjectBase (DeviceObjectBase &&)=delete
 
DeviceObjectBaseoperator= (const DeviceObjectBase &)=delete
 
DeviceObjectBaseoperator= (DeviceObjectBase &&)=delete
 
virtual ~DeviceObjectBase ()
 
virtual Atomics::Long Release () override final
 
virtual const ShaderBindingTableDescGetDesc () const override final
 
virtual Int32 GetUniqueID () const override final
 Returns unique identifier. More...
 
virtual void SetUserData (IObject *pUserData) override final
 Implementation of IDeviceObject::SetUserData. More...
 
virtual IObjectGetUserData () const override final
 Implementation of IDeviceObject::GetUserData. More...
 
EngineVkImplTraits ::RenderDeviceImplType * GetDevice () const
 
- Public Member Functions inherited from Diligent::ObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface >
 ObjectBase (IReferenceCounters *pRefCounters)
 
virtual void QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)
 
- Public Member Functions inherited from Diligent::RefCountedObject< EngineVkImplTraits ::ShaderBindingTableInterface >
 RefCountedObject (IReferenceCounters *pRefCounters, BaseCtorArgTypes &&... BaseCtorArgs) noexcept
 
virtual ~RefCountedObject ()
 
virtual IReferenceCountersGetReferenceCounters () const override final
 
virtual ReferenceCounterValueType AddRef () override final
 
ReferenceCounterValueType Release (TPreObjectDestroy PreObjectDestroy)
 

Additional Inherited Members

- Static Public Member Functions inherited from Diligent::DeviceObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface, EngineVkImplTraits ::RenderDeviceImplType, ShaderBindingTableDesc >
static bool IsSameObject (const DeviceObjectBase *pObj1, const DeviceObjectBase *pObj2)
 
- Protected Member Functions inherited from Diligent::ShaderBindingTableBase< EngineVkImplTraits >
void GetData (BufferImplType *&pSBTBuffer, BindingTable &RaygenShaderBindingTable, BindingTable &MissShaderBindingTable, BindingTable &HitShaderBindingTable, BindingTable &CallableShaderBindingTable)
 
- Protected Member Functions inherited from Diligent::RefCountedObject< EngineVkImplTraits ::ShaderBindingTableInterface >
void operator delete (void *ptr)
 
void operator delete (void *ptr, ObjectAllocatorType &Allocator, const Char *dbgDescription, const char *dbgFileName, const Int32 dbgLineNumber)
 
- Protected Attributes inherited from Diligent::ShaderBindingTableBase< EngineVkImplTraits >
std::vector< Uint8m_RayGenShaderRecord
 
std::vector< Uint8m_MissShadersRecord
 
std::vector< Uint8m_CallableShadersRecord
 
std::vector< Uint8m_HitGroupsRecord
 
RefCntAutoPtr< PipelineStateImplTypem_pPSO
 
RefCntAutoPtr< BufferImplTypem_pBuffer
 
Uint32 m_ShaderRecordSize
 
Uint32 m_ShaderRecordStride
 
bool m_Changed
 
- Protected Attributes inherited from Diligent::DeviceObjectBase< EngineVkImplTraits ::ShaderBindingTableInterface, EngineVkImplTraits ::RenderDeviceImplType, ShaderBindingTableDesc >
EngineVkImplTraits ::RenderDeviceImplType *const m_pDevice
 Pointer to the device. More...
 
ShaderBindingTableDesc m_Desc
 Object description. More...
 
UniqueIdHelper< EngineVkImplTraits ::ShaderBindingTableInterface > m_UniqueID
 
const bool m_bIsDeviceInternal
 
RefCntAutoPtr< IObjectm_pUserData
 
- Static Protected Attributes inherited from Diligent::ShaderBindingTableBase< EngineVkImplTraits >
static constexpr Uint8 EmptyElem
 

Member Typedef Documentation

◆ BindingTable

using Diligent::ShaderBindingTableVkImpl::BindingTable = TShaderBindingTableBase::BindingTable

◆ TShaderBindingTableBase

Constructor & Destructor Documentation

◆ ShaderBindingTableVkImpl()

Diligent::ShaderBindingTableVkImpl::ShaderBindingTableVkImpl ( IReferenceCounters pRefCounters,
RenderDeviceVkImpl pRenderDeviceVk,
const ShaderBindingTableDesc Desc,
bool  bIsDeviceInternal = false 
)

◆ ~ShaderBindingTableVkImpl()

Diligent::ShaderBindingTableVkImpl::~ShaderBindingTableVkImpl ( )

Member Function Documentation

◆ GetData()

void Diligent::ShaderBindingTableVkImpl::GetData ( BufferVkImpl *&  pSBTBufferVk,
BindingTable RayGenShaderRecord,
BindingTable MissShaderTable,
BindingTable HitGroupTable,
BindingTable CallableShaderTable 
)

◆ GetVkBindingTable()

virtual const BindingTableVk& Diligent::ShaderBindingTableVkImpl::GetVkBindingTable ( ) const
inlinefinaloverridevirtual

The documentation for this class was generated from the following files: