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,即使状态对象本身具有几次迭代。 同样,如果对状态对象的其他部分进行了添加,但其中的特定工作图单独保留,则在下次向工作图本身添加内容之前,其版本不会更改。 版本值与 D3D12DDI_NODE_0108VersionAdded 字段中使用的编号相同。

Flags

一个 D3D12DDI_WORK_GRAPH_FLAGS_0108 枚举,指定控制工作图行为的标志。

NumNodes

工作图中的节点数,包括已存在加法的节点数。 此值确定 pNodes 数组中的元素数。

pNodes

指向 D3D12DDI_NODE_LIST_ENTRY_0108 结构的数组的指针,其中每个条目都表示工作图中的节点定义。

即使使用 D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH 标志,pNodes 指向图形中所有节点的列表。 新节点显示在列表的开头。

NumEntrypoints

如果发生加法,包括已存在的入口点数。 此值确定 pEntrypoints 数组中的元素数。

pEntrypoints

指向 D3D12DDI_NODE_LIST_ENTRY_0108 结构的数组的指针,其中每个条目表示工作图中的入口点。

即使使用 D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH 标志,pEntryPoints 指向所有入口点的列表。 新的入口点显示在列表的开头,并继续在早期版本之后的入口点索引编号。 例如,假设图形的初始版本有两个入口点。 此列表将有两个条目,驱动程序必须推断它们具有入口点索引 [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