Jak, i po co, przełączyć wersję DirectX dla poszczególnych gier? Zapraszamy do krótkiego, acz treściwego “poradnika” pokazującego, że DirectX to nie czarna magia.
Jak i przede wszystkim, po co możemy chcieć przełączyć wersję DirectX dla konkretnej aplikacji? Generalnie problem ten dotyczy niemal wyłącznie gier. Jeśli interesuje Was to zagadnienie, zapraszam do lektury. Uczulam bardziej zaawansowanych użytkowników, że raczej nie znajdziecie w poniższych akapitach na nowo wynalezionego koła. Poradnik adresowany jest do laików, którzy co dopiero rozpoczęli przygodę z pecetową rozrywką i pewne zawiłości sprzętowe nadal wydają się czarną magią.
Zacznijmy od podstaw – co to jest DirectX?
Jego historia sięga połowy lat dziewięćdziesiątych, a na pomysł tego narzędzia wpadli spece z Microsoftu. DirectX to nic innego jak zestaw funkcji API. Skrót ten oznacza Application Programming Interface, co tłumaczymy jako interfejs programowania aplikacji. Przekłada on polecenia systemu operacyjnego, programów oraz gier na “język” karty dźwiękowej i graficznej.
Nie komplikując, DirectX po prostu wspomaga generowanie grafiki, dźwięku oraz innych zadań związanych zwykle z poprawnym działaniem gier komputerowych lub niektórych aplikacji multimedialnych tudzież profesjonalnych narzędzi. Wprowadzanie bibliotek DirectX pomogło również samym twórcom w szybszym i łatwiejszym pisaniu gier pod różnorodne specyfikacje. Zatem nie powinno też nikogo dziwić, że rozwiązanie to posiada pełne wsparcie na platformie Windows oraz konsolach Xbox.
Generacyjny przeskok
Chcąc nadążyć za postępem hardware, software również musi dotrzymać kroku. Zasada ta także dotyczy narzędzi DirectX. Problem ten najlepiej wyjaśnić na przykładzie, dlatego weźmy pod lupę okres przejścia między DirectX 10 a DirectX 11. Pierwszy powstał w czasach Windows Vista i względem swojego poprzednika miał przynieść sporą rewolucję. Drugi powstał już z myślą o Windows 7, będąc jego podstawowym preinstalowanym składnikiem.
Znaczące różnice przemawiające na korzyść 11-tki dotyczyły technik generowania obrazu: renderowania cieni, wprowadzenie teselacji, obsługa tekstu o wyższej rozdzielczości. API z numerem 11 wprowadzało również obsługę Shader Model 5.0. Co jednak istotne Jedenastka umożliwiała należyte wykorzystanie potencjału procesorów wielordzeniowych w grach i aplikacjach profesjonalnych.
Porównanie GTA V z użyciem DX 10, 10.1 oraz 11. Gra ukazała się w 2013 roku na 7. generacji konsol, później na ósmej a po dwóch latach zadebiutowała na PC.
W początkowej fazie funkcjonowania DX11 przeskok graficzny gier od razu nie był kolosalny. Wynikało to z prostego faktu implementacji nowoczesnego rozwiązania do przestarzałych silników graficznych. Należy również zwrócić uwagę na różnicę w działaniu gry na obu wersjach, co wiąże się m.in. z wiekiem sprzętu, ale czynników decydujących o wysokości i stabilności klatek na sekundę jest znacznie więcej.
Chcąc skorzystać z konkretnej wersji DirectX w danej grze, należy spełnić pewne kryteria:
- Po pierwsze DirectX musi być zainstalowany w systemie,
- Użytkowany system operacyjny Windows musi być kompatybilny z daną wersją DirectX,
- Karta graficzna zamontowana w PC musi obsługiwać konkretne biblioteki DirectX,
- Gra musi wykryć trzy powyższe elementy, jako dostępne, aby móc z nich skorzystać.
Dlaczego możemy chcieć przełączyć wersję DirectX
Jak zdążyliśmy już ustalić, poprawna obsługa konkretnej wersji DirectX jest absolutnie esencjonalna dla właściwego działania gry lub innej aplikacji korzystającej z jego bibliotek. Ponadto, poprawki i nowsze wersje DirectX pozwalają lepiej wykorzystywać potencjał współczesnych układów graficznych i procesorów. Kluczowy jest także system operacyjny. W skrócie sytuacja wygląda w następujący sposób:
- Windows XP – rozwój API zatrzymano na wersji DirectX 9c,
- Windows Vista – wprowadza DirectX 10 a później poprawioną wersję 10.1. Po instalacji Service Pack 2 dodano DX11,
- Windows 7, 8, 8.1 – wspierają wszystkie wcześniejsze wersje DirectX. 11-tka jest ich wbudowanym elementem składowym,
- Windows 10, 11 – do użytku trafia DirectX 12, który jest integralnym elementem systemu.
Narzędzie DirectX jest kompatybilne wstecz. Nowszy wariant obsługuje funkcje wprowadzone przez poprzedników. Dlatego Windows 10 bez mniejszych problemów dogaduje się grami na leciwym DirectX 9. Nie wszystko jednak zawsze idzie gładko i czasami można natrafić na przeszkody w postaci błędu lub brakującego pliku w odniesieniu do DirectX 9 – choćby komunikat o D3d9.dll.
Osobną kwestię stanowią gry pisane pod dwie wersje DirectX lub gdy obsługę kolejnego dodano po pewnym czasie. Za przykład niech posłuży popularny Fortnite oddający do dyspozycji gracza API z numerami 11 i 12. Nowszy wariant to prawidłowa obsługa DLSS oraz ray tracing, co docenią właściciele kart z rodziny Turing i Ampere produkcji Nvidii. Natomiast po uruchomieniu DX11 gra może i generuje niższy maksymalny fps, ale za to średnia ilość klatek oraz stabilność frametime wypada znacznie lepiej. Podobną tendencję zauważmy np. w Battlefield V.
I tak dochodzimy do sedna, czyli ograniczeń sprzętowych w postaci GPU. Jeśli karta grafiki nie wspiera danej wersji DirectX to nie uruchomimy gry z jego obsługą. Za namacalny przykład niech posłuży tytuł Dirt 5, który powstał w oparciu wyłącznie o DirectX 12. Grę nie uruchomimy na kartach serii Kepler Nvidii. W teorii taki GTX 760 oficjalnie wspiera DX12, ale po bliższej inspekcji przekonamy się, że dotyczy to tylko części bibliotek. Do tego dochodzi jeszcze kwestia samej ewolucji API oraz sterowników karty graficznej, gdzie produkty z serii Kepler i starsze zakończyły już swój żywot.
Ja przełączyć wersję DirectX?
Tak naprawdę sposobów jest kilka. Najprostszym możliwym będzie przejrzenie dostępnych opcji gry w zakładce poświęconej grafice. W Battlefield V swobodnie możemy przełączyć się między DX11 a 12, choć manewr ten wymaga za każdym razem resetu aplikacji. Tutaj warto podkreślić, że np. na kartach serii Nvidia Pascal (GTX 1060, 1070 itd.) BFV działa nieco lepiej z „Jedenastką”. Natomiast gracze posiadający rówieśnicze Radeony RX 570, 580 itd. raczej sięgną po DX12.
Innym sposobem zamiany DirectX jest zajrzenie do samego katalogu gry. Leciwy Crysis można było uruchomić z osobnych exe korzystających z różnych wersji DirectX.Choć bez dwóch zdań bardziej zaawansowaną metodą będzie jeszcze ręczna edycja pliku konfiguracyjnego gry. Otwarty w notatniku pozwala na zmianę wielu parametrów – w tym także wersji DirectX. W Windows 7 opcją było również uruchomienie apki w trybie zgodności z XP-ekiem, acz manewr ten nie zawsze kończył się sukcesem.
Zdarza się również, że z pomocą przychodzi sama społeczność moderów. Tym sposobem powstają pliki wykonawcze wprowadzające nowszą wersję DirectX do gry napisanej pod dużo starsze wersje. Świetnym przykładem będzie Unreal Tournament rocznik 1999. Dzięki społeczności fanów grę wzbogacono o wsparcie DirectX 10. Niewielki plik skopiowany do katalogu z grą działa również z Deus EX czy Clive Barker's Undying. Ten drobny zabieg delikatnie wpływa na metodę filtrowania tekstur ale przede wszystkim pozwala odpalić tytuł bez drastycznych ścinek na nowoczesnym sprzęcie. Choć dziś UT spokojnie działa także z poziomu 3Dfx – testowane ostatnio na GTX 1060.
Na sam koniec mamy jeszcze programy zewnętrzne wymuszające na aplikacji konkretną wersję DirectX. Rezultaty tego zabiegu mogą być różne i często niesatysfakcjonujące. Tutaj widzę ograniczone zastosowanie wyłącznie względem bazowych aplikacji lub leciwych gier. Osobiście nie spotkałem się, aby ktoś w ten sposób odpalił Forzę Horizon, napisaną od podstaw dla DX12, na karcie graficznej obsługującej wyłącznie DX11.
Słowem podsumowania
Ach, doskonale pamiętam niezadowolenie spowodowane faktem komunikatu, że Crysis 3 zadziała wyłącznie na kartach obsługujących DirectX 11. Niezadowolenie tym większe, bo przecież wydano również wersję dla Xbox 360, działającego w oparciu o biblioteki DirectX 9. Później smuteczek wywołany faktem braku kompatybilności Forzy Horizon 4 z Windows 7, który nie wspierał bibliotek DirectX 12. Opcję tę Microsoft obiecał dodać w późniejszym okresie dla wysłużonego Okienka, ale projekt ten zarzucono.
Jak widać na powyższych przykładach kwestie kompatybilności na platformie PC względem gier to temat rzeka. Co jednak istotne, jeśli natrafiamy na jakieś problemy to raczej nie z tytułu DirectX a samego wieku danego tytułu napisanego z myślą o zupełnie innym systemie operacyjnym. Gry z czasów Windows 98 czy nawet XP trudno uruchomić od tak na nowszym OS-ie, bo może brakować o wiele więcej istotnych składników niż samego Direct. Finalnie wydaje się, że w zabawach sprzętem i softwarem najistotniejsza jest cierpliwość do eksperymentowania.
Komentarze
7Wtedy naocznie zobaczymy różnicę i na jakim najlepiej grać...
niemencrystal,com/kategoria-produktu/misy-i-wazony/ (Zamieńcie przecinek na kropkę)
Brak mi słów....Szczęka mi opadła....Może przed napisaniem jakiegoś słowa należało by sprawdzić jego znaczenie w języku polskim, jak się nie wie, a nie przekręcać z angielskiego. Esencjonalna to może być herbata lub kawa, a essential znaczy tyle co kluczowy, niezbędny, wymagany. No chyba że ta obsługa ma też smakować :P
Po pierwsze DirectX musi być zainstalowany w systemie,".
Microsoft płakał jak to czytał ha ha ha h ah ha hah ah ah ha