Microsoft werkt aan sdk om 'shader stuttering' in Windows-games tegen te gaan

Microsoft komt met een functie die stuttering in pc-games moet voorkomen door shaders al tijdens de installatie te compileren. De functie komt eerst alleen naar de ROG Xbox Ally-handhelds, maar Microsoft maakt ook een sdk beschikbaar voor ontwikkelaars en digitale gamewinkels.

De advanced shader delivery-functie moet shaders vooraf compileren en cachen, zegt Microsoft. Dat moet lange laadtijden en stuttering voorkomen als spelers een game voor het eerst opstarten. Bij gameconsoles en op de Steam Deck worden de shaders meestal al vooraf gecompileerd. In Windows was dit voorheen echter niet mogelijk, omdat de shaders afhangen van de game, gpu en drivers van het specifieke apparaat van de gebruiker. Microsoft zegt daar echter een oplossing voor gevonden te hebben.

Met advanced shader delivery worden de shadercompilers van gpu-drivers geëxtraheerd. In combinatie met de gegevens van de game kunnen er daardoor in de cloud voorgecompileerde shaders worden gecreëerd. Bij de installatie van de game worden die aan de shadercache toegevoegd. Volgens Microsoft wordt de shadercache bij iedere driverupdate automatisch bijgewerkt.

In eerste instantie is dit alleen mogelijk in games die via de Xbox Store op de aankomende pc-gaminghandhelds ROG Xbox Ally en ROG Xbox Ally X worden geïnstalleerd, meldt Microsoft. Ook worden niet alle games ondersteund. Volgens Microsoft gaat het om 'grote titels', waaronder Avowed, maar een volledige gamelijst wordt niet genoemd.

Microsoft wil het naar eigen zeggen mogelijk maken dat gameontwikkelaars deze technologie rechtstreeks kunnen integreren in hun game-engines. Ook wil de fabrikant dat naast de Xbox Store ook andere digitale gamewinkels van deze functie gebruik kunnen maken. Microsoft wil in september een Agility-sdk beschikbaar maken met de benodigde tools en api's voor ontwikkelaars en online winkels.

ROG Xbox Ally X
ROG Xbox Ally X

Door Kevin Krikhaar

Redacteur

21-08-2025 • 14:17

29

Submitter: Xtuv

Reacties (29)

29
29
15
0
0
12
Wijzig sortering
Hoe legaal is dit? Ze halen stukken software uit de drivers en gebruiken die buiten de drivers om. Dat kon wel eens in strijd met de driver licentie zijn.
Al zou het in strijd zijn hebben zowel NVidia als AMD er echt geen belang bij hier een zaak over te starten. Waarom zouden ze?

Stel nou dat NVidia hier punt van zou maken en Microsoft het alleen voor AMD en Intel aan kan zetten. Dat zou beteken dat games gestart met een AMD of Intel GPU sneller starten, kortere laadtijden hebben en minder stotteren. Daarmee bevoordelen ze de concurrentie.

Maar sterker nog ik verwacht dat Microsoft dit plan al lang besproken heeft met AMD en NVidia. Wellicht hebben beide partijen wel aanpassingen gedaan in de drivers om dit te vergemakkelijken. Dit soort partijen hebben dit soort features al maanden, al dan niet jaren van te voren met elkaar besproken voordat wij het als nieuws op Tweakers lezen.

[Reactie gewijzigd door codeneos op 21 augustus 2025 15:30]

Sterker nog, dit is in samenspraak met tenminste AMD gedaan, want die zullen toch die compiler los moeten aanleveren zodat het in de cloud kan draaien. Dit staat ook in het originele artikel.
Ik denk dat dat wel meevalt. Zoals ik het lees gebruiken ze een compiler uit de driver om data uit de game om te zetten naar een shader - en die wordt dan opgeslagen. Maar dat gebruik van die compiler zelf, dat gebeurt op initiatief van de gebruiker - en die gebruiker heeft gewoon een gebruikslicentie op die driver (die hele riedel die je wegscrollt en dan op OK drukt).

Er staat ook niet bij dat die compiler in de cloud draait of gebruikt wordt - het is mogelijk dat ze dat lokaal doen en enkel de output in de cloud opslaan.

Dan staan AMD en Nvidia natuurlijk niet heel sterk, als ze hier problemen mee zouden hebben. Immers, je moet die compiler als gebruiker ook kunnen "gebruiken" want anders werkt je game niet. Je gebruikt dus nog steeds gewoon de code uit de driver, maar je gebruikt niet álle code uit de driver. Maar ik kan me niet voorstellen dat dat wettelijk gezien een probleem is, ik ken maar weinig mensen die 100% alle mogelijkheden van hun software benutten.
We have worked with our key hardware partners to separate out the shader compiler from the graphics driver

De software is gewoon beschikbaar gesteld.
Compileerd het in de cloud dan? In het Tweakers artikel lijkt het zo verwoord te zijn, maar kan het niet clientside gecompileerd worden als het nog niet in de cloud bekend is, en dan uploaden naar de cloud?

Misschien mogelijk een mitm vector ofzo met dat idee...
Dan heb je dus een gebruiker die dat clientside moet opsturen naar de server voor iedereen om te gebruiken of?
Dan kan je beter gewoon alles 'lokaal' bij Microsoft laten compileren, het is echt niet alsof je er een verschil in merkt, behalve dat een installatie dan mogelijk minuten langer duurt zodat alles gecompileerd word..
Alleen de allereerste met die hardware combinatie ja
Dus eigenlijk gewoon wat Steam op Linux al doet.
Alleen voor Steam Deck, wat maar één GPU is. Dit is veel complexer omdat het dus met alle GPU's moet werken.
Steam in een desktop installatie met AMD of NVIDIA GPU doet dit ook. Voordat de game launched worden de shaders gecompileerd. Dit is niet specifiek voorbehouden aan de Steam OS, Deck of AMD's iGPU.
Je kan (iig op desktop) de compilatie ook skippen trouwens, met als risico dat de game aanvankelijk iets meer stottert.
Ik had met 1 game dat ie daardoor tergend langzaam opstartte, omdat ie de cache moest valideren ofzo... Uitgezet want het was het niet waard
Las het idd in het artikel, maar volgens mij werkt dat ook gewoon op m'n eigen rig. Zie altijd fossilize processen van Steam als een game voor het eerst opstart en bij updates van Mesa. Is ook een setting voor bij Downloads "Enable Shader-Pre-caching".

[Reactie gewijzigd door danoam op 21 augustus 2025 17:52]

Dan neem ik aan dat met de sdk die compilatie vooraf gewoon lokaal plaats kan vinden? Of is dit een manier om alles van de microsoft cloud afhankelijk te maken :Y)
Dan neem ik aan dat met de sdk die compilatie vooraf gewoon lokaal plaats kan vinden?
Denk het niet want dat is nog steeds bij het opstarten van de game, en dat is nou net wat ze claimen te omzeilen en willen versnellen door het 'vooraf' te doen.
Of is dit een manier om alles van de microsoft cloud afhankelijk te maken
Dat is een mogelijk resultaat maar daarmee niet perse het doel natuurlijk.

PS @Kevinkrikhaar wat is 'vooraf' in de inleiding? Dat kan echt op alles slaan...

[Reactie gewijzigd door watercoolertje op 21 augustus 2025 14:53]

Hulp uit onverwachte hoek, ik was onder de indruk dat dit door UE of game developers opgelost zou moeten worden. Kom maar op hiermee (y)
Dat zou nog steeds het beste zijn. Id laat met hun engine en games zien dat je prima games kan maken met een kleine set aan shaders ipv voor iedere poep en scheet een nieuwe shader te introduceren.

Nu volgt MS het voorbeeld van Valve (met Steam OS) door automatisch precompiled shaders te laden. Maar dat is nog steeds symptoombestrijding. Nu is dit voor Valve makkelijker omdat ze minder GPUs ondersteunen en compiled shaders gekoppeld zijn aan GPU+driver versie. Dat is waarschijnlijk ook één van de redenen waarom de uitrol van Steam OS naar andere hardware zo langzaam gaat.

[Reactie gewijzigd door Caayn op 21 augustus 2025 15:37]

Juist andersom. Veel games blinken de afgelopen jaren uit in belabberde optimalisatie, welke veelal door dingen als DLSS worden "opgelost". Dus daar heb ik niet zo'n hoge pet van op. Zo snel mogelijk produceren is bij veel studios/uitgevers klaarblijkelijk veel belangrijker dan kwaliteit. Als je optimalisaties die generiek toepasbaar zijn in het OS beschikbaar maakt is dat verreweg de beste optie. Zo hoeft een ontwikkelaar niet elke keer het wiel opnieuw uit te vinden of zit het achter een patent vast. Beetje wat Microsoft met DirectX voor elkaar gekregen heeft. Verre van perfect maar het heeft wel een hoop standaardisatie en onnodig dubbel werk voorkomen.

Ik ga er vanuit dat Microsoft achter de schermen ook zeker wel samen werkt met o.a. Epic. Dit soort technieken zijn niet iets wat je even uit je mouw schudt. Ook is voor een zachte landing compatibiliteit met de grote spelers uiteraard ook wel zo verstandig. In tegenstelling tot de tijd dat DX uitkwam zijn er nu wel genoeg volwassen alternatieven.
Ergens waar, maar in het voorbeeld komt het te vaak voor dat die problemen ook al veroorzaakt worden doordat de developers vast houden aan defaults, denken dat dat "prima" is omdát het de Unreal Engine is.

Echter, door hoe veel diverser UE is geworden is ze lang niet zo gespecialiseerd en dus geoptimaliseerd meer; devs moeten wel-degelijk aanpassingen doen om dingen performant te houden; achteraf is dweilen met de kraan open.

Maar dat stuk ervaring lijkt haast compleet verdwenen te zijn afgelopen decennium...

En door hoe graag UE in demo's slingert met onnodige complexe meshes, krijgen artists ook onterecht de impressie dat het prima is met achterlijk complexe geometrie te werken zónder verdere reden, wat ook resulteert in luiheid. Dan komt daar vervolgens nog blind tesselation overheen en hey verdomt, het draait voor geen meter meer...

[Reactie gewijzigd door Annihlator op 22 augustus 2025 14:35]

Die hebben dat toch opgelost.


Elke moderne game doet bij first start shader compilatie fase.
Eindelijk hoopt dat dit betekend dat MS wat meer voor PC Gaming in windows gaat doen. Want al jaren doen ze nauwelijks wat behalve dat ze via xbox game pass games op pc releasen.

Laatste paar windows 11 releasen hadden issues met zeer slechte game performance tegenover windows 10.
Laatste paar windows 11 releasen hadden issues met zeer slechte game performance tegenover windows 10.
De laatste? De eerste (paar) bedoel je misschien?
Tja, het blijft pleisters plakken. Zeker nu indie games ook steeds vaker DirectX12 of Vulkan gebruiken zijn er steeds meer ontwikkelaars die de kennis en tijd niet hebben om zich hiermee bezig te houden. En zelfs al willen ze het - het is eigenlijk teveel werk voor kleine teams om voor iedere update een volledige lijst PSOs te verzamelen.
Dit is iets dat veel beter geautomatiseerd moet worden.
Levert dit dan zo een grote winst op ten opzichte van de shaders lokaal te precompilen en te cachen op de schijf? Dat kan immers gewoon met DX12, Vulkan of OpenGL 4, maar vereist natuurlijk wel dat de engine dit implementeert (maar dat geldt ook voor deze nieuwe oplossing).

Normaal is dit updaten van de shadercache toch alleen nodig na het wijzigen van de GPU of het updaten van de drivers (zoals ook in het artikel staat)? Nu heb ik al even geen moderne game meer aangeraakt, maar ik kan me niet inbeelden dat het lokaal precompilen van de shaders zo lang duurt dat je dat wilt vervangen door een cloud oplossing. Dat voegt toch alleen maar extra afhankelijkheden toe voor een paar minuten (ofzo) tijdswinst op een maand? Of duurt dit tegenwoordig een half uur omwille van de grote hoeveelheid shaders in een moderne game?
Sommige shadercache recompiles kunnnen helaas erg lang duren, laatste jaren het meest gezien bij de Unreal Engine based games iig.

Star Citizen zit soms ok zon 5-10 minuten te brommen als ik na een grote update het cache al had ge force-wiped.

Dat lijkt kort, maar S.T.A.L.K.E.R.2 had er een handje van om bij aardig wat settings nagenoeg het hele cache te willen herschrijven, ook bij patches. dus je zit vervolgens elke dag eerst zon 5-10 minuten naar het laadscherm te staren, en dán wordt het m.i. vrij vervelend. Nadat je eerst al op 80-90gb download had zitten wachten van een enkel encrypted PAK-file wat eigenlijk opgescheiden had moeten zijn.

[Reactie gewijzigd door Annihlator op 22 augustus 2025 14:31]

dit zou een zeer mooie toevoeging zijn
Bij gameconsoles en op de Steam Deck worden de shaders meestal al vooraf gecompileerd. In Windows was dit voorheen echter niet mogelijk, omdat de shaders afhangen van de game, gpu en drivers van het specifieke apparaat van de gebruiker.
:: Gaat in de Windows Steam client naar Steam Settings -> Downloads -> Shader Pre-Caching en schuift de schakelaar voor "Enable Shader Pre-Caching" in de 'aan' positie ::

Dit werkt gewoon voor Vulkan en OpenGL games hoor. Alleen niet voor Direct3D games - omdat Direct3D als platform het gewoon niet ondersteunt. Op de Steam Deck werkt het dan weer wel vanwege Proton en het feit dat de Direct3D API naar Vulkan vertaald wordt, waardoor Steam daar Vulkan shaders pre-cached kan afleveren.

Misschien dat de redactie eerst iets beter onderzoek moet doen voordat ze een artikel over dit soort zaken de deur uit doen?

[Reactie gewijzigd door R4gnax op 21 augustus 2025 19:52]

Waar blijft direct X 13

Zie meer heil in een verbeterde versie daar van dan een probleem posse wat er niet is elke moderne game doet een shader pass op moment van opstarten.
Waar blijft direct X 13
Gezien de gigantische brain-drain in allerlei divisies van Microsoft die niet direct met hun huidige core business competence te maken hebben (dwz. het slijten van AI-powered software-as-a-service) denk ik niet dat je wilt dat ze nu aan DX13 gaan werken. Dat zou een regelrechte ramp worden waar de industrie daarna een decennia-lang mee zou moeten blijven kampen.

Op dit item kan niet meer gereageerd worden.