Este artículo trata sobre una manera de deshabilitar la función Zero RPM (ventiladores parados por debajo de 60º) de una tarjeta gráfica RX 6600 XT en macOS y su relación con los problemas gráficos aparecidos en las GPU AMD de las series 5000 y 6000 después de actualizar a la versión 12.3 de Monterey. Por lo publicado hasta ahora en los foros, aplica también a las Radeon 6800 y 6900 pero toma esto con precaución ya que no lo he comprobado directamente.
Zero RPM
De manera predefinida, los ventiladores de la tarjeta RX 6600 XT (como otros modelos de gráficas AMD) están parados por debajo de 60º, es lo que se conoce como Zero RPM. Esto tiene como ventaja principal la ausencia de ruido excepto cuando hay requerimiento gráfico elevado.
Los usuarios que utilizan esta tarjeta en un Hackintosh con arranque dual han observado que la temperatura, con el sistema en reposo, suele ser unos 10º más baja en Windows que en macOS (40º vs 50º). En ambos sistemas Zero RPM mantiene los ventiladores parados hasta que se alcanzan 60º.
En Windows es fácil habilitar / deshabilitar Zero RPM desde el software Radeon que tiene esta opción en sus ajustes personalizados. Pero en macOS no existe esta posibilidad.
Hasta ahora la opción existente para desactivar Zero RPM en macOS es la creación desde Windows, a partir de la ROM de la tarjeta AMD, de una SoftPowerPlayTable (sPPT) (contiene los ajustes de la tarjeta gráfica en forma de valor hexadecimal) que OpenCore puede cargar desde DeviceProperties. Si la sPPT se guarda en Windows después de desactivar Zero RPM, macOS al cargar la sPPT funciona también con Zero RPM desactivada. Pero es una tarea compleja que requiere programas específicos y no está al alcance del usuario poco experto.
AMD 5000 y 6000 en Monterey 12.3
Nota: Monterey 12.3.1 ha solucionado el problema de la versión 12.3 con las Radeon 5500, 5700, 6800 y 6900.
El lanzamiento de macOS Monterey 12.3 ha estropeado el funcionamiento de las familias Radeon 5000 y 6000, no en todos los casos pero sí en bastantes de ellos a juzgar por los comentarios publicados en los foros. Este problema también ha sucedido en Mac reales pero parece ser más mucho más frecuente en Hackintosh. Los modelos 5500, 5700, 6800 y 6900 (XT y no XT) han sido más afectados. Los modelos 6600 (XT y no XT) parecen estar libres del fallo que se manifiesta en una bajada muy evidente del rendimiento gráfico después de actualizar a 12.3, en algunos casos el sistema llega a ser inutilizable y en otros casos simplemente se pierde gran parte de la potencia gráfica.
Mi GPU es RX 6600 XT por lo que no se ha visto afectada por este problema.
Se han propuesto soluciones para arreglar este fallo. La más simple es añadir en DeviceProperties de config.plist unas propiedades que ajustan el framebuffer Henbury (familia 6600) para cada uno de los 4 puertos de esta GPU. Por defecto se carga el framebuffer Radeon (ATY,Radeon). Pero en la extensión AMDRadeonX6000Framebuffer.kext >> Contents >> Info.plist se lee que AMDRadeonNavi23Controller lleva «ATY,Henbury» y las 6600 son de la familia Navi 23. Por este motivo se propone este framebuffer específicamente. El parche se añade de esta forma:
<key>DeviceProperties</key> <dict> <key>Add</key> <dict> <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key> <dict> <key>@0,name</key> <string>ATY,Henbury</string> <key>@1,name</key> <string>ATY,Henbury</string> <key>@2,name</key> <string>ATY,Henbury</string> <key>@3,name</key> <string>ATY,Henbury</string> </dict> </dict> <key>Delete</key> <dict/> </dict>
Nota: la ruta PCI a la GPU puede ser la misma en tu sistema pero conviene verla con Hackintool (app) o gfxutil (utilidad para Terminal) para saber cuál es la ruta con seguridad.
Parche y Zero RPM
Aunque mi GPU no se ha visto afectada por este problema con Monterey 12.3, he probado el parche movido por la curiosidad de comprobar si la tarjeta funciona de diferente manera (mejor o peor). Al arrancar con el parche, llama al atención que la temperatura de la GPU se mantiene, con el sistema en reposo, 10-15º por debajo de los 50º habituales. La causa está en la desactivación de la característica Zero RPM: los ventiladores giran todo el tiempo, desde el arranque, con un pequeño inconveniente que es el ruido generado (de muy bajo volumen, casi imperceptible excepto en ambiente silencioso).
El rendimiento gráfico es bueno con el parche. Las puntuaciones GeekBench 5 metal son más bajas pero en otros benchmarks como Unigine Valley o GFXBench M son casi idénticas. La temperatura máxima al forzar la GPU no ha cambiado, alrededor de 80-82º igual que sin parche. Pero la temperatura básica sin forzar el sistema oscila de 35 a 40ª. Las sensaciones al realizar tareas comunes en macOS son las mismas (excelentes) con o sin parche.
De manera inesperada, he visto una forma nueva de desactivar Zero RPM en macOS, es más sencilla de implementar que la creación de sPPT en Windows y su posterior trasvase a macOS.
A ti te toca elegir qué prefieres.
- Sin parche: la temperatura base es alrededor de 50º, los ventiladores suelen estar parados y la puntuación GeekBench 5 es más alta.
- Con parche: la temperatura base está por debajo de 40º, los ventiladores están siempre en marcha aunque el ruido producido es muy bajo y la puntuación GeekBench 5 es más baja.
Framebuffers
Este parche se puede aplicar a los otros modelos Radeon afectados por el problema de Monterey 12.3 para corregir ese mal comportamiento más que para desactivar Zero RPM. Los framebuffers son diferentes para cada familia de chips gráficos. Se pueden ver en AMDRadeonX6000Framebuffer.kext >> Contents >> Info.plist.
- Serie 5700 – Navi 10
AMDRadeonNavi10Controller
device-id: 0x73101002 0x73121002 0x73181002 0x73191002 0x731A1002 0x731B1002 0x731F1002 0x73BF1002
framebuffer: ATY,Adder / ATY,Ikaheka
- Serie 5600 – Navi 12
AMDRadeonNavi12Controller
device-id: 0x73601002 0x73621002
framebuffer: ATY,Sunbeam
- Serie 5500 – Navi 14
AMDRadeonNavi14Controller
device-id: 0x73401002 0x73411002 0x73431002 0x73471002 0x734F1002
framebuffer: ATY,Python / ATY,Keelback / ATY,Boa
- Series 6800 y 6900 – Navi 21
AMDRadeonNavi21Controller
device-id: 0x73A01002 0x73A21002 0x73A31002 0x73AB1002 0x73AE1002 0x73AF1002 0x73BF1002
framebuffer: ATY,Belknap / ATY,Carswell / ATY,Deepbay
- Serie 6600 – Navi 23
AMDRadeonNavi23Controller
device-id: 0x73E31002 0x73FF1002 0x73E01002
framebuffer: ATY,Henbury
Hola, un saludo, mi PC es:
– Asus RogStrix B660 A
– RAM 16
– i7 12700kf
– MSI RX 580 4Gb.
Actualmente tengo instalado Monterey por OpenCore, mi problema es que la temperatura de la gráfica es de 57°, tengo instalado los keys como Lilu y WhateverGreen pero no corrige el calentamiento, por favor una ayuda.
Le dejo mi correo.
cesarmhb22
arroba
G mail
Punto
Com
Hola, César. No tengo información de esa placa base con macOS aunque por lo que dices lo has instalado y funciona bien.
Respecto a la GPU, varias cosas:
– 57º está dentro de los márgenes de funcionamiento de esta gráfica, por defecto viene configurada de fábrica para arrancar los ventiladores cuando llega a 60º y su temperatura máxima ronda los 90-100º
– Si tienes Windows en ese PC, desde el panel de control del controlador gráfico de AMD ¿qué temperatura en reposo tiene la tarjeta? Supongo que 5 o 10º inferior a macOS
– Lilu y WhateverGreen no influyen en la temperatura, yo creo que por ese lado poco has de mirar.
Aparte de mirar dentro del PC para ver si hay algo que trasmita calor a la gráfica, cosa poco probable, la única opción que hay para bajar esa temperatura es generando desde Windows (en ese mismo PC) una cadena softPowerPlayTable con la opción Zero RPM deshabilitada para que los ventiladores estén en marcha todo el tiempo en lugar de sólo al llegar a 60º. Es una tarea que no es sencilla. Yo tengo las instrucciones en este sitio, aquí tienes toda la información necesaria.
La duda es si la RX 580 también acepta esto o no, hasta que no lo pruebes no lo sabrás con seguridad. Lo comento porque, aunque en teoría el método sirve para tarjetas AMD modernas (RX 580 hasta RX 6900), yo lo he probado solamente con modelos de la familia 6600 y no sé si en la tuya también funcionará.
En el código del parche hay 4 claves, @x,name, en todas está el nombre del framebuffer. Por qué 4 veces? Gracias.
Hola, estas tarjetas 6600 tienen 4 puertos externos, la mía por ejemplo tiene 3 DisplayPorts y 1 HDMI pero creo que otras tienen 2 y 2. El framebuffer ha de ser ajustado para los 4 puertos, de ahí las 4 claves, una para cada puerto externo, numerados de acuerdo con el orden interno que tengan, del 0 al 3.
Yo tengo una RX 6600 y no he visto fallos en Monterey 12.3. Ya comentas que este modelo parece estar libre de ellos.
Pero merece la pena probar el parche? Hay alguna mejora aparte de la temperatura más baja?
Tal como digo en el artículo, la familia 6600 (XT y no XT) parece estar libre del fallo en Monterey 12.3, como bien dices.
El parche no mejora el comportamiento de la tarjeta, ya has leído que en algunos tests la puntuación es la misma pero en GeekBench 5 es claramente inferior. Este test no es de mis favoritos pero es uno de los más utilizados y mucha gente lo usa para comparar equipos.
Lo que sí hace el parche es lo que comentas, mantener los ventiladores siempre en marcha por lo que la temperatura base se mantiene alrededor de 35º, aprox. 15 menos que sin el parche. El ruido realmente es casi inapreciable.
Hola, para una 6800 XT veo 3 framebuffers, Belknap, Carswell y Deepbay, cuál es el que debo usar para aplicar este parche? Gracias.
Belknap es el que has de probar en primer lugar ya que es el indicado para las series 6800 y 6900.
Carswell parece ser para la Radeon Pro W6800X Duo MPX Module, un dispositivo profesional muy caro para requerimientos gráficos intensos en macOS, no se utiliza en los Hackintosh.
Hay usuarios que han probado Carswell para tarjetas 6800, 6800 XT y 6900 XT y también parece funcionar bien.
Deepbay lo han probado usuarios a los que Belknap o Carswell no les funcionaban correctamente.
Además de añadir el framebuffer para los 4 puertos en config.plist, he visto en algunos sitios añadir también la propiedad device_type con el valor ATY,HenburyParent.
Mejora esto en algo el funcionamiento de la tarjeta?
Yo he probado a poner y quitar esa propiedad device_type y no he observado diferencias, la GPU parece funcionar igual con ella que sin ella.