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


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