estrutura D3D12DDI_WORK_GRAPH_DESC_0108 (d3d12umddi.h)
A estrutura D3D12DDI_WORK_GRAPH_DESC_0108 define o subobjeto de estado do tipo D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH.
Sintaxe
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;
Membros
ProgramName
Nome do grafo de trabalho. Esse nome é exclusivo no objeto de estado fornecido.
Version
O número de versão deste grafo de trabalho, começando em 0. Quando PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 está sendo usado, esse valor é incrementado para novas versões.
Se um objeto de estado que teve algumas adições a outras partes dele (talvez outros grafos de trabalho) receber um grafo de trabalho recém-criado adicionado, Version será 0 para a aparência inicial do novo grafo de trabalho, mesmo que o próprio objeto de estado tenha tido algumas iterações. Da mesma forma, se forem feitas adições a outras partes de um objeto de estado, mas um grafo de trabalho específico nele for deixado sozinho, sua versão não será alterada até a próxima vez que uma adição for feita ao grafo de trabalho em si. O valor Version é a mesma numeração usada no campo VersionAdded de D3D12DDI_NODE_0108.
Flags
Uma enumeração D3D12DDI_WORK_GRAPH_FLAGS_0108 que especifica sinalizadores que controlam o comportamento do grafo de trabalho.
NumNodes
O número de nós no grafo de trabalho, incluindo os já existentes, se uma adição estiver acontecendo. Esse valor determina o número de elementos na matriz pNodes .
pNodes
Ponteiro para uma matriz de estruturas D3D12DDI_NODE_LIST_ENTRY_0108 , em que cada entrada representa uma definição de nó no grafo de trabalho.
Mesmo com o sinalizador D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH , pNodes aponta para uma lista de todos os nós no grafo. Novos nós aparecem no início da lista.
NumEntrypoints
Número de pontos de entrada, incluindo os já existentes, se uma adição estiver acontecendo. Esse valor determina o número de elementos na matriz pEntrypoints .
pEntrypoints
Ponteiro para uma matriz de estruturas D3D12DDI_NODE_LIST_ENTRY_0108 , em que cada entrada representa um ponto de entrada no grafo de trabalho.
Mesmo com o sinalizador D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH , pEntryPoints aponta para uma lista de todos os pontos de entrada. Novos pontos de entrada aparecem no início da lista e continuam a numeração de índice de ponto de entrada após as versões anteriores. Por exemplo, suponha que a versão inicial de um grafo tenha dois pontos de entrada. Essa lista teria duas entradas e o driver deve inferir que eles têm índices de ponto de entrada [0] e [1] respectivamente para atribuições de registro de PFND3D12DDI_DISPATCH_GRAPH_0108. Se ocorrer uma adição, com três novos pontos de entrada, a lista da nova versão do grafo terá cinco entradas de ponto de entrada, com as novas entradas no início da lista. O driver deve inferir os índices de ponto de entrada das três novas entradas no início da lista (as entradas com a nova Versão), portanto, a lista completa seria [2], [3], [4], [0], [1]. Idealmente, essas atribuições teriam sido fornecidas pelo runtime na DDI para que o driver não precisasse descobrir isso, mas isso foi perdido e considerado não importante o suficiente para corrigir.
Comentários
A estrutura D3D12DDI_WORK_GRAPH_DESC_0108 descreve um grafo de trabalho. O grafo de trabalho em si é uma coleção de nós, em que cada nó representa uma unidade de trabalho ou uma tarefa. Os nós podem ter dependências uns dos outros, que definem a ordem de execução. Os pontos de entrada são os nós em que a execução pode começar e normalmente são os nós sem dependências ou aqueles que podem ser executados imediatamente.
O runtime fornece conveniências no nível da API, como poder definir um grafo de trabalho apenas listando pontos de entrada ou até mesmo solicitando que todos os nós disponíveis sejam usados. O runtime usa a definição do grafo de trabalho da API, valida-a e fornece ao driver o conjunto final de nós no grafo, ilustrado nesta estrutura D3D12DDI_WORK_GRAPH_DESC_0108 .
Para obter mais informações, consulte Grafos de trabalho.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 11, versão 24H2 (WDDM 3.2) |
Cabeçalho | d3d12umddi.h |
Confira também
D3D12DDI_WORK_GRAPH_FLAGS_0108
PFND3D12DDI_ADD_TO_STATE_OBJECT_0072