Strona główna
» HAZARD
»
DirectX 11 kontra DirectX 12: który jest lepszy do gier?
DirectX 11 kontra DirectX 12: który jest lepszy do gier?
Krótka odpowiedź: DirectX 12 może zapewnić lepszą wydajność, gdy gra jest zaprojektowana tak, aby go dobrze wykorzystać, zwłaszcza gdy procesor ogranicza liczbę klatek na sekundę. DirectX 11 może działać płynniej lub bardziej niezawodnie w danej grze lub na danym komputerze. Żadne z API nie jest automatycznie szybsze, ładniejsze ani bardziej stabilne. Jeśli gra oferuje oba, porównaj je w tej grze na swoim sprzęcie.
Direct3D 12 umożliwia grze równoczesne nagrywanie wielu list poleceń. Niniejsza grafika koncepcyjna nie jest testem porównawczym sprzętu.
Jakie zmiany zaszły pomiędzy DirectX 11 i DirectX 12?
W większości dyskusji o grach „DirectX 11” i „DirectX 12” oznaczają interfejsy API grafiki Direct3D, których gra używa do przesyłania renderowania przez system Windows i sterownik graficzny do procesora graficznego. Interfejs API wpływa na organizację tego renderowania; nie ustawia uniwersalnego ustawienia jakości ani nie sprawia, że ta sama scena w grze wygląda lepiej sama w sobie.
Direct3D 11 ma model programowania wyższego poziomu. Środowisko wykonawcze i sterownik zarządzają większą liczbą szczegółów gry, co ułatwia deweloperom obsługę szerokiej gamy systemów. DX11 nie jest ściśle jednowątkowy: Microsoft dokumentuje wielowątkowe tworzenie obiektów i rejestrowanie listy poleceń w Direct3D 11.
Direct3D 12 zapewnia silnikowi gry bardziej bezpośrednią kontrolę. Gra może rejestrować wiele list poleceń w różnych wątkach procesora, a następnie przesyłać je do kolejek poleceń. Przejmuje również większą odpowiedzialność za stany zasobów i synchronizację procesora z kartą graficzną. Może to zmniejszyć obciążenie procesora i poprawić skalowalność, ale wymaga więcej pracy nad implementacją gry.
Obszar
DirectX 11
DirectX 12
Złożenie pracy
Większą częścią zarządzania zajmują się środowisko wykonawcze i sterownik.
Gra rejestruje i wysyła listy poleceń z bardziej wyraźną kontrolą.
Skalowanie procesora
Obsługuje wielowątkowość i ma bardziej zarządzany model.
Możliwość bardziej bezpośredniego rozproszenia nagrywania poleceń pomiędzy rdzeniami procesora.
Wynik gracza
Często przydatne rozwiązanie zapewniające kompatybilność i stabilność.
Może poprawić wydajność ograniczoną przez procesor, jeśli gra jest pod tym kątem zoptymalizowana.
Gwarancja FPS czy efektów wizualnych?
NIE.
NIE.
Przewodnik Microsoftu po funkcjach Direct3D 11 opisuje obsługę wielowątkowości. Porównanie Direct3D 11 i 12 wyjaśnia przesunięcie w kierunku kontroli niższego poziomu i większej odpowiedzialności aplikacji.
Kiedy DX12 może pomóc, a kiedy DX11 może być lepszy?
DX12 najprawdopodobniej pomoże, gdy gra jest obciążona przez procesor: procesor ma trudności z przygotowaniem zadań dla GPU, podczas gdy karta graficzna ma więcej możliwości. Dobrze zoptymalizowany renderer DX12 może efektywniej wykorzystać wiele rdzeni CPU i zmniejszyć obciążenie sterownika. Korzyści te zależą od silnika gry, jego poprawki, procesora, GPU i sterownika.
Jeśli GPU jest już wąskim gardłem, zmiana API może niewiele dać. DX12 nie dodaje automatycznie ray tracingu, shaderów siatki, cieniowania o zmiennej częstotliwości ani innych funkcji graficznych; gra musi implementować funkcję, a sprzęt i sterownik muszą ją obsługiwać. Nawet GPU obsługujące Direct3D 12 może udostępniać różne poziomy funkcji lub możliwości. Zapoznaj się z przewodnikiem Microsoftu dotyczącym poziomów funkcji sprzętowych Direct3D, aby dowiedzieć się, dlaczego obsługa API i obsługa funkcji to nie to samo.
DX11 to rozsądny wybór, jeśli gra nie oferuje DX12, jeśli twórca gry zaleca DX11 dla Twojej konfiguracji lub jeśli DX12 powoduje powtarzające się zacinanie, błędy graficzne, zawieszanie się lub awarie. Starszy procesor graficzny lub sterownik mogą również działać bardziej niezawodnie ze ścieżką DX11 gry. Traktuj to jako wybór dla każdej gry z osobna, a nie jako zasadę, że każdy starszy komputer powinien korzystać z DX11.
Użyj opcji renderowania udostępnionych przez grę. Nie ma uniwersalnego przełącznika systemu Windows, który sprawiałby, że każda gra będzie używać DX11 lub DX12.
Jak porównać te dwa w grze
Sprawdź aktualne opcje gry i uwagi dotyczące pomocy technicznej. Niektóre gry oferują tylko jeden renderer; inne oferują opcję DirectX w ustawieniach grafiki lub programie uruchamiającym. Upewnij się, że Twój procesor graficzny, sterownik i wersja systemu Windows spełniają wymagania danej gry.
Zachowaj spójność testu. Użyj tego samego zapisu, powtórki lub wbudowanego testu porównawczego, z tą samą rozdzielczością, ustawieniami grafiki, limitem klatek i aplikacjami działającymi w tle. Najpierw pozwól scenie uruchomić się raz, jeśli gra kompiluje lub buforuje shadery, a następnie powtórz test.
Porównaj płynność i stabilność, a także średnią liczbę klatek na sekundę (FPS). Zwróć uwagę na spójność klatek, widoczne zacięcia, awarie i błędy obrazu. Powtarzaj każdą próbę; pojedynczy, krótki wynik może być mylący. Wybierz tryb, który wydaje się stabilny podczas rozgrywki, w którą grasz.
Renderer gry może zachowywać się inaczej po wprowadzeniu dużej poprawki lub aktualizacji sterownika. Wynik podany dla Fortnite, Ready or Not lub Path of Exile odnosi się do testowanej wersji i komputera PC; nie jest to uniwersalna rekomendacja. Sprawdź aktualne uwagi deweloperów i przetestuj grę ponownie, jeśli ulegnie zmianie.
Aby porównanie było rzetelne, użyj tej samej sceny i ustawień. Pokazane tu wykresy czasowo-klatkowe mają charakter poglądowy, a nie są wynikami pomiarów.
Więc, którego z nich powinieneś użyć?
Zacznij od renderera rekomendowanego przez grę. Wypróbuj DX12, jeśli jest obsługiwany i chcesz sprawdzić, czy poprawia wydajność ograniczoną przez procesor. Przełącz się na DX11, jeśli działa płynniej lub stabilniej na Twoim systemie. Jeśli gra oferuje tylko jedną opcję, skorzystaj z tej obsługiwanej ścieżki, zamiast próbować wymusić inne API. Praktycznym zwycięzcą jest tryb, który działa płynnie i niezawodnie na Twoim komputerze.