Neue Versionen von Wine 11.10 und Vkd3d 2.0

Die experimentelle Version der offenen Implementierung der Win32 API — Wine 11.10 wurde veröffentlicht. Seit der Veröffentlichung von 11.9 wurden 17 Fehlerberichte geschlossen und 248 Änderungen vorgenommen.

Die wichtigsten Änderungen:

  • Das integrierte Vkd3d-Paket mit der Implementierung von Direct3D 12 wurde auf Version 2.0 aktualisiert.
  • Eine überarbeitete Unterstützung für die XPath-Sprache wurde vorgeschlagen, die ohne Verwendung der Bibliothek libxml2 implementiert wurde.
  • Die Kompatibilität mit VBScript wurde verbessert.
  • In ntdll wurden Platzhalter für die ALPC-API (Advanced Local Procedure Call) hinzugefügt: NtAlpcCreatePort(), NtAlpcConnectPort(), NtAlpcAcceptConnectPort(), NtAlpcSendWaitReceivePort(), NtAlpcDisconnectPort() und NtAlpcImpersonateClientOfPort().
  • Die Unterstützung für Bluetooth wurde verbessert, es wurden Methoden wie BluetoothLEDeviceStatics::FromBluetoothAddressAsync, IBluetoothLEDevice::get_DeviceId, IBluetoothLEDevice::get_GattServices, IGattDeviceService::get_Uuid und IGattDeviceService::get_AttributeHandle hinzugefügt.
  • In der Implementierung von d3dx10 und d3dx11 wurde die Möglichkeit hinzugefügt, DDS-Dateien mit Texturenarrays zu laden. Die Funktion D3DX10LoadTextureFromTexture() unterstützt jetzt 3D-Texturen, Texturen mit Unterstützung für Detailstufen und die Generierung von MIP-Levels (MipMap).
  • In der DLL win32u wurden die Funktionen NtUserGetMessagePos() und NtUserSetMessageExtraInfo() implementiert.
  • Fehlerberichte, die mit der Funktionalität von Anwendungen verbunden sind, wurden geschlossen: IrfanView, Kodak EasyShare, Git for Windows, Family Tree Maker 2017, Foxit PhantomPDF Business 10.0, Vocaloid 6, Photolemur 3,
    TrackChecker.
  • Fehlerberichte, die mit der Funktionalität von Spielen verbunden sind, wurden geschlossen: Star Wars Racer, Star Wars: Knights of the Old Republic, Age of Empires III: Die Asiatischen Dynastien.

Das Wine-Projekt hat auch die Version des Pakets vkd3d 2.0 veröffentlicht, die die Implementierung von Direct3D 12 enthält, die über die Übertragung von Aufrufen an die Grafik-API Vulkan funktioniert. Das Paket umfasst die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit einem Shader-Modell-Compiler und libvkd3d-utils mit Funktionen zur Vereinfachung der Portierung von Anwendungen zu Direct3D 12, sowie eine Sammlung von Demonstrationsbeispielen, einschließlich des Ports glxgears zu Direct3D 12. Der Code des Projekts wird unter der Lizenz LGPLv2.1 verbreitet.

Die Bibliothek libvkd3d unterstützt einen Großteil der Funktionen von Direct3D 12, einschließlich Grafik- und Berechnungsmittel, Warteschlangen und Befehlslisten, Deskriptoren und Deskriptortabellen, Wurzel-Signaturen, ungeordneten Zugriff, Sampler, Befehls-Signaturen, Wurzel-Konstanten, indirektes Rendering, sowie die Methoden Clear*() und Copy(). In libvkd3d-shader wurde die Übersetzung von Bytecode der Shader-Modelle in die Intermediate Representation SPIR-V implementiert. Es werden Vertex-, Pixel-, Tessellierungs-, Compute- und einfache Geometrie-Shader unterstützt, sowie die Serialisierung und Deserialisierung der Wurzel-Signatur. Zu den Shader-Instruktionen gehören arithmetische, atomare und bitweise Operationen, Vergleichsoperatoren und Kontrollströme, sowie die Instruktionen sample, gather und load und die Operationen des ungeordneten Zugriffs (UAV, Unordered Access View).

In der neuen Version vkd3d:

  • Das HLSL-Shadersprache unterstützt jetzt erstmals Schleifen für 2-3 Shader-Modelle, es besteht die Möglichkeit, in strukturierten gemeinsamen Speicher von Thread-Gruppen zu schreiben, die integrierten Funktionen tex3Dbias(), tex3Dlod() und texCUBElod() wurden implementiert, und die Unterstützung der Semantiken SV_ClipDistance, SV_CullDistance und SV_StencilRef für die Eingabe- und Ausgabeverarbeitung von Shadern wurde gewährleistet.
  • Im HLSL-Shaders-Compiler wurde eine automatische Eliminierung doppelter Berechnungen realisiert, die Berechnung von Ausdrücken in der Form x % y mit bereits bekannten Werten wurde auf die Kompilierungsphase verschoben, und die Verteilung der temporären Register wurde verbessert. Gemäß den Anforderungen der HLSL-Spezifikation wurde der Geltungsbereich von Variablen in den „for“-Schleifen erweitert (Variablen bleiben nach Abschluss der Schleife zugänglich). Bei der Analyse von Fließkommazahlen wurde die Berücksichtigung der Gebietsschemata eingestellt (als Trennzeichen wird jetzt immer ein Punkt verwendet).
  • Die Unterstützung des alten binären Shader-Formats von Direct3D wurde verbessert. Die Instruktionen m4x4, m3x4, m4x3, m3x3, m3x2, phase, texdepth wurden implementiert.
    texreg2ar, texreg2gb, texreg2rgb. Die Unterstützung der Modifikatoren „_dz“, „_db“, „_dw“ und „_da“ wurde hinzugefügt, die mit den Instruktionen texcrd und texld verwendet werden können. Die Unterstützung der Register „vFace“ und „vPos“ für die Arbeit mit Pixel-Shadern wurde ebenfalls hinzugefügt.
  • In DXIL (Direct3D Intermediate Language) gibt es im Code bei Lade-, Speicher-, atomaren Änderungs- und Vergleichsoperationen die Möglichkeit, Zeiger auf Daten zu verwenden, die später deklariert werden.
  • Im Assembler-Shader von Direct3D wurde die Unterstützung für 16-Bit-eingebaute Konstanten sowie die Flags '64UAVs',
    'ROVs',
    'UAVLoadAdditionalFormats',
    'UAVsAtEveryStage',
    'allResourcesBound',
    'enable11_1ShaderExtensions',
    'int64Ops',
    'nativeLowPrecision',
    'stencilRef',
    'viewportAndRTArrayIndex' und
    'waveOps'.
  • Shader-Kompilierungsoptionen wurden implementiert: VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F16, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F32, VKD3D_SHADER_COMPILE_OPTION_DENORMAL_MODE_F64 und VKD3D_SHADER_COMPILE_OPTION_CONST_GLOBAL_UNIFORM.

Quelle: opennet.ru

60GB SSD 8Gb DDR4