En ny teknik inom grafikvärlden är något som kallas Primitiva Shaders, eller Mesh Shaders. Funktionen stöds i hårdvaran i både Nvidias Turing-arkitektur och AMD:s kommande RDNA 2, vilket också innebär att den tar plats i spelkonsolerna Playstation 5 och Xbox Series X.

Mesh Shaders ger utvecklare möjligheten att skapa detaljerad geometri för 3D-objekt, med betydligt lägre påverkan på prestanda ställt mot tidigare tekniker. Mer specifikt erbjuder det fler detaljer genom att dela upp geometrin i fler segment, och ge varje segment fler trianglar för ökad detaljrikedom.

Martin Fuller, en av Microsofts seniora utvecklare från företagets Advanced Technologies Group, förklarar hur Mesh Shaders ger utvecklare förbättrade möjligheter med Xbox Series X och kommande DirectX 12 Ultimate för Windows. Genomgången jämför implementation av Mesh Shaders på Xbox Series X med en PC som huserar grafikkortet Nvidia Geforce RTX 2080 Ti.

I dagsläget stöder Xbox Series X betydligt större grupper av geometriska beräkningar. Microsofts spelkonsol kan optimalt hantera grupper bestående av 256 så kallade SIMD-vågor, ställt mot 32 som är optimalt för Geforce RTX 2080 Ti. Gruppstorlek om 256 beräkningar överstiger faktiskt nuvarande DirectX-specifikationen, men enligt Martin Fuller underlättar den större gruppen delade beräkningar av hörn i trianglar (eng. vertex).

MeshShaders3.jpg
MeshShaders2.jpg
MeshShaders4.jpg

Mesh Shaders är också utformade för att kunna utnyttja generella beräkningar (GPGPU), vilket innebär att geometri kan beräknas parallellt och kräver mindre mängder hämtad data. Det blir också möjligt att utföra mer avancerade beräkningar för att bestämma vilka delar av scenen som är synliga, och då inte beräkna de som inte syns (eng. culling). Detta är en av orsakerna till den förbättrade prestanda som erbjuds med Mesh Shaders.

MeshShaders5.jpg
MeshShaders1.jpg

I en demonstration av Mesh Shaders är datorn bestyckad med Geforce RTX 2080 Ti ansluten till en skärm med upplösningen 1440p, medan Xbox Series X är ansluten till en 4K-skärm. Normal rendering med vertex shaders (VS) tar Xbox Series X cirka 55 mikrosekunder att genomföra, vilket reduceras till som lägst 29 mikrosekunder med Mesh Shaders (MS) och den mest avancerade culling-tekniken.

För PC:n tar samma scen 72 mikrosekunder att rendera vid 1440p, vilket sjunker till som minst 32 mikrosekunder med den mest avancerade formen av culling-tekniken. Med den högre upplösningen hos Xbox Series X är siffrorna onekligen imponerande, men hårdvaran har sannolikt också mer moget stöd än de tidiga drivrutinerna för Nvidias Turing-grafikkort.

Ovanstående tekniker för culling går att implementera på äldre generationers grafikteknik, men stöd i hårdvaran för Mesh Shading ger betydligt bättre kapacitet för att rendera komplexa scener i spel. Såväl Playstation 5 och Xbox Series X som kommande grafikkort från Nvidia och AMD får därmed än större förbättringar med DirectX 12 Ultimate än deras respektive specifikationer skvallrar om.

Läs mer om Mesh Shaders/primitiva shaders: