Go to the documentation of this file.
33 #include "../../../Primitives/interface/Object.h"
34 #include "../../../Primitives/interface/FlagEnum.h"
45 {0x1ee12101, 0x7010, 0x4825, {0xaa, 0x8e, 0xac, 0x6b, 0xb9, 0x85, 0x8b, 0xd6}};
55 #if DILIGENT_CPP_INTERFACE
83 #define DILIGENT_INTERFACE_NAME IShaderBindingTable
84 #include "../../../Primitives/interface/DefineInterfaceHelperMacros.h"
86 #define IShaderBindingTableInclusiveMethods \
87 IDeviceObjectInclusiveMethods; \
88 IShaderBindingTableMethods ShaderBindingTable
95 #if DILIGENT_CPP_INTERFACE
142 const char* pShaderGroupName,
161 const char* pShaderGroupName,
192 const char* pInstanceName,
193 const char* pGeometryName,
194 Uint32 RayOffsetInHitGroupIndex,
195 const char* pShaderGroupName,
217 const char* pShaderGroupName,
242 const char* pInstanceName,
243 Uint32 RayOffsetInHitGroupIndex,
244 const char* pShaderGroupName,
267 Uint32 RayOffsetInHitGroupIndex,
268 const char* pShaderGroupName,
287 const char* pShaderGroupName,
294 #include "../../../Primitives/interface/UndefInterfaceHelperMacros.h"
296 #if DILIGENT_C_INTERFACE
300 # define IShaderBindingTable_Verify(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, Verify, This, __VA_ARGS__)
301 # define IShaderBindingTable_Reset(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, Reset, This, __VA_ARGS__)
302 # define IShaderBindingTable_ResetHitGroups(This) CALL_IFACE_METHOD(ShaderBindingTable, ResetHitGroups, This)
303 # define IShaderBindingTable_BindRayGenShader(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, BindRayGenShader, This, __VA_ARGS__)
304 # define IShaderBindingTable_BindMissShader(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, BindMissShader, This, __VA_ARGS__)
305 # define IShaderBindingTable_BindHitGroupByIndex(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, BindHitGroupByIndex, This, __VA_ARGS__)
306 # define IShaderBindingTable_BindHitGroupForGeometry(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, BindHitGroupForGeometry, This, __VA_ARGS__)
307 # define IShaderBindingTable_BindHitGroupForInstance(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, BindHitGroupForInstance, This, __VA_ARGS__)
308 # define IShaderBindingTable_BindHitGroupForTLAS(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, BindHitGroupForTLAS, This, __VA_ARGS__)
309 # define IShaderBindingTable_BindCallableShader(This, ...) CALL_IFACE_METHOD(ShaderBindingTable, BindCallableShader, This, __VA_ARGS__)
#define DILIGENT_END_INTERFACE
Definition: DefineInterfaceHelperMacros.h:88
struct INTERFACE_ID INTERFACE_ID
Definition: InterfaceID.h:54
#define VIRTUAL
Definition: DefineInterfaceHelperMacros.h:83
Shader binding table interface.
Definition: ShaderBindingTable.h:93
Pipeline state interface.
Definition: PipelineState.h:505
#define DILIGENT_BEGIN_INTERFACE(Name, Base)
Definition: CommonDefinitions.h:97
Uint32 Flags
Definition: DXBCUtils.cpp:71
Top-level AS interface.
Definition: TopLevelAS.h:151
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:52
#define THIS
Definition: DefineInterfaceHelperMacros.h:81
#define PURE
Definition: DefineInterfaceHelperMacros.h:85
Shader binding table description.
Definition: ShaderBindingTable.h:50
Describes common device object attributes.
Definition: GraphicsTypes.h:1196
#define DILIGENT_END_NAMESPACE
Definition: CommonDefinitions.h:86
#define CONST
Definition: DefineInterfaceHelperMacros.h:84
#define DILIGENT_DERIVE(TypeName)
Definition: CommonDefinitions.h:90
#define DILIGENT_CALL_TYPE
Definition: CommonDefinitions.h:45
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
#define DEFAULT_INITIALIZER(x)
Definition: CommonDefinitions.h:93
bool Bool
Boolean.
Definition: BasicTypes.h:59
#define METHOD(Name)
Definition: DefineInterfaceHelperMacros.h:87
ShaderBindingTableDesc() noexcept
Definition: ShaderBindingTable.h:56
#define DILIGENT_TYPED_ENUM(EnumName, EnumType)
Definition: CommonDefinitions.h:88
@ VERIFY_SBT_FLAG_SHADER_ONLY
Check that all shaders are bound or inactive.
Definition: ShaderBindingTable.h:66
@ VERIFY_SBT_FLAG_TLAS
Check that all TLASes that were used in the SBT are alive and shader binding indices have not changed...
Definition: ShaderBindingTable.h:73
#define DILIGENT_BEGIN_NAMESPACE(Name)
Definition: CommonDefinitions.h:82
VERIFY_SBT_FLAGS
Defines shader binding table validation flags, see IShaderBindingTable::Verify().
Definition: ShaderBindingTable.h:63
DEFINE_FLAG_ENUM_OPERATORS(FILE_DIALOG_FLAGS)
@ VERIFY_SBT_FLAG_SHADER_RECORD
Check that shader record data are initialized.
Definition: ShaderBindingTable.h:69
@ VERIFY_SBT_FLAG_ALL
Enable all validations.
Definition: ShaderBindingTable.h:76
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
#define THIS_
Definition: DefineInterfaceHelperMacros.h:82