Jak zmienić wersję DirectX? I dlaczego to robisz?

Jak zmienić wersję DirectX? I dlaczego to robisz?

Jak i co najważniejsze, dlaczego musimy przełączyć wersję DirectX dla konkretnej aplikacji? Zazwyczaj ten problem dotyczy prawie wyłącznie gier. Jeśli jesteś zainteresowany tym pytaniem, zapraszam do lektury. Ostrzegam bardziej zaawansowanych użytkowników, że w poniższych akapitach raczej nie znajdziesz wymyślonego na nowo koła. Poradnik przeznaczony jest dla amatorów, którzy dopiero rozpoczynają swoją przygodę z komputerową rozrywką, a niektóre trudności sprzętowe wciąż wydają się czarną magią.

Zacznijmy od podstaw – czym jest DirectX?

Jego historia sięga połowy lat dziewięćdziesiątych, a pomysł tego narzędzia przyszedł do głowy specjalistom Microsoftu. DirectX to nic innego jak zestaw funkcji API. Skrót ten oznacza interfejs programowania aplikacji, który tłumaczymy jako interfejs programowania aplikacji. Tłumaczy polecenia systemu operacyjnego, programów i gier na „język” karty dźwiękowej i graficznej.

Aby uprościć sprawę, DirectX po prostu obsługuje generowanie grafiki, dźwięku i inne zadania zwykle związane z poprawnym działaniem gier komputerowych lub niektórych aplikacji multimedialnych i profesjonalnych narzędzi. Wprowadzenie bibliotek DirectX również przyspieszyło i ułatwiło samym programistom pisanie gier o różnych specyfikacjach. Dlatego nie powinno nikogo dziwić, że to rozwiązanie ma pełne wsparcie na platformie Windows i konsolach Xbox.

skok pokoleniowy

Aby nadążyć za postępem sprzętu, oprogramowanie również musi nadążyć. Ta zasada dotyczy również narzędzi DirectX. Ten problem najlepiej wytłumaczyć przykładem, więc przyjrzyjmy się bliżej przejściu między DirectX 10 a DirectX 11. Ten pierwszy powstał w czasach Windows Vista i miał być wielką rewolucją w porównaniu do swojego poprzednika. Drugi został stworzony z myślą o Windows 7, jako jego główny preinstalowany komponent.

Istotne różnice na korzyść 11 dotyczyły metod generowania obrazu: renderowania cieni, wprowadzenia teselacji, obsługi tekstu o wyższej rozdzielczości. API numer 11 wprowadził również wsparcie dla Shader Model 5.0. Co jednak ważne, Eleven mógł poprawnie wykorzystać potencjał procesorów wielordzeniowych w grach i aplikacjach profesjonalnych.

Porównanie GTA V z DX 10, 10.1 i 11. Gra ukazała się w 2013 roku na konsolach 7. generacji, następnie 8. generacji, a na PC zadebiutowała dwa lata później.

Na początkowym etapie DX11 skok graficzny w grach nie był od razu kolosalny. Stało się to za sprawą prostego faktu wdrożenia nowoczesnego rozwiązania na przestarzałych silnikach graficznych. Warto też zwrócić uwagę na różnicę w rozgrywce na obu wersjach, która również wynika z wieku sprzętu, ale nadal istnieje wiele czynników, które decydują o wysokości i stabilności klatek na sekundę.

Aby korzystać z określonej wersji DirectX w danej grze, należy spełnić określone kryteria:

  • Najpierw w systemie musi być zainstalowany DirectX,
  • Używany system operacyjny Windows musi być zgodny z tą wersją DirectX,
  • Karta graficzna zainstalowana na komputerze musi obsługiwać określone biblioteki DirectX,
  • Gra musi zdefiniować powyższe trzy przedmioty jako dostępne, aby móc z nich korzystać.

Dlaczego możemy chcieć zmienić wersję DirectX

Jak już ustaliliśmy, odpowiednia obsługa konkretnej wersji DirectX jest absolutnie niezbędna do prawidłowego działania gry lub innej aplikacji, która wykorzystuje swoje biblioteki. Ponadto łatki i nowsze wersje DirectX lepiej wykorzystują potencjał nowoczesnych układów graficznych i procesorów. System operacyjny jest również krytyczny. Krótko mówiąc, sytuacja wygląda następująco:

  • Windows XP – rozwój API zatrzymany na DirectX 9c,
  • Windows Vista — wprowadza DirectX 10 i nowsze wersje z poprawkami 10.1. Po zainstalowaniu Service Pack 2 dodano DX11,
  • Windows 7, 8, 8.1 – obsługuje wszystkie poprzednie wersje DirectX. 11 – ich wbudowany element,
  • Windows 10, 11 – DirectX 12 został wydany i jest integralną częścią systemu.

DirectX jest kompatybilny wstecz. Nowy wariant zachowuje cechy wprowadzone przez poprzedników. Dlatego Windows 10 bez problemu dogaduje się z grami na starym DirectX 9. Jednak nie zawsze wszystko idzie gładko i czasami można napotkać przeszkody w postaci błędu lub brakującego pliku w stosunku do DirectX 9 – na przykład komunikat o D3d9.dll.

Osobną kwestią są gry pisane dla dwóch wersji DirectX lub gdy po pewnym czasie dodano obsługę kolejnej. Przykładem jest popularny Fortnite, który oferuje graczowi API o numerach 11 i 12. Nowszą opcją jest odpowiednie wsparcie dla DLSS i ray tracingu, co docenią posiadacze kart Nvidia Turing i Ampere. Jednak po uruchomieniu DX11 gra może generować niższą maksymalną liczbę klatek na sekundę, ale średnia liczba klatek na sekundę i stabilność klatek są znacznie lepsze. Podobny trend widzimy np. w Battlefield V.

A teraz dochodzimy do sedna, czyli do ograniczeń sprzętowych w postaci GPU. Jeśli karta graficzna nie obsługuje tej wersji DirectX, nie uruchomimy gry z obsługą DirectX. Namacalnym przykładem jest tytuł Dirt 5, który powstał wyłącznie w oparciu o DirectX 12. Nie uruchomimy gry na kartach z serii Nvidia Kepler. Teoretycznie te GTX 760 oficjalnie obsługują DX12, ale po bliższym przyjrzeniu się zobaczymy, że dotyczy to tylko niektórych bibliotek. Do tego wciąż pozostaje problem ewolucji interfejsów API i sterowników kart graficznych, gdzie produkty z serii Kepler i starsze zakończyły już swoje życie.

Jak zmienić wersję DirectX?

Właściwie jest kilka sposobów. Najłatwiej to zrobić, przeglądając dostępne opcje gry w zakładce Grafika. W Battlefield V bez problemu możemy przełączać się między DX11 a 12, choć manewr ten wymaga każdorazowego przeładowywania aplikacji. Warto w tym miejscu podkreślić, że np. na kartach z serii Nvidia Pascal (GTX 1060, 1070 itd.) BFV nieco lepiej radzi sobie z Eleven. Z drugiej strony gracze z podobnymi Radeonami RX 570, 580 itd. będą bardziej skłonni do podążania w kierunku DX12.

Innym sposobem zastąpienia DirectX jest zajrzenie do samego folderu gry. Old Crysis można uruchomić z samodzielnego pliku wykonywalnego z różnymi wersjami DirectX, chociaż bardziej zaawansowaną metodą byłaby ręczna edycja pliku konfiguracyjnego gry. Otwórz w notatniku, pozwala zmienić wiele ustawień – w tym wersję DirectX. Windows 7 miał też możliwość uruchomienia aplikacji w trybie zgodności z XP, choć manewr ten nie zawsze był udany.

Zdarza się też, że na ratunek przychodzi sama społeczność moderska. Tworzy to pliki wykonywalne, które wprowadzają nowszą wersję DirectX do gry napisanej dla znacznie starszych wersji. Świetnym przykładem może być Unreal Tournament z 1999 roku. Dzięki społeczności fanów gra została wzbogacona o obsługę DirectX 10. Mały plik skopiowany do katalogu z grą działa również z Deus EX lub Clive Barker’s Undying. Ten drobny zabieg nieznacznie wpływa na sposób filtrowania tekstur, ale przede wszystkim pozwala uruchomić tytuł bez ostrych cięć na nowoczesnym sprzęcie. Choć dziś UT działa bez zarzutu nawet z poziomu 3Dfx, ostatnio testowałem go na GTX 1060.

Wreszcie mamy zewnętrzne programy, które wymuszają na aplikacji pracę z określoną wersją DirectX. Wyniki tej procedury mogą być zróżnicowane i często niezadowalające. Tutaj widzę ograniczone użycie tylko dla podstawowych aplikacji lub starszych gier. Osobiście nigdy nie widziałem, aby ktoś uruchamiał w ten sposób Forza Horizon, napisaną od podstaw dla DX12, na karcie graficznej tylko dla DX11.

W skrócie

Ach, bardzo dobrze pamiętam frustrację, że Crysis 3 działałby tylko na kartach obsługujących DirectX 11. Frustracja jest jeszcze większa, ponieważ pojawiła się też wersja na Xbox 360, która została wydana w oparciu o biblioteki DirectX 9 z Windows 7, które nie obsługiwane biblioteki DirectX 12. Microsoft obiecał dodać tę opcję później do zużytego okna, ale projekt został porzucony.

Jak widać na powyższych przykładach, problemy z kompatybilnością na platformie PC z grami są tematem rzeki. Jednak ważne jest to, że jeśli napotkamy jakieś problemy, to nie jest to nazwa DirectX, ale wiek nazwy, napisany z myślą o zupełnie innym systemie operacyjnym. Gry z ery Windows 98 czy nawet XP są trudne do uruchomienia na nowszym systemie operacyjnym, ponieważ może brakować o wiele ważniejszych komponentów niż sam Direct. Ostatecznie wydaje się, że najważniejszą rzeczą podczas zabawy ze sprzętem i oprogramowaniem jest cierpliwość do eksperymentowania.

Dodaj komentarz

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