Došli smo i do metoda koje su implementirane kako bi se grafičkom hardveru više posla moglo zadati samo jednom naredbom. S DirectX-om 9 su se za izmjenu stanja objekata na sceni koristile mnoge naredbe od kojih bi svaka radila opterećenje na procesoru. DirectX 10 rješava problem korištenjem dvaju novih konstrukcija pod imenom state objects i constant buffers.

State object su zapravo grupirane low level naredbe koje je programer prije morao rabiti ručno kako bi rekonfigurirao grafički cjevovod. DirectX 10 nudi ukupno pet state objekata – InputLayout, Sampler, Rasterizer, DepthStencil i Blend. Ove skupne naredbe zapravo objedinjuju osnovna stanja grafičkog cjevovoda koja se rabe pri izvođenju 3D grafike.

Constant buffers omogućava spremanje do 4096 konstanti u jednu funkcionalnu cjelinu kojom je moguće upravljati pozivom samo jedne funkcije. Konstante su inače predefinirane vrijednosti koje se koriste kao parametri pri izvođenju svih shaderskih programa. Primjer konstante su broj, intezitet, lokacija i boja izvora svijetla u sceni, budući da će izvori svijetla utjecati na izgled svih ostalih objekata. S obzirom da se ovakve konstantne vrijednosti (konstantne u kontekstu pojedine scene) mijenjaju tijekom izvođenja aplikacije, potrebno ih je mijenjati brojnim naredbama koje opet, svaka pojedinačno, generiraju opterećenje na procesoru zbog abstrakcijog sloja koji čini DirectX API. Constant buffer omogućava programerima da spreme hrpu konstantni u jednu cjelinu na koju je moguće utjecati samo jednom naredbom odnosno pozivom samo jedne funkcije.

Usporedni prikaz resursa dostupnih programerima s različitim verzijama DirectX-a

Dakako, novi DirectX ne bi bio to što jest bez novog shaderskog modela u verziji 4.0. Glavne novosti SM-a 4.0 je uvođenje nove vrste shadera koji se bavi manipulacijom primitiva pod imenom geometry shader, unificiranje shaderske arhitekture korištenjem unificiranog seta instrukcija i jednakih resursa za sve vrste shadera te na kraju povećanje resursa dostupnih programerima pri razvoju aplikacija.

S obzirom da smo o unificiranoj arhitekturi već dovoljno rekli opisujući arhitekturu novog NVIDIA-inog GPU-a, bacit ćemo se odmah na geometry shadere. GS-ovi su u DX10 grafičko cjevovodu smješteni između vertex shadera i rasterizacije, a omogućavaju napredno baratanje s primitivama – trokutima, točkama i linijama. Ono što je bitno naglasiti je da GS-ovi mogu stvarati i uništavati podatke koje su dobili od VS-ova što Microsoft naziva data amplification odnosno data minimization. Ovakva razina manipulacije s podacima unutar GPU-a nije bila moguća na starijem hardveru i API-ju, a otvara brojne mogućnost mnogo efikasnijeg izvršavanja efekata kao što su stencil shadows, dynamic cube maps i displacement mapping.

Geometry shaderi u kombinaciji sa stream out funkcijom omogućavaju da se na GPU-u vrlo efikasno izvršavaju i algoritmi koji nemaju veze s grafikom. Tu se u prvom redu misli na ubrzavanje fizike u igrama, ali i na algortime kakvi se npr. rabe u projektu GPGPU odnosno General Purpouse GPU computing.

Na kraju, spomenio da DirectX 10 nudi i efikasniji algoritam za zaglađivanje transparentnih tekstura. Premda su i ATI i NVIDIA već ponudili vlastita rješenja ovog problema, Microsoftova metoda rezultira jednako kvalitetnim prikazom no smanjenim padom performansi.