Diligent Engine  v.2.4.g
PipelineState.h
Go to the documentation of this file.
1 /*
2  * Copyright 2019-2021 Diligent Graphics LLC
3  * Copyright 2015-2019 Egor Yusov
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * In no event and under no legal theory, whether in tort (including negligence),
18  * contract, or otherwise, unless required by applicable law (such as deliberate
19  * and grossly negligent acts) or agreed to in writing, shall any Contributor be
20  * liable for any damages, including any direct, indirect, special, incidental,
21  * or consequential damages of any character arising as a result of this License or
22  * out of the use or inability to use the software (including but not limited to damages
23  * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
24  * all other commercial damages or losses), even if such Contributor has been advised
25  * of the possibility of such damages.
26  */
27 
28 #pragma once
29 
30 // clang-format off
31 
34 
35 #include "../../../Primitives/interface/Object.h"
36 #include "../../../Platforms/interface/PlatformDefinitions.h"
37 #include "GraphicsTypes.h"
38 #include "BlendState.h"
39 #include "RasterizerState.h"
40 #include "DepthStencilState.h"
41 #include "InputLayout.h"
42 #include "ShaderResourceBinding.h"
43 #include "ShaderResourceVariable.h"
44 #include "Shader.h"
45 #include "Sampler.h"
46 #include "RenderPass.h"
48 
50 
51 
52 
55 struct SampleDesc
56 {
59 
62 
63 #if DILIGENT_CPP_INTERFACE
64  SampleDesc()noexcept{}
65 
66  SampleDesc(Uint8 _Count, Uint8 _Quality) noexcept :
67  Count {_Count },
68  Quality {_Quality}
69  {}
70 #endif
71 };
72 typedef struct SampleDesc SampleDesc;
73 
74 
77 {
82 
84  const Char* Name DEFAULT_INITIALIZER(nullptr);
85 
88 
89 #if DILIGENT_CPP_INTERFACE
91 
92  ShaderResourceVariableDesc(SHADER_TYPE _ShaderStages, const Char* _Name, SHADER_RESOURCE_VARIABLE_TYPE _Type)noexcept :
93  ShaderStages{_ShaderStages},
94  Name {_Name },
95  Type {_Type }
96  {}
97 #endif
98 };
100 
101 
104 {
109 
111  Uint32 NumVariables DEFAULT_INITIALIZER(0);
112 
114 
118 
120  Uint32 NumImmutableSamplers DEFAULT_INITIALIZER(0);
121 
123  const ImmutableSamplerDesc* ImmutableSamplers DEFAULT_INITIALIZER(nullptr);
124 };
126 
127 
129 
132 {
135 
140  Uint32 SampleMask DEFAULT_INITIALIZER(0xFFFFFFFF);
141 
144 
147 
150  //D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
151 
154 
156  Uint8 NumViewports DEFAULT_INITIALIZER(1);
157 
160  Uint8 NumRenderTargets DEFAULT_INITIALIZER(0);
161 
165  Uint8 SubpassIndex DEFAULT_INITIALIZER(0);
166 
170 
174 
177 
179 
182  IRenderPass* pRenderPass DEFAULT_INITIALIZER(nullptr);
183 
186 
187  //D3D12_CACHED_PIPELINE_STATE CachedPSO;
188  //D3D12_PIPELINE_STATE_FLAGS Flags;
189 };
191 
192 
195 {
197  const char* Name DEFAULT_INITIALIZER(nullptr);
198 
200  IShader* pShader DEFAULT_INITIALIZER(nullptr);
201 
202 #if DILIGENT_CPP_INTERFACE
204  {}
205 
206  RayTracingGeneralShaderGroup(const char* _Name,
207  IShader* _pShader) noexcept:
208  Name {_Name },
209  pShader{_pShader}
210  {}
211 #endif
212 };
214 
217 {
219  const char* Name DEFAULT_INITIALIZER(nullptr);
220 
223  IShader* pClosestHitShader DEFAULT_INITIALIZER(nullptr);
224 
227  IShader* pAnyHitShader DEFAULT_INITIALIZER(nullptr); // can be null
228 
229 #if DILIGENT_CPP_INTERFACE
231  {}
232 
234  IShader* _pClosestHitShader,
235  IShader* _pAnyHitShader = nullptr) noexcept:
236  Name {_Name },
237  pClosestHitShader{_pClosestHitShader},
238  pAnyHitShader {_pAnyHitShader }
239  {}
240 #endif
241 };
243 
246 {
248  const char* Name DEFAULT_INITIALIZER(nullptr);
249 
252  IShader* pIntersectionShader DEFAULT_INITIALIZER(nullptr);
253 
256  IShader* pClosestHitShader DEFAULT_INITIALIZER(nullptr);
257 
260  IShader* pAnyHitShader DEFAULT_INITIALIZER(nullptr);
261 
262 #if DILIGENT_CPP_INTERFACE
264  {}
265 
267  IShader* _pIntersectionShader,
268  IShader* _pClosestHitShader = nullptr,
269  IShader* _pAnyHitShader = nullptr) noexcept:
270  Name {_Name },
271  pIntersectionShader{_pIntersectionShader},
272  pClosestHitShader {_pClosestHitShader },
273  pAnyHitShader {_pAnyHitShader }
274  {}
275 #endif
276 };
278 
281 {
285  Uint16 ShaderRecordSize DEFAULT_INITIALIZER(0);
286 
290  Uint8 MaxRecursionDepth DEFAULT_INITIALIZER(0);
291 };
293 
296 {
300 
303 
306 
309 
311 
313 };
314 
315 
318 
321 
323 
327  Uint32 SRBAllocationGranularity DEFAULT_INITIALIZER(1);
328 
330  Uint64 CommandQueueMask DEFAULT_INITIALIZER(1);
331 
334 
335 #if DILIGENT_CPP_INTERFACE
336  bool IsAnyGraphicsPipeline() const { return PipelineType == PIPELINE_TYPE_GRAPHICS || PipelineType == PIPELINE_TYPE_MESH; }
337  bool IsComputePipeline() const { return PipelineType == PIPELINE_TYPE_COMPUTE; }
338  bool IsRayTracingPipeline() const { return PipelineType == PIPELINE_TYPE_RAY_TRACING; }
339 #endif
340 };
342 
343 
346 {
349 
351 
357 
359 
365 };
367 
368 
371 {
374 
377 
388  IPipelineResourceSignature** ppResourceSignatures DEFAULT_INITIALIZER(nullptr);
389 
391  Uint32 ResourceSignaturesCount DEFAULT_INITIALIZER(0);
392 };
394 
395 
398 
400  GraphicsPipelineDesc GraphicsPipeline;
401 
404 
407 
410 
413 
416 
419 
422 };
424 
425 
428 
431 
432 #if DILIGENT_CPP_INTERFACE
434  {
435  PSODesc.PipelineType = PIPELINE_TYPE_COMPUTE;
436  }
437 #endif
438 };
440 
441 
444 
446  RayTracingPipelineDesc RayTracingPipeline;
447 
449  const RayTracingGeneralShaderGroup* pGeneralShaders DEFAULT_INITIALIZER(nullptr);
450 
452  Uint32 GeneralShaderCount DEFAULT_INITIALIZER(0);
453 
456  const RayTracingTriangleHitShaderGroup* pTriangleHitShaders DEFAULT_INITIALIZER(nullptr);
457 
459  Uint32 TriangleHitShaderCount DEFAULT_INITIALIZER(0);
460 
463  const RayTracingProceduralHitShaderGroup* pProceduralHitShaders DEFAULT_INITIALIZER(nullptr);
464 
466  Uint32 ProceduralHitShaderCount DEFAULT_INITIALIZER(0);
467 
471  const char* pShaderRecordName DEFAULT_INITIALIZER(nullptr);
472 
475  Uint32 MaxAttributeSize DEFAULT_INITIALIZER(0);
476 
479  Uint32 MaxPayloadSize DEFAULT_INITIALIZER(0);
480 
481 #if DILIGENT_CPP_INTERFACE
483  {
484  PSODesc.PipelineType = PIPELINE_TYPE_RAY_TRACING;
485  }
486 #endif
487 };
489 
490 
491 // {06084AE5-6A71-4FE8-84B9-395DD489A28C}
492 static const struct INTERFACE_ID IID_PipelineState =
493  {0x6084ae5, 0x6a71, 0x4fe8, {0x84, 0xb9, 0x39, 0x5d, 0xd4, 0x89, 0xa2, 0x8c}};
494 
495 #define DILIGENT_INTERFACE_NAME IPipelineState
496 #include "../../../Primitives/interface/DefineInterfaceHelperMacros.h"
497 
498 #define IPipelineStateInclusiveMethods \
499  IDeviceObjectInclusiveMethods; \
500  IPipelineStateMethods PipelineState
501 
502 // clang-format off
503 
506 {
507 #if DILIGENT_CPP_INTERFACE
508  virtual const PipelineStateDesc& METHOD(GetDesc)() const override = 0;
510 #endif
511 
514  VIRTUAL const GraphicsPipelineDesc REF METHOD(GetGraphicsPipelineDesc)(THIS) CONST PURE;
515 
518  VIRTUAL const RayTracingPipelineDesc REF METHOD(GetRayTracingPipelineDesc)(THIS) CONST PURE;
519 
520 
522 
532  VIRTUAL void METHOD(BindStaticResources)(THIS_
533  Uint32 ShaderFlags,
534  IResourceMapping* pResourceMapping,
535  Uint32 Flags) PURE;
536 
537 
539 
549  VIRTUAL Uint32 METHOD(GetStaticVariableCount)(THIS_
551 
552 
555 
567  VIRTUAL IShaderResourceVariable* METHOD(GetStaticVariableByName)(THIS_
569  const Char* Name) PURE;
570 
571 
573 
588  VIRTUAL IShaderResourceVariable* METHOD(GetStaticVariableByIndex)(THIS_
590  Uint32 Index) PURE;
591 
592 
594 
605  VIRTUAL void METHOD(CreateShaderResourceBinding)(THIS_
606  IShaderResourceBinding** ppShaderResourceBinding,
607  bool InitStaticResources DEFAULT_VALUE(false)) PURE;
608 
609 
610 
612 
629  VIRTUAL void METHOD(InitializeStaticSRBResources)(THIS_
630  struct IShaderResourceBinding* pShaderResourceBinding) CONST PURE;
631 
632 
634 
657  VIRTUAL bool METHOD(IsCompatibleWith)(THIS_
658  const struct IPipelineState* pPSO) CONST PURE;
659 
660 
662 
666  VIRTUAL Uint32 METHOD(GetResourceSignatureCount)(THIS) CONST PURE;
667 
669 
672  VIRTUAL IPipelineResourceSignature* METHOD(GetResourceSignature)(THIS_
673  Uint32 Index) CONST PURE;
674 };
676 
677 #include "../../../Primitives/interface/UndefInterfaceHelperMacros.h"
678 
679 #if DILIGENT_C_INTERFACE
680 
681 // clang-format off
682 
683 # define IPipelineState_GetDesc(This) (const struct PipelineStateDesc*)IDeviceObject_GetDesc(This)
684 
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__)
696 
697 // clang-format on
698 
699 #endif
700 
Diligent::PipelineStateDesc::IsRayTracingPipeline
bool IsRayTracingPipeline() const
Definition: PipelineState.h:338
DILIGENT_END_INTERFACE
#define DILIGENT_END_INTERFACE
Definition: DefineInterfaceHelperMacros.h:88
Diligent::RayTracingGeneralShaderGroup
Ray tracing general shader group description.
Definition: PipelineState.h:194
Diligent::ComputePipelineStateCreateInfo::ComputePipelineStateCreateInfo
ComputePipelineStateCreateInfo() noexcept
Definition: PipelineState.h:433
VIRTUAL
#define VIRTUAL
Definition: DefineInterfaceHelperMacros.h:83
Diligent::IShaderResourceVariable
Shader resource variable.
Definition: ShaderResourceVariable.h:117
Diligent::GraphicsPipelineStateCreateInfo
Graphics pipeline state creation attributes.
Definition: PipelineState.h:397
Diligent::Char
char Char
Definition: BasicTypes.h:64
Diligent::IShaderResourceBinding
Shader resource binding interface.
Definition: ShaderResourceBinding.h:58
Diligent::RayTracingPipelineStateCreateInfo
Ray tracing pipeline state description.
Definition: PipelineState.h:443
Diligent::GraphicsPipelineDesc::InputLayout
InputLayoutDesc InputLayout
Input layout, ignored in a mesh pipeline.
Definition: PipelineState.h:149
Diligent::IPipelineResourceSignature
Pipeline resource signature interface.
Definition: PipelineResourceSignature.h:226
Diligent::SampleDesc::SampleDesc
SampleDesc() noexcept
Definition: PipelineState.h:64
Diligent::RayTracingPipelineStateCreateInfo::RayTracingPipelineStateCreateInfo
RayTracingPipelineStateCreateInfo() noexcept
Definition: PipelineState.h:482
PipelineResourceSignature.h
Diligent::SHADER_TYPE
SHADER_TYPE
Describes the shader type.
Definition: GraphicsTypes.h:65
Diligent::IPipelineState
Pipeline state interface.
Definition: PipelineState.h:505
DILIGENT_BEGIN_INTERFACE
#define DILIGENT_BEGIN_INTERFACE(Name, Base)
Definition: CommonDefinitions.h:97
Diligent::PSO_CREATE_FLAG_IGNORE_MISSING_VARIABLES
@ PSO_CREATE_FLAG_IGNORE_MISSING_VARIABLES
Ignore missing variables.
Definition: PipelineState.h:356
Flags
Uint32 Flags
Definition: DXBCUtils.cpp:71
Diligent::RayTracingPipelineDesc
This structure describes the ray tracing pipeline state and is part of the RayTracingPipelineStateCre...
Definition: PipelineState.h:280
Diligent::RayTracingTriangleHitShaderGroup::RayTracingTriangleHitShaderGroup
RayTracingTriangleHitShaderGroup(const char *_Name, IShader *_pClosestHitShader, IShader *_pAnyHitShader=nullptr) noexcept
Definition: PipelineState.h:233
Diligent::ShaderResourceVariableDesc::ShaderResourceVariableDesc
ShaderResourceVariableDesc(SHADER_TYPE _ShaderStages, const Char *_Name, SHADER_RESOURCE_VARIABLE_TYPE _Type) noexcept
Definition: PipelineState.h:92
Shader.h
Diligent::IShader
Shader interface.
Definition: Shader.h:428
Diligent::Uint64
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
Diligent::PIPELINE_TYPE
PIPELINE_TYPE
Pipeline type.
Definition: PipelineState.h:295
Diligent::PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
@ PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
Interpret the vertex data as a list of triangles. D3D counterpart: D3D_PRIMITIVE_TOPOLOGY_TRIANGLELI...
Definition: GraphicsTypes.h:996
Diligent::PIPELINE_TYPE_RAY_TRACING
@ PIPELINE_TYPE_RAY_TRACING
Ray tracing pipeline, which is used by IDeviceContext::TraceRays().
Definition: PipelineState.h:308
Diligent::RayTracingProceduralHitShaderGroup
Ray tracing procedural hit shader group description.
Definition: PipelineState.h:245
Diligent::PRIMITIVE_TOPOLOGY
PRIMITIVE_TOPOLOGY
Input primitive topology.
Definition: GraphicsTypes.h:989
Diligent::RayTracingTriangleHitShaderGroup::RayTracingTriangleHitShaderGroup
RayTracingTriangleHitShaderGroup() noexcept
Definition: PipelineState.h:230
Diligent::GraphicsPipelineDesc::DepthStencilDesc
DepthStencilStateDesc DepthStencilDesc
Depth-stencil state description.
Definition: PipelineState.h:146
Diligent::PipelineStateDesc::ResourceLayout
PipelineResourceLayoutDesc ResourceLayout
Pipeline layout description.
Definition: PipelineState.h:333
Diligent::IDeviceObject
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:52
Diligent::RayTracingTriangleHitShaderGroup
Ray tracing triangle hit shader group description.
Definition: PipelineState.h:216
THIS
#define THIS
Definition: DefineInterfaceHelperMacros.h:81
Diligent::INTERFACE_ID
Unique interface identifier.
Definition: InterfaceID.h:37
Diligent::RasterizerStateDesc
Rasterizer state description.
Definition: RasterizerState.h:96
Diligent::TEX_FORMAT_UNKNOWN
@ TEX_FORMAT_UNKNOWN
Unknown format.
Definition: GraphicsTypes.h:331
Diligent::GraphicsPipelineDesc
Graphics pipeline state description.
Definition: PipelineState.h:131
PURE
#define PURE
Definition: DefineInterfaceHelperMacros.h:85
Diligent::RayTracingProceduralHitShaderGroup::RayTracingProceduralHitShaderGroup
RayTracingProceduralHitShaderGroup() noexcept
Definition: PipelineState.h:263
Diligent::SampleDesc
Sample description.
Definition: PipelineState.h:55
Diligent::DeviceObjectAttribs
Describes common device object attributes.
Definition: GraphicsTypes.h:1196
BlendState.h
Diligent::GraphicsPipelineDesc::SmplDesc
SampleDesc SmplDesc
Multisampling parameters.
Definition: PipelineState.h:176
Diligent::DescriptorType::Count
@ Count
Diligent::InputLayoutDesc
Layout description.
Definition: InputLayout.h:203
DILIGENT_END_NAMESPACE
#define DILIGENT_END_NAMESPACE
Definition: CommonDefinitions.h:86
RasterizerState.h
InputLayout.h
Diligent::PIPELINE_TYPE_MESH
@ PIPELINE_TYPE_MESH
Mesh pipeline, which is used by IDeviceContext::DrawMesh(), IDeviceContext::DrawMeshIndirect().
Definition: PipelineState.h:305
CONST
#define CONST
Definition: DefineInterfaceHelperMacros.h:84
Diligent::PipelineStateCreateInfo
Pipeline state creation attributes.
Definition: PipelineState.h:370
Diligent::ShaderResourceVariableDesc
Describes shader variable.
Definition: PipelineState.h:76
Diligent::PIPELINE_TYPE_LAST
@ PIPELINE_TYPE_LAST
Definition: PipelineState.h:310
DILIGENT_DERIVE
#define DILIGENT_DERIVE(TypeName)
Definition: CommonDefinitions.h:90
Diligent::PSO_CREATE_FLAG_IGNORE_MISSING_IMMUTABLE_SAMPLERS
@ PSO_CREATE_FLAG_IGNORE_MISSING_IMMUTABLE_SAMPLERS
Ignore missing immutable samplers.
Definition: PipelineState.h:364
Type
const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE Type
Definition: PipelineStateD3D12Impl.cpp:69
Diligent::ComputePipelineStateCreateInfo
Compute pipeline state description.
Definition: PipelineState.h:427
Diligent::PIPELINE_TYPE_COMPUTE
@ PIPELINE_TYPE_COMPUTE
Compute pipeline, which is used by IDeviceContext::DispatchCompute(), IDeviceContext::DispatchCompute...
Definition: PipelineState.h:302
Diligent::Uint32
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
DEFAULT_INITIALIZER
#define DEFAULT_INITIALIZER(x)
Definition: CommonDefinitions.h:93
Diligent::ShaderResourceVariableDesc::ShaderResourceVariableDesc
ShaderResourceVariableDesc() noexcept
Definition: PipelineState.h:90
RenderPass.h
Diligent::SHADER_TYPE_UNKNOWN
@ SHADER_TYPE_UNKNOWN
Unknown shader type.
Definition: GraphicsTypes.h:67
Diligent::GraphicsPipelineDesc::RasterizerDesc
RasterizerStateDesc RasterizerDesc
Rasterizer state description.
Definition: PipelineState.h:143
Diligent::PipelineStateCreateInfo::PSODesc
PipelineStateDesc PSODesc
Pipeline state description.
Definition: PipelineState.h:373
Diligent::PIPELINE_TYPE_INVALID
@ PIPELINE_TYPE_INVALID
Definition: PipelineState.h:312
ShaderResourceBinding.h
Diligent::PipelineStateDesc
Pipeline state description.
Definition: PipelineState.h:317
Diligent::TEXTURE_FORMAT
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:328
Diligent::SHADER_RESOURCE_VARIABLE_TYPE_STATIC
@ 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
Diligent::PipelineStateDesc::IsAnyGraphicsPipeline
bool IsAnyGraphicsPipeline() const
Definition: PipelineState.h:336
REF
#define REF
Definition: DefineGlobalFuncHelperMacros.h:39
Diligent::PSO_CREATE_FLAGS
PSO_CREATE_FLAGS
Pipeline state creation flags.
Definition: PipelineState.h:345
METHOD
#define METHOD(Name)
Definition: DefineInterfaceHelperMacros.h:87
DEFAULT_VALUE
#define DEFAULT_VALUE(x)
Definition: CommonDefinitions.h:99
DILIGENT_TYPED_ENUM
#define DILIGENT_TYPED_ENUM(EnumName, EnumType)
Definition: CommonDefinitions.h:88
Diligent::RayTracingProceduralHitShaderGroup::RayTracingProceduralHitShaderGroup
RayTracingProceduralHitShaderGroup(const char *_Name, IShader *_pIntersectionShader, IShader *_pClosestHitShader=nullptr, IShader *_pAnyHitShader=nullptr) noexcept
Definition: PipelineState.h:266
Diligent::Uint16
uint16_t Uint16
16-bit unsigned integer
Definition: BasicTypes.h:52
DepthStencilState.h
Diligent::Uint8
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
Diligent::PSO_CREATE_FLAG_NONE
@ PSO_CREATE_FLAG_NONE
Null flag.
Definition: PipelineState.h:348
DILIGENT_BEGIN_NAMESPACE
#define DILIGENT_BEGIN_NAMESPACE(Name)
Definition: CommonDefinitions.h:82
Diligent::RayTracingGeneralShaderGroup::RayTracingGeneralShaderGroup
RayTracingGeneralShaderGroup() noexcept
Definition: PipelineState.h:203
GraphicsTypes.h
ShaderResourceVariable.h
DEFINE_FLAG_ENUM_OPERATORS
DEFINE_FLAG_ENUM_OPERATORS(FILE_DIALOG_FLAGS)
Sampler.h
Diligent::RayTracingGeneralShaderGroup::RayTracingGeneralShaderGroup
RayTracingGeneralShaderGroup(const char *_Name, IShader *_pShader) noexcept
Definition: PipelineState.h:206
ShaderType
Uint16 ShaderType
Definition: DXBCUtils.cpp:70
Diligent::PipelineStateDesc::IsComputePipeline
bool IsComputePipeline() const
Definition: PipelineState.h:337
Diligent::GraphicsPipelineDesc::BlendDesc
BlendStateDesc BlendDesc
Blend state description.
Definition: PipelineState.h:134
Diligent::PipelineResourceLayoutDesc
Pipeline layout description.
Definition: PipelineState.h:103
Diligent::PIPELINE_TYPE_GRAPHICS
@ PIPELINE_TYPE_GRAPHICS
Graphics pipeline, which is used by IDeviceContext::Draw(), IDeviceContext::DrawIndexed(),...
Definition: PipelineState.h:299
Diligent::SampleDesc::SampleDesc
SampleDesc(Uint8 _Count, Uint8 _Quality) noexcept
Definition: PipelineState.h:66
Diligent::DepthStencilStateDesc
Depth stencil state description.
Definition: DepthStencilState.h:157
Diligent::IRenderPass
Render pass interface.
Definition: RenderPass.h:369
Diligent::BlendStateDesc
Blend state description.
Definition: BlendState.h:374
Diligent
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
THIS_
#define THIS_
Definition: DefineInterfaceHelperMacros.h:82
Diligent::SHADER_RESOURCE_VARIABLE_TYPE
SHADER_RESOURCE_VARIABLE_TYPE
Describes the type of the shader resource variable.
Definition: ShaderResourceVariable.h:48
Diligent::IResourceMapping
Resouce mapping.
Definition: ResourceMapping.h:107
Diligent::ImmutableSamplerDesc
Immutable sampler description.
Definition: PipelineResourceSignature.h:51