D3D12_GRAPHICS_PIPELINE_STATE_DESC 结构是 Direct3D 12 中用于描述图形管线状态的结构体。以下是该结构的定义:
typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
  ID3D12RootSignature         *pRootSignature;
  D3D12_SHADER_BYTECODE       VS;
  D3D12_SHADER_BYTECODE       PS;
  D3D12_SHADER_BYTECODE       GS;
  D3D12_SHADER_BYTECODE       DS;
  D3D12_SHADER_BYTECODE       HS;
  D3D12_STREAM_OUTPUT_DESC    StreamOutput;
  D3D12_BLEND_DESC            BlendState;
  UINT                        SampleMask;
  D3D12_RASTERIZER_DESC       RasterizerState;
  D3D12_DEPTH_STENCIL_DESC    DepthStencilState;
  D3D12_INPUT_LAYOUT_DESC     InputLayout;
  D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
  D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
  D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[8];
  DXGI_SAMPLE_DESC           SampleDesc;
  UINT                       NodeMask;
  D3D12_CACHED_PIPELINE_STATE CachedPSO;
  D3D12_PIPELINE_STATE_FLAGS Flags;
} D3D12_GRAPHICS_PIPELINE_STATE_DESC;

这个结构用于创建图形管线状态对象(Graphics Pipeline State Object,PSO)。下面是对一些关键成员的简要说明:

  •  pRootSignature: 根签名,用于指定图形管线使用的根签名。

  •  VS, PS, GS, DS, HS: 分别表示顶点着色器、像素着色器、几何着色器、域着色器和外壳着色器的字节码。

  •  BlendState: 混合状态描述。

  •  RasterizerState: 光栅化状态描述。

  •  DepthStencilState: 深度模板状态描述。

  •  InputLayout: 输入布局描述。

  •  PrimitiveTopologyType: 描述图元拓扑类型的枚举。

  •  RenderTarget: 渲染目标数组,表示每个渲染目标的混合状态。

  •  SampleDesc: 多重采样描述。

  •  NodeMask: 用于多 GPU 场景中指定在哪个节点上创建管线状态对象。

  •  Flags: 图形管线状态的标志。


这个结构的成员提供了创建图形管线状态所需的各种配置信息。创建图形管线状态对象时,你可以使用这个结构并传递给 ID3D12Device::CreateGraphicsPipelineState 方法。


转载请注明出处:http://www.pingtaimeng.com/article/detail/25942/Win32 API/D3d12.h/D3D12_GRAPHICS_PIPELINE_STATE_DESC