Projekt Wine opublikował Vkd3d 1.14 z wdrożeniem Direct3D 12

Projekt Wine opublikował wydanie pakietu vkd3d 1.14 z wdrożeniem Direct3D 12, działającym poprzez translację wywołań w graficzny API Vulkan. W skład pakietu wchodzą biblioteki libvkd3d z implementacją Direct3D 12, libvkd3d-shader z translatorem dla modeli 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 udostępniany na licencji LGPLv2.1.

Biblioteka libvkd3d wspiera większość funkcji Direct3D 12, w tym narzędzia do grafiki i obliczeń, kolejek i list poleceń, deskryptorów oraz deskryptorów puli, korzeniowe sygnatury, dostęp nieuporządkowany, samplery, sygnatury poleceń, korzeniowe stałe, niebezpośrednie renderowanie oraz metody Clear*() i Copy*(). W libvkd3d-shader zrealizowano translację bajtkodu shaderów do pośredniego reprezentacji SPIR-V. Obsługiwane są shadery wierzchołków, pikseli, tesselacyjne, obliczeniowe oraz proste shadery geometryczne, serializacja i deserializacja korzeniowej sygnatury. Z instrukcji shaderów zaimplementowano operacje arytmetyczne, atomowe i bitowe, operatory porównań oraz sterowania przepływem danych, instrukcje sample, gather i load, operacje dostępu nieuporządkowanego (UAV, Unordered Access View).

W nowej wersji:

  • Dodano wstępną obsługę języka shaderów MSL (Metal Shading Language), stosowanego przez firmę Apple w graficznym API Metal.
  • Zrealizowano wsparcie dla disassemblera dla binarnych efektów.
  • W bibliotece libvkd3 w interfejsie ID3D12GraphicsCommandList1 zrealizowano metodę OMSetDepthBounds() do dynamicznej zmiany dopuszczalnego zakresu wartości głębokości w buforze Z.
  • Dodano zmienną środowiskową VKD3D_CAPS_OVERRIDE do nadpisywania informacji o dostępnych możliwościach przekazywanych aplikacjom, takich jak maksymalnie wspierane poziomy funkcjonalności i powiązania zasobów.
  • Do implementacji języka shaderów HLSL dodano wstępną obsługę shaderów tesselacyjnych. Zrealizowano wbudowane funkcje dst(), f32tof16(), mad(), modf() i sincos(). Dla profili 1, 2 i 3 modeli shaderów dodano wsparcie dla operacji „discard”. Dodano wsparcie dla semantyki danych wejściowych SV_SampleIndex dla shaderów fragmentów i SV_GroupIndex dla shaderów obliczeniowych.
  • Zrealizowano dużą ilość nowych instrukcji dla języka shaderów GLSL.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster