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


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

D3D12DDI_STATE_SUBOBJECT_TYPE

D3D12DDI_WORK_GRAPH_FLAGS_0108

PFND3D12DDI_ADD_TO_STATE_OBJECT_0072

PFND3D12DDI_CREATE_STATE_OBJECT_0054

PFND3D12DDI_DISPATCH_GRAPH_0108