vkd3d 1.2 vem com melhorias de compatibilidade, sombreamento e muito mais

O projeto Wine lançou uma nova versão do pacote vkd3d 1.2 com uma implementação Direct3D 12 que funciona traduzindo as chamadas para a API gráfica Vulkan.

Esta nova versão do vkd3d 1.2 contém várias melhorias, mas os principais que se destacam são os disponibilidade de libvkd3d-shader como uma biblioteca pública, o suporte de shader tesselação, bem como o suporte de saída de fluxo.

O pacotee inclui bibliotecas libvkd3d com implementações Direct3D 12, libvkd3d-shader com tradutor de shader modelo 4 e 5 e libvkd3d-utils com funções para simplificar a migração de aplicativos Direct3D 12, bem como um conjunto de demos, incluindo a porta glxgears para Direct3D 12. O código do projeto é distribuído licenciado sob LGPLv2.1.

A biblioteca libvkd3d suporta a maioria dos recursos Direct3D 12, incluindo gráficos e funções de computação, listas e filas de comando, descritores e descritores de heap, assinaturas de raiz, acesso não ordenado, amostradores, assinaturas de comando, constantes de raiz, representação indireta e assim por diante.

libvkd3d-shader implementa a tradução dos códigos de byte 4 e 5 dos padrões de sombreamento na representação intermediária do SPIR-V. Vértices, pixels, mosaico, sombreadores computacionais e de geometria simples, serialização de assinatura de raiz e desserialização são suportados.

As instruções de sombreador incluem operações aritméticas, atômicas e bit a bit, controle de fluxo de dados e operadores de comparação, amostragem, coleta e instruções de carregamento, operações de acesso não ordenado (UAV, visualização de acesso não ordenado).

No estágio atual de desenvolvimento, nem todas as chamadas para Direct3D 12 são implementadas e os testes foram realizados principalmente em um conjunto de aplicativos de demonstração. A versão não inclui recursos em desenvolvimento, como suporte para shaders de geometria complexa e tesselação, bem como uma série de aprimoramentos relacionados aos métodos e shaders básicos do Direct3D 12. Esses recursos serão oferecidos em uma versão futura.

Principais novos recursos do Vkd3d 1.2

Das mudanças mais importantes que são apresentadas na nova versão, é o Disponibilidade da biblioteca libvkd3d-shader para uso em projetos de terceiros, desde Várias funções do Direct3D 12 foram adicionadas, como:

  • Multi-amostragem.
  • recursos reservados.
  • Taxas de passagem de dados da instância.
  • API de "dados privados" para todas as interfaces.
  • Mapeamentos de componentes de visualização de recursos de shader
  • Extensão VK_KHR_draw_indirect_count.
  • Representação predicada / condicional.
  • Renderização de profundidade sem pixel shader.
  • Recorte de profundidade. Isso requer a extensão VK_EXT_depth_clip_enable.
  • Descarte o rasterizador.
  • Mixagem de fonte dupla.
  • Mapeamento de recursos colocados.
  • Os métodos ReadFromSubresource () e WriteToSubresource () ID3D12Resource.
  • Acesso simultâneo a recursos de várias filas.
  • Visualizações nulas. Ou seja, visualizações sem um recurso subjacente.
  • Várias outras consultas de suporte de recursos.

Além disso, Suporte adicionado para conversão, serialização e desserialização de assinaturas também é destacado root (vkd3d_serialize_versioned_root_signature () e vkd3d_create_versioned_root_signature_deserializer (), bem como suporte para saída de streaming.

Outra mudança que se destaca é a implementação de variável de ambiente: VKD3D_CONFIG para definir opções para alterar o comportamento de libvkd3d e VKD3D_VULKAN_DEVICE para substituir o dispositivo para a API Vulkan.

Além disso adicionado suporte para instruções de sombreamento bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos e suporte preliminar para shaders modelo 5.1.

E também suporte para ambientes de destino OpenGL SPIR-V. Isso permite que SPIR-V produzido por libvkd3d-shader seja usado com GL_ARB_gl_spirv. Isso inclui suporte para contadores atômicos OpenGL e amostradores combinados.

Finalmente se você quiser saber mais sobre isso sobre esta nova versão, você pode verificar a lista completa de mudanças no link a seguir.

Como instalar o vkd3d no Linux?

Para aqueles que estão interessados ​​em poder instalar o vkd3d em seu sistema, eles devem obter o código-fonte e prosseguir com a compilação, embora para fins práticos ou para os novatos, eles possam tentar esta biblioteca sem muito esforço. Para isso, basta instalar o lutris e dentro de suas configurações.

Já os interessados ​​em compilar devem obter o código com:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

Finalmente, as camadas Vulkan devem ser habilitadas:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Adicionar como fonte preferencial no Google