Valve: OpenGL is sneller dan DirectX – zelfs op Windows
in een enge twist die Valve ‘ s afkeer voor Windows 8 versterkt, blijkt dat de Source engine — de 3D — engine die Half Life 2 aandrijft, 4 Dead en Dota 2-sneller werkt op Ubuntu 12.04 en OpenGL dan Windows 7 en DirectX/Direct3D.
Het Valve Linux Team breekt het af op hun glanzende nieuwe blog: met een Nvidia GTX 680, Intel i7-3930k, en 32 GB RAM, Windows 7 en DirectX, liet 4 dode 2 maxes uit op 270.6 fps. Met dezelfde hardware, maar verschillende software — Ubuntu 12.04 en OpenGL — L4D2 scoort 315 fps, bijna 20% sneller dan Windows.
deze cijfers zijn opmerkelijk, aangezien Valve de prestaties van de Bronmotor onder Windows al bijna 10 jaar verfijnt, terwijl het Valve Linux-team pas een paar maanden aan de Linux-poort van de bron werkt. Valve schrijft De snelheid-up aan de “onderliggende efficiëntie van de kernel en OpenGL.”
De Linux poort van L4D2 begon natuurlijk niet bij 315 fps — de initiële versie was eigenlijk maximaal 6 fps. Om zo ‘ n enorme prestatiewinst te realiseren, wordt een drieledige aanpak gekozen: het spel wordt getweaked om mooi te spelen met de Linux kernel, het spel is geoptimaliseerd om te werken met OpenGL (in plaats van DirectX), en bugs in de Linux graphics drivers worden aangepakt.
Dit laatste punt is interessant: Valve heeft langdurige relaties met AMD, Nvidia en Intel, waar Valve rapporteert driver bugs en de GPU maker corrigeert ze in een tijdige manier. Valve draagt deze relatie over naar Linux, wat erg belangrijk is voor de verdere groei van Linux als gaming platform. In dit geval, Valve zegt dat de NVidia Linux driver ontbrak multithreading ondersteuning — en zodra ze toegevoegd aan een latere versie van de driver, de prestaties verhoogd.
maar hier is het beste: met deze nieuwe OpenGL-optimalisaties is de OpenGL-versie van L4D2 op Windows Nu Sneller dan de DirectX-versie. Met dezelfde hardware, Windows 7/OpenGL/L4D2 klokken in op 303.4 fps-vergeleken met Windows 7 / DirectX / L4D2 op 270.6 fps. Kortom: OpenGL is sneller dan DirectX.
wat betreft waarom OpenGL sneller is dan DirectX/Direct3D, is het eenvoudige antwoord dat OpenGL een vloeiendere, efficiëntere pijplijn lijkt te hebben. Op 303.4 fps, OpenGL is het renderen van een frame elke 3,29 milliseconden; op 270.6 fps, DirectX is het renderen van een frame in 3,69 milliseconden. Dat 0.4 milliseconde verschil is te danken aan hoe snel de DirectX pijplijn 3D-gegevens kan verwerken en tekenen.
waarom gebruiken we nog steeds Direct3D?
als OpenGL sneller is, waarom is DirectX dan nog steeds de belangrijkste API? Het is niet vanwege de beeldkwaliteit of functies: OpenGL 4.0 heeft alle shaders en tessellators en widgets die DX heeft. Het is niet vanwege hardware ondersteuning: alle NVIDIA en AMD Grafische kaarten ondersteunen de nieuwste versie van OpenGL samen met DirectX.
echt, het komt allemaal neer op dat waardeloze oude ding dat we het netwerk effect noemen — en, natuurlijk, monopolistische heft en marketing dollars. DirectX, omdat het een schonere API en betere documentatie heeft, is gemakkelijker te leren. Meer ontwikkelaars met behulp van DirectX = meer DirectX games = betere driver ondersteuning. Dit is een vicieuze cirkel die weer leidt tot meer DX devs, meer DX games, en betere DX drivers/tools/documentatie. Microsoft heeft meedogenloos DirectX op de markt gebracht, ook — en wie kan de release van Windows Vista en Microsoft ‘ s OpenGL laster campagne vergeten? Vista ‘ s gebundelde versie van OpenGL was volledig kreupel, waardoor veel devs om te schakelen naar DirectX.
Microsoft heeft goede redenen om de voortgang van OpenGL te belemmeren, natuurlijk: Terwijl DirectX is eigendom en draait alleen op Windows, Xbox en Windows Phone, OpenGL is volledig cross-platform. Er zijn solide OpenGL-implementaties voor Mac, Linux, PlayStation 3, Nintendo Wii en zowat elke moderne smartphone (OpenGL ES). Het is duidelijk in het belang van Microsoft om ervoor te zorgen dat de beste game-ervaringen zijn exclusief voor de platforms.
met Gabe Newell ‘ s afkeer voor Windows 8( en Blizzard weerklinkt zijn gevoelens), de aanstaande release van Steam op Linux, en de voortdurende groei van smartphone games, kunnen we op de vooravond staan van een OpenGL revolutie. Als de Windows gaming Kroon blijft glijden, OpenGL zou binnenkort de standaard API, in plaats van een bijzaak. Binnenkort zou het standaard kunnen zijn om een spel te ontwikkelen dat goed werkt op elk platform — in plaats van zich te concentreren op Direct3D en Linux en OS X in de kou te laten staan.
Valve zal volgende week op SIGGRAPH 2012 spreken over zijn Linux/OpenGL vooruitgang. SIGGRAPH is waar we meestal horen over de nieuwste OpenGL en DirectX nieuws — ook – dus blijf op de hoogte!
bijgewerkt @ 2: 40: Het verhaal oorspronkelijk verklaard dat de OpenGL spec is meestal voor DirectX-maar dat is niet waar voor een paar jaar nu.