다음을 통해 공유


D3D12DDI_NODE_OUTPUT_0108 구조체(d3d12umddi.h)

D3D12DDI_NODE_OUTPUT_0108 구조는 작업 그래프에서 노드의 출력을 설명합니다.

구문

typedef struct D3D12DDI_NODE_OUTPUT_0108 {
  D3D12DDI_NODE_ID_0108                    FinalName;
  UINT                                     OutputIndex;
  D3D12DDI_NODE_IO_KIND_0108               NodeIOKind;
  UINT                                     NodeIOFlags;
  UINT                                     RecordSizeInBytes;
  BOOL                                     bAllowSparseNodes;
  const D3D12DDI_RECORD_DISPATCH_GRID_0108 *pRecordDispatchGrid;
  const UINT                               *pMaxRecords;
  const UINT                               *pMaxRecordsSharedWithOutputIndex;
  UINT                                     ArraySize;
  const D3D12DDI_NODE_LIST_ENTRY_0108      *pOutputs;
} D3D12DDI_NODE_OUTPUT_0108;

멤버

FinalName

애플리케이션 수준에서 선택적 이름 바꾸기를 수행한 후 노드의 최종 이름을 지정하는 D3D12DDI_NODE_ID_0108 구조체입니다. ArraySize가 1보다 큰 경우 출력되는 노드 배열의 시작 노드 ID입니다.

OutputIndex

이 노드의 출력 집합에 있는 이 출력의 인덱스(노드 배열 출력은 이 집합의 하나의 항목으로 계산됨). 이 인덱스는 출력이 선언된 순서와 출력이 D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108 D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108pOutputs 배열에 표시되는 방식과 일치합니다. 따라서 이 값은 중복되지만 명확성을 위해 제공됩니다. 이 구조체의 다른 멤버는 이 인덱싱 공간을 사용하여 노드를 참조합니다.

NodeIOKind

입력 클래스를 지정하는 D3D12DDI_NODE_IO_KIND_0108 열거형입니다. 노드 출력 선언을 참조하세요.

NodeIOFlags

노드의 출력에 대한 추가 정보를 제공하는 플래그입니다. D3D12DDI_NODE_IO_FLAGS_0108 D3D12DDI_NODE_IO_FLAGS_FLAG_MASK내의 플래그를 참조하세요. 노드 입력 선언도 참조하세요.

RecordSizeInBytes

출력 레코드의 크기(바이트)입니다. NodeIOKind가 D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108 경우 0일 수 있습니다.

bAllowSparseNodes

스파스 노드가 허용되는지 여부를 지정하는 부울입니다. 이 멤버는 노드 출력의 AllowSparseNodes 특성에 매핑되거나 애플리케이션 수준에서 재정의될 수 있으므로 최종 상태 여기에 표시됩니다.

pRecordDispatchGrid

이면 nullptr출력 레코드에 SV_DispatchGrid 포함되지 않습니다. 그렇지 않으면 출력 레코드에 SV_DispatchGrid 표시되는 방식에 대한 설명을 가리킵니다. D3D12DDI_RECORD_DISPATCH_GRID_0108 참조하세요.

pMaxRecords

스레드 그룹이 이 출력 노드/배열에 출력할 최대 출력 레코드 수입니다. 이 출력의 출력 레코드 예산이 다른 출력과 공유되는 경우 pMaxRecords 는 이 nullptrpMaxRecordsSharedWithOutputIndex 는 대신 지정됩니다. 셰이더가 [MaxRecordsSharedWith()]를 선언한 경우 출력 예산을 더 이상 공유하지 않는 pMaxRecords로 재정의하는 것이 유효합니다.

pMaxRecordsSharedWithOutputIndex

이 출력이 출력 레코드 예산을 다른 출력과 공유하는 경우 pMaxRecordsSharedWithOutputIndex는 선언된 순서 및 D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108pOutputs 배열에 표시되는 방식에 따라 해당 출력의 0 기반 인덱스를 가리킵니다. 가리키는 출력에 pMaxRecords가 지정되어 있습니다. 현재 출력이 출력 레코드 예산을 공유하지 않는 경우 pMaxRecordsSharedWithIndex 는 입니다 nullptr. 셰이더가 [MaxRecords()]를 선언한 경우 pMaxRecordsSharedWithIndex로 재정의하는 것이 유효합니다. 그러면 출력 예산이 다른 출력과 공유됩니다.

ArraySize

출력할 노드 배열의 노드 수입니다. 이 값이 1이면 출력은 단일 노드입니다. 이 값이 1보다 크면 출력은 노드 배열입니다. 노드는 배열에서 연속되며 첫 번째 노드는 FinalName으로 지정된 노드입니다. 값은 0xffffffff 바인딩되지 않은 노드 배열 크기를 의미하며 bAllowSparseNodes 가 true인 경우에만 허용됩니다.

pOutputs

이 노드가 출력하는 노드(D3D12DDI_NODE_0108)의 목록(D3D12DDI_NODE_LIST_ENTRY)입니다. pOutputs가 이 노드인 nullptr 경우 다른 노드로 출력되지 않습니다. bAllowSparseNodes가 true이면 ArraySize만큼 이 목록이 반드시 있는 것은 아닙니다. bAllowSparseNodes 상태에 관계없이 드라이버는 목록 항목이 배열 인덱스 순서로 되어 있다고 가정해서는 안 됩니다. 지정된 출력의 배열 인덱스 는 해당 노드 ID에서 찾을 수 있습니다. AddToStateObject()가 출력을 추가하면 목록의 시작 부분에 추가가 표시되며, 이는 배열 인덱스 순서라고 가정하지 않는 또 다른 이유입니다.

설명

자세한 내용은 작업 그래프를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 11 버전 24H2(WDDM 3.2)
머리글 d3d12umddi.h

추가 정보

D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108