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 작업의 경우 0으로 설정합니다. 여러 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_DESCForcedSampleCount 멤버가 0이 아닌 경우:
- 깊이/스텐실을 사용하지 않도록 설정해야 합니다.
- 픽셀 셰이더는 깊이를 출력할 수 없습니다.
- 픽셀 셰이더는 샘플 빈도로 실행할 수 없습니다.
- 렌더링 대상 샘플 수는 1이어야 합니다.
- 혼합 상태가 렌더링 대상 형식과 호환되는지 여부입니다.
- 픽셀 셰이더 출력 형식이 렌더링 대상 형식과 호환되는지 여부입니다.
- 렌더링 대상/깊이 스텐실 형식에 대해 샘플 개수 및 품질이 지원되는지 여부입니다.
요구 사항
머리글 | d3d12.h |