Valve: OpenGL è più veloce di DirectX – anche su Windows
In un tocco spaventoso che rafforza il disgusto di Valve per Windows 8, si scopre che il motore Sorgente — il motore 3D che alimenta Half Life 2, Left 4 Dead e Dota 2 — funziona più velocemente su Ubuntu 12.04 e OpenGL Direct3D.
Il team Valve Linux si rompe sul loro nuovo blog lucido: Con una Nvidia GTX 680, Intel i7-3930k, e 32GB di RAM, Windows 7 e DirectX, Lasciato 4 Dead 2 maxes fuori a 270.6 fps. Con lo stesso hardware, ma diversi software — Ubuntu 12.04 e OpenGL — L4D2 punteggi 315 fps, quasi il 20% più veloce di Windows.
Queste cifre sono notevoli, considerando che Valve ha perfezionato le prestazioni del motore Sorgente sotto Windows per quasi 10 anni, mentre il team di Valve Linux ha lavorato sulla porta Linux dei Sorgenti solo per alcuni mesi. Valve attribuisce la velocità – up alla ” efficienza sottostante del kernel e OpenGL.”
La porta Linux di L4D2 non è iniziata a 315 fps, ovviamente — la versione iniziale in realtà ha raggiunto il massimo a soli 6 fps. Per realizzare un guadagno di prestazioni così enorme, viene adottato un approccio a tre punte: il gioco è ottimizzato per giocare bene con il kernel Linux, il gioco è ottimizzato per funzionare con OpenGL (piuttosto che DirectX) e i bug nei driver grafici di Linux sono indirizzati.
Quest’ultimo punto è interessante: Valve ha relazioni di lunga data con AMD, Nvidia e Intel, dove Valve segnala bug dei driver e il produttore di GPU li corregge in modo tempestivo. Valve sta portando questa relazione verso Linux, che è molto importante per la continua crescita di Linux come piattaforma di gioco. In questo caso, Valve afferma che il driver Nvidia Linux mancava del supporto per il multithreading e, una volta aggiunto a una versione successiva del driver, le prestazioni sono aumentate.
Ma ecco il bit migliore: usando queste nuove ottimizzazioni OpenGL, la versione OpenGL di L4D2 su Windows è ora più veloce della versione DirectX. Con lo stesso hardware, Windows 7/OpenGL / L4D2 si attiva a 303,4 fps, rispetto a Windows 7/DirectX / L4D2 a 270,6 fps. In breve: OpenGL è più veloce di DirectX.
Per quanto riguarda il motivo per cui OpenGL è più veloce di DirectX / Direct3D, la risposta semplice è che OpenGL sembra avere una pipeline più fluida ed efficiente. A 303,4 fps, OpenGL esegue il rendering di un frame ogni 3,29 millisecondi; a 270,6 fps, DirectX esegue il rendering di un frame in 3,69 millisecondi. Quella differenza di 0,4 millisecondi dipende dalla velocità con cui la pipeline DirectX può elaborare e disegnare dati 3D.
Perché usiamo ancora Direct3D?
Se OpenGL è più veloce, perché DirectX è ancora l’API predominante? Non è a causa della qualità dell’immagine o caratteristiche: OpenGL 4.0 ha tutti gli shader e tessellator e widget che DX ha. Non è a causa del supporto hardware: tutte le schede grafiche Nvidia e AMD supportano l’ultima versione di OpenGL insieme a DirectX.
In realtà, tutto si riduce a quella vecchia cosa scadente che chiamiamo effetto rete-e, naturalmente, peso monopolistico e dollari di marketing. DirectX, perché ha un’API più pulita e una migliore documentazione, è più facile da imparare. Altri sviluppatori che usano DirectX = altri giochi DirectX = migliore supporto per i driver. Questo è un circolo vizioso che porta di nuovo a più sviluppatori DX, più giochi DX e migliori driver/strumenti/documentazione DX. Microsoft ha inesorabilmente commercializzato DirectX, troppo-e chi può dimenticare il rilascio di Windows Vista e la campagna di diffamazione OpenGL di Microsoft? La versione in bundle di Vista di OpenGL è stata completamente paralizzata, costringendo molti sviluppatori a passare a DirectX.
Microsoft ha buone ragioni per ostacolare il progresso di OpenGL, ovviamente: Mentre DirectX è proprietario e funziona solo su Windows, Xbox e Windows Phone, OpenGL è completamente multipiattaforma. Ci sono solide implementazioni OpenGL per Mac, Linux, PlayStation 3, Nintendo Wii e quasi tutti gli smartphone moderni (OpenGL ES). E ‘ ovviamente nel migliore interesse di Microsoft per garantire che le migliori esperienze di gioco sono esclusivi per le sue piattaforme.
Con il disgusto di Gabe Newell per Windows 8 (e Blizzard fa eco ai suoi sentimenti), l’imminente rilascio di Steam su Linux e la continua crescita dei giochi per smartphone, potremmo essere sul punto di una rivoluzione OpenGL. Se la corona di gioco di Windows continua a scivolare, OpenGL potrebbe presto diventare l’API predefinita, piuttosto che un ripensamento. Molto presto, potrebbe essere standard per sviluppare un gioco che funziona bene su ogni piattaforma — piuttosto che concentrarsi su Direct3D e lasciando Linux e OS X fuori al freddo.
Valve parlerà dei suoi progressi Linux / OpenGL a SIGGRAPH 2012 la prossima settimana. SIGGRAPH è dove di solito sentiamo parlare delle ultime notizie OpenGL e DirectX, anche-quindi rimanete sintonizzati!
Aggiornato alle 2:40: La storia originariamente affermava che le specifiche OpenGL sono di solito in anticipo rispetto a DirectX, ma questo non è stato vero per alcuni anni.