Teknikfokus: Flexibel bildkvalitet med Variable Rate Shading

Teknikfokus: Flexibel bildkvalitet med Variable Rate Shading

Med stöd för Variable Rate Shading (VRS) kan utvecklare sikta på god bildkvalitet utan stora uppoffringar på prestanda.

En ständig dragkamp för såväl spelutvecklare som datoranvändare är den mellan bästa möjliga bildkvalitet, via upplösning och grafiska inställningar, och bästa möjliga prestanda. Det finns en myriad av knep och lösningar för att nå en bra balans, med allt från dynamisk upplösningsskalning till kantutjämningstekniker. En leverantörsoberoende teknik som letar sig in i allt från datorer till spelkonsoler är något som kallas Variable Rate Shading (VRS).

Bildkvalitet med användaren i fokus

En grundläggande princip för hur grafik visas är att grafikdelens shader-enheter ansvarar för att beräkna färgen för de pixlar som ska visas upp på en ansluten skärm. En bild som ska färgsättas i upplösningen 1 920 × 1 080 pixlar kräver att grafikkortets shader-enheter beräknar färgen för strax under 2,1 miljoner pixlar. En utvecklare som färgsätter dessa pixlar skapar dock något som kallas shading rate, vilket är kvalitetsinställningar för block av pixlar.

3dmark-vrs-feature-test-screenshot-vrs-off.jpg

3dmark med VRS-funktionen avstängd.

3dmark-vrs-feature-test-screenshot-vrs-on.jpg

3dmark med VRS-funktionen aktiverad.

3dmark-vrs-feature-test-screenshot-vrs-visualizer.jpg

Här renderas scenens blå del med låg kvalitet, grön del med mediumkvalitet och röd del med hög bildkvalitet.

3dmark-vrs-feature-tier2-vrs-on.jpg

Scenen innehåller skuggade partier som inte behöver samma detaljgrad som resten av bilden.

3dmark-vrs-feature-tier2-visualizer.jpg

Här illustrerar mörka färgtoner de delar som renderas med lägre bildkvalitet.

Högre shading rate medför bättre bildkvalitet, men också större påfrestning på hårdvaran och därmed prestanda. Traditionellt sett appliceras denna kvalitetsgrad på samtliga pixlar på skärmen, även på de som liknar varandra eller befinner sig i utkanten av spelarens synfält. Att alla pixlar inte är likvärdiga ligger till grund för Variable Rate Shading (VRS), en teknik för flexibel styrning av bildkvalitet som är en del av Microsofts utvecklargränssnitt DirectX 12.

Med VRS får utvecklare möjlighet att styra balansen mellan bildkvalitet och prestanda genom att exempelvis sänka shading rate för pixlar som befinner sig i skugga eller mörka partier i bildens periferi, men även att höja shading rate för de delar av bilden som är synlig för spelaren. DirectX 12 ger utvecklare tillgång till olika nivåer av VRS, där nivån beror på stödet i hårdvaran.

Olika VRS-nivåer

Med Tier 1 kan utvecklaren definiera kvalitetsnivåer för ett grafikanrop (eng. draw), vilket exempelvis kan handla om bakgrundsbilden i en scen där bakgrundens bildkvalitet inte är lika viktig som förgrunden. Tier 1 stöds av samtliga moderna grafikkort. Med Tier 2 kan utvecklaren istället definiera olika kvalitetsnivåer per grafikanrop, vilket i samma exempel gör det möjligt att höja kvalitetsnivån i de delar av bakgrunden som är viktigare än andra. Tier 2 kräver specifikt stöd i hårdvaran.

Den hårdvara som stöder Tier 2-nivån kan utnyttja två olika varianter av tekniken – screenspace image och Per-primitive. I korthet går screenspace image ut på att utvecklaren anger en referensbild som används för att bestämma vilka delar av en scen som är viktiga och mindre viktiga. I ett FPS-spel kan tekniken användas för att höja kvalitetsnivån runt muspekaren, och sänka nivån i periferin.

Tekniken Per-primitive syftar på att utvecklaren kan kontrollera bildkvaliteten på finmaskig nivå, närmare bestämt per triangel som ska ritas upp. Det kan exempelvis användas för att styra kvalitetsnivån efter djupet i bilden. I en scen som använder skärpedjup (eng. depth-of-field) kan Per-primitive användas för att sänka shader rate för en viss del av de trianglar som befinner sig "längre bak" i bilden.

Uppläggen för shader rate-strukturer

Det finns ett flertal olika strukturer för shader rate-nivåer utvecklare kan välja att implementera. Den grundläggande är 1×1-nivån och här renderas de olika pixlarna oförändrat, vilket ger bäst bildkvalitet men också högst belastning på hårdvaran. Med 2×2 består blocket av två pixlar vertikalt och horisontellt, vilket belastar hårdvaran mindre samtidigt som det inte avviker allt för mycket sett till bildkvalitet.

Nvidia_2x1_2x2.jpg

Enligt samma upplägg innebär 4×4 att shaderprocessorer beräknar pixelblock som är fyra pixlar stora på höjden och bredden. Det ger ytterligare prestandavinster, med ytterligare försämring i bildkvalitet. Utvecklare kan också välja en kombination av dessa upplägg, där 2×1 eller 4×2 och vice versa slår an en balans mellan egenskaperna hos de olika nivåer de kombinerar. De olika kvalitetsnivåerna kan också blandas i olika delar av bilden.

Nvidia_VRS_grids_car_002.jpg

Nvidia illustrerar hur olika kombinationer av kvalitetsnivåer kan användas med VRS.

Tillämpningar i spel

Tidiga spel med stöd för VRS inkluderar bland annat Civilization VI och Wolfenstein II: The New Colossus. Microsoft demonstrerar vinsterna med VRS-stöd i form av just Civilization VI, där utvecklarna Firaxis experimenterat med både Tier 1- och Tier 2-nivåerna. Utvecklaren började med Tier 1, där stora grafiska objekt som hav renderades med lägre kvalitetsnivå (2×2) och små objekt som fordon, byggnader och gränssnittet renderades med normal kvalitetsnivå (1×1).

MS_DX12_VRS_Tier1.jpg

Tier 1-nivån av VRS används i Civilization VI, VRS är aktiverat för den vänstra halvan av bilden.

Med VRS Tier 1 anger Firaxis att 20 procent högre bilduppdatering uppnås utan tydligt försämrad bildkvalitet. I en illustration visar företaget också upp en bild där ena halvan av en scen i Civilization VI renderats med Tier 2-nivån och screenspace image-tekniken. Här höjdes kvalitetsnivån för de viktiga delarna av bilden, samtidigt som en prestandaförbättring om 14 procent noterades ställt mot ett rent 1×1-läge.

MS_DX12_VRS-Tier-2-ssimage.jpg

En illustration av hur delar av bilden renderas med lägre (blå färg) och högre (röd färg) shader rate.

Firaxis illustrerar också hur tekniken används för att välja ut vilka delar av bilden som får höjd- respektive sänkt kvalitetsnivå presentera i form av en visualiseringsbild. I denna markeras delar som får sänkt kvalitetsnivå (2×2) med blå färg medan delar med hög kvalitetsnivå (1×1) markeras med röd färg.

Status för VRS år 2020

Under våren år 2020 finns hårdvarustöd för VRS Tier 2 tillgängligt på marknaden i form av Nvidias Turing-arkitektur och Intels integrerade grafikarkitekturer från och med Gen11-grafiken i Ice Lake-processorerna.

Tekniken väntas även ta plats i Intels kommande Xe-arkitektur. För AMD tillkommer stöd för VRS Tier 2 i och med arkitekturen Radeon DNA 2 (RDNA 2), vilken dels tar plats i fristående grafikkort och dels i spelkonsolerna Playstation 5 och Xbox Series X i slutet av år 2020.

Variable Rate Shading stöds idag i gränssnitten DirectX 11, DirectX 12, Vulkan och OpenGL vilket innebär att tekniken stöds på bred front så snart företag adderat stöd för Tier 2 på hårdvarunivå. Med hjälp av VRS kommer alltså såväl datorer som spelkonsoler bättre kunna utnyttja tillgänglig beräkningskraft för att ge bra bildkvalitet där det är viktigt ur betraktarens synvinkel.

Finns det några andra tekniker relaterade till spelutveckling du vill läsa mer om? Lämna gärna förslag i kommentarerna!

Skicka en rättelse
19

Linus Torvalds byter till AMD efter 15 år med Intel

Efter 15 år med en rad Intel-processorer i tjänst byter Linux-fadern Linus Torvalds läger till en AMD Threadripper 3970X. Läs mer

35

Logitech avtäcker G915 TKL – trådlöst och kompakt tangentbord

Med G915 TKL krymper Logitech det fullstora trådlösa tangentbordet G915 till kompakt TKL-format med mekaniska lågprofil-brytare. Läs mer

19

Intel Core i9-10900K får små vinster med "delidding" och flytande metall

Erfarne överklockarprofilen der8auers test av Intel Core i9-10900K visar små vinster med "delidding" och flytande metall. Läs mer

44

Telia lanserar expanderat 5G-nät med Ericsson-teknik i juni

Telia följer konkurrenterna med att lansera ett utökat 5G-nätverk under juni månad, med Ericsson som teknikleverantör. Läs mer

22

Test: Utmärkta Dell XPS 13 9300 hämmas av den högupplösta skärmen

Dell XPS 13 fortsätter att tänja gränserna mellan skärm och chassi. Årets modell får dessutom Intels Athena-certifiering. Läs mer

22

Noctua introducerar svart Chromax-version av kylaren NH-U12A

Det brunbeiga färgschemat för populära Noctua-kylaren NH-U12A får sällskap av en svart Chromax-variant efter sommaren. Läs mer

83

Nya uppgifter anger höjda klockfrekvenser för Ryzen 3000 "Matisse Refresh"

Sommarens uppdatering av Ryzen 3000-familjen ska introducera både höjda klockfrekvenser och optimerad boost-prestanda. Läs mer

I samarbete med MSI
77

Minecraft RTX – ray tracing-prestanda med DLSS

I april lanserades Minecraft med RTX och vi laddar upp testmaskinen för att utvärdera prestandan med och utan DLSS. Läs mer

54

Hur skulle du ersätta en gammal server?

I forumet söker medlemmen tomle råd om hur en gammal server ska ersättas med ny hårdvara. Har du tips att dela med dig av? Läs mer

68

Nya uppgifter bekräftar dubblerad kapacitet till AMD "Big Navi"

Årets grafikkort från AMD inkluderar en rejäl uppgradering i form av Navi 21 och förfinade varianter av dagens Navi 10. Läs mer

115

Tele 2 och Tre drar igång 5G-nätverk

Från och med juni månad kan Tele 2-kunder surfa över 5G i mobilen, och konkurrenten Tre drar igång sitt nätverk samma månad. Läs mer

77

Quiz: Vad kan du om kodnamn på teknikprodukter?

Vi vill testa era kunskaper inom kodnamn på processorer, grafikkort, datorer, operativsystem och annan rolig teknik. Läs mer