Nieuwe technologie Microsoft maakt in-game compileren van shaders overbodig
In dit artikel:
Microsoft heeft in AgilitySDK 1.618 Advanced Shader Delivery voor DirectX 12 beschikbaar gesteld, een techniek die shaders vooraf compileert en tijdens de installatie van een game levert, zodat in-game compilatie niet meer nodig is. De technologie werd vanaf 16 oktober eerst uitgerold voor sommige titels op ROG Xbox Ally-handhelds via de Xbox-app; met de release van SDK 1.618 zijn de bijbehorende DirectX‑api's nu ook voor derden toegankelijk, maar het kan nog lang duren voordat spelers er veel van merken.
Om het systeem te laten werken moeten meerdere partijen meedoen. Ontwikkelaars en enginemakers moeten tijdens ontwikkeling een gestandaardiseerde 'state object database' opbouwen zodat shaders vooraf voor relevante hardware gecompileerd kunnen worden. Chipfabrikanten (zoals Intel, Nvidia, AMD en Qualcomm) leveren plugins die de offline gecompileerde shaders naar hun hardware brengen. Installers en launchers — uitgevers met eigen launchers of platforms als Steam — moeten de tools integreren om tijdens installatie de juiste precompiled shaders te downloaden en te installeren.
Het doel is praktische: shadercompilatie is een cpu-intensieve taak die laadtijden, wachtschermen en haperingen veroorzaakt. Door bij installatie de voor de gebruikte hardware geschikte shaders te leveren, verdwijnen veel van die vertragingen; Microsoft noemt een voorbeeld waarbij de opstarttijd van Avowed met tot 85% afnam. Shaders zelf zijn kleine programma’s voor de gpu die verschillende stappen in de renderpipeline bepalen.
Voorconsoles is dit niet nieuw omdat die hardware uniform is en vooraf compileren eenvoudig is. Voor pc‑games is het lastiger omdat pc‑hardware sterk uiteenloopt; Microsofts aanpak vereist daarom een omvangrijke database die veel configuraties dekt. De oplossing kan gameplay vloeiender maken, maar vraagt brede samenwerking tussen ontwikkelaars, hardwareleveranciers en platformhouders voordat het wijdverspreid voordeel oplevert.