DirectX 11 nadchodzi nieśmiało

Gdzie ten postęp na rynku gier PC?

Autor: Marcin 'Llewelyn_MT' Trybus

DirectX 11 nadchodzi nieśmiało
Wraz z premierą Windows 7 w październiku 2009 roku na komputerach zagościły biblioteki nowej wersji interfejsu programowania aplikacji (API) firmy Microsoft – DirectX 11. Kilka dni temu usłyszeliśmy, że udział tego systemu w rynku przekroczył wreszcie udział Windows XP. DirectX 9.0c od premiery w sierpniu 2004 do dziś pozostaje de facto standardem dla programowania gier. Posiadacze Windows XP, których aktualizacja do DirectX 11 (oficjalnie) ominie, zaczęli odczuwać niepewność jutra. W obliczu kiepskiej sprzedaży Windows Vista, przed premierą Windows 7, wyrok zdawał się być odroczony. Mimo początkowego wahania 64-bitowy Windows 7 jest obecnie ulubionym systemem operacyjnym graczy PC, zwłaszcza za oceanem. Wszystko wskazuje na to, że mamy do czynienia z początkiem końca ery DirectX 9. Na całe szczęście.

Oświadczenia producentów gier coraz częściej będą szły w ślady EA DICE – ich Frostbite 2.0 w wersji dla DirectX 9 w ogóle się nie ukaże. Mój komputer został skompletowany na długo przed wydaniem DirectX 11, więc pozbawi mnie to możliwości grania w takie najnowsze tytuły, jak tworzony właśnie przez to studio Battlefield 3. Skupiam się raczej na niezaprzeczalnych zaletach takiego rozwiązania dla platformy PC.


Postęp w sprzęcie

Do najważniejszych zalet nowego API należały wprowadzenie rozszerzeń GPGPU (DirectCompute), umożliwiających lepsze wykorzystanie nadwyżki mocy karty graficznej na potrzeby obliczeń obciążających zwykle procesor, oraz usprawnienie wielowątkowości. Ten ruch w oczywisty sposób wpisuje się w trendy rozwoju sprzętu komputerowego. Według danych dostępnych na platformie Steam (załóżmy, że to w miarę przekrojowa grupa, jeśli chodzi o graczy) zaledwie 17% użytkowników posiada jeszcze komputery z jednordzeniowymi procesorami, a ich odsetek systematycznie spada. Nie jest to dla nikogo zaskoczeniem – ostatnie takie procesory przeznaczone do komputerów stacjonarnych zeszły z linii produkcyjnych kilka lat temu, a entuzjaści gier omijają je szerokim łukiem co najmniej od lat pięciu.

Rozwój kart graficznych jest jeszcze bardziej znaczący. Dostępny w dniu premiery DirectX 9.0c topowy model Nvidia GeForce FX 5950 Ultra posiadał 256 MB pamięci DDR (30,4 GB/s) i zapewniał fillrate pikseli i tekseli na poziomie odpowiednio 3,8 GP/s i 3,8 GT/s. Całość posiadała moc obliczeniową niespełna 50 GFLOPS. Minęło ponad 6 lat. Niedawno mój brat zakupił do swojego komputera kartę ze średniej półki – GeForce GTX 460 z 1 GB pamięci GDDR5. Różnica w wydajności modeli referencyjnych jest miażdżąca: 115,2 GB/s, 21,6 GP/s i 37,8 GT/s. Wynik 907,2 GFLOPS oznacza dwudziestokrotny wzrost mocy obliczeniowej. Z premedytacją wspomniałem o modelu referencyjnym, gdyż obecnie niemal wszystkie karty są "fabrycznie podkręcone", co zapewnia dodatkową moc przy niewielkim wzroście kosztów. Topowe modele referencyjne (GeForce GTX 590 i Radeon HD 5870) osiągają 2500 GFLOPS, a najpotężniejszy Radeon HD 5970 – 4640 GFLOPS. To do nich wszak powinno się porównywać absolutnie nieziemski w swoim czasie FX 5950 Ultra.

Dla oddania skali dodam jeszcze parametry grafiki ostatniej generacji konsol do gier – ATI Xenos z Xbox 360 (podobny do Radeona X1900) daje 240 GFLOPS, natomiast RSX z PS3 (opracowany z GeForce 7800) zapewnia około 400 GFLOPS. Oczywiście nie jest możliwe bezpośrednie porównanie całościowej wydajności na podstawie tylko tej liczby, gdyż konsole nie są wyposażone w procesory x86 czy AMD64. Dochodzą również różnice w zastosowanym API i udogodnienia dla programistów na tych platformach wynikające z jednorodności sprzętu, ale po układach widać już ich podeszły, jak na technikę komputerową, wiek.


PC łyka konsole na śniadanie, ale co z tego?

Płacimy za uaktualnienie swojego sprzętu, więc chcielibyśmy widzieć efekty. Winą za brak postępu można obarczać podstarzałe konsole, które są głównym odbiorcą najnowszych gier. Przy całym zaangażowaniu społeczności PC to konsole rozdają karty. Jednolity sprzęt, większy wolumen sprzedaży, wyższe ceny detaliczne – mimo haraczu dla właściciela platformy, producenci gier dobrze zdają sobie sprawę, gdzie leżą pieniądze, a to w końcu tylko biznes.

Olbrzymi zapas mocy obliczeniowej współczesnego PC w porównaniu do konsol jest niezaprzeczalny, ale brak pomysłu na jej wykorzystanie. Zarówno PS3, jak i Xbox 360 oferują obraz w rozdzielczości HD. Dla PC nie jest problemem uzyskanie rozdzielczości jeszcze wyższych, ale nie bardzo wiadomo po co, gdyż ta wielkość jest całkowicie satysfakcjonująca dla większości użytkowników. Liczba klatek na sekundę podczas grania w HD na poziomie 100, a nawet 150, też nikogo nie zaskakuje, ale tego również praktycznie wykorzystać się nie da, gdyż nasze oko nie uchwyci nawet różnicy między 50 a 100 klatek.


Postęp oprogramowania? Nie widzę...

Niestety dochodzi do kuriozów jak z kontynuacją hitu wyłącznego dla PC – Crysis. Pierwsza wersja gry szokowała nie tylko znakomitym wyglądem, ale pewnie przede wszystkim wymaganiami sprzętowymi. Gdy powstała, nie istniał sprzęt, na którym dałoby się uruchomić ją na maksimum detali w wysokiej rozdzielczości. Druga część, delikatnie rzecz ujmując, to powrót do przeszłości, z tym że obfitą różnorodność dżungli zamieniliśmy na niemal księżycowy krajobraz zrujnowanego miasta. Co ciekawe, na tym samym sprzęcie, mimo upływu lat, obie części Crysis działają z podobną szybkością. W zamian za to grą mogą cieszyć się także posiadacze konsol. Dla grających na PC to marna pociecha.

Jakby tego było mało, wersje DirectX 11 ostatnio wydanych hitów, jak Shogun 2 czy wspomniany Crysis 2, pozostają niedostępne, mimo obietnicy jednoczesnej premiery. O ile w przypadku gry strategicznej, nawet tak epickiej, nie ma to decydującego znaczenia, o tyle z założenia widowiskowa strzelanka mogłaby na tym tylko zyskać. Pozostaje czekać. W świetle tych wpadek ciekawie prezentowała się oferta opcjonalnej paczki tekstur wysokiej rozdzielczości dla Dragon Age II, z której skwapliwie skorzystał mój brat. Ciekawy efektu, poprosiłem go o wykonanie zrzutów próbek grafiki w trybie DirectX 9 oraz DirectX 11.

Już podczas samego testu pojawił się problem, który przekonuje mnie o konieczności ostatecznego uśmiercenia DirectX 9 dla nowych produkcji. Obecne implementacje DirectX 11 nie grzeszą wydajnością. W trybie, który jak widać ze zrzutów wypadałoby nazwać "Legacy", gra śmiga swobodnie z 8x AA na maksymalnym poziomie detali, nie wiedzieć czemu nazwanym "Średnim". Komputer jest nowy a Dragon Age II działa na starym silniku, więc to żadne zaskoczenie. W trybie DirectX 11 natomiast sprawa wyglądała zupełnie inaczej. Przy 8x AA i 16x AF z teksturami wysokiej rozdzielczości poziom szczegółowości grafiki można było ustawić co najwyżej na "Wysoki", gdyż "Bardzo wysoki" nie zapewniał płynności. Wszystko to pomimo mocnej konfiguracji sprzętowej – AMD Phenom II X4 965 Black Edition (3,4 GHz), Palit Nvidia GeForce GTX 460 Sonic Platinum (256 bit, taktowanie rdzenia/pamięci 800 MHz/2000 MHz, 1 GB GDDR5), 4 GB RAM (DDR3), 64-bitowy Windows 7 Home Premium. Na szczęście okazało się to błędem samej gry. Po zainstalowaniu świeżutkiej, wczorajszej aktualizacji do wersji 1.02 problemy zniknęły jak ręką odjął. Dzięki temu mogę wam zaprezentować wykonane dziś zrzuty w pełni prezentujące możliwości silnika graficznego.

Poniżej wybrane fragmenty zrzutów ekranu. Po lewej wykonane w trybie DirectX 9, po prawej – DirectX 11. Oba na najlepszych dostępnych ustawieniach. Całe użyte zrzuty i kilkanaście innych znajdziecie w paczce, którą można ściągnąć z naszego serwera [14,8 MB].

Teksturowanie detali pancerza i muru podczas dialogu


Efekt zdolności chroniącej postacie, uwagę zwracają także różnice w teksturowaniu otoczenia


Efekty cząsteczkowe przy dłoniach postaci magicznych


Cieniowanie w trybie DirectX 11 daje znacznie lepsze efekty


Tylko w trybie DirectX 9 mamy do czynienia z błyskawicami z celofanu


Poziom detali scenerii nie pozostawia wątpliwości


To tylko statyczne obrazki, ale dają pogląd na różnice pomiędzy tymi trybami. Sama gra prezentuje się znacznie bardziej okazale w DirectX 11. Pozostaje mieć nadzieję, że zmiana pokoleniowa zagości, ku naszej uciesze, i w innych grach. Z pewnością zarzucenie DirectX 9, mimo początkowych problemów związanych z wymianą podstarzałego sprzętu, pozytywnie wpłynie na stabilność i szybkość działania aplikacji DirectX 11, co od zawsze stanowi czołówkę życzeń graczy. Ponieważ efektowna grafika też zazwyczaj znajduje się wysoko na liście mam nadzieję, że odbędzie się to z korzyścią dla rozwoju gier PC. Potencjał sprzętowy mamy od dawna, ale czekamy na jego pełne wykorzystanie.