Rozpoczęto testy pierwszego kandydata do wydania Wine 8.0, otwartej implementacji WinAPI. Kod bazowy przeszedł do etapu zamrożenia przed wydaniem, które planowane jest na połowę stycznia. W porównaniu do wydania Wine 7.22 zamknięto 52 raporty o błędach i wprowadzono 538 zmian.
Najważniejsze zmiany:
- Pakiet vkd3d z realizacją Direct3D 12, działający poprzez tłumaczenie wywołań na graficzny API Vulkan, został zaktualizowany do wersji 1.6.
- Przeprowadzono optymalizację konwerterów wywołań systemowych (thunk) dla Vulkan i OpenGL.
- W WinPrint rozszerzono wsparcie dla procesorów drukowania (Print processor).
- Ulepszono panelu administracyjnego joystick.
- Zakończono prace nad zapewnieniem wsparcia dla typu 'long' w kodzie funkcji printf.
- Zamknięto raporty o błędach związane z działaniem gier: Tom Clancy’s Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
- Zamknięto raporty o błędach związane z działaniem aplikacji: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.
Dodatkowo można zauważyć publikację pakietu vkd3d 1.6 z realizacją Direct3D 12, działającą poprzez tłumaczenie wywołań na graficzny API Vulkan. W skład pakietu wchodzą biblioteki libvkd3d z realizacją Direct3D 12, libvkd3d-shader z tłumaczem wersji 4 i 5 shaderów oraz libvkd3d-utils z funkcjami ułatwiającymi portowanie aplikacji Direct3D 12, a także zestaw przykładów demonstracyjnych, w tym port glxgears na Direct3D 12. Kod projektu jest rozpowszechniany na licencji LGPLv2.1.
Biblioteka libvkd3d obsługuje większość funkcji Direct3D 12, w tym narzędzia do grafiki i obliczeń, kolejki i listy poleceń, deskryptory i deskryptory sterty, sygnatury korzeni, dostęp nieuporządkowany, Samplery, sygnatury poleceń, stałe korzeniowe, niebezpośrednie rysowanie, metody Clear*() i Copy*(). W libvkd3d-shader zaimplementowano translację kodu bajtowego modeli shaderów w wersji 4 i 5 do pośredniej reprezentacji SPIR-V. Obsługiwane są shadery wierzchołkowe, pikselowe, tesselacyjne, obliczeniowe i proste shadery geometryczne, a także serializacja i deserializacja sygnatury korzeniowej. Z instrukcji shaderowych zaimplementowano operacje arytmetyczne, atomowe i bitowe, operatory porównania oraz sterowania przepływem danych, instrukcje sample, gather i load oraz operacje dostępu nieuporządkowanego (UAV, Unordered Access View).
W nowej wersji kontynuowane są prace nad ulepszeniem kompilatora shaderów w języku HLSL (High-Level Shader Language), dostępnego od wersji DirectX 9.0. Wśród usprawnień związanych z HLSL:
- Zaimplementowano wstępną obsługę shaderów obliczeniowych.
- Ulepszono obsługę inicjalizacji i przypisywania obiektów złożonych, takich jak struktury i tablice.
- Dodano możliwość ładowania i zapisywania zasobów tekstur, wykorzystując nieuporządkowany dostęp (UAV).
- Dodano wsparcie dla atrybutów funkcji oraz zrealizowano wbudowane funkcje asuint(), length(), normalize().
- Dodano wsparcie dla modułów do obliczeń z użyciem zmiennoprzecinkowym.
- Zaimplementowano flagę VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS do wskazywania atomowych operacji na deskryptorach nieuporządkowanego dostępu (UAV).
Źródło: opennet.ru
