苹果在macOS 13.4附带的Coffee Lake框架缓冲器驱动程序中“意外”简化了ReadRegister32和WriteRegister32功能的实现,因此编译器选择尽可能多地内联调用这些功能。因此,hwSetBacklight()不再调用WriteRegister32来更新背光寄存器;相反,它直接通过映射内存修改寄存器值,使自己成为内联助手。调用hwSetBacklight()LightUpEDP()和hwSetPanelPower()现在嵌入了hwSetBacklight()的定义。因此,Backlight Registers Fix(BLR)和Backlight Smoother(BLS)子模块注册的WriteRegister32钩子不再工作。此PR添加了一个新的补丁子模块(BLT),作为BLR的替代品,该模块恢复了编译器在上述三个函数中完成的优化,从而修复了3分钟的黑屏问题,并使BLS在运行macOS 13.4的Coffee Lake平台上再次正常工作。
受影响的系统版本:
- macOS Ventura 13.4(22F66)
- macOS Sonoma 14.0 DP1(23A5257q)
受影响的用户:
使用Coffee Lake图形驱动程序并运行macOS 13.4的笔记本电脑并遇到3分钟黑屏问题的用户应考虑启用此修复程序。
新的引导参数和设备属性:
- 您可以通过将引导参数-igfxblt或设备属性enable-backlight-registers-alternative-fix添加到IGPU来启用此新子模块。
- 如果您依赖macOS 13.4上的背光寄存器修复(BLR),您现在需要在引导参数中添加-igfxblt而不是-igfxblr。
- 如果您希望在macOS 13.4上使用背光平滑器(BLS),您需要将-igfxblt和-igfxbls添加到引导参数中。
- 如果您想在macOS 13.4上使用BLR和BLS,您需要将-igfxblt和-igfxbls添加到引导参数中这个公关是#113的后续。背光寄存器替代修复(BLT)已重新设计,现在支持Kaby Lake和Coffee Lake平台。最初的背光寄存器修复(BLR)现在在Kaby Lake平台上运行时与背光平滑器(BLS)兼容。以前,它不会将重新缩放的占空比值传递给更平滑的。
受影响的系统版本:
- macOS Ventura 13.4(22F66)
- macOS Ventura 13.4.1(22F82)
- macOS Sonoma 14.0 DP1(23A5257q)
- macOS Sonoma 14.0 DP2(23A5276g)
请注意,macOS Ventura 13.5 DP1/2/3不受影响。
引导参数和设备属性:
- 引导参数-igfxblt和设备属性backlight-registers-alternative-fix保持不变。
请花点时间查看它。谢谢您
扩展背光寄存器替代修复(BLT)子模块以支持Kaby Lake平台
确保引导加载WhateverGreen
添加新的子模块作为背光修复的替代方案,修复开机三分钟暗屏问题
一、如果你之前使用“亮度寄存器修复”(也就是 `-igfxblr` 这个启动参数)来解决笔记本开机持续3分钟左右暗屏的问题,在升级到 macOS 13.4 或之后的版本后你会发现该补丁失效了。这是因为苹果简化了显卡驱动中读写寄存器相关的函数,导致编译器优化了函数调用的汇编代码,进而导致“亮度寄存器修复”以及“亮度丝滑器”注册的钩子失效。从 v1.6.5 开始,*WEG* 提供了新的补丁来撤销编译器对亮度调节相关函数的优化以及为 Coffee Lake 平台的笔记本重写了调节亮度的函数,从而解决开机持续3分钟暗屏以及“亮度丝滑器”失效的问题。
二、请注意这个新补丁仅适用于使用 macOS 13.4 以及以上的 Coffee Lake 核显驱动的笔记本用户。你可以为核显添加 `enable-backlight-registers-alternative-fix` 属性或者直接使用 `-igfxblt` 启动参数来启用这个新的补丁。与此同时,你可以删除原“亮度寄存器修复”的 `enable-backlight-registers-fix` 设备属性或者 `-igfxbls` 启动参数。如果你想在 macOS 13.4 或以上系统中使用“亮度丝滑器”,你需要添加 `-igfxblt` 以及 `-igfxbls` 这两个启动参数。
三、Ice Lake 平台的笔记本用户不受此问题影响,然而 Kaby Lake 平台的笔记本用户可能在 macOS 13.4 或以上系统中遇到类似的3分钟暗屏问题。由于没有足够空间来覆盖读取亮度相关寄存器的汇编指令,此新补丁暂不支持 Kaby Lake 平台。
评论0