Valve: OpenGL er hurtigere end Direct – selv på vinduer
i en skræmmende drejning, der forstærker ventilens afsky for Vinduer 8, viser det sig, at Kildemotoren — 3D — motoren, der driver Half Life 2, Left 4 Dead og Dota 2-kører hurtigere på Ubuntu 12.04 og OpenGL end Vinduer 7 og direkte/Direct3D.med en Nvidia 680, Intel i7-3930K og 32 GB RAM, Vinduer 7 og direkte, forlod 4 døde 2 maks ud på 270.6 fps. Med det samme udstyr, men forskellige programmer — Ubuntu 12.04 og OpenGL — L4D2 scorer 315 fps, næsten 20% hurtigere end vinduer.
disse tal er bemærkelsesværdige, i betragtning af at Valve har forfinet Kildemotorens ydeevne under vinduer i næsten 10 år, mens Valve Linuks-teamet kun har arbejdet på Linuks havn i kilde i et par måneder. Ventil tilskriver hastigheden op til ” underliggende effektivitet af kernen og OpenGL.”L4D2-porten startede selvfølgelig ikke ved 315 fps — den oprindelige version blev faktisk maksimeret på kun 6 fps. For at realisere en så stor præstationsgevinst tages der en trestrenget tilgang: spillet justeres for at spille pænt med Linuk-kernen, spillet er optimeret til at arbejde med OpenGL (snarere end direkte), og fejl i Linuks grafikdrivere adresseres.
dette sidste punkt er interessant: Valve har langvarige forhold til AMD, Nvidia og Intel, hvor Valve rapporterer driverfejl, og GPU-producenten løser dem rettidigt. Valve bærer dette forhold over til
men her er den bedste bit: ved hjælp af disse nye OpenGL-optimeringer er OpenGL-versionen af L4D2 på vinduer nu hurtigere end Direct-versionen. Med det samme udstyr, vinduer 7/OpenGL/L4D2 ure ind på 303.4 fps — sammenlignet med vinduer 7/Direct/L4D2 på 270.6 fps. Kort sagt: OpenGL er hurtigere end Direct.
hvad angår hvorfor OpenGL er hurtigere end Direct/Direct3D, er det enkle svar, at OpenGL ser ud til at have en glattere og mere effektiv rørledning. Ved 303,4 fps gengiver OpenGL en ramme hvert 3,29 millisekunder; ved 270,6 fps gengiver Direct en ramme i 3,69 millisekunder. Den 0,4 millisekund forskel er ned til, hvor hurtigt rørledningen kan behandle og tegne 3D-data.
Hvorfor bruger vi stadig Direct3D?
Hvis OpenGL er hurtigere, hvorfor er OpenGL stadig den dominerende API? Det er ikke på grund af billedkvalitet eller funktioner: OpenGL 4.0 har alle shaders og tessellators og kontroller. Det er ikke på grund af udstyrsstøtte: alle Nvidia-og AMD-grafikkort understøtter den nyeste version af OpenGL sammen med
virkelig kommer det hele ned på den crummy gamle ting, vi kalder netværkseffekten — og selvfølgelig monopolistiske heft og marketing dollars. Fordi det har en renere API og bedre dokumentation, er det lettere at lære. Flere udviklere bruger Direct = flere direct spil = bedre driver support. Dette er en ond sløjfe, der igen fører til flere udviklere, flere spil og bedre drivere/værktøjer/dokumentation. Microsoft har ubarmhjertigt markedsført Microsoft, også — og hvem kan glemme udgivelsen af Microsoft ‘ s OpenGL smear kampagne? Vista ‘ s bundtede version af OpenGL var fuldstændig lammet, hvilket tvang mange devs til at skifte til Direct.
Microsoft har god grund til at hæmme udviklingen af OpenGL, selvfølgelig: Mens OpenGL er proprietær og kun kører på vinduer, vinduer og vinduer telefon, OpenGL er helt cross-platform. Der er solide OpenGL-implementeringer til Mac, PlayStation 3, Nintendo og næsten enhver moderne smartphone (OpenGL ES). Det er naturligvis i Microsofts bedste interesse at sikre, at de bedste spiloplevelser er eksklusive til sine platforme.med Gabe Nyells afsky for Vinduer 8 (og snestorm, der gentager hans følelser), den forestående frigivelse af Steam på Linuks og den fortsatte vækst af smartphone-spil, kunne vi være på spidsen for en OpenGL-revolution. Hvis vinduerne gaming krone fortsætter med at glide, OpenGL kan snart blive standard API, snarere end en eftertanke. Meget snart kan det være standard at udvikle et spil, der fungerer godt på tværs af alle platforme — snarere end at fokusere på Direct3D og lade os være ude i kulden.
Valve vil tale om sine Linuks/OpenGL fremskridt på SIGGRAPH 2012 næste uge. SIGGRAPH er hvor vi normalt hører om de seneste OpenGL og Direct-nyheder — også-så hold dig opdateret!
Opdateret @ 2:40: Historien sagde oprindeligt, at OpenGL spec normalt er foran Direct — men det har ikke været sandt i et par år nu.