Kilka dni temu ogłoszono wydanie pierwszej stabilnej wersji projektu „D8VK 1.0”, który oferuje Implementacja graficznego interfejsu API Direct3D 8 który działa poprzez tłumaczenie wywołań interfejsu Vulkan API i pozwala używać Wine lub Proton do uruchamiania aplikacji 3D i gier opracowanych dla systemu Windows w systemie Linux, które są połączone z interfejsem API Direct3D 8.
Jak wielu z was wie, w Linuksie mamy VKD3D-Proton do tłumaczenia Direct3D 12 na Vulkan, poza tym mamy również Steam Play, który używa DXVK do implementacji interfejsów API Direct3D 9/10/11 na Vulkan, ale dla starego .implementacji Direct3D 8, nie było nic konkretnego.
Właśnie dlatego narodził się D8VK, który jest implementacją starego API Microsoft Direct3D 8 przez Vulkan, aby poprawić wrażenia ze starszych gier.
D8VK 1.0 jest oznaczone jako pierwsze wydanie projektu, nadaje się do użytku i przetestowany w setkach gier. W porównaniu z projektami WineD3D i d3d8to9, które wykorzystują translację Direct3D 8 do OpenGL i Direct3D 9, projekt D8VK wykazuje lepszą wydajność, stabilność i kompatybilność z grami.
Na przykład podczas testów na pakiecie 3DMark 2001 SE projekt D8VK uzyskał 144660 punktów, kombinacja d3d8to9 i dxvk – 118033, a WineD3D – 97134.
Uruchomienie D8VK 1.0 wprowadza plik d3d8.dll(d3d9 jest statycznie połączone), a także a nowy niestandardowy procesor wsadowy dla niektórych gier o niezdefiniowanym zachowaniu.
Oprócz tego podkreśla się również, że obsługuje zastępowanie deklaracji modułu cieniującego wierzchołków dla gier o niezdefiniowanym zachowaniu oraz że bufory wierzchołków można teraz przechowywać w samozarządzającej się puli, aby poprawić wydajność i uniknąć problemów z kolejnością zapisu.
Należy również zauważyć, że obsługa kompilacji jest zaimplementowana w MSVC, a także obsługa zapytań GetInfo i typy bloków stanu są teraz obsługiwane.
Innych zmiany, które się wyróżniają:
- Popraw rozmiary opisu powierzchni w oparciu o format
- Pozwól zachować obecną instalację Protona
- Niezliczone ustawienia specyficzne dla gry oraz drobne funkcje i poprawki
- Naprawiono błąd, w wyniku którego funkcja CreateTexture próbowała zawinąć pustą teksturę
- Naprawiono bufory zapasowe, które nie były buforowane ani odwoływane do urządzenia będącego właścicielem
- Naprawiono tekstury, strumienie i indeksy, które nie były czyszczone po ponownym uruchomieniu
- Naprawiono lokalizację Direct3DCreate8 w pliku d3d8.def
- Naprawiono liczbę odniesień dla celów renderowania, szablonów głębi i tekstur.
- Naprawiono niezapamiętywanie shaderów zerowych pikseli
- Naprawiono brak buforowania celów renderowania i szablonów głębi
- Naprawiono błąd, gdy klient próbował włączyć SWVP na urządzeniu sprzętowym
- Naprawiono urządzenia, które nie łamały jail
- Naprawiono segfault przy wydaniu urządzenia z powiązanymi teksturami
Na koniec, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.
Warto wiedzieć, że kod projektu napisany jest w języku C++ i jest rozpowszechniany na licencji Zlib. Baza kodu projektu DXVK z implementacją Direct3D 9, 10 i 11 na szczycie Vulkan została wykorzystana jako podstawa do rozwoju.
Jak zainstalować D8VK w systemie Linux?
Dla tych, którzy są zainteresowani możliwością zainstalowania D8VK, powinni wiedzieć, że jego wdrożenie jest dość proste i nie wymaga wiele. Wystarczy otworzyć terminal, aby móc pobrać nową wersję. Wpiszemy w nim następujące polecenie:
git clone https://github.com/AlpyneDreams/d8vk.git
Lub jeśli wolisz pobierać z przeglądarki (wystarczy rozpakować plik i ustawić się w terminalu w folderze), możesz to zrobić, klikając w tym linku.
Zrobione, teraz wejdziemy do katalogu z:
cd d8vk
W zależności od przypadku przystępujemy do wdrożenia d8vk. Aby zaimplementować go za pomocą Wine, musimy wpisać:
./setup_d3d8.sh install --no-proton
Lub w przypadku chęci zaimplementowania go z Protonem, polecenie, które należy wpisać, jest następujące:
./setup_d3d8.sh install
Jeśli chcesz dowiedzieć się więcej o jego użyciu lub instalacji w określonych przypadkach, możesz się skonsultować poniższy link.