Go to the documentation of this file.
35 #include "../../../Primitives/interface/Object.h"
36 #include "../../../Platforms/interface/PlatformDefinitions.h"
63 #if DILIGENT_CPP_INTERFACE
89 #if DILIGENT_CPP_INTERFACE
93 ShaderStages{_ShaderStages},
202 #if DILIGENT_CPP_INTERFACE
229 #if DILIGENT_CPP_INTERFACE
235 IShader* _pAnyHitShader =
nullptr) noexcept:
237 pClosestHitShader{_pClosestHitShader},
238 pAnyHitShader {_pAnyHitShader }
262 #if DILIGENT_CPP_INTERFACE
268 IShader* _pClosestHitShader =
nullptr,
269 IShader* _pAnyHitShader =
nullptr) noexcept:
271 pIntersectionShader{_pIntersectionShader},
272 pClosestHitShader {_pClosestHitShader },
273 pAnyHitShader {_pAnyHitShader }
335 #if DILIGENT_CPP_INTERFACE
432 #if DILIGENT_CPP_INTERFACE
481 #if DILIGENT_CPP_INTERFACE
493 {0x6084ae5, 0x6a71, 0x4fe8, {0x84, 0xb9, 0x39, 0x5d, 0xd4, 0x89, 0xa2, 0x8c}};
495 #define DILIGENT_INTERFACE_NAME IPipelineState
496 #include "../../../Primitives/interface/DefineInterfaceHelperMacros.h"
498 #define IPipelineStateInclusiveMethods \
499 IDeviceObjectInclusiveMethods; \
500 IPipelineStateMethods PipelineState
507 #if DILIGENT_CPP_INTERFACE
677 #include "../../../Primitives/interface/UndefInterfaceHelperMacros.h"
679 #if DILIGENT_C_INTERFACE
683 # define IPipelineState_GetDesc(This) (const struct PipelineStateDesc*)IDeviceObject_GetDesc(This)
685 # define IPipelineState_GetGraphicsPipelineDesc(This) CALL_IFACE_METHOD(PipelineState, GetGraphicsPipelineDesc, This)
686 # define IPipelineState_GetRayTracingPipelineDesc(This) CALL_IFACE_METHOD(PipelineState, GetRayTracingPipelineDesc, This)
687 # define IPipelineState_BindStaticResources(This, ...) CALL_IFACE_METHOD(PipelineState, BindStaticResources, This, __VA_ARGS__)
688 # define IPipelineState_GetStaticVariableCount(This, ...) CALL_IFACE_METHOD(PipelineState, GetStaticVariableCount, This, __VA_ARGS__)
689 # define IPipelineState_GetStaticVariableByName(This, ...) CALL_IFACE_METHOD(PipelineState, GetStaticVariableByName, This, __VA_ARGS__)
690 # define IPipelineState_GetStaticVariableByIndex(This, ...) CALL_IFACE_METHOD(PipelineState, GetStaticVariableByIndex, This, __VA_ARGS__)
691 # define IPipelineState_CreateShaderResourceBinding(This, ...) CALL_IFACE_METHOD(PipelineState, CreateShaderResourceBinding, This, __VA_ARGS__)
692 # define IPipelineState_InitializeStaticSRBResources(This, ...) CALL_IFACE_METHOD(PipelineState, InitializeStaticSRBResources, This, __VA_ARGS__)
693 # define IPipelineState_IsCompatibleWith(This, ...) CALL_IFACE_METHOD(PipelineState, IsCompatibleWith, This, __VA_ARGS__)
694 # define IPipelineState_GetResourceSignatureCount(This) CALL_IFACE_METHOD(PipelineState, GetResourceSignatureCount, This)
695 # define IPipelineState_GetResourceSignature(This, ...) CALL_IFACE_METHOD(PipelineState, GetResourceSignature, This, __VA_ARGS__)
bool IsRayTracingPipeline() const
Definition: PipelineState.h:338
#define DILIGENT_END_INTERFACE
Definition: DefineInterfaceHelperMacros.h:88
Ray tracing general shader group description.
Definition: PipelineState.h:194
ComputePipelineStateCreateInfo() noexcept
Definition: PipelineState.h:433
#define VIRTUAL
Definition: DefineInterfaceHelperMacros.h:83
Shader resource variable.
Definition: ShaderResourceVariable.h:117
Graphics pipeline state creation attributes.
Definition: PipelineState.h:397
char Char
Definition: BasicTypes.h:64
Shader resource binding interface.
Definition: ShaderResourceBinding.h:58
Ray tracing pipeline state description.
Definition: PipelineState.h:443
InputLayoutDesc InputLayout
Input layout, ignored in a mesh pipeline.
Definition: PipelineState.h:149
Pipeline resource signature interface.
Definition: PipelineResourceSignature.h:226
SampleDesc() noexcept
Definition: PipelineState.h:64
RayTracingPipelineStateCreateInfo() noexcept
Definition: PipelineState.h:482
SHADER_TYPE
Describes the shader type.
Definition: GraphicsTypes.h:65
Pipeline state interface.
Definition: PipelineState.h:505
#define DILIGENT_BEGIN_INTERFACE(Name, Base)
Definition: CommonDefinitions.h:97
@ PSO_CREATE_FLAG_IGNORE_MISSING_VARIABLES
Ignore missing variables.
Definition: PipelineState.h:356
Uint32 Flags
Definition: DXBCUtils.cpp:71
This structure describes the ray tracing pipeline state and is part of the RayTracingPipelineStateCre...
Definition: PipelineState.h:280
RayTracingTriangleHitShaderGroup(const char *_Name, IShader *_pClosestHitShader, IShader *_pAnyHitShader=nullptr) noexcept
Definition: PipelineState.h:233
ShaderResourceVariableDesc(SHADER_TYPE _ShaderStages, const Char *_Name, SHADER_RESOURCE_VARIABLE_TYPE _Type) noexcept
Definition: PipelineState.h:92
Shader interface.
Definition: Shader.h:428
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
PIPELINE_TYPE
Pipeline type.
Definition: PipelineState.h:295
@ PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
Interpret the vertex data as a list of triangles. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLELI...
Definition: GraphicsTypes.h:996
@ PIPELINE_TYPE_RAY_TRACING
Ray tracing pipeline, which is used by IDeviceContext::TraceRays().
Definition: PipelineState.h:308
Ray tracing procedural hit shader group description.
Definition: PipelineState.h:245
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: GraphicsTypes.h:989
RayTracingTriangleHitShaderGroup() noexcept
Definition: PipelineState.h:230
DepthStencilStateDesc DepthStencilDesc
Depth-stencil state description.
Definition: PipelineState.h:146
PipelineResourceLayoutDesc ResourceLayout
Pipeline layout description.
Definition: PipelineState.h:333
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:52
Ray tracing triangle hit shader group description.
Definition: PipelineState.h:216
#define THIS
Definition: DefineInterfaceHelperMacros.h:81
Unique interface identifier.
Definition: InterfaceID.h:37
Rasterizer state description.
Definition: RasterizerState.h:96
@ TEX_FORMAT_UNKNOWN
Unknown format.
Definition: GraphicsTypes.h:331
Graphics pipeline state description.
Definition: PipelineState.h:131
#define PURE
Definition: DefineInterfaceHelperMacros.h:85
RayTracingProceduralHitShaderGroup() noexcept
Definition: PipelineState.h:263
Sample description.
Definition: PipelineState.h:55
Describes common device object attributes.
Definition: GraphicsTypes.h:1196
SampleDesc SmplDesc
Multisampling parameters.
Definition: PipelineState.h:176
#define DILIGENT_END_NAMESPACE
Definition: CommonDefinitions.h:86
@ PIPELINE_TYPE_MESH
Mesh pipeline, which is used by IDeviceContext::DrawMesh(), IDeviceContext::DrawMeshIndirect().
Definition: PipelineState.h:305
#define CONST
Definition: DefineInterfaceHelperMacros.h:84
Pipeline state creation attributes.
Definition: PipelineState.h:370
Describes shader variable.
Definition: PipelineState.h:76
@ PIPELINE_TYPE_LAST
Definition: PipelineState.h:310
#define DILIGENT_DERIVE(TypeName)
Definition: CommonDefinitions.h:90
@ PSO_CREATE_FLAG_IGNORE_MISSING_IMMUTABLE_SAMPLERS
Ignore missing immutable samplers.
Definition: PipelineState.h:364
const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE Type
Definition: PipelineStateD3D12Impl.cpp:69
Compute pipeline state description.
Definition: PipelineState.h:427
@ PIPELINE_TYPE_COMPUTE
Compute pipeline, which is used by IDeviceContext::DispatchCompute(), IDeviceContext::DispatchCompute...
Definition: PipelineState.h:302
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
#define DEFAULT_INITIALIZER(x)
Definition: CommonDefinitions.h:93
ShaderResourceVariableDesc() noexcept
Definition: PipelineState.h:90
@ SHADER_TYPE_UNKNOWN
Unknown shader type.
Definition: GraphicsTypes.h:67
RasterizerStateDesc RasterizerDesc
Rasterizer state description.
Definition: PipelineState.h:143
PipelineStateDesc PSODesc
Pipeline state description.
Definition: PipelineState.h:373
@ PIPELINE_TYPE_INVALID
Definition: PipelineState.h:312
Pipeline state description.
Definition: PipelineState.h:317
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:328
@ SHADER_RESOURCE_VARIABLE_TYPE_STATIC
Shader resource bound to the variable is the same for all SRB instances. It must be set once directly...
Definition: ShaderResourceVariable.h:52
bool IsAnyGraphicsPipeline() const
Definition: PipelineState.h:336
#define REF
Definition: DefineGlobalFuncHelperMacros.h:39
PSO_CREATE_FLAGS
Pipeline state creation flags.
Definition: PipelineState.h:345
#define METHOD(Name)
Definition: DefineInterfaceHelperMacros.h:87
#define DEFAULT_VALUE(x)
Definition: CommonDefinitions.h:99
#define DILIGENT_TYPED_ENUM(EnumName, EnumType)
Definition: CommonDefinitions.h:88
RayTracingProceduralHitShaderGroup(const char *_Name, IShader *_pIntersectionShader, IShader *_pClosestHitShader=nullptr, IShader *_pAnyHitShader=nullptr) noexcept
Definition: PipelineState.h:266
uint16_t Uint16
16-bit unsigned integer
Definition: BasicTypes.h:52
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
@ PSO_CREATE_FLAG_NONE
Null flag.
Definition: PipelineState.h:348
#define DILIGENT_BEGIN_NAMESPACE(Name)
Definition: CommonDefinitions.h:82
RayTracingGeneralShaderGroup() noexcept
Definition: PipelineState.h:203
DEFINE_FLAG_ENUM_OPERATORS(FILE_DIALOG_FLAGS)
RayTracingGeneralShaderGroup(const char *_Name, IShader *_pShader) noexcept
Definition: PipelineState.h:206
Uint16 ShaderType
Definition: DXBCUtils.cpp:70
bool IsComputePipeline() const
Definition: PipelineState.h:337
BlendStateDesc BlendDesc
Blend state description.
Definition: PipelineState.h:134
Pipeline layout description.
Definition: PipelineState.h:103
@ PIPELINE_TYPE_GRAPHICS
Graphics pipeline, which is used by IDeviceContext::Draw(), IDeviceContext::DrawIndexed(),...
Definition: PipelineState.h:299
SampleDesc(Uint8 _Count, Uint8 _Quality) noexcept
Definition: PipelineState.h:66
Depth stencil state description.
Definition: DepthStencilState.h:157
Render pass interface.
Definition: RenderPass.h:369
Blend state description.
Definition: BlendState.h:374
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
#define THIS_
Definition: DefineInterfaceHelperMacros.h:82
SHADER_RESOURCE_VARIABLE_TYPE
Describes the type of the shader resource variable.
Definition: ShaderResourceVariable.h:48
Resouce mapping.
Definition: ResourceMapping.h:107
Immutable sampler description.
Definition: PipelineResourceSignature.h:51