Hva er akselerert OpenGL®-modus?
Akselerert Open Graphics Library® (OpenGL®) -modus i datagrafikk er en tilstand som kan aktiveres på et datagrafikkort for å bruke maskinvareferdighetene til grafikkortet til å utføre noen eller alle OpenGL®-kommandoer og gjengivelser i stedet for å standardisere rent programvarebasert funksjonalitet. Ikke alle grafikkort støtter en maskinvareakselerert OpenGL®-modus, og noen som støtter modusen akselererer ikke alle kommandoene som er tilgjengelige i OpenGL®-biblioteket. Avhengig av maskinvaren og driverne som brukes i en bestemt datamaskin eller enhet, kan akselerert OpenGL®-modus av og til faktisk være tregere enn programvare-gjengivelsesmodus, enten det er på grunn av konflikter eller bare fordi en datamaskinprosessor er raskere enn grafikkprosessoren. Når du skriver applikasjoner som bruker akselerert OpenGL®-modus, kan det være vanskelig å oppdage og bruke modusen nøyaktig, fordi implementeringen av hvordan du håndterer akselererte modus ikke er standardisert og kan variere veldig fra en driver til den neste.
OpenGL®-grafikkbiblioteket er et abstrakt programmeringsgrensesnitt (API) som gir en buffer mellom grafikkmaskinvare og programvaren som er skrevet for å få tilgang til den. Generelt fungerer OpenGL® med en klient-servermodell, noe som betyr at programvaren blir en klient som deretter sender tegningsforespørsler og informasjon til serveren, som vanligvis er OpenGL®-driveren og maskinvaren. Driveren som leveres enten av operativsystemet eller grafikkortprodusenten, kan variere veldig i den interne implementeringen, så noe mer avansert maskinvarefunksjonalitet er ikke alltid standardisert. Maskinvareakselerert OpenGL®-modus er en av funksjonene som overlates til grafikkortprodusentene for implementering.
Når et program bruker maskinvareakselerert OpenGL®-modus, er det som faktisk skjer at et OpenGL®-funksjonsanrop blir ført og gitt til driveren. Hvis driveren oppdager at akselerasjonen er aktiv eller at en spesifikk operasjon har direkte maskinvarestøtte, blir funksjonen sendt direkte til grafikkbehandlingsenheten (GPU) som ligger på grafikkortet. Hvis det ikke er noen akselerasjon som er aktiv eller til stede, vil kommandoen bli behandlet og utført gjennom standard programvaresamtaler og algoritmer. I de fleste tilfeller gir akselerasjon av maskinvare mye raskere renderingstid enn ren programvare.
Noen grafikkort støtter en akselerert OpenGL®-modus, men bare med en bestemt oppløsning og fargedybde. Dette betyr at et grafikkort automatisk kan bruke en akselerert modus hvis det, når et program initialiserer OpenGL®, ber om en spesifikk oppløsning og fargedybde. Grafikkmaskinvare kan være veldig forskjellig, så denne modusen er ikke alltid åpenbar og noen ganger kan det være vanskelig å oppdage automatisk fra et program uten brukerinput. I tillegg til at driveren og maskinvaren må støtte en akselerert OpenGL®-modus, må monitoren eller skjermenheten også ha opprinnelig støtte for oppløsningen og fargedybden som blir forespurt, ellers vil bytte til en akselerert modus mislykkes og kan forhindre at et program kjøres.