La polémica del sabotaje: ¿qué ocurre con la tecnología HairWorks de Nvidia y las tarjetas AMD en The Witcher 3?
Lo ponemos a prueba.
Tras los problemas de rendimiento con Project Cars, los drivers para las tarjetas gráficas de AMD vuelven a quedar en entredicho con The Witcher 3: Wild Hunt. El fastuoso juego de rol de CD Projekt RED no rinde tan bien como debería cuando la tecnología de renderizado de pelo HairWorks de Nvidia está activada, y eso es algo que a AMD no le ha hecho ni pizca de gracia.
"Hemos estado trabajando con CD Projekt RED desde el principio. Les hemos proporcionado feedback detallado durante todo el proceso", explicaba a Ars Technica Richard Huddy, chief gaming scientist de AMD. "Unos dos meses antes del lanzamiento, más o menos, llegó el código GameWorks con Hairworks, y eso saboteó totalmente nuestro rendimiento. Funcionaba bien antes de eso... destrozó nuestro rendimiento, era casi como si se hubiese puesto para lograr ese objetivo".
"GameWorks mejora la calidad visual de los juegos funcionando con GeForce para nuestros usuarios", respondía el PR de GameWorks, Brian Burke, a PC Perspective. "No perjudica el rendimiento en hardware de la competencia. Se proporciona el código fuente de GameWorks a los desarrolladores que lo soliciten bajo licencia, pero no pueden redistribuirlo a nadie que no tenga esa licencia. La mayor parte del tiempo optimizamos los juegos en base a builds binarias, no código fuente... creo que es un problema de recursos. Nvidia destinó un montón de recursos a nivel de artistas e ingenieros para ayudar a que The Witcher 3 fuese mejor. Presupongo que AMD podría haber hecho lo mismo, porque nuestros acuerdos con los desarrolladores no les impiden trabajar con otros IHVs".
Lo más normal y frecuente es que las características GameWorks solo estén disponibles para los usuarios de las GPUs de Nvidia, pero CD Projekt RED ha permitido que la tecnología específica de Nvidia en The Witcher 3 opere también en GPUs AMD, aunque con un mensaje ambiguo que advierte que puede producirse un rendimiento inferior a lo normal.
"Puede experimentarse un rendimiento insatisfactorio, ya que el código de esta característica no pudo optimizarse para los productos AMD", explicaban los desarrolladores a Overclock3D. "Recomendamos a los usuarios de Radeon que desactiven Nvidia HairWorks si el rendimiento está por debajo de sus expectativas".
Nvidia clarificaba además que "No es decisión de CD Projekt RED permitir que la tecnología de Nvidia funcione con GPUs AMD, sino nuestra, ya que las características que se usan normalmente son agnósticas a nivel de plataforma. Lo mismo ocurre con PhysX basado en CPU y con ClothWorks".
1920x1080, Detalle Ultra | GTX 970 | R9 290X |
---|---|---|
HairWorks On (Low/Avg FPS) | 24.0 / 39.4 | 18.0 / 26.3 |
HairWorks Off (Low/Avg FPS) | 36.9 / 51.9 | 38.0 / 49.6 |
¿Es realmente HairWorks un desastre para AMD, tal y como afirma la compañía? Hemos decidido comprobarlo de primera mano, haciendo una prueba con una cinemática en la que se usa mucho con el parche 1.03 instalado - el cual parece ser que mejora el rendimiento de HairWorks. Estas pruebas se realizaron con un PC con una CPU Core i7 4790K y 8GB de memoria RAM, usando una GTX 970 y una R9 290X y midiendo los resultados con HairWorks activado y desactivado.
Como podéis imaginar con una tecnología que renderiza decenas de miles de mechas teseladas de pelo, el impacto en el rendimiento del juego es sustancial, ya sea con una tarjeta gráfica de Nvidia o de AMD. En nuestro caso, la GTX 970 perdía el 24% de su rendimiento cuando HairWorks estaba activado, cayendo de una media de 51.9FPS a 39.4FPS. Sin embargo, con la R9 290X la caída era todavía mayor, cerca de un 47% de media en el frame-rate - los 49.6FPS de media descendía hasta tan solo 26.3FPS.
La explicación de AMD parece ser que como no tienen acceso al código fuente de GameWorks, optimizar sus drivers para esta tecnología es extremadamente difícil. Nvidia, por su parte, responde sugiriendo que la mayor parte de su optimización se realiza analizando el código final ya compilado, y no con el código fuente.
Nuestro punto de vista es que HairWorks - igual que la tecnología TressFX de AMD incluida en Tomb Raider - debe ser considerado como un lujo que solo hay que activar cuando tienes potencia de computación de sobras en la GPU, y basándose en un efecto con teselado - que de por si es algo que las GPUs de AMD no aguantan demasiado bien - es comprensible que se atragante en las Radeon. Respecto al rendimiento general con AMD, puedes ver que la GTX 970 y la R9 290X ofrecen frame-rates similares cuando HairWorks está desactivado, así que la integración de GameWorks no afecta para nada a las GPUs de AMD. Nuestro consejo es que, tengas una tarjeta Nvidia o AMD, desactives HairWorks para obtener el mejor rendimiento posible. Si una excelente tarjeta como la GTX 970 (la cual corre un código HairWorks optimizado) produce un rendimiento con caídas por debajo de los 30FPS cuando está activado, queda claro que son un montón de recursos de la GPU que es mejor destinar en otros aspectos, como por ejemplo tratar de alcanzar los 60FPS estables.