El stuttering, que es el tartamudeo de la imagen producido por microparones, puede ocurrir por muchas razones. La compilación de shaders en medio del juego es una de las causas más habituales, y es un problema que afecta sobre todo a motores gráficos como el Unreal Engine 5.
Este problema ha estado presente en muchos juegos importantes que han utilizado ese motor gráfico, como Silent Hill 2 Remake, que fue uno de los lanzamientos más importantes con ese motor gráfico y con ese problema.
Para resolverlo, muchas desarrolladoras han utilizado la compilación de shaders antes del inicio del juego, pero esto por sí solo es insuficiente, porque conforme vamos jugando es necesario seguir compilando shaders. Lo ideal es que esa compilación se vaya haciendo en segundo plano sin que afecte demasiado al rendimiento, pero esto obliga a hacer un trabajo de optimización al que no todos los desarrolladores están dispuestos.
Microsoft quiere ayudar con este tema, y para ello ha creado Advanced Shader Delivery, una tecnología que recopila los datos de shaders de cualquier juego y los empaqueta en un nuevo formato estandarizado conocido como State Object Database (SODB).
Ese SODB se puede distribuir a través de la Xbox Store junto con el juego, de manera complementaria a la caché de shaders. Cuando un juego se ejecuta por primera vez, busca si todos los shaders necesarios están disponibles en la caché de Windows, y si es así se salta el paso de la compilación de shaders en el dispositivo.
Si se produce una actualización de los controladores la aplicación lo detecta automáticamente, y procede a actualizar la caché de shaders. Es una novedad muy importante, pero tiene problemas: solo funciona de momento a través de la aplicación de Xbox, y su implementación solo se producirá de momento en las ASUS ROG Xbox Ally, pero la misma Microsoft ha dicho que la próxima versión del SDK de DirectX 12 conocido como Agility incorporará esta tecnología para que los programadores la adoptecn.
