Con el paso del tiempo nos hemos acostumbrado a que Microsoft haga anuncios que, por lo menos, toman por sorpresa a los medios. En esta ocasión se trata de WARP, una tecnología que revive una práctica abandonada hace varios años y enterrada por el poder actual de las tarjetas de vídeo: El renderizado por software. ¿Qué hizo Microsoft para demostrar el poder de WARP? Corrió nada menos que Crysis y publicó un par de benchmarks. ¿Tecnología con futuro, o apenas una locura más?
Ahora, pero como hace 15 años
Probablemente la primera experiencia 3D que tuve frente a un ordenador fue Castle Wolfenstein 3D, clásico juego del año 1992 que utilizaba una tecnología llamada "ray casting", entregando la sensación de que el personaje se movía realmente en un entorno de tres dimensiones. En aquella época, los juegos como Wolf 3D y similares tenían algo en común: Todos los gráficos eran procesados por el CPU, lo que en un término más técnico se conoce como renderizado por software. El resto, más o menos, es historia: Apareció 3dfx con su chip Voodoo junto con la archifamosa "Monster 3D" de Diamond Multimedia, luego le siguieron Nvidia y otros fabricantes, Glide y OpenGL se sacaron los ojos durante años para ver cuál quedaba como API estándar, se sumó DirectX a la pelea y 3dfx terminó siendo comprada y enterrada por Nvidia, hasta llegar a los tiempos actuales en donde tenemos a DirectX gobernando el mundo de los videojuegos, acompañado por tarjetas de vídeo con un poder tal que podrían doblar el tiempo y el espacio mientras pueden preparar un huevo frito del calor que generan.
Ahora, con el final de 2008 a menos de un mes y ajustando las tuercas en varios frentes (por ejemplo, el anuncio de la beta 1 de Windows 7 para enero próximo junto con la primera beta del SP2 de Windows Vista lanzada ayer), Microsoft realizó un anuncio que para aquellos que pasamos más tiempo delante del ordenador de lo que se puede considerar relativamente saludable, nos hizo fruncir el ceño. Se trata de WARP, siglas para Windows Advanced Rasterization Platform, un componente que será parte de DirectX en el futuro Windows 7.
La función principal de WARP es habilitar todas las funciones y extensiones disponibles en la última versión de DirectX (10.1) en escenarios que puedan prescindir (o se vean obligados a ello) de una tarjeta de vídeo (a esto Microsoft lo llamó "remover límites"). Los dos primeros que se nos vienen a la mente son una tarjeta de vídeo quemada/averiada/deshabilitada, o un ordenador con problemas de controladores de vídeo, que en muchos casos suelen dar más problemas de los que deberían. Pero en donde parece tener mayor valor WARP es en el campo del desarrollo de software. Una solución de procesamiento por software como esta permitiría a los desarrolladores tener la seguridad de que sus aplicaciones funcionando bajo WARP trabajarán de forma idéntica en un entorno acelerado por hardware, pero sin necesitar realizar pruebas directamente sobre ese hardware. De esta forma, el desarrollador garantizaría la funcionalidad de su aplicación con todas las soluciones de hardware dedicado que sean compatibles con DirectX. Por supuesto, Microsoft también tiene en vista a otros campos que podrían aprovechar las funciones de WARP. Entre ellos están los juegos casuales, que lejos de ser las maravillas tecnológicas demandantes de hardware, podrían aprovechar las mejoras visuales de DirectX al ser procesadas por el CPU.
También se ha remarcado de forma significativa la compatibilidad de las aplicaciones existentes con WARP. Todo lo que hoy en día utilice DirectX (y por ende, necesite una tarjeta de vídeo), podría y debería funcionar con WARP en modo software. Microsoft ha declarado que WARP está ampliamente optimizado para trabajar con procesadores de núcleos múltiples, deslizando también el detalle de que el máximo rendimiento de WARP se podría apreciar siendo utilizado junto con un procesador de cuatro núcleos o mayor. Sin embargo, al hablar de requerimientos específicos de hardware, sólo se mencionó que WARP podría trabajar con el hardware mínimo compatible con Windows Vista, o sea, un procesador de 800 Mhz y 512 MB de RAM. Claro que, después de las experiencias que hemos tenido con Vista corriendo en entornos de hardware reducido, no hay audacia que nos alcance para intentar correr a WARP en una plataforma tan pequeña.
¿Pero qué tan rápido funciona?
Ahora, todo esto hubiera caído en el campo de lo semi-teórico y se hubiera perdido en el viento como un simple anuncio más de no ser por una cosa que Microsoft no suele hacer: Presentó benchmarks. Además de utilizar un interesante repertorio de hardware para demostrar las capacidades de WARP, utilizó uno de los monstruos gráficos más reconocidos actualmente entre los videojuegos, que es Crysis. Cualquiera hubiera imaginado que, en el improbable caso de que Microsoft publicara benchmarks, lo hiciera con un juego mucho más modesto, pero en esta ocasión se fueron directamente a la cima de la montaña.
Al mismo tiempo Microsoft declaró que WARP de ninguna forma puede reemplazar a una pieza de hardware dedicado, y estamos de acuerdo. Existen tarjetas relativamente accesibles con capacidad de aceleración DirectX 10, y por más que se vean aplastadas por tarjetas mayores, siguen siendo mucho mejores que WARP o que ciertas alternativas de vídeo integrado (salvo alguna que otra excepción, como la serie 700 de chipsets de AMD, de buen desempeño). Pero si WARP no puede reemplazar al hardware, ¿por qué los benchmarks? Estos son los resultados que publicó Microsoft:
Como pueden ver, los valores de rendimiento son risibles. Aún con un Intel Core i7, probablemente el mayor exponente de procesadores para ordenadores de escritorio en este momento, WARP sólo logra unos insignificantes siete cuadros por segundo de promedio, utilizando una resolución de 800×600 con todos los gráficos al mínimo. Otra cosa que notamos de estos valores es que el factor de "escalabilidad" de WARP no es tan bueno como debería ser. Por ejemplo, el Core i7 que utilizaron es una versión de ocho núcleos y logró 7.36 FPS de promedio. Pero el quad-core Penryn a la misma velocidad de reloj que el i7 logró 5.69 FPS. Si WARP estuviera tan optimizado como dicen, en teoría debería haber logrado más de 10 FPS con el doble de núcleos. Lo lógico sería echarle la culpa a la falta de optimización o a la relativa inmadurez de las plataformas i7, pero lo mismo sucede con el Penryn de dos núcleos, que logra 3.48 FPS. Si doblar la cantidad de núcleos en el procesador no duplica el rendimiento de WARP, entonces caería en el mismo pozo en el que están las soluciones de vídeo SLI, que a pesar de todos los trabajos de optimización realizados en juegos y controladores, aún se ven demasiados casos en los que dos tarjetas de vídeo no duplican el rendimiento de una.
A modo de comparación, Microsoft también realizó pruebas con algunas tarjetas de vídeo populares, que sólo sirvieron para confirmar la declaración de que WARP no reemplaza al hardware. Si una tarjeta de vídeo modesta como la GeForce 8400 GS, conocida por ser una de las versiones más económicas de la serie GeForce, puede lograr casi 34 cuadros por segundo de promedio, cualquier posibilidad de que WARP pueda competir en ese ámbito queda muerta y enterrada.
Conclusiones
El anuncio de WARP nos deja un sabor agridulce en la boca. Por un lado, hay que destacar la importancia de otorgar a los desarrolladores una forma directa de poder acceder a todas las capacidades de DirectX sin tener que estar dependiendo de hardware exclusivo. Cualquier límite impuesto a la hora de crear una aplicación afecta la calidad final de la misma y el tiempo en que tarda en salir al público. Ahora, en cuanto al valor que puede llegar a tener WARP para el usuario diario de Windows, realmente no podemos verlo. Lo único que garantizaría WARP sería, trasladándolo a parámetros actuales, poder utilizar Aero en un sistema que no posea una tarjeta compatible para activarlo. ¿Con qué resultado? Poniendo carga adicional en el procesador y haciendo a todo el sistema más lento. Windows 7 planea utilizar el poder de las tarjetas de vídeo para acelerar ciertas funciones, pero visto desde cierto punto de vista, WARP iría en la dirección inversa.
Sin embargo, hay que tener en cuenta la velocidad en la que los procesadores de núcleos múltiples se están desarrollando. El procesamiento paralelo va tomando cada vez más vuelo, mientras que nuevas tecnologías como los memristores podrían acelerar a los sistemas actuales todavía más. Hay cierto detalle que no ha cambiado con el paso del tiempo: A muchos desarrolladores de juegos les molesta "tener que pasar" por DirectX. Muchos han especulado con formas de poder acceder al hardware directamente, tanto a la tarjeta de vídeo como al procesador. Entonces, tal vez estemos viendo en WARP al tatarabuelo de una nueva forma de desarrollo de software. Es probable que llegue el día en que el poder de los procesadores con núcleos múltiples sea tal que puedan realizar renderizados por software a la misma velocidad (o por qué no, todavía más rápido) que una solución de hardware dedicada.
Por supuesto, no faltan las malas lenguas que declaran al anuncio de WARP como una simple pantalla de humo, para desviar la atención del gran problema que está teniendo Microsoft con esta bola de nieve gigantesca llamada "Vista Capable". Tal vez sea así, tal vez no, pero lo cierto es que WARP no cambiará en el corto plazo la forma en que jugamos o utilizamos Windows. De momento, lo que más nos importa a nosotros los usuarios, son dos cosas: La salida del Service Pack 2 para Windows Vista (con probable fecha de salida en abril de 2009) y la beta 1 de Windows 7, anunciada para enero próximo.
¡Buena suerte!