Saltar al contenido
ᐅ HielosMendez – Información digital que te dejara helado 🧊🥶

¿PhysX de Nvidia está causando problemas de velocidad de fotogramas de AMD en Gears of War?

Términos de Uso.

Desde que salió Gears of War Ultimate Edition la semana pasada, ha circulado el rumor de que una de las razones por las que el juego funciona tan mal, con tanto tartamudeo en el hardware de AMD, es porque PhysX de Nvidia se está ejecutando en la CPU. Nos avisaron sobre esta posibilidad el miércoles pasado, así que instalé el juego base y consulté con Jason Evangelho en Forbes, quien había escrito el artículo inicial sobre el bajo rendimiento de Gears of War, para verificar la configuración de rendimiento y cosas por el estilo.

Actualización (11/03/2016): Estoy insertando un punto de aclaración aquí sobre PhysX y cómo funciona. Históricamente, Nvidia licenciaba PhysX de dos maneras distintas: como una solución de software intermedio de software general para manejar la física que siempre estuvo destinada a ejecutarse en la CPU (software PhysX), y como una solución de física específica de GeForce que agregó efectos visuales en el juego y estaba previsto para ejecutar en GPU de Nvidia (hardware PhysX).

El problema con esta distinción es que el hardware PhysX también se puede ejecutar en la CPU. Este es un tercer caso operativo distinto, mejor conocido como «Hardware PhysX ejecutándose en software». Algunos sitios web han afirmado que Gears of War usa este modo de forma predeterminada, lo que perjudica el rendimiento de las GPU de AMD. Nuestros resultados refutan esta afirmación.

Historia original a continuación:

Utilicé la herramienta integrada de monitoreo de rendimiento de Windows, Perfmon, para tomar una captura de pantalla de cómo se veía la utilización de la CPU dentro de Gears of War al hacer un benchmarking en 4K en una GPU AMD Radeon Fury X También verifiqué la carpeta Windows Apps para verificar los archivos de configuración de PhysX. Lo que encontré, y desearía tener capturas de pantalla de esto, fue que cada archivo INI relacionado con el juego contenía lo siguiente: «bDisablePhysXHardwareSupport = True» Como estaba probando en una AMD Radeon R9 Fury X, eso es exactamente lo que querido para ver. Apagué el sistema y volví a trabajar en otros artículos. (Todas las pruebas a continuación se ejecutaron en una CPU Haswell-E de ocho núcleos).

Datos del 2 de marzo. PhysX desactivado según INI.

Datos del 2 de marzo. PhysX desactivado según INI.

Avance rápido hasta el día de hoy, cuando todavía están apareciendo informes de la variable «bDisablePhysXHardwareSupport» configurada en False, en lugar de True. Encendí el banco de pruebas nuevamente, permití que el juego se actualizara, verifiqué los mismos archivos INI y descubrí que el valor había cambiado. El miércoles, cinco archivos habían predeterminado ese valor en «Verdadero», lo que significa que PhysX debería haberse deshabilitado. El domingo, el valor había cambiado a «Falso», lo que implica que ahora está habilitado.

Datos del 6 de marzo. PhysX habilitado según .INI.

Datos del 6 de marzo. PhysX habilitado según .INI.

Sin embargo, si compara los gráficos de CPU de Falso con Verdadero, notará que son más o menos iguales. Permitiendo alguna variación en el momento en que comenzó la ejecución de referencia, tiene un patrón de altos picos y caídas. El valor medio para la ejecución deshabilitada / verdadera fue 13,63% y para la ejecución habilitada / falsa, 14,62%.

¿Y Nvidia? Coloqué una GTX 980 Ti, instalé los controladores más recientes de Nvidia y ejecuté la misma prueba simple. Permití que el punto de referencia se ejecutara dos veces, luego tomé el resultado final de utilización de la CPU.

Click para agrandar.  Datos del 6 de marzo. PhysX habilitado en .INI.

Click para agrandar. Datos del 6 de marzo. PhysX habilitado según .INI.

El uso promedio de CPU en este gráfico no es mucho menor, en 11.77%, pero la forma del gráfico es claramente diferente. La velocidad de fotogramas de la GTX 980 Ti es aproximadamente el doble que la de la R9 Fury X (comparamos con la oclusión ambiental deshabilitada, ya que ese modo causa errores de renderizado continuos en la plataforma AMD), pero la utilización de la CPU no sigue aumentando de la forma en que lo hace con las tarjetas AMD.

¿Pistola humeante o juego mal optimizado?

Es cierto que la configuración predeterminada de .ini para Gears of War parece haber cambiado entre el juego original y la última actualización que se envió a través de la Tienda Windows. Pero no hay evidencia de que esto realmente haya cambiado algo sobre el rendimiento del juego en tarjetas AMD. El propio sitio web de Nvidia reconoce que Gears of War usa HBAO +, pero no dice nada sobre el hardware PhysX. Dada la antigüedad de esta versión del motor Unreal 3, es posible que se trate de una variable que quedó de cuando Ageia poseía la API PhysX; Unreal 3 fue el primer motor de juego en contar con soporte de Ageia para la física del hardware.

En este momento, la situación recuerda a Arkham Knight. Es cierto, las tarjetas Nvidia generalmente superaron a las tarjetas AMD en ese título cuando se envió, pero el juego en sí estaba tan terriblemente optimizado que el proveedor lo eliminó por completo. Al momento de escribir este artículo, no hay evidencia de que el hardware PhysX esté activo o relacionado con este problema.

Todo lo que tenemos es evidencia de que el patrón de uso de la CPU para la GPU AMD es diferente al de la GPU NV. Como ya sabemos que el juego no maneja las GPU de AMD correctamente, incluso con la oclusión ambiental desactivada, no podemos extraer mucha información de eso. Nuestra capacidad para recopilar datos de rendimiento más detallados se ve restringida actualmente por las limitaciones de la Tienda Windows. (Ninguno de los archivos de configuración del juego se puede modificar ni guardar, al menos sin utilizar ninguna técnica de permisos con la que esté familiarizado).

Si eres un jugador de AMD, mi consejo es que te mantengas alejado de Gears of War Ultimate Edition por el momento. No hay evidencia de que el hardware PhysX esté causando este problema, pero el juego se ejecuta de manera inaceptable en hardware Radeon.

Actualización (11/03/2016):

Después de ejecutar esta pieza, nos dimos cuenta de que, si bien no podemos editar los archivos INI de una aplicación de la Tienda Windows, podemos cambiar cómo se ejecuta PhysX a través del Panel de control de Nvidia. Anteriormente, la aplicación estaba configurada como «Predeterminada», lo que significa que si el hardware PhysX estaba habilitado, el juego ejecutaría ese código en la GPU.

Volvimos a probar el juego en este modo y vimos resultados esencialmente idénticos a nuestras pruebas anteriores. La curva de utilización de la CPU para las tarjetas GeForce sigue siendo algo diferente a la de las GPU AMD, pero es consistente si PhysX se ve obligado a ejecutarse en la GPU o en la CPU.

Si Gears of War realmente usara hardware PhysX, aumentaría la utilización de la CPU cuando descargáramos esa tarea nuevamente en Haswell-E de Intel. El hecho de que no veamos ninguna diferencia debería poner fin a cualquier afirmación de que Gears of War está usando PhysX para dañar el rendimiento de AMD.