I och med introduktionen av AMD:s grafikkort i Radeon RX 6000-serien gjorde också arkitekturen RDNA 2 premiär i grafikkort, strax efter den gjort detsamma som grafikdel i Xbox Series X och Series S. En av nyheterna är stöd för hårdvaruaccelererade ray tracing. I en utvecklarvideo går en av AMD:s grafikingenjörer igenom hur utvecklare kan använda den nya hårdvaran tillsammans med Microsofts utvecklargränssnitt DirectX Raytracing 1.1 (DXR 1.1).

AMD_RDNA2_DXR1-3.jpg
AMD_RDNA2_DXR1-8.jpg

En av nyheterna i versionsuppdateringen DXR 1.1 är vad som kallas inline ray tracing. Det går i korthet ut på att utvecklare får bättre kontroll över när beräkningar relaterade till ray tracing utförs i renderingsprocessen, vilken består av olika steg som bestämmer hur scenernas pixlar färgsätts (eng. shader stages). Den utökade kontrollen ges genom att utvecklaren kan styra schemaläggningen av arbetsuppgifter, och gör det också möjligt att introducera ray tracing i alla steg i renderingsprocessen.

För utvecklaren som utför en viss typ av beräkningar i ett tidigare steg i processen innebär detta att ray tracing-beräkningar kan utföras under samma steg, vilket optimerar bördan på både utvecklaren och hårdvaran. För AMD stöds hårdvaruaccelererade beräkningar av ray tracing först med arkitekturen RDNA 2, där varje resursgrupp (Work Group Processor, WGP) bestyckas med två hårdvaruenheter vid namn Ray Accelerator (RA) för uppgiften.

Varje RA kan oberoende av varandra utföra beräkningar av om ljusstrålar korsar "lådor" (eng. ray box) eller trianglar (eng. ray triangle) när de färdas i 3D-miljöer. AMD delar också med sig av vad bolaget ser som den bästa ansatsen för att stöda DXR 1.1 på RDNA 2-hårdvara. Det innefattar att spåra så få ljusstrålar som möjligt samtidigt som god bildkvalitet uppnås, och att en stråle per pixel på skärmen ger gott resultat.

AMD_RDNA2_DXR1-4.jpg
AMD_RDNA2_DXR1-5.jpg
AMD_RDNA2_DXR1-10.jpg
AMD_RDNA2_DXR1-9.jpg
AMD_RDNA2_DXR1-7.jpg
AMD_RDNA2_DXR1-6.jpg

För att det goda resultatet ska nås bör detta också kombineras med ett effektivt system för att städa upp det visuella brus som uppstår vid beräkning av ray tracing, en process som kallas denoising. Utvecklare som tar fram särskilt effektiva denoising-tekniker kan komma undan med färre spårade ljusstrålar än en per pixel, med bättre prestanda som resultat. AMD har utvecklat två specialiserade denoising-funktioner för RDNA 2 som görs öppet tillgängliga under en MIT-licens.

Utöver att ray tracing-beräkningar kan utföras var som helst i renderingsprocessen kan de utföras asynkront via samma Asynchronous Compute-system AMD länge tillämpat i bolagets grafikarkitekturer. Videon innehåller också ett flertal tips som primärt är av intresse för den som utvecklar spel med ray tracing-stöd för RDNA 2. Detta innefattar bland annat storleken på grupper av trådar för optimal exekvering, och hur spårning av ljusstrålar (eng. traversal) kan optimeras så att beräkningar inte utförs i delar av bilden som inte syns eller är oviktiga.

AMD:s tolkning av ray tracing finns i dagsläget i grafikkorten Radeon RX 6800 och RX 6800 XT och inom kort med flaggskeppet Radeon RX 6900 XT. Bland spelkonsoler gäller detta på Xbox Series X och syskonet Series S, samt konkurrerande hårdvaran Playstation 5.

Läs mer om AMD RDNA 2: