O projeto Wine lançou o Vkd3d 1.13 com implementação do Direct3D 12.

O projeto Wine lançou a versão 1.13 do pacote vkd3d com a implementação do Direct3D 12, que funciona 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 para os modelos de shaders 4 e 5, e libvkd3d-utils com funções que facilitam a portabilidade de aplicações Direct3D 12, além de um conjunto de exemplos demonstrativos, incluindo a porta 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 computação, filas e listas de comandos, descritores e descritores de heap, assinaturas raízes, acesso desordenado, samplers, assinaturas de comandos, constantes raízes, renderização indireta, métodos Clear*() e Copy*(). A libvkd3d-shader implementa a tradução de bytecode de modelos de shaders para a representação intermediária SPIR-V. Suporta shaders de vértices, pixels, tesselação, computacionais e shaders geométricos simples, serialização e desserialização de assinaturas raízes. Entre as instruções de shaders implementadas estão operações aritméticas, atômicas e bit a bit, operadores de comparação e controle de fluxo de dados, instruções sample, gather e load, além de operações de acesso desordenado (UAV, Unordered Access View).

Na nova versão:

  • O compilador HLSL agora suporta o desenrolamento de loops (loop unrolling, uma otimização que substitui operações cíclicas por várias cópias em sequência do código para um uso mais eficiente do cache de CPU e para reduzir ramificações).
  • Foi adicionada a suporte ao compilador de efeitos para alguns objetos de estado do quarto modelo de shaders.
  • Foi garantido suporte para os tipos do quarto modelo de shaders: BlendState, ComputeShader, DomainShader, GeometryShader, HullShader, DepthStencilState e RasterizerState, assim como para as funções OMSetRenderTargets(), SetBlendState(), SetComputeShader(), SetDomainShader(), SetGeometryShader(), SetHullShader(), SetPixelShader(), SetVertexShader(), SetDepthStencilState() e SetRasterizerState().
  • O compilador de shaders implementou suporte para análise e armazenamento de valores de inicialização em diversos formatos para variáveis globais, parâmetros de funções e anotações.
  • Foi adicionada a suporte para o espaço de registro do modelo de shader 5.1.
  • Foram implementadas funções embutidas como tex1D(), tex2D(), tex3D(), texCUBE(), asint(), f16tof32(), faceforward(), GetRenderTargetSampleCount(), rcp(), tex2Dbias(), tex1Dgrad(), tex2Dgrad(), tex3Dgrad() e texCUBEgrad().
  • O libvkd3d adicionou a interface ID3D12CommandList6 e implementou a capacidade de criar texturas cujas compressões ocorrem no nível de blocos individuais (por exemplo, blocos de 4×4 pixels são comprimidos separadamente).
  • Foi adicionada a suporte para a estrutura vkd3d_shader_parameter_info e para os parâmetros VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF, VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION e VKD3D_SHADER_PARAMETER_TYPE_BUFFER.

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