21 de janeiro de 2020 ocorreu o lançamento oficial da versão estável — uma ferramenta livre para executar programas nativos do Windows em ambiente UNIX. Essa é uma implementação alternativa e livre da API do Windows. O acrônimo recursivo WINE significa "Wine Is Not an Emulator".
Esta versão é resultado de cerca de um ano de desenvolvimento e mais de 7400 mudanças separadas. O desenvolvedor principal Alexandre Julliard destaca quatro:
- Suporte a módulos no formato PE. Isso resolve problemas com diferentes esquemas de proteção contra cópias que verificam módulos de sistema no disco e na memória.
- Suporte a múltiplos monitores e múltiplas GPUs, incluindo a alteração dinâmica de configurações.
- Reimplementação do XAudio2 baseada no projeto FAudio, uma implementação aberta das bibliotecas de áudio do DirectX. A transição para o FAudio permite uma qualidade de som superior em jogos, utilizando mistura de volume, efeitos sonoros avançados, entre outros.
- Suporte ao Vulkan 1.1.
Mais detalhes sobre as principais inovações.
Módulos PE
Com um compilador MinGW, a maioria dos módulos do Wine agora é compilada no formato de arquivos executáveis PE (Portable Executable, formato binário do Windows) em vez de ELF.
Os arquivos executáveis PE agora são copiados para o diretório ~/.wine em vez de usar arquivos DLL fictícios, tornando os aplicativos mais semelhantes a instalações reais do Windows.
Atualmente, nem todos os módulos foram convertidos para o formato PE. O trabalho continua.
Subsistema gráfico
Como mencionado anteriormente, foi adicionado suporte para trabalhar com múltiplos monitores e adaptadores gráficos.
O driver Vulkan foi atualizado para as especificações Vulkan 1.1.126.
Além disso, a biblioteca WindowsCodecs agora suporta formatos de raster adicionais, incluindo formatos com paleta indexada.
Direct3D
Aplicativos Direct3D em tela cheia agora bloqueiam a chamada do protetor de tela.
Para aplicativos DXGI, foi implementada a capacidade de alternar entre o modo tela cheia e o modo janela usando a combinação padrão Alt+Enter.
As capacidades do Direct3D 12 foram ampliadas: suporte à alternância entre modos de tela cheia e janela, mudanças de modos de tela, visualizações com dimensionamento e intervalos de substituição de buffers de renderização. Todas essas funções já foram implementadas para versões anteriores da API Direct3D.
Os participantes do projeto trabalharam arduamente e corrigiram literalmente centenas de bugs, melhorando assim o tratamento de várias situações limite do Wine. Entre elas está o amostragem de recursos 2D em amostradores 3D e vice-versa, a aplicação de valores de teste de transparência e profundidade que excedem os limites aceitáveis, a renderização com texturas refletidas e buffers, o uso de recortadores inválidos (objeto DirectDraw) e muito mais.
Foi reduzido o tamanho do espaço de endereçamento necessário ao carregar texturas 3D comprimidas pelo método S3TC (em vez de carregar completamente, as texturas são carregadas em pedaços).
Foram feitas várias melhorias e correções relacionadas ao cálculo de iluminação para aplicações antigas do DirectDraw.
Expandida a base de placas gráficas reconhecidas no Direct3D.
Rede e criptografia
O motor Gecko foi atualizado para a versão 2.47.1 para suportar ferramentas modernas. Foi implementada uma série de novas APIs HTML.
O MSHTML implementou suporte para elementos SVG.
Adicionadas muitas novas funções ao VBScript (por exemplo, manipuladores de erros e exceções).
Implementada a possibilidade de obter parâmetros de configuração de HTTP proxy via DHCP.
Na parte criptográfica, foi adicionado suporte para chaves criptográficas baseadas em curvas elípticas (ECC) através do GnuTLS, com a possibilidade de importar chaves e certificados de arquivos em formato PFX e suporte para o esquema de geração de chaves baseado em senha PBKDF2.
Adobe Photoshop CS6 no Wine
Outras inovações significativas
- Suporte a spinlocks do núcleo NT.
- Devido à expiração da patente para compressão de texturas DXTn e S3, agora é possível incluí-las na implementação padrão.
- Suporte à instalação de drivers plug-and-play.
- Várias melhorias no DirectWrite.
- Melhor suporte à API do Windows Media Foundation.
- Melhor sincronização de primitivos graças à implementação em futexes.
- Uso compartilhado do Wine-Mono para economizar espaço, em vez de implementar o .NET de código aberto para cada caso.
~/.wine. - Suporte para Unicode 12.0 e 12.1.
- Implementação do serviço HTTP inicial (HTTP.sys) como substituto da API Winsock e IIS, resultando em desempenho superior ao da API Windows Sockets.
- Melhor compatibilidade com depuradores do Windows.
- Melhor suporte para LLVM MinGW e melhorias na compilação cruzada do WineGCC.
Também vale mencionar as melhorias na interface do usuário. Por exemplo, as janelas minimizadas agora são exibidas com uma barra de cabeçalho, e não como ícones no estilo do Windows 3.1. O suporte a controles de jogos foi aprimorado, incluindo switch hat, volante e pedais.
Os decodificadores AVI, MPEG-I e WAVE embutidos no Wine foram removidos, substituídos agora pelos sistemas GStreamer ou QuickTime.
Foi adicionada a capacidade de usar o depurador do Visual Studio para depuração remota de aplicativos executados no Wine, e a biblioteca DBGENG (Debug Engine) foi parcialmente implementada, removendo a dependência do libwine dos arquivos compilados para Windows.
Para otimizar o desempenho, várias funções relacionadas ao tempo foram adaptadas para usar funções do sistema de alta performance para temporizadores, resultando em uma redução das sobrecargas no ciclo de renderização de muitos jogos. Outras otimizações de desempenho também foram realizadas.
Veja a lista completa de mudanças em. .
,
está escrito: mantém um banco de dados de aplicativos Windows compatíveis com Wine. Aqui estão os líderes em :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Atual
- Magic: The Gathering Online 4.x
Pode-se supor que esses aplicativos são os mais frequentemente executados no Wine.
Nota. O lançamento do Wine 5.0 é dedicado à memória de Józef Kucia, que tragicamente faleceu em agosto de 2019, aos 30 anos, enquanto explorava uma caverna no sul da Polônia. Józef foi um colaborador importante no desenvolvimento do Direct3D no Wine, além de ser um dos principais autores do projeto. Durante seu tempo trabalhando no Wine, ele contribuiu com mais de 2500 patches.

Fonte: habr.com
