Vad är Accelerated OpenGL® Mode?

Accelerated Open Graphics Library® (OpenGL®)-läge i datorgrafik är ett tillstånd som kan aktiveras i ett datorgrafikkort för att använda grafikkortets hårdvarufunktioner för att utföra några eller alla OpenGL®-kommandon och renderingar istället för att som standard rent mjukvarubaserad funktionalitet. Alla grafikkort stöder inte ett hårdvaruaccelererat OpenGL®-läge, och vissa som stöder läget accelererar inte fullt ut alla kommandon som är tillgängliga i OpenGL®-biblioteket. Beroende på hårdvaran och drivrutinerna som används i en viss dator eller enhet, kan accelererat OpenGL®-läge ibland faktiskt vara långsammare än programvaruåtergivningsläget, oavsett om det beror på konflikter eller bara för att en datorprocessor är snabbare än grafikprocessorn. När man skriver applikationer som använder accelererat OpenGL®-läge kan det vara svårt att exakt upptäcka och använda läget exklusivt, eftersom implementeringen av hur man hanterar accelererade lägen inte är standardiserad och kan variera mycket från en förare till en annan.

OpenGL®-grafikbiblioteket är ett abstrakt programmeringsgränssnitt (API) som tillhandahåller en buffert mellan grafikhårdvaran och programvaran som skrivits för att komma åt den. I allmänhet fungerar OpenGL® med en klient-servermodell, vilket innebär att programvaran blir en klient som sedan skickar ritningsförfrågningar och information till servern, vilket vanligtvis är OpenGL®-drivrutinen och hårdvaran. Drivrutinen som tillhandahålls antingen av operativsystemet eller grafikkortstillverkaren kan variera mycket i dess interna implementering, så vissa mer avancerade hårdvarufunktioner är inte alltid standardiserade. Hårdvaruaccelererat OpenGL®-läge är en av funktionerna som överlåts till grafikkortstillverkarna för implementering.

När ett program använder hårdvaruaccelererat OpenGL®-läge är det som faktiskt händer att ett OpenGL®-funktionsanrop görs och skickas till drivrutinen. Skulle föraren upptäcka att acceleration är aktiv eller att en specifik operation har direkt hårdvarustöd, så skickas funktionen direkt till grafikprocessorn (GPU) som finns på grafikkortet. Om det inte finns någon acceleration aktiv eller närvarande, kommer kommandot att bearbetas och exekveras genom standardprogramvaruanrop och algoritmer. I de flesta fall ger hårdvaruacceleration mycket snabbare renderingstider än ren mjukvara.

Vissa grafikkort stöder ett accelererat OpenGL®-läge, men bara med en specifik upplösning och färgdjup. Detta innebär att ett grafikkort automatiskt kan använda ett accelererat läge om det, när ett program initierar OpenGL®, begär en specifik upplösning och färgdjup. Grafikhårdvara kan vara väldigt olika, så det här läget är inte alltid uppenbart och ibland kan det vara svårt att automatiskt upptäcka inifrån ett program utan användarinmatning. Förutom att drivrutinen och hårdvaran måste stödja ett accelererat OpenGL®-läge, måste bildskärmen eller visningsenheten också ha inbyggt stöd för den begärda upplösningen och färgdjupet, annars misslyckas bytet till ett accelererat läge och kan förhindra att ett program körs.