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 方法使用此结构。
运行时验证:
- 着色器阶段之间的链接是否正确。
- 如果指定 HS 和 DS 成员,则必须将拓扑类型的 PrimitiveTopologyType 成员设置为 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH。
- 中心多样本抗锯齿 (MSAA) 模式是否不允许采样频率执行。
- 中心 MSAA 模式是否不允许使用抗锯齿线。
-
如果 RasterizerState 指定的D3D12_RASTERIZER_DESC的 ForcedSampleCount 成员不是零:
- 必须禁用深度/模具。
- 像素着色器无法输出深度。
- 像素着色器不能以采样频率运行。
- 呈现目标样本计数必须为 1。
- 混合状态是否与呈现目标格式兼容。
- 像素着色器输出类型是否与呈现目标格式兼容。
- 呈现目标/深度模具格式是否支持样本计数和质量。
要求
标头 | d3d12.h |