Xbox One X kontra PC dla graczy: rozprawiamy się z mitami
Nowa konsola Microsoftu pojawia się na rynku przy wielkiej pompie. To bez wątpienia najwydajniejszy produkt w swojej kategorii na rynku. Nie jest to jednak najwydajniejszy sprzęt do grania. Co na to pececiarze?
Za każdym razem, gdy pojawia się na rynku nowa konsola Sony lub Microsoftu, tak zwana PC Master Race zaczyna swoją zwyczajową tyradę. Że PC dalej oferuje największą moc obliczeniową, najwięcej gier na wyłączność, jest elastyczny, modułowy i w zasadzie najlepsiejszy. Trudno im odmówić racji we wszystkim, co piszą. Siłą konsoli do gier jest wyłącznie optymalizacja. I nie mam tu na myśli tej magicznej optymalizacji wydajności.
Konsolowiec uruchamiając grę ma pewność, że będzie ona idealnie zestrojona z posiadanym sprzętem. W grach pecetowych to po stronie użytkownika leży zadanie optymalizacji pracy sterowników i ustawień graficznych samej gry pod sprzęt. Na konsoli wszystko wygląda tak dobrze, jak tylko na to sprzęt pozwala, a różne ustawienia są odpowiednio dobrane, by uzyskać jak najlepszy efekt. Siła konsoli to jej bezobsługowość. Dla niektórych – w tym dla mnie – jest to na tyle ważna zaleta, że przeważa ona granie na komputerze PC. Przewaga techniczna peceta nad konsolami jest jednak oczywista.
Tyle że tu powinniśmy zadać pytanie: jakiego peceta? Jaki komputer jest jeszcze wydajniejszy od najszybszej konsoli na rynku? Z uwagi na fakt, że Xbox One X (a także pozostałe wersje Xbox One oraz PlayStation 4) korzysta z podzespołów obecnych też w komputerowym świecie, wiele osób zestawia na ślepo komponenty z obu urządzeń. To błędne podejście. Zdecydowanie nie tylko z uwagi na te magiczne „optymalizacje gier pod sprzęt”, o których wspominają entuzjaści konsol.
Xbox One X kontra PC: rozprawiamy się z mitami.
12 GB pamięci operacyjnej to wyłącznie pamięć współdzielona. Na PC mamy gigabajty zarówno pamięci graficznej, jak i operacyjnej.
Tak, z tym nie można dyskutować. Zanim jednak zaczniemy nabijać się z Xbox One X i konsol w ogóle, przyjrzyjmy się temu rozwiązaniu. Przepustowość tej pamięci jest bardzo wysoka, wyższą mają tylko topowe i drogie karty graficzne. Współdzielona pamięć to jednak również brak potrzeby dbania o synchronizację w komunikacji z procesorami CPU i GPU. Pełna synchronizacja zresztą w praktyce jest i tak niewykonalna.
Na dodatek w ten sposób minimalizowany jest problem latencji (opóźnień) pamięci. Skoro ta jest współdzielona, równocześnie pracujące CPU i GPU mogą się odwoływać do tych samych jej rejonów. Na komputerze PC dane muszą być przenoszone przez szynę PCI z pamięci RAM do pamięci karty graficznej i w drugą stronę. W Xbox One X i większości innych konsol, ten problem nie istnieje, zapewniając urządzeniu wolne moce przerobowe.
Optymalizacja pod DirectX 12 to marketingowa ściema, przecież tak samo działają pecetowe Radeony i GeForce’y.
No… niezupełnie. Co prawda dokumentacja udostępniona twórcom gier wyjaśnia tylko niezbędne im do pracy zasady działania mechanizmu, brakuje nam więc pełni informacji na temat tego jak Microsoft i AMD zaprojektowały układy scalone w Xbox One X, ale już te informacje wiele wyjaśniają. Faktycznie, procesor poleceń (command processor) zoptymalizowany pod DirectX 12 w zasadzie jest obecny nawet w zwykłym Xbox One – choć w mniej zaawansowanej formie. Nie jest to żaden przełom. Jest to jednak istotna różnica względem tego, jak budowane są komputery PC.
Rolą procesora poleceń jest, w pewnym uproszczeniu, organizowanie pracy układu graficznego. Otrzymuje on zestaw poleceń z procesora CPU a następnie dobiera kolejność ich wykonywania tak, by procesor graficzny uporał się w jak najkrótszym czasie z tymże zestawem. W przypadku gry na PC, procesor CPU zajmuje się przetwarzaniem samego kodu gry, wywołuje graficzne API sterownika, sterownik generuje polecenia do procesora poleceń, a ten mówi GPU co ma robić. Optymalizacja pod DirectX 12 w wykonaniu Microsoftu oznacza, że procesor poleceń może bezpośrednio reagować na polecenia z zestawu DX12, całkowicie pomijając sterownik. W efekcie GPU nie musi bezczynnie czekać na kolejne polecenia.
To daje spore korzyści. Na dodatek sam sterownik na konsolach jest lepiej zoptymalizowany, bo jest zbudowany tylko na jeden profil sprzętowy. Sterowniki na PC to często ponad 100-megabajtowe kobyły, musząc przewidywać polecenia dla wielu różnych API: OpenGL, DirectX 9, 10, 11, 12 i tak dalej. Konieczność zgodności z wieloma różnymi zestawami poleceń powoduje, że narzut wydajnościowy sterownika na komputerach PC jest, niestety, zauważalny.
Z tak słabym procesorem CPU Xbox One X nie ma podejścia do komputerów PC.
Po części to prawda. Problem ten nie jest jednak aż tak duży, jak niektórym się wydaje. I ma to spory związek z powyższymi elementami konsoli Xbox One X, które już omówiliśmy. Zacznijmy jednak od początku. Procesor jak najbardziej ma wpływ na wydajność przetwarzania grafiki: im bardziej złożona scena w grze, tym więcej poleceń CPU musi wysłać do GPU do przeliczenia. Wspomniane wcześniej wbudowanie obsługi wywołań DirectX 12 do procesora poleceń GPU w istotny sposób odciąża pracę CPU.
Xbox One X (i większość pozostałych konsol) wykorzystuje jednak technikę przeliczeń GPGPU promowaną przez AMD. Polega ona na zleceniu procesorowi graficznemu wyliczeń przeznaczonych dla CPU, gdy CPU okaże się w procesie tworzenia gry (lub innego programu) zbyt wolny w danym scenariuszu. Zwłaszcza, że GPU oferuje większą wydajność przetwarzania zadań równoległych (parallel tasks). Twórcy gier z tego korzystają. Co prawda oznacza to, że polecenia CPU muszą być wysłane do GPU, wyniki odesłane do CPU, by następnie ponownie wróciły do GPU już według standardowego scenariusza. Tyle że z uwagi na współdzieloną pamięć straty wydajnościowe są całkowicie przyćmione przez ostateczną korzyść wydajnościową.
Dodatkowe benefity, czyli pomijanie CPU.
Konsola Microsoftu ma jeszcze jedno rozwiązanie, które na razie możemy omówić tylko teoretycznie. Bo, jak dotąd, nikt nie zdecydował się go wykorzystać. Jest to kolejny mechanizm optymalizujący współpracę CPU i GPU. Nazywa się on DX12 Execute Indirect, a metoda ta nazywana jest GPU side draw calling (nie będę tu już nawet próbował kreować polskiej nazwy).
Metoda ta pozwala procesorowi poleceń na samodzielne generowanie kolejnych poleceń dla procesora GPU z całkowitym pominięciem procesora CPU. Metoda ta do tej pory wykorzystywana była w przeliczeniach związanych z SI i przetwarzaniem dużych zbiorów danych. Nie jest jasne, czy okaże się to szczególnie pomocne w budowaniu gier i optymalizacji ich wydajności, ale wypada o tym wspomnieć, skoro zostało to wbudowane w DX12 i procesor poleceń układu GPU.
Najwydajniejsze PC są i tak szybsze. Ale Xbox One X ma więcej mocy, niż myślicie.
Bezpośrednie zestawianie tabelek ze specyfikacją nie daje właściwego obrazu sytuacji. Istotne jest bowiem nie tylko jakie podzespoły zostały zastosowane, ale też w jaki sposób są one ze sobą połączone oraz jak oprogramowanie nimi zarządza. A celowo w tym tekście unikałem wskazywania znanej korzyści, jaką jest profilowanie gry pod ściśle zdefiniowaną konfigurację sprzętową.
Studio deweloperskie odpowiedzialne za grę ARK: Survival Evolved oszacowało konsolę Xbox One X jako ekwiwalent komputera PC z układem graficznym GTX 1070 i 16 GB RAM. A więc zdecydowanie da się kupić mocniejszy komputer.
Teraz jednak już wiecie skąd taka ocena, mimo iż z suchej analizy specyfikacji wynika coś zupełnie innego.