структура 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