Valve: OpenGL gyorsabb, mint a DirectX – még a Windows
egy ijesztő csavarban, amely megerősíti a Valve ellenszenvét a Windows 8 iránt, kiderül, hogy a Source engine — a 3D motor, amely a Half Life 2-t, a Left 4 Dead-t és a Dota 2-t működteti-gyorsabban fut az Ubuntu 12.04-en és az OpenGL-en, mint a Windows 7 és a DirectX/Direct3D.
a Valve Linux csapata a fényes új blogján bontja le: az Nvidia GTX 680, az Intel i7-3930K és a 32 GB RAM, A Windows 7 és a DirectX, a Left 4 Dead 2 maxes 270.6 fps sebességgel. Ugyanazzal a hardverrel, de más szoftverrel-az Ubuntu 12.04 és az OpenGL-L4D2 315 fps-t ér el, majdnem 20% – kal gyorsabb, mint a Windows.
ezek a számok figyelemre méltóak, figyelembe véve, hogy a Valve csaknem 10 éve finomítja a Source motor teljesítményét Windows alatt, míg a Valve Linux csapata csak néhány hónapja dolgozik a Source Linux portján. A Valve a gyorsítást “a kernel és az OpenGL mögöttes hatékonyságának” tulajdonítja.”
az L4D2 Linux portja természetesen nem 315 kép / mp sebességgel indult — az eredeti verzió valójában csak 6 kép / mp sebességgel maximalizálódott. Egy ilyen hatalmas teljesítménynövekedés megvalósításához háromágú megközelítést alkalmaznak: a játékot úgy módosítják, hogy szépen játsszon a Linux kernellel, a játékot úgy optimalizálták, hogy az OpenGL-rel működjön (a DirectX helyett), és a Linux grafikus illesztőprogramok hibáival foglalkoznak.
Ez az utolsó pont érdekes: A Valve régóta kapcsolatban áll az AMD-vel, az Nvidia-val és az Intellel, ahol a Valve beszámol az illesztőprogram hibáiról, és a GPU készítő időben kijavítja őket. A Valve ezt a kapcsolatot átadja a Linuxnak, ami nagyon fontos a Linux Mint játékplatform folyamatos növekedése szempontjából. Ebben az esetben a Valve azt mondja, hogy az Nvidia Linux illesztőprogramnak nem volt többszálú támogatása — és miután hozzáadták az illesztőprogram egy későbbi verziójához, a teljesítmény nőtt.
de itt van a legjobb bit: az új OpenGL optimalizálások használatával az L4D2 OpenGL verziója Windows rendszeren gyorsabb, mint a DirectX verzió. Ugyanazzal a hardverrel a Windows 7 / OpenGL/L4D2 303,4 fps sebességgel működik — összehasonlítva A Windows 7/DirectX / L4D2 270,6 fps sebességgel. Röviden: az OpenGL gyorsabb, mint a DirectX.
ami azt illeti, miért gyorsabb az OpenGL, mint a DirectX/Direct3D, az egyszerű válasz az, hogy az OpenGL simább, hatékonyabb csővezetékkel rendelkezik. 303,4 fps sebességgel az OpenGL 3,29 milliszekundumonként renderel egy keretet; 270,6 fps sebességgel a DirectX 3,69 milliszekundum alatt renderel egy keretet. Ez a 0,4 milliszekundumos különbség attól függ, hogy a DirectX csővezeték milyen gyorsan képes feldolgozni és rajzolni a 3D adatokat.
miért használjuk még mindig a Direct3D-t?
Ha az OpenGL gyorsabb, miért továbbra is a DirectX az uralkodó API? Nem a képminőség vagy a funkciók miatt: az OpenGL 4.0 rendelkezik a DX összes árnyékolójával, tessellátorával és widgetjével. Nem a hardveres támogatás miatt: minden Nvidia és AMD grafikus kártya támogatja az OpenGL legújabb verzióját a DirectX mellett.
tényleg, minden jön le, hogy a ócska régi dolog hívjuk a hálózati hatás — és természetesen, monopolisztikus súly és marketing dollárt. A DirectX, mivel tisztább API-val és jobb dokumentációval rendelkezik, könnyebben megtanulható. Több fejlesztő használja a DirectX-et = több DirectX játék = jobb illesztőprogram-támogatás. Ez egy ördögi hurok, amely ismét több DX fejlesztőhöz, több DX játékhoz és jobb DX illesztőprogramokhoz/eszközökhöz/dokumentációhoz vezet. A Microsoft könyörtelenül forgalmazta a DirectX-et is — és ki felejtheti el a Windows Vista kiadását és a Microsoft OpenGL-lejárató kampányát? A Vista OpenGL mellékelt verziója teljesen megbénult, sok fejlesztőt arra kényszerítve, hogy váltson a DirectX-re.
a Microsoftnak jó oka van arra, hogy akadályozza az OpenGL fejlődését, természetesen: Míg a DirectX szabadalmaztatott, és csak Windows, Xbox és Windows Phone rendszeren fut, az OpenGL teljesen platformközi. Vannak szilárd OpenGL implementációk Mac, Linux, PlayStation 3, Nintendo Wii, és majdnem minden modern okostelefon (OpenGL ES). Nyilvánvalóan a Microsoft érdeke annak biztosítása, hogy a legjobb játékélmények kizárólag a platformjaira vonatkozzanak.
Gabe Newell ellenszenvével A Windows 8 iránt (és a Blizzard visszhangozza az érzéseit), a Steam Linuxon való közelgő megjelenésével és az okostelefon-játékok folyamatos növekedésével egy OpenGL forradalom csúcsán lehetünk. Ha a Windows játékkorona továbbra is csúszik,az OpenGL hamarosan az alapértelmezett API lesz, nem pedig utólag. Hamarosan szabvány lehet egy olyan játék kifejlesztése — amely minden platformon jól működik – ahelyett, hogy a Direct3D-re koncentrálna, és a Linuxot és az OS X-et kihagyná a hidegben.
Valve fog beszélni a Linux / OpenGL fejlesztések SIGGRAPH 2012 jövő héten. A SIGGRAPH az, ahol általában hallunk a legfrissebb OpenGL és DirectX hírekről is — tehát maradjon velünk!
frissítve @ 2:40: A történet eredetileg azt állította, hogy az OpenGL specifikációja általában megelőzi a DirectX — et-de ez néhány éve nem igaz.