структура D3D12DDI_WORK_GRAPH_DESC_0108 (d3d12umddi.h)
Структура D3D12DDI_WORK_GRAPH_DESC_0108 определяет подобъект состояния типа D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH.
Синтаксис
typedef struct D3D12DDI_WORK_GRAPH_DESC_0108 {
LPCWSTR ProgramName;
UINT Version;
D3D12DDI_WORK_GRAPH_FLAGS_0108 Flags;
UINT NumNodes;
const D3D12DDI_NODE_LIST_ENTRY_0108 *pNodes;
UINT NumEntrypoints;
const D3D12DDI_NODE_LIST_ENTRY_0108 *pEntrypoints;
} D3D12DDI_WORK_GRAPH_DESC_0108;
Члены
ProgramName
Имя рабочего графа. Это имя уникально в заданном объекте состояния.
Version
Номер версии этого рабочего графа, начиная с 0. При использовании PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 это значение увеличивается для новых версий.
Если объект состояния с несколькими дополнениями к другим частям (возможно, другим рабочим графам) получает только что добавленный рабочий граф, версия будет 0 для первоначального внешнего вида нового рабочего графа, несмотря на то, что сам объект состояния имел несколько итераций. Аналогичным образом, если дополнения вносятся в другие части объекта состояния, но конкретный рабочий граф в нем остается в одиночку, его версия не изменяется до следующего момента добавления к самому рабочему графу. Значение версии совпадает с нумерированием, используемым в поле versionAddedD3D12DDI_NODE_0108.
Flags
Перечисление D3D12DDI_WORK_GRAPH_FLAGS_0108, указывающее флаги, управляющие поведением рабочего графа.
NumNodes
Количество узлов в рабочем графике, включая уже существующие, если происходит добавление. Это значение определяет количество элементов в массиве pNodes.
pNodes
Указатель на массив структур D3D12DDI_NODE_LIST_ENTRY_0108, где каждая запись представляет определение узла в рабочем графе.
Даже с флагом D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPHpNodes указывает на список всех узлов в графе. Новые узлы отображаются в начале списка.
NumEntrypoints
Число точек входа, включая уже существующие, если происходит добавление. Это значение определяет количество элементов в массиве pEntrypoints.
pEntrypoints
Указатель на массив структур D3D12DDI_NODE_LIST_ENTRY_0108, где каждая запись представляет точку входа в рабочем графе.
Даже с флагом D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPHpEntryPoints указывает на список всех точек входа. Новые точки входа отображаются в начале списка и продолжают нумерация индексов точки входа после предыдущих версий. Например, предположим, что исходная версия графа имеет две точки входа. Этот список содержит две записи, и драйвер должен определить, что они имеют индексы точек входа [0] и [1] соответственно для назначений записей из PFND3D12DDI_DISPATCH_GRAPH_0108. Если добавление происходит с 3 новыми точками входа, список для новой версии графа будет содержать 5 записей точки входа с новыми записями в начале списка. Драйвер должен определить индексы точек входа для 3 новых записей в начале списка (записи с новой версией), поэтому полный список будет [2], [3], [4], [0], [1]. В идеале эти назначения были бы предоставлены средой выполнения в DDI, чтобы драйвер не должен был выяснить это, но это было пропущено и считается недостаточно важным для исправления.
Замечания
Структура D3D12DDI_WORK_GRAPH_DESC_0108 описывает рабочий график. Сам рабочий граф представляет собой коллекцию узлов, где каждый узел представляет единицу работы или задачу. Узлы могут иметь зависимости друг от друга, определяющие порядок выполнения. Точки входа — это узлы, где может начаться выполнение, и обычно являются узлами без зависимостей или тех, которые могут выполняться немедленно.
Среда выполнения обеспечивает удобство на уровне API, например возможность определять рабочий график только путем перечисления точек входа или даже запрашивая использование всех доступных узлов. Среда выполнения принимает определение рабочего графа API, проверяет его и предоставляет драйверу окончательный набор узлов в графе, показанный в этой D3D12DDI_WORK_GRAPH_DESC_0108 структуре.
Дополнительные сведения см. в рабочих графов.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 11 версии 24H2 (WDDM 3.2) |
заголовка | d3d12umddi.h |
См. также
D3D12DDI_WORK_GRAPH_FLAGS_0108
PFND3D12DDI_ADD_TO_STATE_OBJECT_0072