D3D12_GRAPHICS_PIPELINE_STATE_DESC 结构 (d3d12.h)

描述图形管道状态对象。

语法

typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
  ID3D12RootSignature                *pRootSignature;
  D3D12_SHADER_BYTECODE              VS;
  D3D12_SHADER_BYTECODE              PS;
  D3D12_SHADER_BYTECODE              DS;
  D3D12_SHADER_BYTECODE              HS;
  D3D12_SHADER_BYTECODE              GS;
  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;
  UINT                               NumRenderTargets;
  DXGI_FORMAT                        RTVFormats[8];
  DXGI_FORMAT                        DSVFormat;
  DXGI_SAMPLE_DESC                   SampleDesc;
  UINT                               NodeMask;
  D3D12_CACHED_PIPELINE_STATE        CachedPSO;
  D3D12_PIPELINE_STATE_FLAGS         Flags;
} D3D12_GRAPHICS_PIPELINE_STATE_DESC;

成员

pRootSignature

指向 ID3D12RootSignature 对象的指针。

VS

描述顶点着色器的 D3D12_SHADER_BYTECODE 结构。

PS

描述像素着色器的 D3D12_SHADER_BYTECODE 结构。

DS

描述域着色器的 D3D12_SHADER_BYTECODE 结构。

HS

描述外壳着色器的 D3D12_SHADER_BYTECODE 结构。

GS

描述几何着色器的 D3D12_SHADER_BYTECODE 结构。

StreamOutput

描述流式输出缓冲区 的D3D12_STREAM_OUTPUT_DESC 结构。

BlendState

描述混合状态 的D3D12_BLEND_DESC 结构。

SampleMask

混合状态的示例掩码。

RasterizerState

描述光栅器状态 的D3D12_RASTERIZER_DESC 结构。

DepthStencilState

描述深度模具状态 的D3D12_DEPTH_STENCIL_DESC 结构。

InputLayout

描述输入装配器阶段的输入缓冲区数据的 D3D12_INPUT_LAYOUT_DESC 结构。

IBStripCutValue

指定 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE 结构中的索引缓冲区的属性。

PrimitiveTopologyType

基元类型的 D3D12_PRIMITIVE_TOPOLOGY_TYPE类型值,以及基元数据的顺序。

NumRenderTargets

RTVFormats 成员中呈现目标格式的数目。

RTVFormats[8]

呈现器目标格式的 DXGI_FORMAT类型的值的数组。

DSVFormat

深度模具格式 的DXGI_FORMAT类型值。

SampleDesc

指定多重采样参数 的DXGI_SAMPLE_DESC 结构。

NodeMask

对于单个 GPU 操作,请将此设置为零。 如果有多个 GPU 节点,请设置位来标识 (要应用图形管道状态的设备物理适配器) 节点。 掩码中的每个位都对应一个节点。 请参阅 多适配器系统

CachedPSO

缓存的管道状态对象,作为 D3D12_CACHED_PIPELINE_STATE 结构。 pCachedBlob 和 CachedBlobSizeInBytes 可以分别设置为 NULL 和 0。

Flags

D3D12_PIPELINE_STATE_FLAGS枚举常量,例如用于“工具调试”。

备注

CreateGraphicsPipelineState 方法使用此结构。

运行时验证:

  • 着色器阶段之间的链接是否正确。
  • 如果指定 HSDS 成员,则必须将拓扑类型的 PrimitiveTopologyType 成员设置为 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH
  • 中心多样本抗锯齿 (MSAA) 模式是否不允许采样频率执行。
  • 中心 MSAA 模式是否不允许使用抗锯齿线。
  • 如果 RasterizerState 指定的D3D12_RASTERIZER_DESCForcedSampleCount 成员不是零:
    • 必须禁用深度/模具。
    • 像素着色器无法输出深度。
    • 像素着色器不能以采样频率运行。
    • 呈现目标样本计数必须为 1。
  • 混合状态是否与呈现目标格式兼容。
  • 像素着色器输出类型是否与呈现目标格式兼容。
  • 呈现目标/深度模具格式是否支持样本计数和质量。

要求

   
标头 d3d12.h

另请参阅

传统型光栅化

核心结构

光栅器有序视图