Wersja kandydująca do wydania Wine 8.0 i wersja vkd3d 1.6

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

Dodaj komentarz