DLSS配置科普&如何让所有支持DLSS的游戏用上新的Transformer模型

Q:我的20系显卡能用DLSS4吗。
A:实际上对于DLSS一个很大的误解或者说已经称为共识的问题是,
把DLSS超分辨率称为DLSS2,
帧生成称为DLSS3,
光线重构称为DLSS3.5,
多帧生成称为DLSS4。

他们某种程度上确实是DLSS在那个版本所加入的功能,
如果在不同版本之间做的只是加入功能,旧有的功能没有改变,那么这个叫法没有大问题。

但是实际上同一个功能在版本之间也会进行质量优化,比如说在描述DLSS最新版本的超分辨率时的某些特性时,把他叫做DLSS4的超分辨率本身就在违背称呼的定义。

因此我认为直接使用DLSS超分辨率去描述这一功能,DLSSX去描述版本是更为合理的做法。所以是的,所有20系显卡都能受益于最新的DLSS超分辨率和光线重构的进步,所有40系显卡都能受益于最新DLSS帧生成的进步,只有多帧生成是50系独占。

Q:为什么要替换DLSS版本
A:经过一系列的迭代更新,DLSS能实现比以前更高的质量,更少的缺陷。
在DLSS4推出后,所有模型都改用了更加先进的Transformers架构,实现了质量上的一个飞越(当然也因为几乎是重新开始训练,引入了新的问题)。
即使你不愿意使用超分辨率技术,也可以得益于DLAA的进步带来的相对于TAA高的多的清晰度。
DLSS3.8与DLSS4版本对比:

实际上,在DLSS4出来之前,除了其他小版本的逐渐进步,DLSS3.7加入的预设E已经是一个非常令人欣喜的进步了。
DLSS3.7的预设E达成了比之前预设C以上水平的鬼影控制的同时保持和预设D以上水平的材质重建质量(更少涂抹)

但是很少有游戏厂家愿意持续关注DLSS版本的进步并投资人力去保证新版本没有引入新的问题,这就造成了大量游戏还停留在DLSS2版本或者DLSS3的早期版本中。

而实际上英伟达在分发DLSS时,始终把DLSS打包在nvngx_dlss(x).dll中分发,这使得从玩家端只需要用更新的DLL替换原来的DLL就能实现DLSS版本的更新

Q:你一直在说预设,那是什么:
在英伟达更新到DLSS3的时候,他们训练了不同倾向的模型,用来供不同挡位的超分辨率使用,也有注重重建质量(画面细节)还是注重更少错误(减少鬼影)的取舍选择。

3.7版本之前有如下的预设:
预设 A(适用于性能/平衡/质量模式):
一种较旧的变体,最适合消除缺少输入的元素(例如运动矢量)的重影。
预设 B(适用于超级性能模式):
类似于预设 A,但用于超高性能模式
预设 C(适用于性能/平衡/质量模式):
预设通常偏向于当前帧信息。通常非常适合快节奏的游戏内容
预设 D(适用于性能/平衡/质量模式):
Perf/平衡/质量模式的默认预设。通常偏向图像稳定性
预设 F(适用于超级性能/DLAA 模式):
超级性能和 DLAA 模式的默认预设。

然而到了3.7之后英伟达新增了预设E,几乎在任何情况下都比之前的预设更好,因此可以无脑选择预设E。

到了DLL版本3.10.1也就是实际上是DLSS4之后,原来的老模型依旧保留在DLL中,新的Transformer模型被设置在预设J中。

最新的驱动3.10.2中新增了预设K,总体被认为比预设J稍有改进。

总结来说旧的CNN模型使用预设E,新的Transformer模型使用预设K(以及未来更新的预设)

所以在解释完预设是什么之后就能发现,简单的替换DLL版本并不能吃到所有的改进,我们还需要找到覆盖预设的办法。

好在老黄更新了Nvidia APP,只要在里面把模型设置为使用最新的预设,他不光会自动用驱动覆盖DLL,还会覆盖使用的预设。
好时代来临力~直到有一个小小的问题,
老黄这个狗东西对覆盖DLSS这个功能弄了个白名单,如果在白名单之外的游戏无法使用这个功能(坏日子还在后头)
而且必须要按游戏,没法全局修改。

我们可以通过修改Nvidia APP的白名单去给每一款我们想要修改的游戏添加白名单,但是还是过于繁琐。

好在我们有别的招。
nvidiaProfileInspector:

它提供了一个工具用来全局修改DLLS覆盖相关的设置,不过修改有可能在更新驱动后丢失。
下载最新版本之后往下拉,按照这里修改:


加黑的部分是被修改过的
其中Enable DLL Override会让驱动去覆盖游戏的DLL版本,让所有DLSS游戏都使用最新的DLL版本,Forced Preset Letter可以修改为Always use latest,这样会始终使用最新的预设(目前是K),FG和RR后缀分别是帧生成和光线重构。
其他的DLSS前缀的选项可以自己研究,这里也不一定全局设置,把游戏加进来做单独游戏的设定也是可以的,比如说,某款游戏你想强制它使用DLAA。

Q:为什么帧生成和光线重构也会有预设?
A:帧生成的预设目前还只是一个占位符,很可能未来英伟达会推出帧生成质量或者生成延迟不同取向的预设。
光线重构的预设实际上表示的是光线重构开启时的超分辨率的预设,在开启光线重构的时候,实际上超分辨率也会被光线重构这边接管,所以如果只修改超分辨率的预设,就会发现怎么一打开光线重构清晰度就下降。实际上是因为用回了默认的预设,切回了老模型。

好时代来临力~直到又出现一个小小的问题,如果你安装了Nvidia APP,就会发现在开启了几次游戏之后,在英伟达游戏名单,但是不在DLSS白名单中的游戏被
比亚迪老黄强制还原成默认的预设,而且DLL版本覆盖不再生效。

这个问题有两种解决方法,一个是卸载Nvidia APP。
但是如果你不想失去帧数叠加层和自带的录屏的话
可以打开"%LOCALAPPDATA%\NVIDIA Corporation\NVIDIA app\NvBackend\ApplicationStorage.json"
把它内容清空,然后设置为只读(做之前还是备份一下,好习惯)
然后重启,再打开Nvdia APP,就能发现它识别不到任何游戏了。
打开游戏就发现新的预设又能覆盖了。

Q:我怎么知道预设有没有应用,版本有没有覆盖。
A:This tiny registry tweak shows what resolution DLSS is rendering at | PC Gamer
注册表在 HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\Global\NGXCore 新添加一个叫 ShowDlssIndicator 的 DWORD,然后设置为1024开启DLSS指示,设置为0关闭。
然后开启的时候屏幕左下角能看到现在使用的版本,预设和输入输出分辨率。
如果进入游戏左上角也有指示器说明开启了帧生成,可以先把帧生成关闭去看预设有没有应用。

Q:如果驱动的DLL覆盖没有生效/其他游戏分发了比驱动更新的DLL/我懒得每次手动改注册表
A:DLSS Swapper:

是一个很好的替换DLL的软件,它会汇总地显示游戏库中有DLSS/FSR/XESS的游戏并给你替换版本的选项。
同时设置中可以设置DLSS指示器的开与关。

Q:还有什么好东西
A:在英伟达驱动能覆盖预设之前,社区有一个工具用来强制覆盖游戏预设以及强制DLAA之类的。
DLSSTweeks:

现在来说唯一还有意义的是对于某些DLSS2游戏,因为API的改变,更新了DLL之后没法激活自动曝光功能(不要误解,它不会实际改变输出的曝光,只是把画面给DLSS前的处理)而降低超分辨率质量。
如果DLSS2游戏的指示器发现没有激活Auto Exposure,有可能用这个工具强制打开会更好,DLSS3之后的游戏不用管,如果是关的是因为开发者手动控制了曝光,这是更好的方法。
DLSSX游戏表示游戏默认附带的DLSS版本。

同时如果有的游戏比较顽固,驱动的覆盖不生效或者动态分辨率的覆盖有什么问题,亦或者可以试试DLSS Tweeks里面的功能。

加纳

27 个赞

感谢大佬科普

4 个赞

以前我都是替换游戏的dlss文件升级的,现在老黄搞得这么复杂了吗。

4 个赞

dlss3之后就有预设的机制了,很多人为了避免鬼影改成预设c

3 个赞

佬能发个步骤吗 有点迷糊

4 个赞

看到哪一部分开始看不懂的,我有空改

5 个赞

嗯嗯谢谢佬 我理了一下 步骤:1、改dlss可以用 DLSS Swapper改支持的游戏 2、全局覆盖dlss预设 用 Nvidia Profile Inspector改成佬图里的 3、全局覆盖帧生成和光线重构预设 %LOCALAPPDATA%\NVIDIA Corporation\NVIDIA App\NvBackend\ApplicationStorage.json
删除文件内容后,右键文件 → 属性 → 设为只读。4、 验证DLSS状态 修改注册表 是这样吗

6 个赞

1一步不是必须的,驱动也能覆盖,只有覆盖不了或者驱动带的dlss版本你嫌他旧了才用(现在最新驱动带的是最新版本

我没更新572.16驱动 也可以吗

黑猴那个测试工具这么干会出bug, 表现为黑屏, 但是 alt tab 切换别的窗口却又能看到, 不知道本体会怎么样()

自己尝试,坏不了,你看指示器就知道应用的版本多少了

听起来像是非50系强行开多帧生成的问题,可以再检查一下

太复杂了, 老黄何必搞成这样

66666可以啊

昨天没忍住入了荒野,现在到处找教程让自己玩的舒服点