Compartir a través de


estructura D3D12DDI_WORK_GRAPH_DESC_0108 (d3d12umddi.h)

La estructura D3D12DDI_WORK_GRAPH_DESC_0108 define el subobjeto de estado de tipo D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH.

Sintaxis

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;

Miembros

ProgramName

Nombre del gráfico de trabajo. Este nombre es único en el objeto de estado especificado.

Version

Número de versión de este gráfico de trabajo, a partir de 0. Cuando se usa PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 , este valor aumenta para las nuevas versiones.

Si un objeto de estado que tiene algunas adiciones a otras partes (quizás otros gráficos de trabajo) obtiene un gráfico de trabajo recién creado, la versión será 0 para la apariencia inicial del nuevo gráfico de trabajo, aunque el propio objeto de estado haya tenido algunas iteraciones. Del mismo modo, si se realizan adiciones a otras partes de un objeto de estado, pero un gráfico de trabajo determinado en él se deja solo, su versión no cambia hasta la próxima vez que se realice una adición al propio gráfico de trabajo. El valor version es la misma numeración que se usa en el campo VersionAdded de D3D12DDI_NODE_0108.

Flags

Enumeración D3D12DDI_WORK_GRAPH_FLAGS_0108 que especifica marcas que controlan el comportamiento del gráfico de trabajo.

NumNodes

Número de nodos dentro del gráfico de trabajo, incluidos los ya existentes si se está produciendo una adición. Este valor determina el número de elementos de la matriz pNodes .

pNodes

Puntero a una matriz de estructuras de D3D12DDI_NODE_LIST_ENTRY_0108 , donde cada entrada representa una definición de nodo en el gráfico de trabajo.

Incluso con la marca D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH , pNodes apunta a una lista de todos los nodos del gráfico. Los nuevos nodos aparecen al principio de la lista.

NumEntrypoints

Número de puntos de entrada que incluyen los ya existentes si se está produciendo una adición. Este valor determina el número de elementos de la matriz pEntrypoints .

pEntrypoints

Puntero a una matriz de estructuras de D3D12DDI_NODE_LIST_ENTRY_0108 , donde cada entrada representa un punto de entrada en el gráfico de trabajo.

Incluso con la marca D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH , pEntryPoints apunta a una lista de todos los puntos de entrada. Los nuevos puntos de entrada aparecen al principio de la lista y continúan la numeración del índice del punto de entrada después de las versiones anteriores. Por ejemplo, supongamos que la versión inicial de un grafo tiene dos puntos de entrada. Esta lista tendría dos entradas y el controlador debe deducir que tienen índices de punto de entrada [0] y [1] respectivamente para las asignaciones de registros de PFND3D12DDI_DISPATCH_GRAPH_0108. Si se produce una adición, con 3 nuevos puntos de entrada, la lista de la nueva versión del grafo tendría 5 entradas de punto de entrada, con las nuevas entradas al principio de la lista. El controlador debe deducir los índices de punto de entrada de las tres entradas nuevas al principio de la lista (las entradas con la nueva versión), por lo que la lista completa sería [2], [3], [4], [0], [1]. Idealmente, estas asignaciones habrían sido proporcionadas por el tiempo de ejecución en la DDI para que el controlador no tuviera que averiguar esto, pero esto se perdió y se consideró lo suficientemente importante como para corregir.

Comentarios

La estructura D3D12DDI_WORK_GRAPH_DESC_0108 describe un gráfico de trabajo. El propio gráfico de trabajo es una colección de nodos, donde cada nodo representa una unidad de trabajo o una tarea. Los nodos pueden tener dependencias entre sí, que definen el orden de ejecución. Los puntos de entrada son los nodos donde se puede iniciar la ejecución y suelen ser los nodos sin dependencias o los que se pueden ejecutar inmediatamente.

El tiempo de ejecución proporciona comodidad en el nivel de API, como poder definir un gráfico de trabajo simplemente enumerando los puntos de entrada o incluso solicitando que se usen todos los nodos disponibles. El tiempo de ejecución toma la definición del grafo de trabajo de la API, la valida y proporciona al controlador el conjunto final de nodos del gráfico, que se muestra en esta estructura de D3D12DDI_WORK_GRAPH_DESC_0108 .

Para obtener más información, consulte Gráficos de trabajo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 11, versión 24H2 (WDDM 3.2)
Encabezado d3d12umddi.h

Consulte también

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