Compartilhar via


Novidades no Direct3D 11 Tech Preview de novembro de 2008

Esta versão do Direct3D 11 contém novos recursos, ferramentas e documentação.

Item Descrição
Mosaico
O Direct3D 11 fornece estágios de pipeline adicionais para dar suporte à mosaico em tempo real de primitivos de alta ordem. Com funcionalidades amplamente programáveis, esse recurso permite muitos métodos diferentes para avaliar superfícies de alta ordem, incluindo superfícies de subdivisão usando técnicas de aproximação, patches de Bezier, mosaico adaptável e mapeamento de deslocamento. Esse recurso só estará disponível no hardware da classe Direct3D 11, portanto, para avaliar esse recurso, você precisará usar o Rasterizer de Referência. Para uma demonstração de mosaico em ação, marcar o exemplo SubD11 disponível por meio do Navegador de Exemplo.
Sombreador de Computação
O Sombreador de Computação é um estágio adicional independente do pipeline do Direct3D 11 que permite a computação de uso geral na GPU. Além de todos os recursos de sombreador fornecidos pelo núcleo de sombreador unificado, o Sombreador de Computação também dá suporte a leituras e gravações dispersas em recursos por meio de Exibições de Acesso Não Ordenado, um pool de memória compartilhada dentro de um grupo de threads em execução, primitivos de sincronização, operadores atômicos e muitos outros recursos avançados de paralelo de dados. Uma variante do Sombreador de Computação do Direct3D 11 foi habilitada nesta versão que pode operar no hardware da classe Direct3D 10. Portanto, é possível desenvolver Sombreadores de Computação em hardware real, mas um driver atualizado é necessário. A funcionalidade completa do Sombreador de Computação do Direct3D 11 destina-se ao suporte ao hardware da classe Direct3D 11, portanto, para avaliar a funcionalidade completa, você precisará usar o Rasterizer de Referência até que esse hardware esteja disponível. Para uma demonstração do Sombreador de Computação em ação, marcar o exemplo HDRToneMappingCS11 disponível por meio do Navegador de Exemplo.
Renderização multithread
A principal diferença de API do Direct3D 10 no Direct3D 11 é a adição de contextos adiados, o que permite a execução escalonável de comandos Direct3D distribuídos em vários núcleos. Um Contexto Adiado captura e monta ações como alterações de estado e envios de desenho que podem ser executados no dispositivo real posteriormente. Utilizando Contextos Adiados em vários threads, um aplicativo pode distribuir a sobrecarga de CPU necessária no runtime do Direct3D11 e o driver para vários núcleos, permitindo um melhor uso da configuração de computador de um usuário final. Esse recurso está disponível para uso no hardware atual do Direct3D 10, bem como no rasterizador de referência. Para uma demonstração do uso da API, marcar o exemplo MultithreadRendering11 disponível por meio do Navegador de Exemplo.
Vinculação do sombreador dinâmico
Para resolver o problema de explosão combinatória visto na especialização de sombreadores para desempenho, o Direct3D 11 apresenta uma forma limitada de vinculação de sombreador de runtime que permite especialização de sombreador quase ideal durante a execução de um aplicativo. Isso é feito especificando as implementações de funções específicas no código do sombreador quando o sombreador é atribuído ao pipeline, permitindo que o driver inline as instruções de sombreador nativo rapidamente em vez de forçar o driver a recompilar o idioma intermediário em instruções nativas com a nova configuração. O desenvolvimento do sombreador é exposto por meio da introdução de classes e interfaces ao HLSL. Para uma demonstração, marcar o exemplo do Linkage 11 do Sombreador Dinâmico disponível por meio do Navegador de Exemplo.
Warp (Windows Advanced Rasterizer)
Disponível neste SDK por meio do Direct3D 11 e, eventualmente, também por meio do Direct3D 10.1, WARP é um rasterizador de dimensionamento rápido de vários núcleos que é totalmente compatível com o Direct3D 10.1. Utilizar essa tecnologia é tão simples quanto passar o sinalizador D3D_DRIVER_TYPE_WARP na criação do dispositivo.
Direct3D 10 e Direct3D 11 no Hardware Direct3D 9 (D3D10 Nível 9)
Disponível neste SDK por meio do Direct3D 11 e, eventualmente, também por meio do Direct3D 10.1, a API do Direct3D pode ter como destino a maioria dos hardwares direct3D 9, bem como direct3D 10, Direct3D 10.1 e direct3D 11 hardware. Isso é feito fornecendo o mecanismo Nível de Recurso, que agrupa o hardware em seis categorias, dependendo da funcionalidade: 9_1, 9_2, 9_3, 10_0, 10_1 e 11_0. Um cartão só atenderá a um nível de recurso se ele estiver totalmente em conformidade com esse nível e cada nível for um superconsetório estrito daqueles abaixo dele. A funcionalidade é minimamente emulada para garantir que nenhum precipício de desempenho inesperado seja encontrado. Assim, recursos como Sombreadores geometry não estão disponíveis para destinos de nível Direct3D 9.
Binários de runtime
Todos os binários de runtime fornecidos na versão prévia técnica do Direct3D 11 que estarão disponíveis no Windows 7 e no Windows Vista SP1 são instalados com o SDK e são rotulados como componentes "Beta" (ou seja, D3D11_beta.DLL). Todos os componentes rotulados beta são bombardeados no tempo. Para criar projetos para avaliar esses novos componentes, você deve vincular às bibliotecas de importação com rótulo beta equivalentes (ou seja, D3D11_beta.lib). Se você tiver uma cópia PDC do Windows 7, os cabeçalhos, libs e pdbs fornecidos no SDK do Windows com o build serão apropriados para desenvolvimento usando os componentes do Direct3D 11 fornecidos no Windows 7. Reserve o uso dos cabeçalhos, libs e pdbs neste SDK para os componentes beta fornecidos aqui.
D3DX11
Atualmente, o D3DX11 dá suporte ao carregamento de textura, compilação de sombreador, carregamento de dados e funções de thread de trabalho para recursos do Direct3D 11. No futuro, esse componente fornecerá mais tecnologias disponíveis no D3DX10. A funcionalidade de compilação do sombreador também é fornecida diretamente por meio do componente do Compilador Direct3D, descrito em seguida.
Compilador HLSL e Direct3D
O compilador HLSL tem vários novos recursos para dar suporte às novas tecnologias disponíveis no Direct3D 11. Isso inclui programação orientada a objetos por meio de interfaces e classes, uma sintaxe de indexação direta para cargas de recursos e a palavra-chave "precisa" para garantir que todas as operações executadas com uma variável específica aderem às regras estritas de ponto flutuante. Quase todos os novos recursos linguísticos têm funcionalidade válida em destinos de sombreador existentes. Além de dar suporte a todos os sombreadores Direct3D 9, Direct3D 10, Direct3D 10.1 e Direct3D 11, o compilador HLSL também dá suporte aos destinos especiais necessários para gravar sombreadores para destinos de Nível 9 do Direct3D 10. O Compilador D3D agora está diretamente acessível fora de D3DX10 e D3DX11 por meio de D3DCompiler.H e D3DCompiler.lib. Com esses novos arquivos, um aplicativo não é necessário para vincular ao D3DX para executar a compilação de runtime e um aplicativo não será necessário para incluir o compilador se apenas a funcionalidade D3DX for necessária.
Rasterizador de Referência D3D11
O Rasterizador de Referência fornece uma implementação de rasterização padrão ouro para avaliação de recursos do Direct3D 11 ainda não disponíveis no hardware. O Rasterizador de Referência também é fornecido como uma maneira de verificar a precisão de uma implementação de hardware específica para o padrão de rasterização. O rasterizador de referência foi projetado para correção, não para desempenho. Para criar um dispositivo de referência, basta passar o sinalizador D3D_DRIVER_TYPE_REFERENCE na criação do dispositivo.
Camadas do SDK D3D11
As Camadas do SDK do Direct3D11 fornecem um mecanismo para acompanhar a operação do runtime do Direct3D 11 durante o desenvolvimento. Atualmente, isso é usado para fornecer informações úteis de depuração, que não só incluem erros de uso inadequado, mas também avisos que recomendam o uso de práticas recomendadas do runtime e geralmente fornece informações úteis e detalhadas para depuração. É altamente recomendável que a saída de depuração das Camadas do SDK D3D11 seja ativada em todos os momentos durante o desenvolvimento e um aplicativo não gere nenhuma saída de depuração durante a execução antes de ser lançado ou usado com o PIX para Windows para criação de perfil. Habilitar a camada de depuração é tão simples quanto passar o sinalizador D3D11_CREATE_DEVICE_DEBUG no momento da criação do dispositivo. Os desenvolvedores são altamente incentivados a usar camadas em builds de depuração. As camadas não são recomendadas para uso em builds de perfil ou de versão.
Novos exemplos
Esta versão tem quatro novos exemplos.
  • O exemplo de Linkage 11 do Sombreador Dinâmico demonstra o uso de interfaces de sombreador Do Sombreador Modelo 5 e suporte do Direct3D 11 para vincular métodos de interface do sombreador em runtime.
  • O exemplo HDRToneMappingCS11 demonstra como configurar e executar o Sombreador de Computação (CS para breve mais tarde), que é um dos novos recursos mais interessantes do Direct3D 11. Embora o exemplo utilize apenas o CS para implementar o mapeamento de tom HDR, o conceito deve se estender facilmente a outros algoritmos pós-processamento, bem como a cálculos mais gerais.
  • O exemplo MultithreadedRendering11 demonstra como dividir a renderização entre vários threads, com uma sobrecarga muito baixa.
  • O novo exemplo subD11 é muito semelhante ao exemplo SubD10 no SDK do DirectX, exceto pelo fato de ter sido aprimorado para aproveitar três novos estágios de pipeline do Direct3D 11: o sombreador de casco, o mosaico e o sombreador de domínio.

Recursos introduzidos em versões anteriores