Envio de trabalho no Direct3D 12
Para melhorar a eficiência da CPU de aplicativos Direct3D, a partir da versão 12, o Direct3D não dá mais suporte a um contexto imediato associado a um dispositivo. Em vez disso, o aplicativo registra e envia listas de comandos, que contêm chamadas de desenho e gerenciamento de recursos. Você pode enviar essas listas de comandos de vários threads para uma ou mais filas de comandos, que gerenciam a execução dos comandos. Essa alteração fundamental aumenta a eficiência de thread único, permitindo que seu aplicativo pré-compute o trabalho de renderização para reutilização posterior e aproveita os sistemas de vários núcleos espalhando o trabalho de renderização em vários threads.
Nesta seção
Tópico | Descrição |
---|---|
Filosofia de design de filas de comandos e listas de comandos | As metas de habilitar a reutilização do trabalho de renderização e do dimensionamento multithread exigiram alterações fundamentais na forma como os aplicativos Direct3D enviam o trabalho de renderização para a GPU. |
Criação e gravação de listas de comandos e pacotes | Este tópico descreve a gravação de listas de comandos e pacotes em aplicativos Direct3D 12. Listas de comandos e pacotes permitem que os aplicativos registrem chamadas de desenho ou alteração de estado para execução posterior na GPU (unidade de processamento gráfico). |
Executando e sincronizando listas de comandos | No Microsoft Direct3D 12, o modo imediato das versões anteriores não está mais presente. Em vez disso, os aplicativos criam listas de comandos e pacotes e, em seguida, registram conjuntos de comandos de GPU. As filas de comandos são usadas para enviar listas de comandos a serem executadas. Esse modelo permite que os desenvolvedores tenham mais controle sobre o uso eficiente da GPU e da CPU. |
Gerenciando o estado do pipeline gráfico no Direct3D 12 | Este tópico descreve como o estado do pipeline gráfico é definido no Direct3D 12. |
Usando barreiras de recursos para sincronizar estados de recursos no Direct3D 12 | Para reduzir o uso geral da CPU e habilitar o multi-threading e o pré-processamento do driver, o Direct3D 12 move a responsabilidade do gerenciamento de estado por recurso do driver gráfico para o aplicativo. |
Pipelines e sombreadores com Direct3D 12 | O pipeline programável do Direct3D 12 aumenta significativamente o desempenho de renderização em comparação com as interfaces de programação de gráficos de geração anterior. |
VRS (sombreamento de taxa variável) | O sombreamento de taxa variável ou sombreamento de pixels grosseiros é um mecanismo que permite alocar desempenho/energia de renderização a taxas que variam em toda a imagem renderizada. |
Passagens de renderização | O recurso de passes de renderização ajuda o renderizador a melhorar a eficiência da GPU, reduzindo o tráfego de memória de/para a memória fora do chip; ele faz isso permitindo que seu aplicativo identifique melhor os requisitos de ordenação de renderização de recursos e as dependências de dados. |