Para conocer las primeras novedades de DirectX 12 debemos retroceder a marzo del año pasado. Todos quedamos bastante entusiasmados con las demos iniciales, pero DirectX 12 ingresó en una especie de hibernación leve que se extendió por varios meses. Hoy, ha comenzado a circular la posibilidad de que DirectX 12 entregue soporte multi-GPU combinando tarjetas gráficas AMD y Nvidia en un mismo ordenador, algo que definitivamente cambiaría las reglas del juego.
Cualquier entusiasta puede tomar dos o más tarjetas AMD para sumar su rendimiento, y lo mismo sucede en el caso del hardware Nvidia. Pero aquellos que tratan de combinar las placas de ambas compañías suelen pasarla bastante mal. Una idea relativamente común era usar la tarjeta AMD en el procesamiento principal, y la tarjeta Nvidia para encargarse de la física, pero en versiones posteriores Nvidia decidió desactivar PhysX cuando se detecta la presencia de hardware AMD. En otras palabras, AMD y Nvidia ni siquiera están dispuestas a compartir un ordenador a la hora de los gráficos. El LucidLogix Hydra trató de ofrecer un terreno común, pero terminó siendo un fracaso. Y ahora… llega DirectX 12. Sí, el mismo DirectX 12 que en su momento visualizamos como parte de Windows 9, y que ahora debería ser presentado en sociedad junto a Windows 10.
Una de los primeros detalles que circuló sobre DirectX 12 es que buscará funcionar más cerca «del metal», lo que nos hace pensar en un comportamiento similar a Mantle. Sin embargo, la última bomba, si obedecemos a fuentes internas y anónimas que disfrutan filtrando datos en los pasillos de Redmond, es que DirectX 12 incorporará soporte multi-GPU asincrónico. En otras palabras, un juego optimizado para DirectX 12 podrá distribuir el procesamiento de cada cuadro entre placas Nvidia y AMD, sin restricciones aparentes. Veamos: En condiciones normales, dos GPUs (o más) de la misma compañía renderizan los cuadros de forma alterna. Si bien esto incrementa el rendimiento, por otro lado limita el búfer disponible, incrementa la latencia, y genera el condenado «micro stuttering» que vuelve locos a los jugadores.
Bajo el ala de DirectX 12, el renderizado de cuadros no sería alterno, sino dividido, otorgando al desarrollador la capacidad de asignar, ya sea manual o automáticamente, la carga de trabajo que cada GPU debe procesar en un mismo cuadro. El renderizado dividido de cuadros (técnicamente Split Frame Rendering) es en realidad un truco bastante viejo, pero la novedad aquí es que DirectX 12 permitirá su aplicación a través de hardware hecho por diferentes compañías. El potencial es gigantesco, y otro aspecto para destacar es que no estaría limitado a tarjetas dedicadas. Ordenadores portátiles con vídeo dual, APUs y otros sistemas de gráficos secundarios podrían verse beneficiados. Como siempre, todo dependerá de qué tan bien le caiga esto a los desarrolladores. Sabremos más en la próxima GDC.