Compartilhar via


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_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