Valve: OpenGL on nopeampi kuin DirectX – jopa Windowsissa
pelottavassa käänteessä, joka vahvistaa Valven vastenmielisyyttä Windows 8: aa kohtaan, käy ilmi, että Source engine — Half Life 2: ta, Left 4: ää ja Dota 2: ta käyttävä 3D — moottori-toimii nopeammin Ubuntu 12.04: ssä ja OpenGL: ssä kuin Windows 7: ssä ja DirectX / Direct3D.
Valve Linux-tiimi purkaa sen kiiltävässä uudessa blogissaan: Nvidia GTX 680: llä, Intel i7-3930k: lla ja 32 Gt RAM-muistia, Windows 7: llä ja DirectX: llä, jätti 4 kuollutta 2 Maxia pois 270.6 fps: n nopeudella. Sama laitteisto, mutta eri ohjelmisto — Ubuntu 12.04 ja OpenGL — L4D2 tulokset 315 fps, lähes 20% nopeampi kuin Windows.
nämä luvut ovat huomattavia, kun otetaan huomioon, että Valve on hionut Source-moottorin suorituskykyä Windowsin alla lähes 10 vuotta, kun taas Valven Linux-tiimi on työstänyt Source-porttia vasta muutaman kuukauden. Valve määrittelee nopeuden ”ytimen ja OpenGL: n taustalla olevan tehokkuuden mukaan.”
L4D2: n Linux — portti ei tietenkään käynnistynyt 315 fps: llä-alkuperäinen versio itse asiassa maksimissaan vain 6 fps: llä. Tällaisen valtavan suorituskykylisäyksen toteuttamiseksi käytetään kolmiosaista lähestymistapaa: peli on viritetty pelaamaan kauniisti Linux-ytimen kanssa, peli on optimoitu toimimaan OpenGL: n kanssa (DirectX: n sijaan) ja Linux-näytönohjainten vikoja käsitellään.
Tämä viimeinen kohta on mielenkiintoinen: Valvella on pitkäaikaisia suhteita AMD: n, Nvidia: n ja Intelin kanssa, joissa Valve raportoi ajurivirheistä ja GPU maker korjaa ne ajoissa. Valve kuljettaa tätä suhdetta Linuxiin, mikä on erittäin tärkeää Linuxin jatkuvalle kasvulle pelialustana. Tässä tapauksessa Valve kertoo, että Nvidia Linux — ajurista puuttui monilukutuki-ja kun se lisättiin ajurin myöhempään versioon, suorituskyky kasvoi.
mutta tässä on paras bitti: käyttämällä näitä uusia OpenGL-optimointeja, OpenGL-versio L4D2 Windowsissa on nyt nopeampi kuin DirectX-versio. Samalla laitteistolla Windows 7 / OpenGL/L4D2 kellottaa sisään 303.4 fps — verrattuna Windows 7/DirectX / L4D2: een 270.6 fps. Lyhyesti: OpenGL on nopeampi kuin DirectX.
miksi OpenGL on nopeampi kuin DirectX / Direct3D, yksinkertainen vastaus on, että OpenGL näyttää olevan tasaisempi ja tehokkaampi putki. 303.4 fps: n nopeudella OpenGL renderoi kehyksen 3.29 millisekunnin välein; 270.6 fps: n nopeudella DirectX tekee kehyksen 3.69 millisekunnin välein. Tuo 0,4 millisekunnin ero on vain siinä, kuinka nopeasti DirectX-putki pystyy käsittelemään ja piirtämään 3D-dataa.
miksi käytämme edelleen Direct3D: tä?
Jos OpenGL on nopeampi, miksi DirectX on edelleen vallitseva API? Se ei johdu kuvanlaadusta tai ominaisuuksista: OpenGL 4.0: ssa on kaikki varjostimet ja tessellaattorit ja widgetit, jotka DX: llä on. Se ei johdu laitteistotuesta: kaikki Nvidia-ja AMD-näytönohjaimet tukevat OpenGL: n uusinta versiota yhdessä DirectX: n kanssa.
oikeastaan kaikki on kiinni siitä kurjasta vanhasta jutusta, jota kutsumme verkkoefektiksi — ja tietysti monopolistisista hefteistä ja markkinointidollareista. DirectX, koska siinä on puhtaampi API ja parempi dokumentaatio, on helpompi oppia. Enemmän kehittäjät käyttävät DirectX = enemmän DirectX pelejä = parempi ajurituki. Tämä on ilkeä silmukka, joka taas johtaa enemmän DX devs, enemmän DX pelejä, ja parempia DX ajurit/työkalut/dokumentointi. Myös Microsoft on markkinoinut DirectX: ää hellittämättä — ja kukapa voisi unohtaa Windows Vistan julkaisun ja Microsoftin OpenGL-mustamaalauskampanjan? Vistan niputettu versio OpenGL oli täysin rampa, pakottaen monet devs siirtyä DirectX.
Microsoftilla on hyvä syy haitata OpenGL: n etenemistä, Toki: Vaikka DirectX on oma ja toimii vain Windowsilla, Xboxilla ja Windows Phonella, OpenGL on täysin cross-platform. On olemassa vankka OpenGL toteutuksia Mac, Linux, PlayStation 3, Nintendo Wii, ja lähes jokainen moderni älypuhelin (OpenGL ES). On ilmeisesti Microsoftin etu varmistaa, että parhaat pelikokemukset ovat yksinoikeudella sen alustoilla.
Gabe Newellin vastenmielisyyden Windows 8: aa kohtaan (ja Blizzardin kaikuessa hänen tunteitaan), Steamin tulevan julkaisun Linuxissa ja älypuhelinpelien jatkuvan kasvun myötä voisimme olla OpenGL: n vallankumouksen kynnyksellä. Jos Windows gaming crown jatkaa luisumista, OpenGL saattaa pian muuttua oletusrajapinnaksi, eikä jälkiviisaaksi. Hyvin pian voisi olla normaalia kehittää peli, joka toimii hyvin kaikilla alustoilla — sen sijaan, että keskittyisi Direct3D: hen ja jättäisi Linuxin ja OS X: n pakkaselle.
Valve puhuu Linux / OpenGL-edistyksistään SIGGRAPH 2012-tapahtumassa ensi viikolla. SIGGRAPH on paikka, jossa yleensä kuulemme uusimmista OpenGL ja DirectX uutisia, liian — joten pysy kuulolla!
Päivitetty @ 2: 40: Jutussa kerrottiin alun perin, että OpenGL spec on yleensä DirectX: ää edellä — mutta se ei ole pitänyt paikkaansa enää muutamaan vuoteen.