¿Cómo es el rendimiento gráfico real en el último macOS? Por qué los mismos juegos se ejecutan mucho peor en Mac que en Windows incluso cuando los juegos utilizan una API de Metal en Mac?

2 cosas :

  • Falta de una API adecuada. Los desarrolladores de juegos suelen ir con el segmento más grande para orientar su juego. Es decir, suelen usar DirectX, Vulkan u OpenGL. DirectX puede ser traducido a OpenGL o Vulkan. Hoy en día, en Linux, se prefiere el modo Vulkan, especialmente para Direct3D 11. Para lanzar juegos en MacOS, Vulkan no existe, así que los desarrolladores de juegos tienen que usar OpenGL. Si el juego es reciente y está hecho para D3D11, sepa que traducirlo a OpenGL suele llevar a la mitad de rendimiento que si se traduce a Vulkan (puede probar la diferencia en Linux, ya que ambos están disponibles). Un juego D3D9 puede ser traducido a OpenGL y ser rápido. También hay que tener en cuenta que el OpenGL de Apple está muy anticuado y no soporta algunas de las extensiones más optimizadas que podrían permitir que los juegos se ejecuten más rápido, es la razón principal por la que más y más desarrolladores sólo lanzan los juegos para Windows y Linux, ya que no quieren degradar su juego para que se ejecute con la versión antigua de OpenGL. Tenga en cuenta que hay MoltenVK que traduce Vulkan a Metal, pero rara vez se utiliza para la liberación, por desgracia, sobre todo ahora que MoltenVK es gratis.
  • La segunda razón por la que el juego puede correr más lento en el hardware de Apple es que "todos los Mac se sobrecalientan" y con eso me refiero a correr más caliente de lo que debería. Las CPUs de Intel en Mac apenas funcionan por encima de la frecuencia base cuando son martilleadas con una carga alta persistente (convertir D3D11 a OpenGL mantendrá uno de los núcleos de la CPU al 100% en general). Además, la GPU sufre el mismo problema de sobrecalentamiento y no se turbo o utilizar el reloj del juego después de un par de minutos de carga completa. Pero en general, la parte de la GPU no se añade porque el cuello de botella es la CPU que se ejecuta en o por debajo del reloj base y por lo tanto el hilo de traducción no puede generar suficiente CPU para hacer su trabajo. Traducir D3D11 a OpenGL es pesado y por eso lo traducimos a Vulkan en Linux, literalmente duplica los FPS. (La traducción suele limitarse a un hilo dedicado)