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_WORK_GRAPH_FLAGS_0108
PFND3D12DDI_ADD_TO_STATE_OBJECT_0072