다음을 통해 공유


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 메서드에서 사용됩니다.

런타임은 다음의 유효성을 검사합니다.

  • 셰이더 단계 간의 연결이 올바른지 여부입니다.
  • HSDS 멤버를 지정하는 경우 토폴로지 형식에 대한 PrimitiveTopologyType 멤버를 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH 설정해야 합니다.
  • 가운데 MSAA(다중 샘플 앤티앨리어싱) 패턴으로 샘플 빈도 실행을 허용하지 않는지 여부입니다.
  • 중앙 MSAA 패턴에서 앤티앨리어싱 선이 허용되지 않는지 여부입니다.
  • RasterizerState가 지정하는 D3D12_RASTERIZER_DESCForcedSampleCount 멤버가 0이 아닌 경우:
    • 깊이/스텐실을 사용하지 않도록 설정해야 합니다.
    • 픽셀 셰이더는 깊이를 출력할 수 없습니다.
    • 픽셀 셰이더는 샘플 빈도로 실행할 수 없습니다.
    • 렌더링 대상 샘플 수는 1이어야 합니다.
  • 혼합 상태가 렌더링 대상 형식과 호환되는지 여부입니다.
  • 픽셀 셰이더 출력 형식이 렌더링 대상 형식과 호환되는지 여부입니다.
  • 렌더링 대상/깊이 스텐실 형식에 대해 샘플 개수 및 품질이 지원되는지 여부입니다.

요구 사항

   
머리글 d3d12.h

추가 정보

일반 래스터화

핵심 구조체

ROV(정렬된 래스터라이저 보기)