Поделиться через


структура 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, это идентификатор NodeID начала массива узлов, в который выполняется вывод.

OutputIndex

Отсчитываемый от нуля индекс выходных данных в наборе выходных данных для этого узла (выходные данные массива узлов считаются одной записью в этом наборе). Этот индекс соответствует порядку объявления выходных данных и их отображению в массивах pOutputs в D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108 и D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. Таким образом, это значение является избыточным, но предоставляется для ясности. Другие члены этой структуры ссылались на узлы, использующие это пространство индексирования.

NodeIOKind

Перечисление D3D12DDI_NODE_IO_KIND_0108 , указывающее класс входных данных. См. объявление выходных данных Node.

NodeIOFlags

Флаги, предоставляющие дополнительные сведения о выходных данных узла. Просмотрите флаги в D3D12DDI_NODE_IO_FLAGS_FLAG_MASK в D3D12DDI_NODE_IO_FLAGS_0108. См. также объявление входных данных узла.

RecordSizeInBytes

Размер выходной записи в байтах. Может иметь значение 0, если NodeIOKind имеет значение D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108.

bAllowSparseNodes

Логическое значение, указывающее, разрешены ли разреженные узлы. Этот член сопоставляется с атрибутом AllowSparseNodes на выходе узла или может быть переопределен на уровне приложения, поэтому здесь указывается окончательное состояние.

pRecordDispatchGrid

Если nullptrзначение равно , выходная запись не содержит SV_DispatchGrid. В противном случае указывает на описание того, как SV_DispatchGrid отображается в выходной записи. См . D3D12DDI_RECORD_DISPATCH_GRID_0108.

pMaxRecords

Максимальное число выходных записей, которые группа потоков будет выводить на этот выходной узел или массив. Если бюджет выходной записи для этих выходных данных используется совместно с другими выходными данными, pMaxRecords имеет значение nullptr , а вместо этого указывается pMaxRecordsSharedWithOutputIndex . Если шейдер объявил [MaxRecordsSharedWith()], допустимо переопределить его с помощью pMaxRecords, что делает выходной бюджет более не общим.

pMaxRecordsSharedWithOutputIndex

Если этот выход совместно использует свой бюджет записи выходных данных с другими выходными данными, pMaxRecordsSharedWithOutputIndex указывает на индекс выходных данных, основанный на 0, в зависимости от порядка их объявления и того, как они отображаются в массивах pOutputs в D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108 и D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. Выходные данные, на которые указывает , имеют значение pMaxRecords . Если текущий выход не использует общий бюджет выходной записи, pMaxRecordsSharedWithIndex имеет значение nullptr. Если шейдер объявил [MaxRecords()], допустимо переопределить его с помощью pMaxRecordsSharedWithIndex, что делает выходной бюджет совместно с другими выходными данными.

ArraySize

Количество узлов в массиве узлов, в которые выполняется вывод. Если значение равно 1, выходные данные будут одним узлом. Если значение больше 1, выходные данные являются массивом узлов. Узлы являются смежными в массиве, а первым узлом является узел, указанный параметром FinalName. Значение означает неограниченный размер массива 0xffffffff узлов, который допускается только в том случае, если параметр bAllowSparseNodes имеет значение true.

pOutputs

Список (D3D12DDI_NODE_LIST_ENTRY) узлов (D3D12DDI_NODE_0108), в которые выводится этот узел. Если значение pOutputs — это nullptr узел, который не выводится на другие узлы. Если параметр bAllowSparseNodes имеет значение true, этот список не обязательно содержит значение ArraySize. Независимо от состояния bAllowSparseNodes драйверы не должны предполагать, что записи списка указаны в порядке индекса массива. Индекс массива данных выходных данных можно найти в идентификаторе узла. Когда 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