xzhih / one-key-hidpi

Enable macOS HiDPI and have a native setting.
https://zhih.me/one-key-hidpi/
8.67k stars 995 forks source link

仅能开启 144Hz 的 HiDPI 分辨率,无法调整至 60Hz #155

Open milkice233 opened 3 years ago

milkice233 commented 3 years ago

其实不一定是脚本的问题但是就想来问问可能的原因

目前用了脚本之后可以用 RDM 调整分辨率,但是但凡支持 HiDPI 的分辨率都只能强制使用 144Hz,没有办法调整至 60Hz 以及开启 HiDPI 后有显著的掉帧卡顿现象

考虑到核显是 HD 4400,可能带不起伪造的分辨率 + 144Hz,所以想降成 60Hz 但是一度没有找到办法,在 SysPref 里分辨率那一栏也是固定为 144Hz,在非 HiDPI 分辨率下有时候就可以调整到 60Hz,着实有点奇怪


另外插个题外话,似乎 macOS High Sierra 10.13.6 不支持把配置文件放在 /Library/Displays,之前脚本更新后执行脚本几乎没有任何变化,以为脚本失效了,后面手动编写了配置文件放在 /System/Library/Displays 文件夹中才生效,不太清楚是我操作问题,还是说其实生效了只是我没察觉到

xzhih commented 3 years ago

考虑到10.15以及之前可能存在兼容性问题,我把上一个版本的存档到 mojave-archive branch 了,可以使用那个版本开启

bash -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/mojave-archive/hidpi.sh)"
xzhih commented 3 years ago

144hz这个,我觉得MacOS并没有对高刷进行优化,也可能是 edid 的信息不完整

milkice233 commented 3 years ago

144hz这个,我觉得MacOS并没有对高刷进行优化,也可能是 edid 的信息不完整

我后面实现了,把 EDID Dump 出来并用 AW EDID Editor 打开,Detailed Data 里会有两个 Timing Block,其中第一个 Timing Block 是 144Hz 第二个是 60Hz 的,因为第一个是默认 Timing Block 所以 macOS 估计就只对 main Timing Block 开启 HiDPI

把 60Hz 和 144Hz 的 Timing Block 交换下位置使 60Hz 作为默认 Timing Block,保存后编码为 base64 并注入,重启之后就可以用 60Hz 的 HiDPI 了

milkice233 commented 3 years ago

考虑到10.15以及之前可能存在兼容性问题,我把上一个版本的存档到 mojave-archive branch 了,可以使用那个版本开启

bash -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/mojave-archive/hidpi.sh)"

README 里可以提一句吗?一般不太会有人注意分支的

BH1SCW commented 3 years ago

不过你这个需求还挺特别的,我是想要144hz orz