Los problemas para portar los juegos a Google Stadia están ligados al Kernel de Linux

Malte Skarupke, un desarrollador de videojuegos, reveló esta semana que Google Stadia tenía un serio problema, y es que el programador del kernel de Linux estaría derivando en algunos problemas a la hora de portar los títulos ya desarrollados a la plataforma en la nube de la compañía, como añadir milisegundos al tiempo de respuesta del juego, los cuales pueden marcar la diferencia entre jugar a la perfección o que un título sea injugable.

Google Stadia 740x416 0

"Escuché a alguien en el trabajo quejándose de unos misteriosos problemas mientras portaba RAGE 2 a Google Stadia. Lo único que tenían en común esos misteriosos problemas era que todos ellos utilizaban spinlocks. Tenía curiosidad por eso, porque yo fui la persona que escribió el spinlock que estábamos usando.

El problema era que había un hilo (thread) que pasaba varios milisegundos tratando de adquirir un spinlock en un momento en el que ningún otro hilo estaba sosteniendo el spinlock.

Permítanme repetirlo: El spinlock era libre de ser escogido, pero un hilo tardó varios milisegundos en cogerlo. En un videojuego, donde tienes que conseguir un frame cada 16ms o 33ms (dependiendo de si estás jugando a 60 Hz o 30 Hz), un parón que toma más de un milisegundo es terrible. Especialmente si estás literalmente parando todos los hilos".

Malte Skarupke dijo que pasó meses investigando el tema antes de concluir que "la mayoría de las implementaciones de mutex son realmente buenas, que la mayoría de las implementaciones de spinlock son bastante malas y que el programador de Linux está bien pero lejos de ser ideal". Finalmente decidió aplicar la solución de cambiar de un spinlock a un mutex (un algoritmo de exclusión que evita que entre más de un proceso a la vez en la sección crítica), consiguiendo así reducir los tiempos de respuesta y haciendo que el juego fuera jugable.

vía: Tom's Hardware

Artículos relacionados