Rozpoczęły się testy pierwszego wydania Wine 8.0, otwartej implementacji WinAPI. Baza kodu została wprowadzona w fazę zamrożenia przed wydaniem, które jest spodziewane w połowie stycznia. Od wydania Wine 7.22 zamknięto 52 raporty o błędach i wprowadzono 538 zmian.
Najważniejsze zmiany:
- Pakiet vkd3d z implementacją Direct3D 12 działającą poprzez translację wywołań do graficznego API Vulkan został zaktualizowany do wersji 1.6.
- Przeprowadzono optymalizację konwerterów wywołań systemowych (dzięki) dla Vulkan i OpenGL.
- WinPrint rozszerzył obsługę procesorów druku.
- Ulepszony panel sterowania z joystickiem.
- Zakończono prace nad zapewnieniem obsługi typu „long” w kodzie funkcji printf.
- Zamknięte są raporty o błędach związanych z działaniem gier: Tom Clancy's Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
- Zamknięte raporty błędów związanych z działaniem aplikacji: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.
Dodatkowo możemy odnotować publikację przez projekt Wine pakietu vkd3d 1.6 z implementacją Direct3D 12, pracującego poprzez tłumaczenie wywołań API graficznego Vulkan. Pakiet zawiera biblioteki libvkd3d z implementacjami Direct3D 12, libvkd3d-shader z tłumaczem modeli shaderów 4 i 5 oraz libvkd3d-utils z funkcjami ułatwiającymi przenoszenie aplikacji Direct3D 12, a także zestaw przykładów demonstracyjnych, w tym port glxgears do Direct3D 12. Kod projektu jest rozpowszechniany na licencji LGPLv2.1.
Biblioteka libvkd3d obsługuje większość funkcji Direct3D 12, w tym funkcje graficzne i obliczeniowe, kolejki i listy poleceń, uchwyty i uchwyty sterty, podpisy root, dostęp poza kolejnością, samplery, sygnatury poleceń, stałe root, renderowanie pośrednie, metody Clear *( ) i Kopiuj*(). W libvkd3d-shader zaimplementowano tłumaczenie kodu bajtowego modeli shaderów 4 i 5 na pośrednią reprezentację SPIR-V. Obsługuje moduły cieniujące wierzchołki, piksele, teselację, obliczenia i prostą geometrię, serializację sygnatur głównych i deserializację. Instrukcje modułu cieniującego obejmują operacje arytmetyczne, atomowe i bitowe, operatory porównania i kontroli przepływu danych, instrukcje próbkowania, gromadzenia i ładowania, operacje dostępu nieuporządkowanego (UAV, Unordered Access View).
Nowa wersja w dalszym ciągu udoskonala kompilator modułu cieniującego w języku HLSL (High-Level Shader Language), dostępnym począwszy od DirectX 9.0. Ulepszenia związane z HLSL obejmują:
- Zaimplementowano wstępną obsługę shaderów obliczeniowych.
- Ulepszona obsługa inicjowania i przypisywania obiektów złożonych, takich jak struktury i tablice.
- Dodano możliwość ładowania i zapisywania zasobów tekstur przy użyciu dostępu poza kolejnością (UAV).
- Dodano obsługę atrybutów funkcji i zaimplementowano wbudowane funkcje asuint(), długość(), normalize().
- Dodano obsługę modułów zmiennoprzecinkowych.
- Zaimplementowano flagę VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS, aby wskazać operacje atomowe na deskryptorach reprezentacji dostępu nieuporządkowanego (UAV).
Źródło: opennet.ru