Articles

Valve: OpenGL es más rápido que DirectX, incluso en Windows

Este sitio puede ganar comisiones de afiliados de los enlaces de esta página. Condiciones de uso.
L4D2, que se ejecuta de forma nativa en Ubuntu 11.10

En un giro aterrador que refuerza el disgusto de Valve para Windows 8, resulta que el motor de origen, el motor 3D que alimenta Half Life 2, Left 4 Dead y Dota 2, se ejecuta más rápido en Ubuntu 12.04 y OpenGL que Windows 7 y DirectX / Direct3D.

El equipo de Valve Linux lo desglosa en su nuevo y brillante blog: Con una Nvidia GTX 680, Intel i7-3930k y 32 GB de RAM, Windows 7 y DirectX, dejó 4 Max 2 muertos a 270.6 fps. Con el mismo hardware, pero con software diferente, Ubuntu 12.04 y OpenGL-L4D2 obtienen 315 fps, casi un 20% más rápido que Windows.

Estas cifras son notables, teniendo en cuenta que Valve ha estado refinando el rendimiento del motor de código fuente bajo Windows durante casi 10 años, mientras que el equipo de Valve Linux solo ha estado trabajando en el puerto de código Fuente para Linux durante unos meses. Valve atribuye la velocidad a la «eficiencia subyacente del núcleo y OpenGL».»

El puerto Linux de L4D2 no comenzó a 315 fps, por supuesto, la versión inicial en realidad llegó al máximo a solo 6 fps. Para lograr una ganancia de rendimiento tan grande, se toma un enfoque de tres puntos: El juego se ajusta para que juegue bien con el kernel de Linux, el juego se optimiza para que funcione con OpenGL (en lugar de DirectX) y se abordan los errores en los controladores gráficos de Linux.

Este último punto es interesante: Valve tiene relaciones de larga data con AMD, Nvidia e Intel, donde Valve informa de errores de controladores y el fabricante de GPU los corrige de manera oportuna. Valve está llevando esta relación a Linux, lo cual es muy importante para el crecimiento continuo de Linux como plataforma de juegos. En este caso, Valve dice que el controlador Nvidia Linux carecía de soporte para varios hilos, y una vez que lo agregaron a una versión posterior del controlador, el rendimiento aumentó.

Pero aquí está la mejor parte: Usando estas nuevas optimizaciones de OpenGL, la versión de OpenGL de L4D2 en Windows ahora es más rápida que la versión de DirectX. Con el mismo hardware, Windows 7 / OpenGL / L4D2 alcanza los 303,4 fps, en comparación con Windows 7 / DirectX / L4D2 a 270,6 fps. En resumen: OpenGL es más rápido que DirectX.

Logotipo de DirectX En cuanto a por qué OpenGL es más rápido que DirectX / Direct3D, la respuesta simple es que OpenGL parece tener una canalización más suave y eficiente. A 303,4 fps, OpenGL está renderizando un fotograma cada 3,29 milisegundos; a 270,6 fps, DirectX está renderizando un fotograma en 3,69 milisegundos. Esa diferencia de 0,4 milisegundos se debe a la rapidez con la que la canalización de DirectX puede procesar y dibujar datos 3D.

¿Por qué seguimos usando Direct3D?

Si OpenGL es más rápido, ¿por qué DirectX sigue siendo la API predominante? No es por la calidad de imagen o las características: OpenGL 4.0 tiene todos los sombreadores, teseladores y widgets que tiene DX. No es por el soporte de hardware: Todas las tarjetas gráficas Nvidia y AMD admiten la última versión de OpenGL junto con DirectX.

En realidad, todo se reduce a esa cosa vieja que llamamos el efecto de red, y, por supuesto, el peso monopolista y los dólares de marketing. DirectX, debido a que tiene una API más limpia y una mejor documentación, es más fácil de aprender. Más desarrolladores usando DirectX = más juegos de DirectX = mejor soporte de controladores. Este es un círculo vicioso que de nuevo conduce a más desarrolladores de DX, más juegos de DX y mejores controladores/herramientas/documentación de DX. Microsoft también ha comercializado implacablemente DirectX, ¿y quién puede olvidar el lanzamiento de Windows Vista y la campaña de desprestigio OpenGL de Microsoft? La versión de Vista de OpenGL estaba completamente paralizada, lo que obligó a muchos desarrolladores a cambiar a DirectX.

Steam Linux Microsoft tiene buenas razones para obstaculizar el progreso de OpenGL, por supuesto: Aunque DirectX es propietario y solo se ejecuta en Windows, Xbox y Windows Phone, OpenGL es completamente multiplataforma. Existen sólidas implementaciones de OpenGL para Mac, Linux, PlayStation 3, Nintendo Wii y casi todos los teléfonos inteligentes modernos (OpenGL ES). Obviamente, es mejor para Microsoft asegurarse de que las mejores experiencias de juego sean exclusivas de sus plataformas.

Con el disgusto de Gabe Newell por Windows 8 (y Blizzard haciéndose eco de sus sentimientos), el inminente lanzamiento de Steam en Linux y el continuo crecimiento de los juegos para teléfonos inteligentes, podríamos estar en la cúspide de una revolución de OpenGL. Si la corona de juegos de Windows sigue cayendo, OpenGL podría convertirse pronto en la API predeterminada, en lugar de una idea tardía. Muy pronto, podría ser estándar desarrollar un juego que funcione bien en todas las plataformas, en lugar de centrarse en Direct3D y dejar a Linux y OS X a la intemperie.

Valve hablará sobre sus avances en Linux/OpenGL en SIGGRAPH 2012 la próxima semana. SIGGRAPH también es donde solemos escuchar las últimas noticias de OpenGL y DirectX, ¡así que estad atentos!

Actualizado a las 2:40: La historia originalmente afirmaba que la especificación de OpenGL suele estar por delante de DirectX, pero eso no ha sido cierto desde hace unos años.