Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::IShaderBindingTableD3D12 Struct Referenceabstract

Exposes Direct3D12-specific functionality of a shader binding table object. More...

#include <ShaderBindingTableD3D12.h>

Inheritance diagram for Diligent::IShaderBindingTableD3D12:
Diligent.IShaderBindingTable Diligent::IDeviceObject Diligent.IObject

Public Member Functions

virtual const D3D12_DISPATCH_RAYS_DESC &DILIGENT_CALL_TYPE GetD3D12BindingTable () const =0
 Returns the structure that can be used with ID3D12GraphicsCommandList4::DispatchRays() call.
 
- Public Member Functions inherited from Diligent.IShaderBindingTable
virtual const ShaderBindingTableDesc &DILIGENT_CALL_TYPE GetDesc () const override=0
 Returns the shader binding table description that was used to create the object.
 
virtual Bool DILIGENT_CALL_TYPE Verify (VERIFY_SBT_FLAGS Flags) const =0
 Checks that all shaders are bound, instances and geometries have not changed, shader record data are initialized.
 
virtual void DILIGENT_CALL_TYPE Reset (IPipelineState *pPSO)=0
 Resets the SBT with the new pipeline state. This is more efficient than creating a new SBT.
 
virtual void DILIGENT_CALL_TYPE ResetHitGroups ()=0
 Resets hit groups in the SBT.
 
virtual void DILIGENT_CALL_TYPE BindRayGenShader (const Char *pShaderGroupName, const void *pData=nullptr, Uint32 DataSize=0)=0
 Binds a ray-generation shader.
 
virtual void DILIGENT_CALL_TYPE BindMissShader (const Char *pShaderGroupName, Uint32 MissIndex, const void *pData=nullptr, Uint32 DataSize=0)=0
 Binds a ray-miss shader.
 
virtual void DILIGENT_CALL_TYPE BindHitGroupForGeometry (ITopLevelAS *pTLAS, const Char *pInstanceName, const Char *pGeometryName, Uint32 RayOffsetInHitGroupIndex, const Char *pShaderGroupName, const void *pData=nullptr, Uint32 DataSize=0)=0
 Binds a hit group for the the specified geometry in the instance.
 
virtual void DILIGENT_CALL_TYPE BindHitGroupByIndex (Uint32 BindingIndex, const Char *pShaderGroupName, const void *pData=nullptr, Uint32 DataSize=0)=0
 Binds a hit group to the specified location in the table.
 
virtual void DILIGENT_CALL_TYPE BindHitGroupForInstance (ITopLevelAS *pTLAS, const Char *pInstanceName, Uint32 RayOffsetInHitGroupIndex, const Char *pShaderGroupName, const void *pData=nullptr, Uint32 DataSize=0)=0
 Binds a hit group for all geometries in the specified instance.
 
virtual void DILIGENT_CALL_TYPE BindHitGroupForTLAS (ITopLevelAS *pTLAS, Uint32 RayOffsetInHitGroupIndex, const Char *pShaderGroupName, const void *pData=nullptr, Uint32 DataSize=0)=0
 Binds a hit group for all instances in the given top-level AS.
 
virtual void DILIGENT_CALL_TYPE BindCallableShader (const Char *pShaderGroupName, Uint32 CallableIndex, const void *pData=nullptr, Uint32 DataSize=0)=0
 Binds a callable shader.
 
- Public Member Functions inherited from Diligent::IDeviceObject
virtual Int32 DILIGENT_CALL_TYPE GetUniqueID () const =0
 Returns unique identifier assigned to an object.
 
virtual void DILIGENT_CALL_TYPE SetUserData (IObject *pUserData)=0
 Stores a pointer to the user-provided data object.
 
virtual IObject *DILIGENT_CALL_TYPE GetUserData () const =0
 Returns a pointer to the user data object previously set with SetUserData() method.
 
- Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Exposes Direct3D12-specific functionality of a shader binding table object.

Member Function Documentation

◆ GetD3D12BindingTable()

virtual const D3D12_DISPATCH_RAYS_DESC &DILIGENT_CALL_TYPE Diligent::IShaderBindingTableD3D12::GetD3D12BindingTable ( ) const
pure virtual

Returns the structure that can be used with ID3D12GraphicsCommandList4::DispatchRays() call.

Remarks
The method is not thread-safe. An application must externally synchronize the access to the shader binding table.