Mikä on kiihdytetty OpenGL® -tila?

Accelerated Open Graphics Library® (OpenGL®) -tila tietokonegrafiikassa on tila, joka voidaan aktivoida tietokoneen grafiikkakortilla käyttämään näytönohjaimen laitteistokykyjä joidenkin tai kaikkien OpenGL® -komentojen ja -muodostusten suorittamiseen oletusasetuksen sijaan puhtaasti ohjelmistopohjaisia ​​toimintoja. Kaikki näytönohjaimet eivät tue laitteistokiihdytettyä OpenGL®-tilaa, ja jotkut, jotka tukevat tilaa, eivät nopeuta täysin kaikkia OpenGL®-kirjaston komentoja. Riippuen tietyn tietokoneen tai laitteen laitteistosta ja ohjaimista, nopeutettu OpenGL® -tila saattaa toisinaan itse asiassa olla hitaampi kuin ohjelmiston renderointitila, johtuen ristiriidoista tai vain siksi, että tietokoneen prosessori on nopeampi kuin grafiikkaprosessori. Kun kirjoitetaan sovelluksia, jotka käyttävät kiihdytettyä OpenGL® -tilaa, voi olla vaikeaa tunnistaa ja käyttää tilaa yksinomaan, koska nopeutettujen tilojen käsittelytapa ei ole standardoitu ja voi vaihdella suuresti ajurista toiseen.

OpenGL® -grafiikkakirjasto on abstrakti ohjelmointirajapinta (API), joka tarjoaa puskurin grafiikkalaitteiston ja sen käyttämiseen kirjoitetun ohjelmiston välillä. Yleensä OpenGL® toimii asiakas-palvelin-mallin kanssa, mikä tarkoittaa, että ohjelmistosta tulee asiakas, joka lähettää piirustuspyynnöt ja tiedot palvelimelle, joka yleensä on OpenGL®-ohjain ja laitteisto. Käyttöjärjestelmän tai näytönohjaimen valmistajan tarjoama ohjain voi vaihdella suuresti sisäisessä toteutuksessaan, joten joitakin kehittyneempiä laitteistotoimintoja ei aina standardisoida. Laitteistokiihdytetty OpenGL®-tila on yksi ominaisuuksista, jotka jätetään näytönohjainten valmistajien käyttöön.

Kun ohjelma käyttää laitteistokiihdytettyä OpenGL®-tilaa, todellisuudessa tapahtuu, että OpenGL®-toimintokutsu soitetaan ja välitetään ohjaimelle. Jos ohjain havaitsee kiihdytyksen olevan aktiivinen tai tietylle toiminnolle on suora laitteistotuki, toiminto siirretään suoraan näytönohjaimen grafiikkaprosessointiyksikköön (GPU). Jos kiihdytys ei ole aktiivinen tai läsnä, komento käsitellään ja suoritetaan tavallisten ohjelmistopuheluiden ja algoritmien kautta. Useimmissa tapauksissa laitteistokiihdytys tarjoaa paljon nopeampia renderointiaikoja kuin puhdas ohjelmisto.

Jotkut näytönohjaimet tukevat nopeutettua OpenGL® -tilaa, mutta vain tietyllä tarkkuudella ja värisyvyydellä. Tämä tarkoittaa sitä, että näytönohjain voi käyttää automaattisesti kiihdytettyä tilaa, jos ohjelma, kun se alustaa OpenGL®: n, vaatii tiettyä tarkkuutta ja värisyvyyttä. Grafiikkalaitteisto voi olla hyvin erilainen, joten tämä tila ei ole aina ilmeinen ja joskus voi olla vaikeaa havaita automaattisesti ohjelmasta ilman käyttäjän syöttöä. Sen lisäksi, että ohjaimen ja laitteiston on tuettava kiihdytettyä OpenGL® -tilaa, näytöllä tai näyttölaitteella on myös oltava natiivi tuki vaaditulle resoluutiolle ja värisyvyydelle, muuten nopeutettuun tilaan siirtyminen epäonnistuu ja voi estää ohjelman suorittamisen.