vkd3d 1.2 zawiera ulepszenia kompatybilności, cieniowanie i więcej

Projekt Wine wydało nową wersję pakietu vkd3d 1.2 z implementacja Direct3D 12 który działa poprzez tłumaczenie wywołań do API graficznego Vulkan.

Ta nowa wersja vkd3d 1.2 zawiera różne ulepszenia, ale z głównych, które się wyróżniają, to dostępność libvkd3d-shader jako biblioteki publicznej, obsługa shaderów mozaikowanie, a także wsparcie wyjścia przepływu.

Paczkai obejmuje biblioteki libvkd3d z implementacjami Direct3D 12, libvkd3d-shader z translatorem shaderów modeli 4 i 5 oraz libvkd3d-utils z funkcjami upraszczającymi migrację aplikacji Direct3D 12, a także zestawem demonstracyjnym, w tym portem 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, listy poleceń i kolejki, deskryptory i deskryptory sterty, sygnatury główne, dostęp nieuporządkowany, próbniki, sygnatury poleceń, stałe główne, reprezentacja pośrednia i tak dalej.

libvkd3d-shader implementuje tłumaczenie kodu bajtu 4 i 5 wzorów cieniowania w reprezentacji pośredniej SPIR-V. Obsługiwane są wierzchołki, piksele, mozaikowanie, obliczeniowe i proste moduły cieniujące geometrii, serializacja sygnatur głównych i deserializacja.

Instrukcje shadera obejmują operacje arytmetyczne, atomowe i bitowe, operatorzy kontroli i porównania przepływu danych, instrukcje pobierania próbek, pobierania i ładowania, operacje dostępu nieuporządkowanego (UAV, widok dostępu nieuporządkowanego).

Na obecnym etapie rozwoju nie wszystkie wywołania Direct3D 12 są realizowane a testy były przeprowadzane głównie na zestawie aplikacji demonstracyjnych. To wydanie nie zawiera funkcji będących w trakcie opracowywania, takich jak obsługa złożonych shaderów geometrii i teselacji, a także szeregu ulepszeń związanych z podstawowymi metodami i modułami cieniującymi Direct3D 12. Te funkcje będą oferowane w przyszłej wersji.

Główne nowe funkcje Vkd3d 1.2

Z najważniejszych zmian, które zostały zaprezentowane w nowej wersji, dotyczy Dostępność biblioteki libvkd3d-shader do użytku w projektach stron trzecich, od Dodano różne funkcje Direct3D 12, takie jak:

  • Pobieranie wielu próbek.
  • Zarezerwowane zasoby.
  • Szybkość przesyłania danych instancji.
  • API „danych prywatnych” dla wszystkich interfejsów.
  • Odwzorowania komponentów widoku zasobów modułu cieniującego.
  • Rozszerzenie VK_KHR_draw_indirect_count.
  • Reprezentacja predykatu / warunkowa.
  • Renderowanie głębi bez modułu cieniującego pikseli.
  • Wycięcie na głębokość. Wymaga to rozszerzenia VK_EXT_depth_clip_enable.
  • Odrzuć rasteryzator.
  • Miksowanie z dwoma źródłami.
  • Mapowanie umieszczonych zasobów.
  • Metody ReadFromSubresource () i WriteToSubresource () ID3D12Resource.
  • Jednoczesny dostęp do zasobów wielu kolejek.
  • Widoki zerowe. Oznacza to, że widoki bez podstawowego zasobu.
  • Kilka dodatkowych pytań dotyczących pomocy technicznej.

Oprócz tego Dodano również obsługę konwersji, serializacji i deserializacji podpisów root (vkd3d_serialize_versioned_root_signature () i vkd3d_create_versioned_root_signature_deserializer (), a także obsługę przesyłania strumieniowego.

Kolejną wyróżniającą się zmianą jest implementacja zmiennej środowiskowej: VKD3D_CONFIG, aby ustawić opcje zmiany zachowania libvkd3d i VKD3D_VULKAN_DEVICE, aby zastąpić urządzenie dla API Vulkan.

poza tym dodano obsługę instrukcji cieniowania bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos oraz wstępne wsparcie dla shaderów modelu 5.1.

A także wsparcie dla środowisk docelowych OpenGL SPIR-V. Dzięki temu SPIR-V wyprodukowany przez libvkd3d-shader może być używany z GL_ARB_gl_spirv. Obejmuje to obsługę liczników atomowych OpenGL i połączonych próbników.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat o nowej wersji możesz sprawdzić pełną listę zmian W poniższym linku.

Jak zainstalować vkd3d w systemie Linux?

Ci, którzy są zainteresowani instalacją vkd3d w swoim systemie, powinni uzyskać kod źródłowy i kontynuować kompilację, chociaż ze względów praktycznych lub dla początkujących mogą wypróbować tę bibliotekę bez większego wysiłku. W tym celu muszą tylko zainstalować lutris w jego konfiguracjach.

Osoby zainteresowane kompilacją muszą otrzymać kod zawierający:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

Wreszcie warstwy Vulkan muszą być włączone:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.