Novas versões do Wine 11.10 e do Vkd3d 2.0

Foi lançado um lançamento experimental da implementação de código aberto da Win32 API — Wine 11.10. Desde o lançamento da versão 11.9, 17 relatórios de bugs foram fechados e 248 alterações foram feitas.

As alterações mais importantes:

  • O pacote integrado Vkd3d com a implementação do Direct3D 12 foi atualizado para a versão 2.0.
  • Foi proposta uma reformulação do suporte ao idioma XPath, implementada sem o uso da biblioteca libxml2.
  • A compatibilidade com VBScript foi aprimorada.
  • Stub APIs ALPC (Advanced Local Procedure Call) foram adicionados ao ntdll: NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() e NtAlpcImpersonateClientOfPort().
  • O suporte ao Bluetooth foi aprimorado, com a adição dos métodos BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid e IGattDeviceService::get_AttributeHandle.
  • Na implementação do d3dx10 e d3dx11, foi adicionada a capacidade de carregar arquivos DDS com arrays de texturas. A função D3DX10LoadTextureFromTexture() agora suporta texturas 3D, texturas com suporte a níveis de detalhe e a geração de níveis MIP (MipMap).
  • As funções NtUserGetMessagePos() e NtUserSetMessageExtraInfo() foram implementadas na DLL win32u.
  • Relatórios de erros relacionados a aplicativos foram fechados: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3.
    TrackChecker.
  • Relatórios de erros relacionados a jogos foram fechados: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: The Asian Dynasties.

O projeto Wine também publicou uma versão do pacote vkd3d 2.0 com uma implementação do Direct3D 12, funcionando através da tradução de chamadas para a API gráfica Vulkan. O pacote inclui bibliotecas libvkd3d com a implementação do Direct3D 12, libvkd3d-shader com um tradutor de modelos de sombreamento 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 maior parte das funcionalidades do Direct3D 12, incluindo ferramentas para gráficos e computação, filas e listas de comandos, descritores e descritores de heap, assinaturas raiz, acesso não ordenado, Samplers, assinaturas de comandos, constantes raiz, renderização indireta, métodos Clear*() e Copy*(). Na libvkd3d-shader é implementada a tradução de bytecode de modelos de shaders para uma representação intermediária SPIR-V. Suportam-se shaders de vértices, pixel, tesselação, computacionais e de geometria simples, serialização e desserialização de assinatura raiz. Entre as instruções de shader, são implementadas operações aritméticas, atômicas e de bit, 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 do vkd3d:

  • Na implementação da linguagem de shaders HLSL, foi adicionada suporte inicial para loops em 2-3 modelos de shaders, e agora é possível escrever em memória compartilhada estruturada de grupos de threads, implementadas funções embutidas tex3Dbias(), tex3Dlod() e texCUBElod(), além de suporte para as semânticas SV_ClipDistance, SV_CullDistance e SV_StencilRef para tratamento de entrada e saída de shaders.
  • No compilador de shaders HLSL, foi implementada a remoção automática de cálculos duplicados, garantindo o cálculo em tempo de compilação de expressões como x % y com valores previamente conhecidos, além de um melhor gerenciamento de registradores temporários. Conforme as exigências da especificação HLSL, a visibilidade de variáveis em loops 'for' foi expandida (a variável permanece acessível após o término do loop). Ao analisar números decimais, a contagem de localidade foi interrompida (agora o ponto é sempre usado como separador).
  • Foi melhorado o suporte ao antigo formato binário de shaders do Direct3D. Foram implementadas instruções m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth,
    texreg2ar, texreg2gb, texreg2rgb. Adicionou-se suporte a modificadores '_dz', '_db', '_dw' e '_da', que podem ser utilizados com as instruções texcrd e texld. Foi adicionado suporte aos registradores 'vFace' e 'vPos' para funcionamento com shaders de pixels.
  • No DXIL (Direct3D Intermediate Language), no código, nas operações de carregamento, armazenamento, alteração atômica e comparação, foi implementada a possibilidade de usar ponteiros para dados declarados posteriormente.
  • O suporte a constantes internas de 16 bits e as flags '64UAVs' foram adicionados ao assembly de shaders Direct3D,
    ‘ROVs’,
    ‘UAVLoadAdditionalFormats’,
    ‘UAVsAtEveryStage’,
    ‘allResourcesBound’,
    ‘enable11_1ShaderExtensions’,
    ‘int64Ops’,
    ‘nativeLowPrecision’,
    ‘stencilRef’,
    ‘viewportAndRTArrayIndex’ e
    ‘waveOps’.
  • As opções de compilação de shaders foram implementadas: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 e VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.

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