O projeto Wine lançou o Vkd3d 1.3 com a implementação do Direct3D 12

Após um ano e meio de desenvolvimento, o projeto Wine lançou a versão do pacote vkd3d 1.3 com a implementação do Direct3D 12, funcionando através da tradução de chamadas para a API gráfica Vulkan. O pacote inclui as bibliotecas libvkd3d com a implementação do Direct3D 12, libvkd3d-shader com o tradutor de shaders dos modelos 4 e 5, e libvkd3d-utils com funções para facilitar a portabilidade de aplicativos Direct3D 12, além de um conjunto de exemplos demonstrativos, incluindo a portabilidade do glxgears para Direct3D 12. O código do projeto é distribuído sob a licença LGPLv2.1.

A biblioteca libvkd3d suporta a maioria das funcionalidades do Direct3D 12, incluindo recursos para gráficos e cálculos, filas e listas de comandos, descritores e pilhas de descritores, assinaturas de raiz, acesso não ordenado, samplers, assinaturas de comandos, constantes de raiz, renderização indireta, métodos Clear*() e Copy*().

No libvkd3d-shader, a tradução de bytecode dos modelos de shader 4 e 5 para a representação intermediária SPIR-V foi implementada. Shaders de vértices, pixel, tesselação, computação e shaders geométricos simples, assim como a serialização e desserialização de assinaturas de raiz são suportados. Das instruções de shader, foram implementadas operações aritméticas, atômicas e bitwise, operadores de comparação e controle de fluxo de dados, instruções sample, gather e load, e operações de acesso não ordenado (UAV - Unordered Access View).

Entre as inovações mais significativas do vkd3d 1.3 estão:

  • Adicionada a suporte inicial à compilação e pré-processamento de shaders na linguagem HLSL (High-Level Shader Language), disponível desde o DirectX 9.0.
  • Adicionada a suporte a arrays de descritores, definidos no modelo de shader 5.1.
  • Suporte a operações com números de ponto flutuante de dupla precisão em shaders, endereçamento indireto para shaders de tesselação, exportação de stencils de shaders, modificador de shader "precise" e barreiras globais para recursos na memória.
  • Implementada a capacidade de desassemblar shaders Direct3D de bytecode para uma representação em assembly.
  • Suporte à análise do antigo formato de bytecode Direct3D usado nos modelos de shader Direct3D 1, 2 e 3.
  • Em libvkd3d foram adicionadas funcionalidades do Direct3D 12, como assinaturas de raiz, contadores de visualização com acesso não ordenado, operadores lógicos de mesclagem para saída, e modo de endereçamento de texturas mirror_once. Adicionada a estrutura vkd3d_host_time_domain_info.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster