O projeto Wine publicou o Vkd3d 1.11 com a implementação do Direct3D 12

O projeto Wine lançou a versão do pacote vkd3d 1.11 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 de shaders das versões 4 e 5 e libvkd3d-utils com funções para facilitar a portabilidade de aplicações Direct3D 12, além de um conjunto de exemplos demonstrativos, incluindo o port glxgears para o Direct3D 12. O código do projeto é distribuído sob a licença LGPLv2.1.

A biblioteca libvkd3d suporta a maior parte das capacidades do Direct3D 12, incluindo ferramentas para gráficos e computação, filas e listas de comandos, descritores e descritores de heap, assinaturas de raiz, acesso não ordenado, Samplers, assinaturas de comandos, constantes de raiz, renderização indireta, métodos Clear*() e Copy*(). A libvkd3d-shader implementa a tradução de bytecode de modelos de shaders 4 e 5 para a representação intermediária SPIR-V. Suportes para shaders de vértices, pixels, tesselação, computação e simples geometrias, além da serialização e desserialização da assinatura de raiz. 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, operações de acesso não ordenado (UAV, Unordered Access View).

Na nova versão:

  • Adicionada a suporte inicial para compilar bytecode antigo do Direct3D para uma representação intermediária de shaders SPIR-V.
  • O compilador HLSL agora possui suporte inicial para compilar perfis de efeitos do Direct3D (“fx_2_0”, “fx_4_0”, “fx_4_1” e “fx_5_0”).
  • Adicionada suporte experimental para compilar a linguagem intermediária DXIL (DirectX Intermediate Language) para a representação SPIR-V e instruções assemblers dos shaders Direct3D.
  • No HLSL, foram adicionados os perfis “fx_2_0”, “fx_4_0”, “fx_4_1” e “fx_5_0”, juntamente com funções incorporadas como acos(), asin(), atan() e atan2(), além do suporte para recursos “Buffer”.
  • Uma otimização foi adicionada, que realiza a atualização de descritores de forma assíncrona, podendo acelerar aplicações que atualizam um grande número de descritores a cada quadro.
  • As extensões Vulkan VK_EXT_mutable_descriptor_type e VK_EXT_shader_viewport_index_layer foram implementadas para aumentar a eficácia do gerenciamento do pool de descritores e acelerar a renderização de arrays de shaders de vértices e tesseladores.
  • Suporte adicionado para as interfaces ID3D12Device7 e ID3D12Resource2. O método GetResourceAllocationInfo1() foi adicionado à interface ID3D12Device4.
  • Suporte adicionado para as interfaces D3DReflect() e D3DDisassemble().
  • Foram implementadas verificações para as opções D3D12_FEATURE_D3D12_OPTIONS6, D3D12_FEATURE_D3D12_OPTIONS7, D3D12_FEATURE_D3D12_OPTIONS8, D3D12_FEATURE_D3D12_OPTIONS9, D3D12_FEATURE_D3D12_OPTIONS10, D3D12_FEATURE_D3D12_OPTIONS11, D3D12_FEATURE_D3D12_OPTIONS12, D3D12_FEATURE_D3D12_OPTIONS13.
  • Novas opções de compilação foram adicionadas: VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 e VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER.
  • As extensões Vulkan VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface e VK_MVK_ios_surface foram integradas nas funções D3D12CreateDeviceVKD3D() e D3D12CreateDevice().

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