Näytönohjain
Näytönohjaimen suorituskyky

Varhaiset näytönohjaimet tarjosivat vain kuvapuskurin.
Näytönohjaimen suorituskykyyn vaikuttavat useat eri seikat. Suurimmassa määrin näytönohjaimen suorituskykyyn vaikuttavat verteksi- ja pikselivarjostinyksiköiden lukumäärä grafiikkasuorittimen kellotaajuus sekä näytönohjaimen muistin suorituskyky.
Grafiikkasuorittimen ominaisuudet ratkaisevat kuinka näyttävää grafiikkaa näytönohjain kykenee prosessoimaan jotta se näyttää liikkuvan sujuvasti. Suuresta rinnakkain tapahtuvasta laskennan määrästä johtuen grafiikkasuorittimien transistorimäärä on suurempi kuin keskusprosessoreissa. Keskussuoritin kykenee suorittamaan tyypillisesti 1–8-säikeisiä ohjelmia yhtäaikaisesti siinä missä grafiikkasuorittimen sisällä voi olla kymmenittäin rinnakkain toimivia säkeitä. Näytönohjain huolehtii itse piirrettävän grafiikan jakamisesta eri varjostinyksiköihin Kiihdytinpiirin nopeus koostuu pitkälti varjostinyksiköitten lukumäärästä, piirin kellotaajuudesta sekä muistiväylän leveydestä ja nopeudesta. Keskussuoritin antaa yleensä runsaasti isoja piirrettäviä alueita näytönohjaimelle. Grafiikkasuoritin kykenee jakamaan piirrettävän alueen pienempiin osa-alueisiin ja kykenee piirtämään sitä samanaikaisesti monesta eri suunnasta. Työstöön grafiikkasuoritin käyttää eri yksiköitä, jotka hoitavat piirtämisen omalla tavallaan. Perinteisessä tavassa yksiköitä on useita samalla näytönohjaimella, mutta uudemmissa näytönohjaimissa pohjataan Unified Shader yksikköön, jossa näytönohjaimen pikselinvarjostin ja verteksivarjostinyksiköt on yhdistetty yhdeksi isommaksi piiriksi. Verteksi- ja pikselinvarjostinyksiköiden tehtävänä on pääasiallisesti värittää oikeilla väreillä niille annetut monikulmiot. Varjostinyksiköt myös valaisevat kolmiot varjostinohjelmien määrittelemällä tavalla. Näytönohjaimessa on myös teksturointiyksikkö, joka värittää pikselit.
Varjostinyksiköitten toiminnan kannalta oleellinen osa on näytönohjaimen muistin suorituskyky. Nopeammalla muistilla varjostinyksiköitten ei tarvitse odotella niin kauaa grafiikkadatan siirtymistä muistista varjostinyksiköihin tai toisinpäin.
Varjostinsuorittimet on suunniteltu erityisesti 3D-grafiikassa käytettävien matriisilaskujen ja laskutoimituksissa käytettävän ohjelmakoodien suorittamiseen. Ohjelmoitavien varjostinyksiköiden tulemisen myötä näytönohjain sai muitakin tehtäviä kuin monikulmioiden värittäminen annetuilla väreillä. Varjostinohjelma kykenee mallintamaan esimerkiksi veden pinnan käyttäytymistä suorittimen ohjeistaessa että paikassa X on vettä. Tämän jälkeen varjostinohjelma kykenee laskemaan itsenäisesti veden pinnan käyttäytymisen ilman että välitulosten kanssa tarvitsee neuvotella suorittimen kanssa. DirectX10 tulemisen myötä varjostinsuorittimet korvasivat aiemmin käytössä olleet pikselivarjostin- ja verteksivarjostinyksiköt. Tämän myötä ohjelmoijan työ helpottui. Ohjelmoitavuus nousi myös uuteen ulottuvuuteen, sillä DirecX10:n myötä mukaan tulivat myös geometriavarjostimet, jotka kykenevät luomaan uusia väritystä vaativia monikulmioita.
Kun varjostinyksiköt ovat värittäneet monikulmiot, kuva päätyy rasterointiyksikölle pikseleiksi muuntamista varten.
Lisäksi näytönohjaimen suorituskykyyn vaikuttaa muistiväylän leveys ja siinä käytettävien muistipiirien kellotaajuus ja sukupolvi. Muistin määrä ratkaisee näytönohjaimen näytettävissä olevien yksityiskohtien määrän. Muistin määrä ja muistin nopeus vaikuttavat näytönohjaimen suorituskykyyn. Muistin suorituskyky riippuu muistiväylän leveydestä ja muistin kellotaajuudesta. Muistiväylän kapeutta voidaan kompensoida käyttämällä korkealla kellotaajuudella toimivia muistipiirejä.
Nykyaikaiset henkilökohtaisten tietokoneiden näytönohjaimet toimivat tyypillisesti PCI Express -laiteväylässä. 
Tietokoneissa on eri aikoina ja eri valmistajilta ollut käytössä useisiin eri väyliin sopivia näytönohjaimia. Joissakin tietokoneissa näytönohjain on integroitu emolevylle. Pelikonsoleissa ja joissakin vanhemmissa grafiikkatyöasemissa näytönohjauslogiikka on yleensä varsin kiinteästi sidoksissa laitteen muuhun toimintaan, eikä sitä yleensä edes pysty vaihtamaan lisäkortin avulla.
Uusimmat PC-näytönohjaimet toimivat nykyään nopeammassa PCI-Express 16x -väylässä, joka on paranneltu versio vanhasta PCI-väylästä. Pci-e-väylien nopeus voidaan säätää dynaamisesti. PCI-Express 16x on parhaimmillaan monta kertaa nopeampi kuin AGP-väylä ja mahdollistaa NVIDIA:n ja ATI:n usean näytönohjaimen rinnakkain kytkemisen suorituskyvyn lisäämiseksi (NVIDIA:n SLI-ominaisuus ja ATI:lla CrossFire). Vastaava tekniikka oli myös joissakin Sunin ja SGI:n grafiikkatyöasemissa jo 1990-luvun alkupuolella sekä joissakin 3dfx Interactiven pelikäyttöön tarkoitetuissa Voodoo-näytönohjainperheen malleissa 1990-luvun lopulla.
Tietokonenäyttöjen ongelmana on se että kuva muodostuu kulmikkaista pisteistä. Kaarevien ja vinojen pintojen esittäminen näyttää sen vuoksi aina sahalaitaiselta. Ongelmaa kiertämään on kehitetty useita tapoja joiden perusideana on pyrkiä häivyttämään sahalaitaisuutta sopivan värisillä pisteillä sahalaitakuviossa. Tätä toteutusta kutsutaan reunanpehmennykseksi. Reunanpehmennyksessä piirrettävästä kuvasta tehdään suurempiresoluutioinen versio jonka avustuksella kuvapisteelle lasketaan lähimmän oikean värityksen keskiarvo. Reunanpehmennyksessä käytettävä kerroin kertoo  kuinka monta kertaa suurempi pehmennykseen käytettävä kuva on kooltaan. Tämä tekniikka tarvitsee sujuvasti toimiakseen suuren määrän näyttömuistia. Suurempitarkkuuksisen kuvan laskeminen myös vie näytönohjaimelta paljon laskentatehoa.
Toinen yleisesti kuvanlaadun parantamisessa käytetty tekniikka on anisotrooppinen suodatus. Anisotrooppinen suodatus estää kaukaisia objekteja liialliselta sumentumiselta. Reunanpehmennystä voidaan käyttää myös näissä kohteissa mutta laskennallisesti se on liian raskas näytönohjaimille.
Näytönohjaimen suorituskykyyn vaikuttavat piiriarkkitehtuurin lisäksi myös käytetty ajuriversio.
Näytönohjainajurin tehtävänä on peristeisesti välittää ohjelmiston käskyt näytönohjainpiirille ja suorittaa käännöstehtävä näytönohjaimen ymmärtämään muotoon. Ajureilla kyetään tekemään moninaisia muutoksia suorituskyvyn lisäämiseksi. NVIDIAn ForceWareissa (sittemmin GeForce nimelle vaihtuneet ajurit) ja ATIn Catalysteissa on rutiineja jotka optimoivat ohjelmakoodia paremmin grafiikkapiirille sopivaan muotoon. Aiemmin näytönohjainvalmistajien kesken vallitsi yhteisymmärrys siitä että varjostinohjelmien piirtojärjestystä saa muokata mutta ohjelmien sisältöön ei saa vaikuttaa. Sittemmin tämä raja on hämärtynyt ja ajurit saattavat muuttaa alkuperäistä ohjelmakoodia hyvinkin paljon. Muutoksia luodaan esimerkiksi varjostinohjelmien sisältöön ja z puskurien luontijärjestykseen. Esimerkiksi ATIn Catalyst ajurit sisältävät AI-toiminnon jonka ollessa pois päältä ohjelmistokoodi kulkee kortille kutakuinkin siten kuin ohjelman ohjelmoijat ovat tarkoittaneet. AI-ominaisuuden päälläollessa ajurit vaikuttavat kuvan piirtämiseen jotka asetuksista riippuen tekevät koodiin esiasteisia optimointeja. Ohjelmistokoodi ajetaan eri piirivalmistajien näytönohjelmissa eri tavoin jolloin lopputulokset eivät ole identtisiä keskenään. Koska eri ajurit optimoivat ohjelmakoodia eri tavoin, lopputulokset eivät ole identtisiä keskenään.