Projekt Wine opublikował Vkd3d 1.12 z implementacją Direct3D 12

Projekt Wine opublikował wydanie pakietu vkd3d 1.12 z implementacją Direct3D 12, która działa poprzez rozgłaszanie wywołań API grafiki 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 obiekty 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*(). libvkd3d-shader implementuje tłumaczenie kodu bajtowego modeli shaderów 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).

W nowej wersji:

  • Kompilator HLSL został zaktualizowany o obsługę bezpośredniej kompilacji do kodu asemblera shaderów Direct3D i typów docelowych SPIR-V.
  • Kompilator HLSL zapewnia lepszą obsługę profili modeli shaderów 1, 2 i 3.
  • Wbudowane funkcje dla HLSL obejmują cosh(), determinant(), refract(), sinh() i tanh().
  • Dodano obsługę formatów DXGI_FORMAT_B3G5R6_UNORM, DXGI_FORMAT_B5G5R5A5_UNORM i DXGI_FORMAT_B1G4R4A4_UNORM w bibliotece libvkd4d, jeśli są one obsługiwane przez istniejącą implementację interfejsu API Vulkan.
  • Dodano obsługę interfejsów ID3D12ShaderCacheSession i ID3D12Device9. Metody CreateCommittedResource3(), CreatePlacedResource12(), GetCopyableFootprints8() i GetResourceAllocationInfo2() zostały dodane do interfejsu ID1D1Device2.
  • Zaimplementowano zapytania weryfikacyjne D3D12_FEATURE_D3D12_OPTIONS14, D3D12_FEATURE_D3D12_OPTIONS15, D3D12_FEATURE_D3D12_OPTIONS16, D3D12_FEATURE_D3D12_OPTIONS17 i ​​D3D12_FEATURE_D3D12_OPTIONS18.
  • Moduł cieniujący libvkd3d dla języka DXIL (język pośredni DirectX) dodał eksperymentalną obsługę większości metod i instrukcji modułu cieniującego Direct6D Model 3.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster