6600 XT en macOS: Zero RPM con PowerPlayTable (2)

La tecnología PowerPlay de AMD permite que la tarjeta gráfica varíe su rendimiento de acuerdo con la demanda, cambiando entre rendimiento elevado y ahorro máximo de energía. Tiene modos de funcionamiento automático según parámetros predefinidos y también permite ajustes de usuario.
Windows 10 y 11 pueden hacer una copia de estos perfiles de consumo en forma de una clave del registro llamada SoftPowerPlayTables (sPPT) cuyo valor es una cadena hexadecimal larga. Es una manera de tener una referencia rápida por parte del sistema operativo. Esta clave sPPT puede ser leída y modificada por algunas utilidades. Gracias a ello es posible modificar parámetros del funcionamiento de las Radeon cambiando su comportamiento y su gestión de energía.

Zero RPM

Las tarjetas AMD Radeon de las series 5000 y 6000 vienen de fábrica con la función Zero RPM activada de forma que los ventiladores están parados por debajo de una temperatura (generalmente 60º), esto las hace completamente silenciosas excepto cuando el procesador gráfico es exigido (tests, juegos, etc.).

En cuanto a los modelos RX 6600 y 6600 XT se ha comentado que, en macOS, suelen funcionar a una temperatura base más elevada que en Windows, aproximadamente 10-15º según los casos. En mi PC, por ejemplo, la temperatura base en Windows es 35-40º y en macOS es 50-55º. Aunque se trata de temperaturas seguras perfectamente válidas para un uso diario, algunos usuarios preferiríamos tener unos valores similares a los de Windows.

La manera más rápida y efectiva de conseguirlo es desactivando la función Zero RPM para que los ventiladores estén girando todo el tiempo y no sólo por encima de una temperatura predefinida. Sin embargo, esto es muy sencillo de hacer en Windows con el software Radeon pero en macOS no existe esta opción.

Monterey 12.3

La versión 12.3 de macOS Monterey ha causado problemas en las AMD Radeon series 5500, 5700, 6800 y 6900 (XT y no XT). Los usuarios se quejan de una disminución grande de las prestaciones que en algunos casos llega a hacer el sistema inutilizable. Una solución en forma de parche para el archivo config.plist fue publicada rápidamente, cambiando el framebuffer utilizado por el chip gráfico. Este parche parece solucionar los problemas de rendimiento. Todavía no está clara cuál es la causa de este comportamiento y no sabemos si Apple está trabajando de alguna manera en ello porque en foros Mac también hay publicaciones aunque el problema parece ser mucho más frecuente en Hacks que en Macs.

La serie RX 6600 (XT y no XT) está libre de este problema, por lo que visto hasta ahora. Yo tengo una RX 6600 XT y en Monterey 12.3 funciona igual que en versiones anteriores. Al probar el parche en mi sistema sólo por curiosidad, para ver si hay alguna diferencia de comportamiento con él, descubrí que el parche desactiva la función Zero RPM y la temperatura base en macOS se mantiene entre 30 y 35º. El ruido de los ventiladores es prácticamente inapreciable. El inconveniente es que algunos tests como por ejemplo GeekBench 5 dan puntuaciones claramente más bajas con el parche.

SoftPowerPlayTable

Una manera de desactivar Zero RPM en macOS sin cambiar ningún otro parámetro es usando sPPT. Es un método menos fácil que el parche para Monterey 12.3 pero tiene la ventaja de que el comportamiento de la GPU, incluyendo las puntuaciones en GeekBench 5, no cambian.
Para obtener la sPPT hay que recurrir a Windows, donde se genera la clave del registro y se exporta a un archivo que llevamos a macOS, aquí se retoca el archivo obtenido y se añade la propiedad al archivo config.plist de OpenCore.

Fase 1 en Windows

Necesitamos 2 programas:

  • GPU-Z (de TechPowerUp): Carga el firmware (vBIOS = video BIOS) de la tarjeta gráfica y lo exporta a un archivo que puede ser leído por MorePowerTool.
  • MorePowerTool (MPT) (de Igor’sLAB): Lee el archivo rom con el firmware y gestiona la clave del registro PP_PhmSoftPowerPlayTable (borrar existente o crear nueva).

GPU-Z carga las especificaciones y configuración de la GPU y permite exportarlo todo a un archivo con extensión rom. Para exportar (desde la pestaña Graphics Card) se usa el icono de flecha que sale de un rectángulo debajo del logo AMD Radeon, a la derecha de la caja de texto con la versión de BIOS. En la pestaña Advanced tienes que anotar el número de Bus en la clave DeviceLocation, este número (en mi sistema es el 3) es importante más adelante, al buscar la clave sPPT en el registro de Windows.

MPT es donde se realiza la tarea de generar en el registro la sPPT con Zero RPM desactivada.

  • En la parte superior elige el modelo de GPU que tienes instalado, suele mostrar al comienzo del nombre el número de bus que anotamos anteriormente (3 en este caso).
  • Es recomendable borrar la tabla que pudiera existir ya en el registro desde el botón Delete sPPT.
  • Carga el archivo rom generado con GPU-Z.
  • Modifica la opción Zero RPM desmarcando la casilla de selección en 2 lugares: pestaña Features y pestaña Fan.

Escribe en el registro la nueva tabla desde el botón Write sPPT: la clave del registro se llama PP_PhmSoftPowerPlayTable y está localizada en

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318}\

Aquí hay varias claves numeradas, elige la que coincide con el número de bus que tienes anotado desde antes:
0003\PP_PhmSoftPowerPlayTable. Con la clave 003 seleccionada, expórtala como archivo de registro (reg), no como archivo de texto (txt). La estructura del archivo es diferente en cada caso y he visto que es más sencillo editar el archivo reg que el archivo txt. Regedit exporta la clave 003 completa, no he encontrado la forma de exportar solamente la clave PP_PhmSoftPowerPlayTable. Cambia la extensión desde reg a txt y guardas el archivo en un lugar accesible desde macOS.

Fase 2 en macOS

Arreglar el archivo de texto para poder usarlo en OpenCore.

  • Yo he utilizado BBEdit pero puede servir cualquier programa capaz de editar texto plano, sin formato.
  • Selecciona el bloque que empieza por «PP_PhmSoftPowerPlayTable»= eliminando el resto del texto.
  • Borra también «PP_PhmSoftPowerPlayTable»=hex: dejando sólo la cadena hexadecimal compuesta por varias líneas.
  • Buscar y reemplazar:
    • quita las comas
    • quita el espacio que hay delante de las líneas
    • quita el carácter barra invertida (\) al final de cada línea
    • quita los saltos de línea para obtener una cadena de una sola línea, has de emplear Grep en la función Buscar y reemplazar.

El texto antes de la transformación es así (no se muestra la cadena completa, sólo una parte):

"PP_PhmSoftPowerPlayTable"=hex:a6,09,12,00,02,22,03,ae,09,00,00,22,43,00,00,83,\
00,18,00,00,00,1c,00,00,00,00,00,00,76,00,00,00,00,00,00,00,00,00,00,00,00,\
00,01,00,00,00,01,00,00,00,0d,00,00,00,52,0b,00,00,00,05,00,00,e8,03,00,00,\

Después de la transformación es así:

a6091200022203ae090000224300008300180000001c000000000000760000000000000000000000000001000000010000000d000000520b000000050000e8030000

OpenCore

Es necesario saber la ruta PCI a la tarjeta gráfica, se puede hacer con la herramienta gfxutil o desde Hackintool en la pestaña PCIe (Device Name = Navi 23 [Radeon RX 6600/6600 XT/6600M] >> columna Device Path). Se obtiene la ruta PCI que en mi caso es esta:

Nota: Device Name y Device Path pueden ser diferentes en tu sistema.

PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

Abre el archivo config.plist y en

DeviceProperties >> Add > PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

añade la clave PP_PhmSoftPowerPlayTable, su valor como Data es la cadena larga de texto.

Reinicia. Si todo ha ido bien, verás que los ventiladores están en marcha todo el tiempo con un sonido muy bajo, que la temperatura base rara vez supera los 35º y que el comportamiento de la GPU y las puntuaciones en los test no han cambiado.

Nota: algunos errores en la cadena hexadecimal pueden llevar a pantalla negra al llegar al Escritorio, es muy recomendable tener una EFI que funcione bien en un dispositivo USB o en otro disco para arrancar macOS en caso de problemas.

Aviso: la información en que se basa este artículo en su mayor parte procede del sitio Igor’sLAB.

10 comentarios en «6600 XT en macOS: Zero RPM con PowerPlayTable (2)»

  1. Claro, las instrucciones son para obtener la clave PowerPlayTable del registro de Windows, esa clave no existe en macOS por lo que no la puedes sacar desde ahí. Pero dime qué buscas y qué hardware tienes. ¿Es solamente para bajar la temperatura de la gráfica en macOS o para alguna otra finalidad? ¿Modelo de gráfica (6600, 6800, etc.)? Dímelo porque puede ser que lo que intentas hacer se pueda conseguir desde macOS mediante alguna otra manera.

  2. Hola,
    yo ahora en mi hackintosh no tengo windows,
    entonces no puedo hacer lo que aquí se dice, verdad?

  3. Buenas noches. Me dijiste que tenías X299 con 7900X y RX 5700 XT. Supongo que estás actualizando de Big Sur a Monterey, no instalando Monterey desde cero. Y la EFI que falla al instalar Monterey arranca bien en Big Sur, es así?
    Necesitaría ver tu EFI, intenta subirla en ZIP a algún sitio desde el que la pueda descargar, o enviarla por Wetransfer o similar a eaperez arrroba me punto com.
    Marca y modelo de la placa base también puede ayudar. Y marca y modelo del SSD en el que instalas.
    Antes de nada, te recuerdo que Monterey, para instalar o actualizar bien, requiere SecureBootModel = Default (no Disabled).
    No tengo claro que corecrypto sea quien genera el kernel panic, puede ser que salga en el log pero el kernel panic puede originarse en otra cosa.

  4. Pol, no sé cuál es el problema pero al actualizar (OpenCore 0.8 y todos los kexts al día), al seleccionar Mac Installer (la partición que sale para la actualización) plum, kernel panic, y pone algo así el error:

    com.apple.kec.corecrypto (12.0)

    Hay alguna opción que tener en cuenta en OpenCore para pasar de BigSur a Monterey?

  5. La 5700 XT parece funcionar bien desde 12.3.1, por supuesto en 12.4 también.
    Tu placa y CPU no son ultramodernas pero todavía perfectamente válidas, ligeramente más complicadas de tener con macOS que los más corrientes chipsets Z390 – Z490 – Z590 pero buen material. Mi placa Z390 Aorus Elite y CPU 9900K calculo que son solamente 1 año más jóvenes que las tuyas, tal vez 2017 contra 2018, y funcionan tan bien que me da mucha pereza actualizar a algo más moderno.
    Supongo que con esa CPU tienes SMBIOS de iMacPro o MacPro, al no tener gráfica integrada.
    En fin, en mi opinión puedes actualizar sin mayores preocupaciones.

  6. Mi gráfica actual es la 5700XT, si esta va bien en la 12.4 ya no me da tanto pánico actualizarme gracias a tus respuestas.
    Tengo OpenCore 0.8 con todos los kexts al día.
    Mi CPU tiene algo mas de tiempo es la plataforma x299 con la CPU 7900X.

    Muchas gracias.

  7. Buenas tardes, vamos por partes.

    Si Big Sur te gusta cómo va, puedes quedarte con él perfectamente, es un sistema excelente que funciona muy bien y supuso un cambio muy grande respecto al anterior Catalina. Igual te digo que, si deseas pasar a Monterey, no veo inconveniente porque también funciona muy bien pero lo que siempre hay que mirar es que no tengas alguna aplicación importante en Big Sur que tenga algún inconveniente en Monterey. Yo tengo ambos en el mismo PC y el rendimiento es el mismo en ambos, yo no observo diferencias, las puntuaciones de los tests de CPU y de GPU son idénticos en ambos sistemas.

    No sé qué gráfica tienes, supongo que no es 6600 porque no funciona antes de Monterey, en cambio las 6800 y 6900 sí funcionan ya en Big Sur.
    Los problemas gráficos en la versión Monterey 12.3 fueron solventados en la versión siguiente 12.3.1 y afectaban a las familias AMD 5500, 5700, 6800 y 6900 y no afectaban a la serie 6600. Era una bajada grande de rendimiento. Enseguida apareció un parche que lo solucionaba añadiendo código en config.plist pero ya te digo que en 12.3.1 el problema desapareció.

    Lo que hemos visto muchos usuarios que tenemos macOS y Windows en el mismo PC es que las tarjetas de la serie 6000 (6600, 6800 y 6900) suelen funcionar unos 10-15º más calientes que en macOS que en Windows, siempre dentro de cifras que no son peligrosas en absoluto. Y lo que yo observé por casualidad al probar el parche para Monterey 12.3 es que ese parche bajaba la temperatura en reposo de la gráfica en macOS a los niveles de Windows al desactivar la característica Zero RPM. Posteriormente comprobé que usando la propiedad PowerPlayTable en macOS, obtenida desde Windows, se podía desactivar también Zero RPM y trabajar con la gráfica a 35º en reposo en lugar delos 50º habituales sin esa opción.

    El mismo mapa de puertos USB vale para Big Sur y para Monterey, al menos yo uso el mismo.

    Son varias respuestas, comenta si tienes alguna duda sobre ello.

  8. Hola pol, una consulta, estoy muy contento con mi hack en Big Sur 11.6.6 pero ya sólo de leer problemas de gráfica en Monterey me echa para atrás, en la 12.4 se han arreglado los problemas que había? y Monterey va mejor que Big Sur ? vale la pena ? tendría que mapear de nuevo los USB o me valdría lo que tengo? qué tendría que tener en cuenta al pasarme a Monterey (aparte del SSD que ya lo tengo solventado)? La verdad, tema de ventiladores me daría igual porque va todo por RL custom pero, si el rendimiento es peor, no me pasaría.

    Son ya más de una pregunta, gracias de antemano y de enseñarnos a resolver problemas con Mac.

  9. Hola, en este caso es recomendable desactivar en Preferencias del Sistema >> Pantallas la frecuencia de refresco variable (40-60 Hz), si pones 60 Hz como frecuencia fija el mensaje que refieres suele dejar de aparecer.

  10. Buenas tardes, he creado la clave y efectivamente la temperatura de la RX 6600 XT se mantiene unos 15º por debajo pero, cuando tengo la clave PP_PhmSoftPowerPlayTable activa, al volver del reposo de la pantalla o del ordenador el monitor muestra el mensaje Input Not Supported y no se quita hsta que reinicio. Sabes cómo solucionarlo?

Deja un comentario