Candidatos a lançamentos do Wine 9.0 e lançamento do vkd3d 1.10

Teve início o teste do primeiro candidato a lançamentos do Wine 9.0, uma implementação aberta do WinAPI. A base de código foi submetida a uma fase de congelamento antes do lançamento, previsto para a segunda metade de janeiro. Em comparação com o lançamento do Wine 8.21, 52 relatórios de erros foram encerrados e 391 alterações foram feitas.

As alterações mais importantes:

  • O pacote embutido vkd3d, que implementa o Direct3D 12 através da tradução de chamadas para o API gráfico Vulkan, foi atualizado para a versão 1.10.
  • O desenvolvimento de funcionalidades continuou, visando permitir o uso do Wine em ambientes baseados no protocolo Wayland, sem a necessidade do XWayland e componentes X11. O driver winewayland.drv agora suporta layouts de teclado. O suporte para o API gráfico Vulkan foi ampliado e foram adicionadas as funções vkQueuePresentKHR, vkGetDeviceGroupSurfacePresentModesKHR, vkGetPhysicalDevicePresentRectanglesKHR. A função ClipCursor foi adicionada e a possibilidade de trabalhar com coordenadas relativas ao rastrear o movimento do mouse foi implementada.
  • Com as novas versões do GnuTLS, o suporte para chaves de criptografia DH (Diffie-Hellman) foi implementado.
  • Foram fechados relatórios de erros relacionados ao funcionamento de aplicativos: Notepad, MS Word, Roon, eFilm Workstation 2.x/3.x, Athena’s Charm Table Search 0.35b, Process Explorer, Araxis Merge 2023.5877, Framemaker 8, Internet Download Manager, Air Jura, SpeedCommander, ModOrganizer, RestoreDC, Acid-V VST plugin, MIDITrail 1.4.0.
  • Foram fechados relatórios de erros relacionados ao funcionamento de jogos: For Honor, STEEP, Far Cry 5, NFS Most Wanted, Castlevania: Lords of Shadow 2, Eurobattle, Daily Chthonicle, Crimson Skies.

Além disso, vale destacar a publicação do pacote vkd3d 1.10 pelo projeto Wine, que implementa o Direct3D 12 através da tradução de chamadas para o API gráfico Vulkan. O pacote inclui as bibliotecas libvkd3d com a implementação do Direct3D 12, libvkd3d-shader com tradutores para os modelos de shaders 4 e 5, e libvkd3d-utils com funções para facilitar a portabilidade de aplicativos Direct3D 12, bem como um conjunto de exemplos demostrativos, 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 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, o trabalho para melhorar o compilador de shaders na linguagem HLSL (High-Level Shader Language), fornecido desde o DirectX 9.0, foi continuado: adicionada a suportação para indexação dinâmica de arrays; expressões 'break', 'continue' e 'switch' foram adicionadas; as expressões que podem aplicar a fusão de constantes foram ampliadas; funções embutidas como ceil(), degrees(), radians(), fwidth(), tan(), tex2Dlod(), tex2Dproj(), texCUBEproj() e tex3Dproj() foram implementadas.

Novas interfaces de programação Direct3D 12 (ID3D12Device5, ID3D12GraphicsCommandList5 e ID3D12Resource1) foram adicionadas à biblioteca libvkd3d e a possibilidade de criar objetos de estado de pipeline (pipeline state object) foi implementada. Na libvkd3d-utils, funções auxiliares para manipulação de DXBC foram adicionadas: D3DGetBlobPart(), D3DGetDebugInfo(), D3DGetInputAndOutputSignatureBlob(), D3DGetInputSignatureBlob(), D3DGetOutputSignatureBlob(), D3DStripShader(). No compilador vkd3d-compiler, as opções '--fragment-coordinate-origin' e '--semantic-compat-map' foram adicionadas.

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