我们通常说的某些型号的 AMD 显卡在黑苹果中免驱,指的是只要把这个显卡插上,搭配 WhateverGreen.kext 的情况下 macOS 就能识别出对应的型号,并提供基础性能驱动。其实这个时候,WEG 仅仅只是调用了针对某一核心架构的通用驱动,例如 RX470/RX570/RX580 核心都是 Polaris,RX5500/RX5600/RX5700XT 核心都是 Navi,WEG 分别调用了针对某一核心的通用驱动,实现了基本驱动和基本性能。但是,这样的驱动并不能发挥显卡最大的性能,举几个实际案例:在 Geekbench 的性能测试中,Radeon VII 的得分仅为 5-6 万分,而在 Windows 上可以轻松达到 8.2 万分以上;Radeon RX 5500XT 的 Metal 性能得分大概是 2.9万分左右,而在解决这个问题后能轻松跑到 4 万 分以上,并且在超频后差距更大。下图是 RX 5500XT 在解决该问题前后的 Geekbench 截图对比,可以看到差距非常夸张:
未优化前跑分2.9万
未优化后跑分 4.1 万
问题原因
根据外网开发者调研发现,苹果公司从未真正解决 Radeon Vega 56/64 的风扇控制问题,而是采取了非常消极的应对办法。近代的 AMD GPU 采用一个称为 SMU 的固件(SMU Firmware)来管理显卡的部分功能。此 SMU 固件需要由图形驱动程序上载。Radeon Vega 56/64 的风扇控制错误(具体表现是有时风扇狂转或不转)是由苹果公司错误的 SMU 固件引起的,但是他们并没有做任何修复,而是直接禁用了在 PC 显卡上加载 SMU 固件的功能。这点可以通过在 Radeon Vega 56/64 显卡上强制加载 SMU 固件来验证,加载后风扇控制错误将再次出现。
不加载 SMU 固件会导致许多问题,其中之一是显存带宽减少了一半。由于 Geekbench 对显存带宽非常敏感,因此导致得分大幅降低。因此从本质上讲,苹果公司在一定程度上欺骗了消费者,使用了非常糟糕的方法去“修复”问题,直接导致影响了大量的显卡,因为这不仅仅会影响黑苹果用户,还会影响 Mac Pro 用户和使用外接显卡 eGPU 的 MacBook 用户,因为这些人都在使用 PC 显卡。
白苹果图形卡信息
而白苹果内置的 AMD 显卡则没有这个问题,均正常加载 SMU 固件信息:
解决办法
针对这个情况,可以使用由 @CMMChris 开发的第三方驱动 RadeonBoost.kext,该驱动会自动检测显卡型号,找到对应的 SMU 固件信息并注入。RadeonBoost.kext 在设计时主要考虑了黑苹果用户的需求,但同时也可以在白苹果上运行,包括 MacPro 以及配备了 eGPU 的 Mac 机型。白苹果可以通过 OpenCore 注入(白苹果不建议安装 OpenCore),或将其放入 System/Library/Extensions(S/L/E目录),修复文件权限并重建 kext 缓存,重启即可(因为 kext 没有签名,关闭 SIP 是必须的)。
目前支持的显卡:
- RX480 / RX580 / RX590(Polaris核心,需要搭配 WhateverGreen.kext )
- Radeon VII(Vega20核心,使用之后无需再使用 WhateverGreen.kext)
-
Radeon Vega 56/64/Frontier Edition(Vega10核心)- 由于启用后 Vega 56/64 风扇控制问题将会复现,作者于 1.2 版移除了支持(本站有针对这几张卡的单独优化教程);
-
Radeon RX 5500 / RX 5500XT / RX 5600 / RX 5700 / RX 5700XT (Navi10/14核心)- 由于 macOS 10.15.5 的 SMU 固件损坏,因此该无法为 Navi 10/14 加载 SMU 固件,作者于 1.6 版移除了支持(本站有针对这几张卡的单独优化教程);
- 如果使用后黑屏,请添加 adgpmod=pikera 这个启动参数(需要搭配 WhateverGreen.kext)
都操作完成后,重启即可看到效果,如果进不去系统,使用备份恢复,重新检查修改。
[wm_blue]如有错误,欢迎指正。[/wm_blue]