
Vault Æ
¯_(ツ)_/¯
Recent Posts
上个月随 NVIDIA 新驱动、App 一起推出的 DLSS 覆盖功能可以让游戏加载驱动提供的最新 DLSS dll,这样一来不仅可以方便用上 Transformer 模型,而且对带反作弊的游戏也适用。官方方法是用 NVIDIA App 为白名单内的游戏每个单独设置覆盖,白名单之外的游戏会被重置覆盖设置,因此不建议使用 NVIDIA App(当然,卸载最好)。
在这里我推荐使用 NVIDIA Profile Inspector Revamped(原始版本缺乏维护,所以用这个 fork 版)。使用之前请确保你的显卡驱动足够新 (572.16+),并且安装了 .NET 9.0 的 Desktop Runtime。
(图 1)打开软件后(选项名称因配置文件不同可能会有较大差异,这个 fork 更是一天改两次名,以实际为准)
1. 将 DLSS-* Override 相关的选项改为 On 即可
2. 这样并不能保证使用 Transformer 模型,还需要将 DLSS-* Preset 改为 Preset J 及之后的选项(J 之前是 CNN 模型,目前最新的是 K 但仅限超分)。帧生成从 dll 大小来看不包含 CNN 模型所以也没有 Preset 选项
3. 改完点击右上角的 Apply changes 保存后就能关闭软件了
默认是全局配置文件,对所有能覆盖的游戏都有效。从网上的讨论来看有少数游戏无法切换 Preset,这个暂时就无解了。
要查看是否覆盖成功可以导入软件压缩包里的注册表文件(相关说明),游戏里会显示 DLSS 相关的信息(图 2)。
Linux 用户需要使用 DLSSTweaks 设置 Preset,这个就没那么方便了,相关教程请自行搜索。
用于覆盖的 DLSS dll 应该是在线下载的?路径是
C:ProgramDataNVIDIANGXmodels
默认扩展名是 .bin,改成 .dll 就能看到文件信息。
在这里我推荐使用 NVIDIA Profile Inspector Revamped(原始版本缺乏维护,所以用这个 fork 版)。使用之前请确保你的显卡驱动足够新 (572.16+),并且安装了 .NET 9.0 的 Desktop Runtime。
(图 1)打开软件后(选项名称因配置文件不同可能会有较大差异,这个 fork 更是一天改两次名,以实际为准)
1. 将 DLSS-* Override 相关的选项改为 On 即可
2. 这样并不能保证使用 Transformer 模型,还需要将 DLSS-* Preset 改为 Preset J 及之后的选项(J 之前是 CNN 模型,目前最新的是 K 但仅限超分)。帧生成从 dll 大小来看不包含 CNN 模型所以也没有 Preset 选项
3. 改完点击右上角的 Apply changes 保存后就能关闭软件了
默认是全局配置文件,对所有能覆盖的游戏都有效。从网上的讨论来看有少数游戏无法切换 Preset,这个暂时就无解了。
要查看是否覆盖成功可以导入软件压缩包里的注册表文件(相关说明),游戏里会显示 DLSS 相关的信息(图 2)。
Linux 用户需要使用 DLSSTweaks 设置 Preset,这个就没那么方便了,相关教程请自行搜索。
用于覆盖的 DLSS dll 应该是在线下载的?路径是
C:ProgramDataNVIDIANGXmodels
默认扩展名是 .bin,改成 .dll 就能看到文件信息。
前段时间我更新到了 Win11 24H2,不得不说 bug 是真的多,直到今天我才解决了所有比较常见的问题:
1. 基于 Chromium 的软件里鼠标指针消失
从 Chromium Issue Tracker 来看 A 卡用户容易有这问题(24H2 则加剧了这个问题),我这确实 A 卡能复现但 N 卡没问题
解决方法:更改鼠标指针,或者禁用 MPO(注:可能会导致一些问题)
2. NVDisplay.Container.exe 持续占用 CPU,笔记本电脑在混合输出时还会出现 System 进程持续大量占用 CPU、系统严重卡顿的情况
这个跟 N 卡特定版本的驱动有关,比如 566.14 在 23H2 没问题,在 24H2 就会出问题
解决方法:用 Process Explorer 可以看到是驱动里的某个遥测文件有问题(图 1),删除 _nvtopps.dll 即可(自行用 Everything 搜一下,需要停止 NVDisplay Container 并修改权限才能删)
3. 资源管理器菜单始终向上弹出
4. Dism /StartComponentCleanup 出错
5. Windows 不会下载配置更新
这个就比较离谱了,3 和 4 应该是微软修了但默认不启用修复,然后又因为问题 5 导致无法启用修复
解决方法:打开组策略,转到 计算机配置-管理模板-Windows 组件-Windows 更新-管理从 Windows 更新提供的更新,将“启用可选更新”改为已启用,并确保下面的选项选择了“自动接收可选更新(包括 CPR)”(图 2,字体和中文翻译也是炸的,后者应该是 CFR),之后重启电脑即可。如果还是不行就检查系统更新后再重启一次。
很多 bug 长期存在(比如上面的问题 3 和 4)居然是因为微软的 A/B test,之前的 Alt+Tab 黑屏修复也是这样,实在是搞不懂微软的脑回路😅
1. 基于 Chromium 的软件里鼠标指针消失
从 Chromium Issue Tracker 来看 A 卡用户容易有这问题(24H2 则加剧了这个问题),我这确实 A 卡能复现但 N 卡没问题
解决方法:更改鼠标指针,或者禁用 MPO(注:可能会导致一些问题)
2. NVDisplay.Container.exe 持续占用 CPU,笔记本电脑在混合输出时还会出现 System 进程持续大量占用 CPU、系统严重卡顿的情况
这个跟 N 卡特定版本的驱动有关,比如 566.14 在 23H2 没问题,在 24H2 就会出问题
解决方法:用 Process Explorer 可以看到是驱动里的某个遥测文件有问题(图 1),删除 _nvtopps.dll 即可(自行用 Everything 搜一下,需要停止 NVDisplay Container 并修改权限才能删)
3. 资源管理器菜单始终向上弹出
4. Dism /StartComponentCleanup 出错
5. Windows 不会下载配置更新
这个就比较离谱了,3 和 4 应该是微软修了但默认不启用修复,然后又因为问题 5 导致无法启用修复
解决方法:打开组策略,转到 计算机配置-管理模板-Windows 组件-Windows 更新-管理从 Windows 更新提供的更新,将“启用可选更新”改为已启用,并确保下面的选项选择了“自动接收可选更新(包括 CPR)”(图 2,字体和中文翻译也是炸的,后者应该是 CFR),之后重启电脑即可。如果还是不行就检查系统更新后再重启一次。
很多 bug 长期存在(比如上面的问题 3 和 4)居然是因为微软的 A/B test,之前的 Alt+Tab 黑屏修复也是这样,实在是搞不懂微软的脑回路😅
最近折腾了一下视频播放器,不得不说想要良好的观看体验确实需要折腾不少东西
PotPlayer 就是一个典型例子,稍微正经点的教程都会告诉你解码不行装 LAV、画面渲染不行装 MadVR、字幕渲染不行装 xy-VSFilter。但折腾一圈后还是有打开文件慢、精确帧快进卡顿等问题,而且 MadVR 停更了(作者去搞 HDR measure 了)哪天不能用了都不奇怪。
MPC 系的 MPC-HC / BE 再加上 MPCVR 相对来说有着不错的开箱即用性,但代价就是缺功能,字幕尽量在底部/黑边上显示、Smooth Motion(通过帧混合避免刷新率不是帧率整数倍时的 judder)之类的那是一个都没有。
VLC 没什么折腾空间直接 pass,那最后就只剩 mpv 了。mpv 完全没有开箱即用性,需要编写配置并配个 GUI 才能用且好用。流行的 mpv.net 之类的既不好看默认配置也不太行,看了一圈下来也只有 MPV_lazy 不错。
MPV_lazy 虽然不错但也需要折腾,比如默认的字幕设置(字体、颜色、描边、模糊)我个人不太喜欢,播放列表之类的功能默认没开可以手动打开。mpv 默认遵循 BT.1886 曲线 (Gamma 2.4) 观感会有些不一样,可以手动改成 Gamma 2.2。此外想要播放历史也需要手动装 simplehistory 或 recent-menu。
比较尴尬的是虽然 mpv 是跨平台的,但流行的整合版大都是 Windows 限定,非 Win 平台只能自己慢慢配了。macOS 上的 IINA 就是基于 mpv,Linux 上貌似没有特别有名的 GUI 前端。
PotPlayer 就是一个典型例子,稍微正经点的教程都会告诉你解码不行装 LAV、画面渲染不行装 MadVR、字幕渲染不行装 xy-VSFilter。但折腾一圈后还是有打开文件慢、精确帧快进卡顿等问题,而且 MadVR 停更了(作者去搞 HDR measure 了)哪天不能用了都不奇怪。
MPC 系的 MPC-HC / BE 再加上 MPCVR 相对来说有着不错的开箱即用性,但代价就是缺功能,字幕尽量在底部/黑边上显示、Smooth Motion(通过帧混合避免刷新率不是帧率整数倍时的 judder)之类的那是一个都没有。
VLC 没什么折腾空间直接 pass,那最后就只剩 mpv 了。mpv 完全没有开箱即用性,需要编写配置并配个 GUI 才能用且好用。流行的 mpv.net 之类的既不好看默认配置也不太行,看了一圈下来也只有 MPV_lazy 不错。
MPV_lazy 虽然不错但也需要折腾,比如默认的字幕设置(字体、颜色、描边、模糊)我个人不太喜欢,播放列表之类的功能默认没开可以手动打开。mpv 默认遵循 BT.1886 曲线 (Gamma 2.4) 观感会有些不一样,可以手动改成 Gamma 2.2。此外想要播放历史也需要手动装 simplehistory 或 recent-menu。
比较尴尬的是虽然 mpv 是跨平台的,但流行的整合版大都是 Windows 限定,非 Win 平台只能自己慢慢配了。macOS 上的 IINA 就是基于 mpv,Linux 上貌似没有特别有名的 GUI 前端。
我看了一下小米和一加骁龙 8E 机型的内存分配器,看起来小米切回了 Android 默认的 Scudo(图 1)。
查看 Android 内存分配器的方法很简单,不需要 readelf 之类的,只需要以文本编辑器打开
那么换回 Scudo 有什么问题呢?好处肯定是更安全了,毕竟是 Hardened Allocator。但坏处是性能大幅下降,无论是做了测试的第三方开发者给的结果(图 2),还是 SPEC 2017 的结果(图 3)都有着显著差异。
在 SPEC 2017 里面 jemalloc 能为 520.omnetpp 带来巨大的提升,那换回 Scudo 是否也会大幅影响游戏性能呢?答案是有可能,这个要取决于引擎的适配情况。虚幻使用自己的内存分配器,因此不受影响。而 Unity 在 Android 上只有两个内存分配器 UnityDefaultAllocator 和 DynamicHeapAllocator,前者只是系统内存分配器的 Wrapper,后者则是 Unity 自己的实现。
好消息是 Android 11 默认 Scudo 把 Unity 干崩了(图 4),于是开发者基本都切到了 DynamicHeapAllocator。坏消息是 Unity 这稀烂的性能表现我怀疑 DynamicHeapAllocator 也有锅,特别是内存占用都要大些(图 5)。
扩展阅读:
基于 DOOM 3 的内存分配器测试
查看 Android 内存分配器的方法很简单,不需要 readelf 之类的,只需要以文本编辑器打开
/system/system/lib64/bootstrap/libc.so然后搜索 jemalloc,如果数量很多那就是用的 jemalloc,数量很少或者没有就是 Scudo。反之搜 Scudo 也是一样的。
那么换回 Scudo 有什么问题呢?好处肯定是更安全了,毕竟是 Hardened Allocator。但坏处是性能大幅下降,无论是做了测试的第三方开发者给的结果(图 2),还是 SPEC 2017 的结果(图 3)都有着显著差异。
在 SPEC 2017 里面 jemalloc 能为 520.omnetpp 带来巨大的提升,那换回 Scudo 是否也会大幅影响游戏性能呢?答案是有可能,这个要取决于引擎的适配情况。虚幻使用自己的内存分配器,因此不受影响。而 Unity 在 Android 上只有两个内存分配器 UnityDefaultAllocator 和 DynamicHeapAllocator,前者只是系统内存分配器的 Wrapper,后者则是 Unity 自己的实现。
好消息是 Android 11 默认 Scudo 把 Unity 干崩了(图 4),于是开发者基本都切到了 DynamicHeapAllocator。坏消息是 Unity 这稀烂的性能表现我怀疑 DynamicHeapAllocator 也有锅,特别是内存占用都要大些(图 5)。
扩展阅读:
基于 DOOM 3 的内存分配器测试
AMD 桌面端的空载功耗一直是个问题,即使是以游戏能效著称的 AMD X3D 光空载功耗都要二三十瓦(图 1)。不过这并不是什么设计缺陷,单纯只是一些电源管理选项没开,实际上 AMD 桌面端移植到移动端的 HX55 空载 package 功耗能到个位数(图 2)。
通常打开 Native ASPM、PCIe ASPM 就能大幅降低空载功耗,除此之外最典型的就是内存和内存控制器一直是满血在跑,那肯定降频让电压变低才能省电。在 Intel 平台开启 SAGV 就能让内存、内存控制器在空闲时降频,AMD 平台则是 SOC/Uncore OC mode(对应 FCLK、UCLK 降频)和 Power down mode(内存降频)。
在 AMD 平台上,即使开启了所有省电选项,最低空载 package 功耗依旧较高(图 3)。虽然放桌面端这个功耗已经很低了,但放移动端依旧打不过 Intel HX55。结合电压拓扑图(图 4)看,大概是以下情况:
1. 虽然单个核心功耗很低,但无奈核心数太多了,因此 CPU 部分功耗略高。
2. FCLK、UCLK 降的不够低,SOC 和 MISC 功耗也因此偏高,AMD 移动端 H45 两者都能降到 500~600 MHz 倒是能省不少电。
看起来对于多 CCD 型号可能还是需要一种动态 hotplug 机制才能足够省电,现有的 Core Parking 只会影响调度并不能降低功耗。不过多 CCD 对于集成 I/O die 就不友好了,这下又成扩展性与省电的取舍问题了。
通常打开 Native ASPM、PCIe ASPM 就能大幅降低空载功耗,除此之外最典型的就是内存和内存控制器一直是满血在跑,那肯定降频让电压变低才能省电。在 Intel 平台开启 SAGV 就能让内存、内存控制器在空闲时降频,AMD 平台则是 SOC/Uncore OC mode(对应 FCLK、UCLK 降频)和 Power down mode(内存降频)。
在 AMD 平台上,即使开启了所有省电选项,最低空载 package 功耗依旧较高(图 3)。虽然放桌面端这个功耗已经很低了,但放移动端依旧打不过 Intel HX55。结合电压拓扑图(图 4)看,大概是以下情况:
1. 虽然单个核心功耗很低,但无奈核心数太多了,因此 CPU 部分功耗略高。
2. FCLK、UCLK 降的不够低,SOC 和 MISC 功耗也因此偏高,AMD 移动端 H45 两者都能降到 500~600 MHz 倒是能省不少电。
看起来对于多 CCD 型号可能还是需要一种动态 hotplug 机制才能足够省电,现有的 Core Parking 只会影响调度并不能降低功耗。不过多 CCD 对于集成 I/O die 就不友好了,这下又成扩展性与省电的取舍问题了。
西数已发布新的固件修复了这个问题。看起来这个蓝屏问题只影响图中这几款型号,而且还是 2TB 限定。Windows 用户需要去西数官网下载 Western Digital Dashboard 以更新固件,Linux 用户可以参考这篇帖子。
消息来源
消息来源
之前本频道讲过一些关于 Windows 字体渲染的问题,其中提到了“Windows 的灰度抗锯齿显示都不正常”。不过在高分辨率、高缩放、unhinted 字体的情况下,Windows 的 ClearType 反倒显得过于清晰锐利以至于有时会觉得比较刺眼,这就让我不得不尝试使用更柔和/模糊的灰度抗锯齿。
在 Windows 上改用灰度抗锯齿很简单,命令如下(管理员权限执行后重启,把 1 改为 2 则是 Windows 默认值):
至于这样一来会遇到的问题则有:
1. (图 1)白底黑字时资源管理器的字体会变得很细,黑底白字时灰度抗锯齿会起到加粗的效果反倒正合适。这就导致使用更粗的字体能改进浅色模式观感,但会破坏深色模式观感。
2. (图 2)使用 noMeiryoUI 等软件没法全局替换字体,因此一些无法替换的地方看起来会有些“崩坏”,比如文件的右键属性界面。
3. (图 3)一些第三方软件的字体可能也会崩坏,比如 ESET 在灰度抗锯齿下就不正常,甚至还有明显的 hinting。
虽然 Windows 的灰度抗锯齿有很多问题,但还是比 MacType 那种高侵入性的好不少(当然效果也差一些)。随着笔记本电脑开始普及 OLED,灰度抗锯齿也变得越来越重要了,毕竟用户也不想看到各种彩边(图 4),只是微软似乎没有改进的意愿。
参考:
Better ClearType Tuner Wiki
在 Windows 上改用灰度抗锯齿很简单,命令如下(管理员权限执行后重启,把 1 改为 2 则是 Windows 默认值):
reg add "HKCUControl PanelDesktop" /v FontSmoothingType /t REG_DWORD /d 1 /f至于这样一来会遇到的问题则有:
1. (图 1)白底黑字时资源管理器的字体会变得很细,黑底白字时灰度抗锯齿会起到加粗的效果反倒正合适。这就导致使用更粗的字体能改进浅色模式观感,但会破坏深色模式观感。
2. (图 2)使用 noMeiryoUI 等软件没法全局替换字体,因此一些无法替换的地方看起来会有些“崩坏”,比如文件的右键属性界面。
3. (图 3)一些第三方软件的字体可能也会崩坏,比如 ESET 在灰度抗锯齿下就不正常,甚至还有明显的 hinting。
虽然 Windows 的灰度抗锯齿有很多问题,但还是比 MacType 那种高侵入性的好不少(当然效果也差一些)。随着笔记本电脑开始普及 OLED,灰度抗锯齿也变得越来越重要了,毕竟用户也不想看到各种彩边(图 4),只是微软似乎没有改进的意愿。
参考:
Better ClearType Tuner Wiki
PSA:部分使用西数/闪迪无缓 SSD 的用户可能需要禁用 HMB 以修复 Win11 24H2 上的蓝屏问题
Reddit 上的讨论
西数论坛上的讨论
无缓(没有 DRAM)SSD 会在主内存上划一部分内存(通常是 64MB)来存放 FTL 映射表以提高性能,这个功能就叫 HMB(手机上则是叫 HPB)。不过在 Win11 24H2 上这却导致了一部分用户出现了蓝屏问题,蓝屏代码为 CRITICAL_PROCESS_DIED。
影响范围:主要是 SN770 和 SN580,其他可以分配超过 64MB HMB 的 SSD 也可能会受到影响。
可能的原因(图 1):SN770 和 SN580 最大支持 200MB 的 HMB,在 24H2 之前系统只会分配 64MB HMB 因此一切正常,而 24H2 真分配了 200MB 又导致 SSD 不能正常工作了,可能还是固件兼容性有问题。
可能的解决方法:以管理员权限执行以下命令,之后重启电脑
除了上述问题外,在 24H2 上还会遇到其他一些问题,比如 N 卡用户在 Alt+Tab 从游戏切回桌面时可能会黑屏 3 秒(图 2),这个就只能等驱动更新了。总之如果你在意稳定性,建议等等再上 24H2。
Reddit 上的讨论
西数论坛上的讨论
无缓(没有 DRAM)SSD 会在主内存上划一部分内存(通常是 64MB)来存放 FTL 映射表以提高性能,这个功能就叫 HMB(手机上则是叫 HPB)。不过在 Win11 24H2 上这却导致了一部分用户出现了蓝屏问题,蓝屏代码为 CRITICAL_PROCESS_DIED。
影响范围:主要是 SN770 和 SN580,其他可以分配超过 64MB HMB 的 SSD 也可能会受到影响。
可能的原因(图 1):SN770 和 SN580 最大支持 200MB 的 HMB,在 24H2 之前系统只会分配 64MB HMB 因此一切正常,而 24H2 真分配了 200MB 又导致 SSD 不能正常工作了,可能还是固件兼容性有问题。
可能的解决方法:以管理员权限执行以下命令,之后重启电脑
reg add "HKLMSYSTEMCurrentControlSetControlStorPort" /v HMBAllocationPolicy /t REG_DWORD /d 0 /f也有人通过使用别家的 NVMe 驱动解决了问题,估计是因为那些驱动禁用了 HMB?
除了上述问题外,在 24H2 上还会遇到其他一些问题,比如 N 卡用户在 Alt+Tab 从游戏切回桌面时可能会黑屏 3 秒(图 2),这个就只能等驱动更新了。总之如果你在意稳定性,建议等等再上 24H2。