Left 4 Dead 2 en Linux corre mas rápido que en Windows



Valve ha recientemente añadido una nueva entrada en su blog "linuxero" con unas muy, pero muy interesantes noticias con respecto a su trabajo porteando su mas reciente version del Source Engine al Kernel de Linux. La entrada "FASTER ZOMBIES!" (Zombies mas rápidos), y posee ademas de un muy optimista futuro para los productos de Valve en Linux, un posible futuro para que el software libre se considere una opcion viable para los gamers en un futuro, la entrada lee lo siguiente:



Un factor para crear una buena experiencia en el gaming es el flujo de informacion. El siguiente post habla algo de lo que hemos aprendido sobre el rendimiento de nuestros juegos corriendo en Linux.
Como cualquier desarrollador de juegos puede decirlos, el rendimiento es un asunto complicado. En los intereses de la simplicidad nos encontramos con la siguiente configuracion de alta gama:

Hardware:

► Intel Core i7 3930k
► nVidia GeForce GTX 680
► 32 GB de RAM

Software:

► Windows 7 Service Pack 1 64-bit
► Left 4 Dead 2
► Ubuntu 12.04 LTS 32-bit


Estamos usando la version de 32bits de ubuntu tempralmente y probaremos mas luego la de 64bits.
Corriendo L4D2 en Windows 7 con Direct3D drivers obtenemos 270.6 FPS como base. La data es generada de un test interno.

Por su parte, cuando empezamos con Linux, la version inicial la logramos hacer correr a 6 FPS. Esto es un resultado tipico cuando se realiza un port a una nueva plataforma.
Las mejoras de rendimiento caen en varias categorias:

► Modificar nuestro juego para correr mejor con el Kernel
► Modificar nuestro juego para correr mejor con OpenGL
► Optimizar el driver grafico


Un ejemplo de la primera categoria sera cambiar nuestro alojamiento de memoria para usar uno mas apropiado en base a las funciones de Linux. Esto se logro implementando la cabezera de bloques pequeños del Source Engine para correr bajo Linux.

La segunda categoria incluiria desbordamientos al llamar a OpenGL, y extendiendo el renderizador con nuevas interfaces para un mejor encapsulamiento de OpenGL y Direct3D.

La tercera categoria es especialmente interesante porque involucra trabajar con el fabricante de Hardware para identificar problemas con los drivers y como resultado mejorar el driver publico, que, beneficia a todos los juegos. Identificar lo que causa demoras y añadir soporte en multiples hilos (multithread) en el driver son ejemplos de los cambios que logramos como resultado de este trabajo en equipo.

Despues de este trabajo L4D2 estaba corriendo a 315 FPS en Linux. Decir que la version de Linux corre mejor que la de Windows (270.6) podria resultar contra-intuitivo dado el gran tiempo que dedicamos a la version de Windows. Sin embargo si habla de la subyacente eficiencia del Kernel y OpenGL. Es Interesante que en el proceso de trabajar con los fabricantes de Hardware tambien aceleramos la implementacion de OpenGL en Windows. L4D2 ahora corre a 303.4 FPS base con esta configuracion.

OpenGL vs Direct3D en Windows 7


Esta experiencia nos llevo a la pregunta: ¿por que la version OpenGL corre mas rapido que Direct3D en Windows 7? Parece ser que no esta relacionado al desborde en multitarea. Hemos estado haciendo algunos analisis y todo parece ser causa de un pequeño desborde adicional en microsegundos por bache en Direct3D que no afecta a OpenGL en Windows.
Ahora que sabemos que el Hardware es capaz de rendir incluso mas volveremos y trataremos de mitigar los efectos con Direct3D.

Trabajar con los fabricantes de Hardware


Hemos estado trabajando con nVidia, AMD e Intel para mejorar el rendimiento de los drivers graficos en Linux. Todos ellos se han comportado excelente y muy comprometidos de tener ingenieros en el lugar trabajando con los nuestros, analizando cuidadosamente los datos que vemos. Hemos tenido respuestas rapidas en cualquier bug que se presento y ha sido invaluable el haber tenido gente que entendia el juego, el renderizador, el driver y el hardware trabajando codo a codo con nosotros cuando atacabamos los problemas de rendimiento. Este es un gran ejemplo de los beneficios resultado de la coordinacion entre desarrolladores de software y hardware, y proveeremos un gran valor a la comunidad "Linuxera" a la larga.



Realmente parece increible cuanto han logrado como tambien el alcance del trabajo que han realizado, esperamos pronto mas noticias sobre los avances de Valve en Linux, y, ¿por que no? de otras desarrolladoras que se animen a portear su soft a este SO.












Traduccion y redacción de la noticia por mí, @Olivia_Wilde