Projeto Wine lançado Vkd3d 1.4 com implementação Direct3D 12

O projeto Wine publicou o lançamento do pacote vkd3d 1.4 com uma implementação do Direct3D 12 que funciona por meio de chamadas de transmissão para a API gráfica Vulkan. O pacote inclui bibliotecas libvkd3d com implementações de Direct3D 12, libvkd3d-shader com um tradutor de modelos de shader 4 e 5 e libvkd3d-utils com funções para simplificar a portabilidade de aplicativos Direct3D 12, bem como um conjunto de exemplos de demonstração, incluindo uma porta do glxgears para Direct3D 12. O código do projeto é distribuído licenciado sob LGPLv2.1.

A biblioteca libvkd3d oferece suporte à maioria dos recursos do Direct3D 12, incluindo recursos gráficos e de computação, filas e listas de comandos, identificadores e identificadores de heap, assinaturas de raiz, acesso fora de ordem, amostradores, assinaturas de comando, constantes de raiz, renderização indireta, métodos Clear *( ) e Copiar*().

No libvkd3d-shader, a tradução do bytecode dos modelos de shader 4 e 5 em uma representação SPIR-V intermediária é implementada. Suporta sombreadores de vértice, pixel, tesselação, computação e geometria simples, serialização e desserialização de assinatura raiz. As instruções do shader incluem operações aritméticas, atômicas e de bits, operadores de comparação e controle de fluxo de dados, instruções de amostra, coleta e carregamento, operações de acesso não ordenado (UAV, Unordered Access View).

Na nova versão:

  • Numerosas melhorias foram feitas no compilador de shader HLSL (High-Level Shader Language) fornecido desde o DirectX 9.0.
  • Uma nova implementação do Descriptor Heap foi proposta, usando a extensão Vulkan VK_EXT_descriptor_indexing.
  • Adicionada uma nova implementação de cerca baseada na extensão Vulkan K_KHR_timeline_semaphore.

Fonte: opennet.ru

Adicionar um comentário