Vilka är de olika typerna av OpenGL®-drivrutiner?

OpenGL®, det öppna grafikspråket, är en öppen källkodsstandard och ett abstrakt programmeringsgränssnitt (API) för programmering av tredimensionell (3D) grafik i datorprogram. För att API:et ska fungera när det kompileras och körs måste datorn som kör programmet ha rätt OpenGL®-drivrutiner installerade. Det finns många typer av drivrutiner, men de tjänar alla det unika syftet att fungera som ett gränssnitt mellan koden som är skriven med OpenGL® API och hårdvaran som återger grafiken. OpenGL®-drivrutinerna är inte utvecklade eller släppta av personerna som underhåller OpenGL® API; de släpps istället av tillverkarna av hårdvaran inuti datorn. Den enda skillnaden, i verkligheten, mellan de olika typerna av OpenGL®-drivrutiner är koden för hårdvaran som den samverkar med.

Standarden för OpenGL® blev så småningom en enhetlig, enkel plattform och mestadels språkoberoende implementering av grundläggande 3D-grafikfunktioner som kunde användas som ett mycket lågt sätt att samverka med hårdvara. Det gick framåt i denna riktning på grund av en växande mängd egenutvecklade 3D API:er som var och en hade olika designfilosofier och funktionssignaturer. API:et antogs av både programmerare och hårdvarutillverkare, eftersom det var öppen källkod och inte krävde köp av en licens för användning på samma sätt som vissa andra operativsystem eller språkspecifika API:er gjorde.

De grundläggande OpenGL®-drivrutinerna tillverkas av tillverkare av grafikkort, expansionskort och grafikacceleratorer. Detta innebär att varje drivrutin är skriven enligt exakta och exakta specifikationer för målhårdvaran, och att hårdvaran kan tillverkas med optimeringar riktade mot drivrutinen för att öka prestandan. Den utbredda acceptansen av API och den relativt låga omkostnaden som följer med det har gjort det till ett värdefullt val för högpresterande grafikapplikationer och har i sin tur drivit hårdvarutillverkare att sträva efter lågnivåoptimeringar för att komplettera den prestandan med sina kort .

Som svar på hårdvarutillverkarnas ansträngningar tillhandahöll utvecklarna av OpenGL® en mekanism som skulle göra det möjligt för drivrutinerna att implementera anpassade operationer som kunde kodas in i OpenGL®-drivrutinerna. Dessa speciella egenskaper hos olika hårdvarudelar kan inkluderas i OpenGL® API. Detta skulle göra det möjligt för en tillverkare att ha ett grafikkort som stöder hårdvaruaccelererade funktioner, såsom tygsimuleringsalgoritmer, och tillåta OpenGL® API att anropa och samverka med den funktionen. Dessa tillägg gav en mekanism genom vilken OpenGL®-drivrutiner och API kunde bli en flytande, utvidgbar mekanism för 3D-grafikprogrammering.

Från och med 2011 är OpenGL®-drivrutiner individuella för varje maskinvara som stöder standarden. Det kan inte finnas någon enskild enhetlig drivrutin, eftersom varje maskinvara är tydligt olika och ibland använder proprietär information. Detta innebär att även om det finns tekniskt många typer av OpenGL®-drivrutiner — en för varje hårdvarukort — utför de alla exakt samma funktion ur ett programmeringsperspektiv.