Vidareutvecklade konventioner

Utöver de stora paradnumren Rapidly Packed Math och HBCC-minnesmodellen innehåller Vega ett antal ytterligare förbättringar av arkitekturen. Två av dessa kallas Advanced Pixel Engine och ytterligare steg i rasterprocessen. Advanced Pixel Engine är samlingsnamnet för anpassningar av hur grafiska scener renderas för att sedan rasteriseras och skickas till bildskärmen.

Inom grafikrendering är rastrering processen där objekt konverteras till ett rutnät av pixlar som sedan kan visas upp på en skärm. Vega utökar den traditionella metoden för rastrering med olika nivåer. De två nya metoderna heter överskattad och underskattad konservativ rastrering.

Rasterization.jpg
DSBR_info.jpg
DSBR.jpg

De båda metoderna ska göra algoritmerna skuggläggning (shadow mapping) på subpixel-nivå och global voxelbaserad ljussättning betydligt mer effektivt än tidigare. Det ska även introducera en mer effektiv metod för att förkasta icke-synliga objekt (object culling) vid rastreringssteget. De båda stegen för konservativ rastrering kommer bli en del av kommande tillägg i DirectX 12-standarden.

En del i dessa anpassningar är något som kallas Draw Stream Binning Rasterizer (DSBR). Detta delar in bilden som ska rastreras i ett rutnät av så kallade "bins", och varje bin innehåller ett antal primitiver. Dessa bins skapas sekventiellt och deras storlek är anpassningsbar. Rastreringsprocessen kan hantera delar av dessa bins åt gången vilket sparar in hur mycket bildinformation som måste rastreras.

Enligt AMD:s egna uppgifter ska DSBR kunna leda till stora besparingar i hur mycket data som måste beräknas per renderad bildruta. De största vinsterna anges för Battlefield 4 där DSBR sparar in cirka 33 procent data per renderad bildruta. Andra exempel är Dirt Rally Ultra och Fallout 4 där DSBR anges spara in cirka 16 procent renderad data.

Nästa generations geometri

En av de stora förändringarna i hur grafiska scener renderas på Vega-arkitekturen ligger i hur olika geometriska objekt skapas via så kallade Geometry Shaders. I grafikkortens ursprung var kretsarna utrustade med specifika funktioner för specifika grafiska uppgifter, något som senare skulle utvecklas till programmerbara shaders som kunde hantera olika sorters beräkningar.

Detta kallades för Unified Shaders och introducerades för första gången i AMD:s grafikkrets i spelkonsolen Xbox 360. Grafikkretsen kunde där beräkna geometri, fysik, vertex- och pixelberäkningar. I Vega har detta tagits ett steg längre och något som kallas primitiva shaders har introducerats i exekveringsprocessen för geometriska beräkningar (Geometry Pipeline).

Geometry_Processing.jpg
Primitive_Shaders_traditional.jpg
Primitive_Shaders.jpg

När en yta ska beräknas i en traditionell exekveringsprocess för DirectX går den igenom tesselleringsstegen där shader-beräkningar utförs för vertex-objekt och primitiver (en primitiv är det minsta odelbara grafiska objektet). Detta flyttas sedan ned till steget där beräkningarna för ytan sammanställs, och det är här som det avgörs vilka delar av ytan som kan förkastas (culling) baserat på deras synlighet.

I Vega introducerar AMD steget Primitive Shaders i exekveringsprocessen. Här kombineras beräkningar av hörn och primitiver i ett enda steg där deras position, synlighet och attribut kan behandlas. Detta ska göra det möjligt att snabbare förkasta innehåll som inte syns tack vare att culling-beräkningar utförs på primitivnivå. Det ska även ge snabbare beräkningar av djup och skalade upplösningar (Multi-Resolution Rendering).

Enligt AMD:s egna siffror ska Vega-arkitekturen kunna beräkna cirka 7 gigaprimitives per sekund när den traditionella exekveringsprocessen utförs, att jämföra med cirka 4 gigaprimitives per sekund för de föregående Fiji-kretsarna. När det nya primitiva shader-steget i Vega används ska detta gå upp till hela 27 gigaprimitives per sekund, återigen något som enligt företaget innebär stordåd när utvecklare utnyttjar det.

Shader Intrinsics i öppet format

Med tidigare generationer av GCN-baserade grafikkort har AMD tillhandahållit funktioner som kallas Intrinsics, hårdvaruspecifika instruktioner som utvecklare kan utnyttja för att krama extra prestanda ur företagets grafikkort. Då företagets grafikteknik även används i spelkonsolerna Playstation 4 och Xbox One har utvecklare kunnat utnyttja dessa instruktioner både på spelkonsol och PC.

Exempel på tekniker som har kunnat utnyttjas är extra skalära beräkningsenheter i AMD:s hårdvara, system för delning av data mellan beräkningsenheter och synkronisering av data mellan olika trådar som exekveras. Dessa Intrinsics-funktioner har funnits tillgängliga via tillägg för DirectX 11/12 och Vulkan, med 2016 års utgåva av spelet Doom som paradexempel.

Intrinsics.jpg
DX12_featureset.jpg

I Doom utnyttjades dessa hårdvaruspecifika instruktioner för att förbättra renderingstiden med 43 procent på Playstation 4, något som även kunde överföras till Vulkan-versionen på PC-sidan med hjälp av Intrinsics på Radeon-hårdvara. Med Vega kommer utvecklare kunna dra nytta av nya instruktioner som Rapidly Packed Math, och om Vega-arkitekturen används i framtida spelkonsoler kan samma vinster appliceras även där.

AMD:s plan är att funktioner som Intrinsics, HBCC-minneshantering och utökningar för virtuella maskiner ska kunna utnyttjas utanför spelvärlden, och samtliga instruktioner inklusive Intrinsics kommer därför vara en del av en öppen specifikation som ingår i initiativen GPUOpen.

Intrinsics-delen av Vega stöder även den kommande standarden DirectX Shader Model 6.0 for Intrinsics. I ett funktionsblad listar AMD en mängd funktioner i kommande utökningar av DirectX 12-standarden där Shader Intrinsics, konservativ rastrering och högpresterande samtidig Asynchronous Compute och grafikberäkningar är exempel på funktioner som Nvidias Pascal-arkitektur saknar.

Listan över utökningar och finslipningar i Vega är diger, men många förbättringar förlitar sig på stöd och optimeringar från utvecklare och lär initialt inte utnyttjas i allt för många speltitlar utöver de som AMD har samarbetat med för att optimera koden för Vega. Där finns till exempel Bethesdas förstapersonsskjutare Wolfenstein II: The New Colossus.