Articles

Valve: OpenGL är snabbare än DirectX – även på Windows

denna webbplats kan tjäna affiliate provision från länkarna på denna sida. Användningsvillkor.
L4D2, som körs på Ubuntu 11.10

i en skrämmande vridning som förstärker Valves avsmak för Windows 8 visar det sig att Källmotorn — 3D — motorn som driver Half Life 2, Left 4 Dead och Dota 2-körs snabbare på Ubuntu 12.04 och OpenGL än Windows 7 och DirectX/Direct3D.

Valve Linux-teamet bryter ner det på sin glänsande nya blogg: med en Nvidia GTX 680, Intel i7-3930k och 32GB RAM, Windows 7 och DirectX, lämnade 4 döda 2 maxar ut vid 270.6 fps. Med samma hårdvara, men annan programvara — Ubuntu 12.04 och OpenGL — L4D2 får 315 fps, nästan 20% snabbare än Windows.

dessa siffror är anmärkningsvärda, med tanke på att Valve har förfinat Källmotorns prestanda under Windows i nästan 10 år, medan Valve Linux-teamet bara har arbetat med Linux-Källporten i några månader. Valve attribut hastigheten upp till ” underliggande effektiviteten i kärnan och OpenGL.”

Linux-porten på L4D2 startade inte vid 315 fps, förstås – den ursprungliga versionen maxade faktiskt ut på bara 6 fps. För att uppnå en så stor prestationsförstärkning tas ett trekantigt tillvägagångssätt: spelet är tweaked för att spela snyggt med Linux-kärnan, spelet är optimerat för att fungera med OpenGL (snarare än DirectX) och buggar i Linux-grafikdrivrutinerna adresseras.

denna sista punkt är intressant: Valve har långvariga relationer med AMD, Nvidia och Intel, där Valve rapporterar drivrutinsfel och GPU-tillverkaren fixar dem i rätt tid. Valve bär detta förhållande över till Linux, vilket är mycket viktigt för den fortsatta tillväxten av Linux som spelplattform. I det här fallet säger Valve att Nvidia Linux — drivrutinen saknade stöd för multitrådning-och när de lagt till den i en senare version av drivrutinen ökade prestandan.

men här är den bästa biten: med hjälp av dessa nya OpenGL-optimeringar är OpenGL-versionen av L4D2 på Windows nu snabbare än DirectX-versionen. Med samma hårdvara klockar Windows 7/OpenGL/L4D2 in vid 303.4 fps — jämfört med Windows 7/DirectX/L4D2 vid 270.6 fps. Kort sagt: OpenGL är snabbare än DirectX.

DirectX-logotypennär det gäller varför OpenGL är snabbare än DirectX/Direct3D är det enkla svaret att OpenGL verkar ha en mjukare och effektivare pipeline. Vid 303,4 fps gör OpenGL en ram varje 3,29 millisekunder; vid 270,6 fps gör DirectX en ram på 3,69 millisekunder. Den 0,4 millisekundskillnaden beror på hur snabbt DirectX-rörledningen kan bearbeta och rita 3D-data.

Varför använder vi fortfarande Direct3D?

om OpenGL är snabbare, varför är DirectX fortfarande det dominerande API? Det är inte på grund av bildkvalitet eller funktioner: OpenGL 4.0 har alla shaders och tessellators och widgets som DX har. Det är inte på grund av hårdvarustöd: alla Nvidia-och AMD-grafikkort stöder den senaste versionen av OpenGL tillsammans med DirectX.

egentligen kommer allt ner till den smutsiga gamla saken vi kallar nätverkseffekten-och naturligtvis monopolistiska heft och marknadsföringsdollar. DirectX, eftersom det har ett renare API och bättre dokumentation, är lättare att lära sig. Fler utvecklare som använder DirectX = fler DirectX-spel = bättre drivrutinsstöd. Det här är en ond slinga som igen leder till fler DX-devs, fler DX-spel och bättre DX-drivrutiner/verktyg/dokumentation. Microsoft har obevekligt marknadsfört DirectX också-och vem kan glömma utgåvan av Windows Vista och Microsofts OpenGL-smutskastningskampanj? Vista: s buntade version av OpenGL var helt förlamad, vilket tvingade många devs att byta till DirectX.

Steam LinuxMicrosoft har goda skäl att hindra utvecklingen av OpenGL, naturligtvis: Medan DirectX är proprietär och endast körs på Windows, Xbox och Windows Phone, är OpenGL helt plattformsoberoende. Det finns solida OpenGL-implementeringar för Mac, Linux, PlayStation 3, Nintendo Wii och nästan alla moderna smartphones (OpenGL ES). Det är uppenbarligen i Microsofts bästa intresse att se till att de bästa spelupplevelserna är exklusiva för sina plattformar.

med Gabe Newells avsmak för Windows 8 (och Blizzard echoing hans känslor), den överhängande utgåvan av Steam på Linux och den fortsatta tillväxten av smartphone-spel, kunde vi vara på väg mot en OpenGL-revolution. Om Windows gaming crown fortsätter att glida, kan OpenGL snart bli standard API, snarare än en eftertanke. Mycket snart kan det vara standard att utveckla ett spel som fungerar bra över alla plattformar — snarare än att fokusera på Direct3D och lämna Linux och OS X ute i kylan.

Valve kommer att prata om sina Linux / OpenGL-framsteg på SIGGRAPH 2012 nästa vecka. SIGGRAPH är där vi brukar höra om de senaste OpenGL-och DirectX-nyheterna också-så håll dig uppdaterad!

uppdaterad @ 2: 40: Historien uppgav ursprungligen att OpenGL — specifikationen vanligtvis ligger före DirectX-men det har inte varit sant i några år nu.