A számítógépes játékosok valószínűleg jól tudják, hogy a tavalyi Game Developers Conference egyik legnagyobb híre a DirectX 12 programozási felület (API) bejelentése volt. Az elmúlt hónapokban a Microsoft serényen dolgozott a felületen, karöltve a grafikus lapkák tervezőivel, egyes játékmotorok fejlesztőivel. A redmondiak csütörtöki Windows 10-es sajtóeseményén nem sok szó esett a DirectX 12-ről, a vállalat által beígért nagy „PC gaming” bejelentések valójában arról szóltak, hogy az Xbox One tulajdonosok milyen extra funkciókat kapnak a konzoljuk mellé a Windows 10 rendszerű PC-k használata esetén.
A keménymagos PC-s játékosok számára az új Xbox alkalmazás funkcionalitásai – például Xbox One játékok streamelése a számítógépre, az Xbox Live közösségi hálózat elérése, a videók és képek ottani megosztása – irrelevánsak, de természetesen a DirectX 12 fejlesztései miatt ők is örülhetnek. De miről is van szó?
Alacsony szintű hardverhozzáférés
A grafikus kártyák hőskorában komoly problémát jelentett, hogy a piacon kapható hardverek támogatásához a játékok fejlesztőinek külön-külön kódokat kellett írniuk, amely sok időbe és fáradtságba került. Ezt megoldandó idővel szabványos grafikus programozási felületek jelentek meg, ilyen a DirectX és OpenGL.
A fejlesztőknek ezek használatával kell elkészíteniük a játékmotorok hardverektől függő kódjait, a videokártyák tervezői pedig szintén támogatják ezeket. A végeredmény elméletben az, hogy egy DirectX-ben írt kód gyártótól és modelltől függetlenül bármely videokártyán futtatható, amennyiben a grafikus kártya hardveresen és szoftveresen támogatja az igényelt verziójú DirectX-et.
Ez remekül hangzik (az is), azonban idővel egyre több és több közbülső szoftveres réteg ékelődött be a játék és videokártya közé, amely lerontotta a teljesítményt. Ezen felül a hardverek is megváltoztak: eredetileg a videokártyák és processzorok is teljesen szekvenciálisan működtek, azonban mára mindegyik képes párhuzamosan több dologgal is foglalkozni. A megfelelő kihasználásuk más programozási szemléletet igényel. A jelenlegi stabil DirectX és OpenGL felületekkel valós körülmények közt nem lehetséges hatékonyan kihasználni a hardverekben megbújó erőforrásokat: ha sikerül is megfelelően párhuzamosítani a grafikus számításokat, akkor a számítógép processzora fogja késleltetni a képkockák időszerű renderelését.
Az AMD Mantle és Apple Metal grafikus programozási felületekhez hasonlóan a DirectX 12 is erre nyújt megoldást: a segítségével a jelenlegi API-khoz képest jelentősen csökkenthető a processzor és grafikus kártya egymástól való függése, továbbá egyszerűbbé teszi a 3D-s számítások párhuzamosítását is. A Microsoft szerint az új API-val számottevően növelhető a játékok sebessége, akár 50 százalékos teljesítménybeli növekedésre is lehet számítani.
Széles körű elérhetőség
A DirectX 12 grafikus felület csak a Windows 10-ben lesz elérhető, a Microsoft nem portolja vissza az előző Windowsokba. Ez szerencsére nem probléma, hiszen az operációs rendszer kiadása után 12 hónapig a Windows 7 és Windows 8.x licenccel rendelkezők is ingyen frissíthetnek majd a Windows 10-re. A frissítés után „örökre” megmarad a Windows 10 licencünk, viszont jelenleg úgy tűnik, hogy a régi rendszerünkre való visszaállásra (downgrade) nem lesz lehetőség.
További jó hír, hogy valamilyen szinten az összes utóbbi ~3-4 évben piacra került grafikus kártya támogatja a DirectX 12-t, így nem kell majd feltétlenül új hardverre beruháznunk az új API miatt. Kompatibilis architektúrák: AMD Graphics Core Next (HD 7000+), NVIDIA Fermi, Kepler és Maxwell (GeForce 400+).