Versión estable de Wine 5.0

Despois dun ano de desenvolvemento e 28 versións experimentais presentado versión estable da implementación aberta da API Win32 - Viño 5.0, que incluíu máis de 7400 cambios. Os principais logros da nova versión inclúen a entrega de módulos Wine integrados en formato PE, soporte para configuracións de varios monitores, unha nova implementación da API de audio XAudio2 e soporte para a API de gráficos Vulkan 1.1.

En viño confirmado funcionamento completo de 4869 (un ano atrás 4737) programas para Windows, outros 4136 (un ano atrás 4045) programas funcionan perfectamente con configuracións adicionais e DLL externas. 3635 programas teñen pequenos problemas de rendemento que non interfiren co uso das funcións básicas da aplicación.

Chave innovacións Viño 5.0:

  • Módulos en formato PE
    • Co compilador MinGW, a maioría dos módulos Wine agora están construídos no formato de ficheiro executable PE (Executable portátil, usado en Windows) en lugar de ELF. O uso de PE resolve problemas coa compatibilidade de varios esquemas de protección contra copias que verifican a identidade dos módulos do sistema no disco e na memoria;
    • Os executables PE agora cópianse no directorio ~/.wine ($WINEPREFIX) en lugar de usar ficheiros DLL simulados, o que fai que as cousas sexan máis semellantes ás instalacións reais de Windows, a costa de consumir espazo adicional no disco;
    • Os módulos convertidos ao formato PE poden usar estándar wchar Funcións e constantes C con Unicode (por exemplo, L"abc");
    • O tempo de execución Wine C engadiu soporte para a ligazón con binarios construídos en MinGW, que se usa por defecto en lugar do tempo de execución de MinGW cando se crean DLL;
  • Subsistema gráfico
    • Engadiuse compatibilidade para traballar con varios monitores e adaptadores de gráficos, incluíndo a posibilidade de cambiar dinámicamente a configuración;
    • O controlador para a API de gráficos Vulkan actualizouse para cumprir coa especificación Vulkan 1.1.126;
    • A biblioteca WindowsCodecs ofrece a posibilidade de converter formatos ráster adicionais, incluídos os formatos cunha paleta indexada;
  • Direct3D
    • Cando se executan aplicacións Direct3D a pantalla completa, a chamada do protector de pantalla está bloqueada;
    • DXGI (DirectX Graphics Infrastructure) engadiu soporte para informar a unha aplicación cando se minimiza a súa xanela, o que permite que a aplicación reduza o rendemento das operacións de uso intensivo de recursos ao minimizar a xanela;
    • Para aplicacións que usan DXGI, agora é posible cambiar entre o modo de pantalla completa e o de fiestra usando a combinación Alt+Intro;
    • Ampliáronse as capacidades da implementación de Direct3D 12, por exemplo, agora hai soporte para cambiar entre os modos de pantalla completa e de fiestra, cambiar os modos de pantalla, escalar a saída e xestionar o intervalo de substitución do búfer de renderizado (intervalo de intercambio);
    • Mellora do manexo de varias situacións límite, como o uso de valores de entrada fóra de rango para probas de transparencia e profundidade, renderizado con texturas reflectidas e búfers e o uso de obxectos DirectDraw incorrectos. cortadora, creando dispositivos Direct3 para fiestras incorrectas, utilizando áreas visibles cuxos valores mínimos dos parámetros sexan iguais aos máximos, etc.
    • Direct3D 8 e 9 proporcionan un seguimento máis preciso "sucio» áreas de texturas cargadas;
    • O tamaño do espazo de enderezos necesario ao cargar texturas 3D comprimidas co método S3TC reduciuse (en lugar de cargar por completo, as texturas cárganse en anacos).
    • Interface implementada ID3D11Multithread para protexer seccións críticas en aplicacións multiproceso;
    • Realizáronse varias melloras e correccións relacionadas cos cálculos de iluminación para aplicacións DirectDraw máis antigas;
    • Implementáronse chamadas adicionais para obter información sobre os sombreadores na API ShaderReflection;
    • wined3d agora admite ampolla Baseado en CPU para procesar recursos comprimidos;
    • Ampliouse a base de datos de tarxetas gráficas recoñecidas en Direct3D;
    • Engadíronse novas claves de rexistro HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (backend para traballar con sombreadores: “glsl” para GLSL, “arb” para vértice/fragmento ARB e “none” para desactivar o soporte de sombreadores), “strict_shader_math” ( 0x1 - activar, 0x0 - desactivar a conversión de sombreadores Direct3D). Obsoletouse a chave "UseGLSL" (debería usar "shader_backend");
  • D3DX
    • Implementouse o soporte para o mecanismo de compresión de texturas 3D S3TC (S3 Texture Compression);
    • Engadíronse implementacións correctas de operacións como o recheo de texturas e as superficies non mapeables;
    • Fixéronse varias melloras e correccións no marco de creación efectos visuais;
  • Núcleo (Interfaces do núcleo de Windows)
    • A maioría das funcións usadas en Kernel32 foron movidas a
      KernelBase, tras cambios na arquitectura de Windows;

    • Capacidade de mesturar DLL de 32 e 64 bits en directorios utilizados para a carga. Asegura que se ignoren as bibliotecas que non coinciden coa profundidade de bits actual (32/64), no caso de que máis lonxe no camiño sexa posible atopar unha biblioteca que sexa correcta para a profundidade de bits actual;
    • Para os controladores de dispositivos, mellorouse a emulación de obxectos do núcleo;
    • Obxectos de sincronización implementados a nivel do núcleo, como bloqueos de rotación, mutex rápido e variables anexas a un recurso;
    • Asegura que as aplicacións estean correctamente informadas sobre o estado da batería;
  • Interface de usuario e integración de escritorio
    • As fiestras minimizadas agora móstranse usando unha barra de título en lugar dunha icona de estilo Windows 3.1;
    • Engadíronse novos estilos de botón SplitButton (botón cunha lista despregable de accións) e Ligazóns de comandos (ligazóns nos cadros de diálogo usados ​​para pasar á seguinte fase);
    • Creáronse ligazóns simbólicas para os cartafoles ‘Descargas’ e ‘Modelos’, que apuntan aos directorios correspondentes nos sistemas Unix;
  • Dispositivos de entrada
    • No inicio, instálanse e cargan os controladores de dispositivos Plug & Play necesarios;
    • Compatibilidade mellorada para controladores de xogos, incluíndo un mini-joystick (interruptor de sombreiro), volante, gas e pedais de freo.
    • O soporte para a antiga API de joystick de Linux usada nos núcleos de Linux anteriores á versión 2.2 foi descontinuada;
  • . Net
    • O motor Mono actualizouse á versión 4.9.4 e agora inclúe partes do cadro de Windows Presentation Foundation (WPF);
    • Engadida a posibilidade de instalar complementos con Mono e Gecko nun directorio común, colocando ficheiros na xerarquía /usr/share/wine en lugar de copialos a novos prefixos;
  • Funcións da rede
    • O motor do navegador Wine Gecko, que se usa na biblioteca MSHTML, foi actualizado para a versión 2.47.1. Implementouse o soporte para novas API HTML;
    • MSHTML agora admite elementos SVG;
    • Engadíronse moitas funcións VBScript novas (por exemplo, manejadores de erros e excepcións, funcións Hora, Día, Mes, String, LBound, RegExp.Replace, РScriptTypeInfo_* e ScriptTypeComp_Bind*, etc.);
    • Preservación do estado do código en VBScript e JScript (persistencia do script);
    • Engadida unha implementación inicial do servizo HTTP (WinHTTP) e da API asociada (HTTPAPI) para aplicacións cliente e servidor que envían e reciben solicitudes mediante o protocolo HTTP;
    • Implementouse a posibilidade de obter a configuración do proxy HTTP mediante DHCP;
    • Engadido soporte para redireccionar solicitudes de autenticación a través do servizo Microsoft Passport;
  • Criptografía
    • Soporte implementado para claves criptográficas de curva elíptica (ECC) ao usar GnuTLS;
    • Engadida a posibilidade de importar claves e certificados de ficheiros en formato PFX;
    • Engadido soporte para o esquema de xeración de claves baseado no contrasinal PBKDF2;
  • Texto e fontes
    • A implementación da API de DirectWrite engadiu compatibilidade con funcións OpenType relacionadas con posicionamento de glifos, que están activados por defecto para o estilo latino, incluído o kerning;
    • Seguridade mellorada para procesar datos de fontes comprobando a corrección de varias táboas de datos antes de usalas;
    • As interfaces de DirectWrite foron adaptadas ao SDK máis recente;
  • Son e vídeo
    • Propúxose unha nova implementación da API de son XAudio2, construído sobre a base do proxecto Faudio. Usar FAudio in Wine permíteche acadar unha maior calidade de son nos xogos e utilizar funcións como a mestura de volume e efectos de son avanzados;
    • Engadíronse un gran número de novas chamadas á implementación do marco de Media Foundation, incluíndo soporte para colas asíncronas integradas e personalizadas, API de lector de fontes, sesión multimedia, etc.
    • O filtro de captura de vídeo cambiouse a usar a API v4l2 en lugar da API v4l1, que ampliou a gama de cámaras compatibles;
    • Elimináronse os descodificadores AVI, MPEG-I e WAVE integrados, en lugar dos cales agora utilízanse o sistema GStreamer ou QuickTime;
    • Engadiuse un subconxunto de API de configuración VMR7;
    • Engadido soporte para axustar o volume das canles individuais aos controladores de son;
  • Internacionalización
    • Táboas Unicode actualizadas á versión 12.1.0;
    • Soporte implementado para a normalización Unicode;
    • Instalación automática proporcionada da rexión xeográfica (HKEY_CURRENT_USER\Control Panel\International\Geo) baseada na configuración rexional actual;
  • RPC/COM
    • Engadido soporte para estruturas complexas e matrices a typelib;
    • Engadida a implementación inicial da biblioteca de tempo de execución de Windows Script;
    • Engadida a implementación inicial da biblioteca ADO (Microsoft ActiveX Data Objects);
  • Instaladores
    • Implementouse o soporte para a entrega de parches (Arquivos de parche) para o instalador de MSI;
    • A utilidade WUSA (Windows Update Standalone Installer) agora ten a posibilidade de instalar actualizacións en formato .MSU;
  • Plataforma ARM
    • Para a arquitectura ARM64, engadiuse a compatibilidade para desenrolar a pila a ntdll. Engadido soporte para conectar bibliotecas externas de libunwind;
    • Para a arquitectura ARM64, implementouse soporte para proxies sen fisuras para interfaces de obxectos;
  • Ferramentas de desenvolvemento / Winelib
    • Engadida a posibilidade de usar o depurador de Visual Studio para depurar de forma remota aplicacións que se executan en Wine;
    • A biblioteca DBGENG (Debug Engine) implementouse parcialmente;
    • Os binarios compilados para Windows xa non dependen de libwine, o que lles permite executarse en Windows sen dependencias adicionais;
    • Engadiuse a opción '--sysroot' ao compilador de recursos e ao compilador IDL para determinar a ruta dos ficheiros de cabeceira;
    • Opcións engadidas '—target', '—wine-objdir', '—wine-objdir' a winegcc
      '—winebuild' e '-fuse-ld', que simplifican a configuración do entorno para a compilación cruzada;

  • Aplicacións integradas
    • Implementouse unha utilidade CHCP para configurar a codificación da consola;
    • Implementouse a utilidade MSIDB para manipular bases de datos en formato MSI;
  • Optimización do rendemento
    • Varias funcións de temporización foron migradas para utilizar funcións de temporizador do sistema de alto rendemento, reducindo a sobrecarga no bucle de renderización de moitos xogos;
    • Engadida a posibilidade de usar Ext4 en FS réxime traballar sen distinción entre maiúsculas e minúsculas;
    • Optimizouse o rendemento de procesar un gran número de elementos nos diálogos de visualización de listas que operan no modo LBS_NODATA;
    • Engadida unha implementación máis rápida de bloqueos SRW (Slim Reader/Writer) para Linux, traducido a Futex;
  • Dependencias externas
    • Para montar módulos en formato PE, utilízase o compilador cruzado MinGW-w64;
    • A implementación de XAudio2 require a biblioteca FAudio;
    • Para rastrexar os cambios de ficheiros nos sistemas BSD
      utilízase a biblioteca Inotify;

    • Para xestionar excepcións na plataforma ARM64, é necesaria a biblioteca Unwind;
    • En lugar de Video4Linux1, agora é necesaria a biblioteca Video4Linux2.

Fonte: opennet.ru

Engadir un comentario