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