dlssg_for_sm86
中文 · English
在 RTX 30 系列(SM86)和 RTX 20 系列(SM75)上启用 NVIDIA DLSS 帧生成(DLSS-G),并提供 RTX 30 / 20 上的 DLSS 超分 INT8 加速。Windows x64 / D3D12,运行文件为 version.dll、dlssg_sm86.ini 和 dlssg_sm86\ 目录。
从 0.3.x 升级先看这里:0.4.0 是大版本升级,文件结构和安装方式都变了,不能直接覆盖。
- 先删干净旧版:退出游戏,删掉游戏目录里本项目的全部代理 DLL(
version.dll,以及以前放过的winmm.dll/dbghelp.dll/dinput8.dll/dxgi.dll/d3d12.dll)和dlssg_sm86.ini。- 再复制新版的三样:
version.dll、dlssg_sm86.ini、整个dlssg_sm86\目录。运行库、后端、内核包都在dlssg_sm86\里,只复制 DLL 什么都不会发生。- 代理任何时候只放一个;游戏不加载
version.dll时,从alternatives\换一个(换,不是加)。- 用新的
dlssg_sm86.ini:键的位置变了(Optimized、Preset移到[DLSSG]),旧 INI 还能读但会记告警,改过的设置请在新 INI 里重新改。完整包(含超分文件)在 Release 附件
dlssg-release-0.4.0-x64.zip;第一次安装照包里的MANUAL.html一步一步做。0.3.5 的文件在archive\0.3.5\。
本次更新说明
0.4.0
- 超分 INT8(RTX 30 / 20):
[SuperResolution] Mode=On后,游戏用预设 L / M 的超分档位(多数游戏是「性能」「超级性能」)换成本项目的 INT8 内核,预设不变;一次超分的 GPU 时间对同预设 FP16 约 L −5..−17 %、M −7..−24 %(RTX 3070 / 3080 Ti)。出厂关闭。超分的两个文件只在 Release 附件的完整包里(见「安装与升级」)。 - DLSS-G 预设 C(FG Lite,可选):
[DLSSG] Preset=C,每生成帧 GPU 时间 2X 约 −30..−37 %、4X 约 −46 %,画质略低(主要在 HUD 与遮挡边缘)。 - XeSS-FG 引擎(可选):
[FrameGeneration] Engine=XeSS,用 Intel XeSS-FG 的模型插帧,只 2X;在 RTX 30 上比 DLSS-G 慢,见「已知问题」。出厂仍是 DLSS-G。 - 随包运行库换成 310.9.16(默认预设下与 310.9.1 输出逐位相同),只有这一个版本,最高 6X;310.1 版不再提供。出厂
Optimized由1改为2(再加有损图像内核,并排看与1没有可见差别)。 - 文件结构:运行库、后端与内核包从代理 DLL 里移到
dlssg_sm86\目录(代理不到 1 MB);INI 分出[DLSSG]/[XeSSFG]两节;[Logging] FrameTiming=1可逐帧记录 GPU 时间用于反馈性能。
0.3.5
- 修复自 0.3.0 起存在的一个缺陷:游戏重建帧生成特性(切菜单、改分辨率或画质设置、开关帧生成,部分游戏在运行中会频繁重建)之后,有概率用错已优化的推理内核,表现为生成帧花屏,也可能导致玩一段时间后随机崩溃 / 显卡驱动重置(issue #561 可能与此有关)。
Optimized=0不受影响。RTX 3070 上 15 次重建的离线测试里,旧版 4 次运行有 3 次出现错误的生成帧,新版每次逐位一致。0.3.x 用户请直接替换version.dll。
0.3.4
- 修复 0.3.3 在 RTX 30 上的崩溃(启动或开启 DLSS 后显卡驱动重置,《极限竞速:地平线 6》表现为 FHC01;issue #535 / #538 / #540 / #542)。原因:NVIDIA App 的 DLSS 覆盖或 NGX 在线更新生效时,DLSS 超分模型也收到了本项目给 Streamline 的显卡架构改写,在 RTX 30 上走了不属于这张卡的路径,导致 GPU 挂起。现在 NVIDIA 自己的组件一律得到真实架构,改写只对 Streamline 和游戏生效。0.3.3 用户请直接替换
version.dll。
0.3.3
- RTX 20 / 30:向游戏改写显卡架构的动作提前到游戏启动时,并改报 RTX 50。使用 Streamline 2.8 的游戏(如《最终幻想 7 重生》)此前在启动阶段就判定「本显卡不支持 DLSS-G」并卸掉帧生成插件(issue #509 / #528);本版在那之前就装好改写,游戏内的 3X / 4X / 6X 选项也按 RTX 50 放开。
Optimized=1不再跳过同一组内重复的真实帧拷贝(SkipRepeatedRealCopy,各档位都默认关,需要时手动写1)。该项从未在实际游戏中验证,0.3.2 上有画面闪烁报告(issue #532)。档位1画面仍与官方逐位一致。
0.3.2
- 重写了部分推理内核(310.9 版):生成画面与官方 DLSS-G 完全一致(RTX 3080 Ti 与 RTX 5070 实测逐位相同;RTX 2080 Ti 的输出与 3080 Ti 逐位相同),不再有损,并有些许加速(3080 Ti 上 0~8%)。
- 优化内核等级调整:
[FrameGeneration] Optimized现在是0–3四级。0原厂内核,不加速;1全部加速,画面与官方逐位一致(出厂默认);2再开有损图像内核,更快,对官方画面 PSNR 约 50 dB 以上(仅 310.9 版);3全部有损加速,最快。说明见docs/INSTALL.md。
0.3.1
- 修复 RTX 20 系(Turing)开不了帧生成的问题。20 系现在和 30 系一样直接用出厂
dlssg_sm86.ini,同样支持 6X(310.9 版,MaxGeneratedFrames=5,需游戏自带插件支持)。 - 出厂
MaxGeneratedFrames改为3(4X),要 6X 改成5。
0.3.0
- 由 native 模式回退到代理模式。native 化(自建 NGX host)在部分游戏上存在难以修复的兼容问题;本版改用代理 DLL 内嵌未修改的原厂运行库,游戏对 NGX 的调用不变,兼容性更好。
- 310.9 运行库新增 6X(
MaxGeneratedFrames上限由 3 提到 5)。在自身支持 Dynamic MFG 的游戏上,帧生成选「动态 / 自动」时会跑到 6X。 - 内核最优集(离线基准快约 19~32%)、两档出厂 INI、录制回放与诊断日志等见下文与
docs/。
声明与后续计划
- 插帧(DLSS-G)的内核级工作已基本达到现阶段的最优水平,暂不继续做内核优化;后续版本只做兼容性与 bug 修复。
- 超分 L / M 的 INT8 已在本版提供(RTX 30 / 20)。
- XeSS-FG 引擎本版只做到能用(2X、不做性能优化)。
- Vulkan 支持在项目当前状态下难以继续:封装层本身的游戏兼容性还不够好、覆盖测试也不多,再加上 Vulkan 只会带来更多兼容性问题。有需要的用户可以选用社区的 patch 版本。
运行要求
- 系统与游戏:Windows 10/11 x64、D3D12。
- GPU:RTX 30 系列(SM86)或 RTX 20 系列(Turing / SM75)。RTX 3070 上做开发验证与全部游戏内测试,RTX 3080 Ti 上跑过 0.4.0 测试包的完整测试;RTX 20 在 2080 Ti 上实测过 0.3.x 的帧生成与本版超分 INT8 的一次冒烟。
- 驱动:带 NGX / NVAPI / CUDA 接口的 NVIDIA 驱动,591.86、610.74、610.88、617.14 实测可用。cubin 需约 R580+ 驱动,更旧的驱动自动回退 PTX(仅首帧多一次 JIT)。
- 不需要 CUDA Toolkit,不需要 Python。
本版只有一个发布版本(随包运行库 310.9.16,最高 6X)。0.3.5 的两个版本(310.9 / 310.1)在 archive\0.3.5\。
不同配置的插帧额外显存参考
帧生成自身的本地显存增量(预热后减去创建特性前,向上取整到 10 MiB,310.9 版、最优内核)。该增量只随输出分辨率变化,与倍率无关:2X 与 6X 占用相同,倍率不额外占用显存。
| 画幅 | 输出分辨率 | 帧生成额外显存 |
|---|---|---|
| 16:9 | 720p | 约 230 MiB |
| 16:9 | 1080p | 约 350 MiB |
| 16:9 | 1440p | 约 540 MiB |
| 16:9 | 4K / 3840×2160 | 约 810 MiB |
| 21:9 | 2560×1080 | 约 440 MiB |
| 21:9 | 3440×1440 | 约 700 MiB |
| 21:9 | 5120×2160 | 约 1050 MiB |
| 32:9 | 3840×1080 | 约 610 MiB |
| 32:9 | 5120×1440 | 约 990 MiB |
| 4:3 | 1920×1440 | 约 430 MiB |
同高度不同宽度的占用接近(按输出像素数计)。该值为帧生成自身增量,不含游戏本体与合成输入纹理。Engine=XeSS 时整机专用显存比 DLSS-G 多约 410–530 MiB(RTX 3070,4K 输出,五款游戏实测)。
安装与升级
第一次装 mod 的,照完整包根目录的安装手册 MANUAL.html(英文 MANUAL.en.html)一步一步做。简要步骤:
- 完全退出游戏。
- 进入游戏的渲染 EXE 目录(如《黑神话:悟空》为
...\b1\Binaries\Win64\)。 - 复制
version.dll、dlssg_sm86.ini和整个dlssg_sm86\目录;该目录已有同名 DLL 时先备份原文件。最省事的是直接下载 Release 附件dlssg-release-0.4.0-x64.zip解压:它与本仓库根目录相同,另外带超分的dlssg_sm86\sr\两个文件(sr_kernels.dll超过 GitHub 单个文件的上限,不在仓库里;不开超分可以不要)。 - 启动游戏,在图形设置中开启 DLSS 帧生成,选 2X / 3X / 4X(要 6X 见「6X 说明」)。
- 游戏不加载
version.dll([Logging] Level=2下开了帧生成也没有dlssg_sm86\logs\loader_*.jsonl):删掉它,从alternatives\按winmm.dll→dbghelp.dll→dinput8.dll→dxgi.dll→d3d12.dll的顺序一次换一个,任何时候只放一个。 - 升级:退出游戏,先删掉旧的代理 DLL(0.3.x 可能放过几个,都要删)、
dlssg_sm86.ini和dlssg_sm86\,再复制新版这三样;改过的设置在新 INI 里重新改。 - 卸载:删掉代理 DLL、
dlssg_sm86.ini和dlssg_sm86\目录,备份过的原 DLL 放回去。
出厂 dlssg_sm86.ini 里玩家可能要改的开关:
[DLSSG] Optimized:优化内核等级0–3。出厂2= 全部加速再加有损图像内核,并排看与1没有可见差别;1全部加速、画面与官方逐位一致;0原厂内核不加速;3全部有损加速。[DLSSG] Preset:出厂Auto;C= FG Lite(更快,画质略低),同样用本项目的加速内核。[FrameGeneration] MaxGeneratedFrames:出厂3对应 4X;改成5对应 6X,实际生成帧数由游戏请求、并钳到运行库上限。[FrameGeneration] Engine:出厂DLSS;XeSS= Intel XeSS-FG 模型,只 2X。[XeSSFG] FlowResolution(出厂Middle,越细越慢)与UseHudless(出厂1)只对 XeSS 生效。[SuperResolution] Mode:出厂Off;RTX 30 / 20 改成On后,游戏里用 L / M 预设的超分档位换成本项目的 INT8 内核;同一次运行里只有先用上的那一档加速。需要完整包里的dlssg_sm86\sr\。
其余诊断/兼容项取安全默认、不在出厂文件中,完整清单见 docs/INSTALL.md。某个键写错时只有那个键回退到默认值并记一条 configuration_warning,不会关掉整个 mod。
杀软误报与签名
本项目自己的 DLL 都做了代码签名:根目录的 version.dll、alternatives\ 下五个备用代理,以及 dlssg_sm86\ 下的后端和三个资源包(帧生成内核、超分内核、XeSS 模型),共 10 个;dlssg_sm86\ 里 NVIDIA 的运行库与超分文件保留 NVIDIA 自己的签名。自签名证书仅验证签名者身份与文件完整性,不提供 Windows 默认信任;首次运行 Windows SmartScreen 仍可能提示「未知发布者」——这是基于信誉的提示,与杀软报毒是两回事。本次使用自签证书 CN=DLSSG for SM86 (self-signed),SHA-1 指纹 85BA66762F851E49148D706915D09026281418E6;可在文件属性→数字签名或用 signtool verify /pa 核对签名者与指纹。
性能
下面的数都来自本项目自己的计时(每次 Evaluate 前后的 D3D12 时间戳,或 [Logging] FrameTiming 日志)。离线 GPU 毫秒数衡量的是帧生成 / 超分自身的开销,不等于游戏内帧率增幅。
帧生成:真实游戏抓取(RTX 3070,离线回放)
RTX 3070,驱动 617.14,0.4.0 测试包完整运行(run_all)。游戏里录下的输入(赛博朋克 2077、黑神话:悟空)经完整路线回放(代理 → 后端 → NVIDIA 运行库 310.9.16 或 XeSS 引擎);每次运行去掉前 4 个真实帧,4 轮所有帧取中位数。单位为每个生成帧的 GPU 毫秒数,括号为对 DLSS 默认的变化(负数 = 更快)。DLSS 默认 = 出厂 INI(Optimized=2、Preset=Auto);原厂内核 = Optimized=0。
2X
| 抓取 | DLSS 默认 | 预设 C | XeSS Middle | XeSS Coarse | XeSS Fine | 原厂内核 |
|---|---|---|---|---|---|---|
| 赛博朋克 2077 1440p | 2.554 | 1.694(−33.7 %) | 2.974(+16.4 %) | 2.344(−8.2 %) | 3.828(+49.9 %) | 3.639(+42.4 %) |
| 黑神话:悟空 1440p | 2.581 | 1.745(−32.4 %) | 3.266(+26.5 %) | 2.634(+2.0 %) | 4.164(+61.3 %) | 3.657(+41.7 %) |
| 赛博朋克 2077 4K | 3.557 | 2.499(−29.7 %) | 6.379(+79.3 %) | 5.059(+42.2 %) | 8.296(+133.2 %) | 4.407(+23.9 %) |
| 黑神话:悟空 4K | 3.756 | 2.679(−28.7 %) | 6.974(+85.7 %) | 5.682(+51.3 %) | 9.025(+140.3 %) | 4.560(+21.4 %) |
4X(每个生成帧 = 一个真实帧的 3 次 Evaluate 之和 ÷ 3):赛博朋克 2077 4K 默认 2.532 ms,预设 C 1.392 ms(−45.0 %);黑神话:悟空 4K 默认 2.733 ms,预设 C 1.517 ms(−44.5 %)。
帧生成:真实游戏抓取(RTX 3080 Ti,离线回放)
RTX 3080 Ti,驱动 610.88,同一测试包完整运行(测试者机器);方法与上表相同。这两段计时期间 GPU 稳定在 1665 MHz(低于合成场景计时时的 1950 MHz),绝对值偏保守、对比有效。
2X
| 抓取 | DLSS 默认 | 预设 C | XeSS Middle | XeSS Coarse | XeSS Fine | 原厂内核 |
|---|---|---|---|---|---|---|
| 赛博朋克 2077 1440p | 1.651 | 1.032(−37.5 %) | 2.235(+35.4 %) | 1.786(+8.2 %) | 2.791(+69.1 %) | 2.381(+44.2 %) |
| 黑神话:悟空 1440p | 1.663 | 1.062(−36.1 %) | 2.359(+41.9 %) | 1.911(+14.9 %) | 2.936(+76.6 %) | 2.391(+43.8 %) |
| 赛博朋克 2077 4K | 2.171 | 1.473(−32.2 %) | 4.640(+113.7 %) | 3.668(+68.9 %) | 5.908(+172.1 %) | 2.860(+31.7 %) |
| 黑神话:悟空 4K | 2.275 | 1.577(−30.7 %) | 4.763(+109.3 %) | 3.822(+68.0 %) | 6.060(+166.3 %) | 2.935(+29.0 %) |
4X:赛博朋克 2077 4K 默认 1.567 ms,预设 C 0.822 ms(−47.5 %);黑神话:悟空 4K 默认 1.666 ms,预设 C 0.897 ms(−46.2 %)。
超分 INT8 对同预设 FP16(RTX 3070,离线)
同一测试包。一次超分 Evaluate 的 GPU 时间,单位 ms:每次运行 64 个测量帧取中位数,3 轮再取中位。同一运行库(310.7.129)、同一预设,只比 INT8 与 FP16。两族内核分别对应巫师 3 / Resonance / 地平线 6 / 蜘蛛侠(mvlo)与黑神话:悟空 / 霍格沃茨(mvhi)。
| 族 | 输出 | 档 | L FP16 | L INT8 | L 变化 | M FP16 | M INT8 | M 变化 |
|---|---|---|---|---|---|---|---|---|
| mvlo | 3840×2160 | 性能 | 7.443 | 6.459 | −13.2 % | 6.065 | 4.905 | −19.1 % |
| mvlo | 2560×1440 | 性能 | 3.415 | 2.993 | −12.4 % | 2.787 | 2.294 | −17.7 % |
| mvlo | 1920×1080 | 性能 | 1.965 | 1.736 | −11.7 % | 1.615 | 1.353 | −16.2 % |
| mvlo | 1920×1080 | 超级性能 | 1.258 | 1.179 | −6.3 % | 1.066 | 0.967 | −9.3 % |
| mvhi | 3840×2160 | 性能 | 7.305 | 6.127 | −16.1 % | 5.914 | 4.623 | −21.8 % |
| mvhi | 2560×1440 | 性能 | 3.346 | 2.845 | −15.0 % | 2.719 | 2.171 | −20.2 % |
| mvhi | 1920×1080 | 性能 | 1.934 | 1.656 | −14.4 % | 1.581 | 1.278 | −19.2 % |
| mvhi | 1920×1080 | 超级性能 | 1.235 | 1.106 | −10.4 % | 1.057 | 0.914 | −13.5 % |
超分 INT8 对同预设 FP16(RTX 3080 Ti,离线)
同一测试包、同一方法,GPU 1665 MHz。
| 族 | 输出 | 档 | L FP16 | L INT8 | L 变化 | M FP16 | M INT8 | M 变化 |
|---|---|---|---|---|---|---|---|---|
| mvlo | 3840×2160 | 性能 | 5.338 | 4.578 | −14.2 % | 4.341 | 3.455 | −20.4 % |
| mvlo | 2560×1440 | 性能 | 2.484 | 2.151 | −13.4 % | 2.028 | 1.644 | −18.9 % |
| mvlo | 1920×1080 | 性能 | 1.465 | 1.333 | −9.0 % | 1.208 | 1.047 | −13.4 % |
| mvlo | 1920×1080 | 超级性能 | 1.000 | 0.948 | −5.2 % | 0.849 | 0.791 | −6.9 % |
| mvhi | 3840×2160 | 性能 | 5.262 | 4.355 | −17.2 % | 4.252 | 3.239 | −23.8 % |
| mvhi | 2560×1440 | 性能 | 2.437 | 2.045 | −16.1 % | 1.991 | 1.545 | −22.4 % |
| mvhi | 1920×1080 | 性能 | 1.441 | 1.272 | −11.8 % | 1.186 | 0.994 | −16.1 % |
| mvhi | 1920×1080 | 超级性能 | 0.979 | 0.892 | −8.9 % | 0.848 | 0.746 | −12.0 % |
游戏内(RTX 3070,4K 输出,2X)
RTX 3070,驱动 617.14,[Logging] FrameTiming=1 的日志,游戏进世界后静置窗口 60 s 的中位数,档位 2,XeSS 为 Middle。每生成帧 = 帧生成 GPU 时间;真实帧率 = 游戏渲染的帧(显示帧率为其 2 倍)。
| 游戏 | DLSS 默认 (ms) | XeSS (ms) | XeSS 真实帧率 | 预设 C (ms) | 预设 C 真实帧率 |
|---|---|---|---|---|---|
| 赛博朋克 2077 | 3.755 | 6.733(+79 %) | −8.6..−9.7 % | 2.748(−27 %) | +3.6 % |
| 黑神话:悟空 | 4.035 | 7.308(+81 %) | −11.0 % | 3.085(−24 %) | +4.3 % |
| 巫师 3 | 3.973 | 7.166(+80 %) | −15.0 % | 2.974(−25 %) | −0.8 % |
| A Plague Tale: Resonance | 3.943 | 6.968(+77 %) | −28.1 % | 2.947(−25 %) | +9.5 % |
| 极限竞速 地平线 6 | 3.856 | 6.847(+78 %) | −8.0 % | 2.803(−27 %) | +7.4 % |
赛博朋克 2077:路径追踪 + 光线重建,DLSS 超级性能;黑神话:悟空:DLSS 50 %。真实帧率的变化取决于游戏的瓶颈,巫师 3 上预设 C 每生成帧快 1 ms 但帧率不变。
超分 INT8 游戏内(RTX 3070,巫师 3)
RTX 3070,驱动 617.14,帧生成关,进世界后静置窗口的帧率;对照是同一预设的 FP16(Mode=M-FP16 / L-FP16),INT8 与 FP16 交替各跑 2–4 次,表中为均值,提升按中位数。预设 M 的几行是 0.4.0 的出货内核集(10-10 测),L 的几行 10-09 测(这一族的 L 集合之后没有变)。
| 输出 | 档(渲染) | 预设 | FP16 fps | INT8 fps | 提升 | 每帧 |
|---|---|---|---|---|---|---|
| 3840×2160 | 性能(1920×1080) | M | 47.15 | 50.85 | +7.85 % | 21.21 → 19.67 ms(−1.54) |
| 2560×1440 | 性能(1280×720) | M | 85.48 | 91.34 | +6.86 % | 11.70 → 10.95 ms(−0.75) |
| 1920×1080 | 性能(960×540) | M | 122.14 | 128.35 | +5.08 % | 8.19 → 7.79 ms(−0.40) |
| 3840×2160 | 超级性能(1280×720) | L | 63.56 | 66.13 | +4.0 % | 15.73 → 15.12 ms(−0.61) |
| 2560×1440 | 超级性能(853×480) | L | 109.42 | 111.80 | +2.2 % | 9.14 → 8.94 ms(−0.19) |
| 1920×1080 | 超级性能(640×360) | L | 145.83 | 147.57 | +1.2 % | 6.86 → 6.78 ms(−0.08) |
除最后一行外,提升都超过同配置重复运行差的两倍;1080p 超级性能 L 在一次运行的波动之内,但 4 次 INT8 全部高于 4 次 FP16。画质:预设 M 静止画面的闪烁略多于 FP16(游戏内静止像素的帧间稳定度 61.8 对 62.5 dB),对真值的 PSNR 不低于 FP16;预设 L 与 FP16 相差 ≤ 0.6 dB。
帧生成整组 GPU 时间(RTX 3080 Ti,合成场景)
RTX 3080 Ti,驱动 610.88,0.4.0 测试包(测试者机器)。单位为每个真实帧对应整组帧生成的 GPU 毫秒数(一组 Evaluate 一次提交的跨度):每次运行 256 组取中位数,4 轮再取中位;降低 = (tier0 − 当前) / tier0。tier0 = 原厂内核(Optimized=0),tier1 = 逐位一致的加速(1),tier2 = 出厂默认(2)。同一包的一致性检查与 RTX 3070 参考逐位相同:帧生成 18/18、真实抓取 28/28、超分 32/32、超分 Mode=On 4/4。
| 分辨率 | 倍率 | tier0 (ms) | tier1 (ms) | 降低 | tier2 (ms) | 降低 |
|---|---|---|---|---|---|---|
| 1080p | 2X | 1.364 | 0.926 | 32.1 % | 0.917 | 32.8 % |
| 1080p | 3X | 1.942 | 1.423 | 26.7 % | 1.400 | 27.9 % |
| 1080p | 4X | 2.520 | 1.914 | 24.0 % | 1.888 | 25.1 % |
| 1080p | 5X | 3.089 | 2.411 | 21.9 % | 2.375 | 23.1 % |
| 1080p | 6X | 3.677 | 2.911 | 20.8 % | 2.867 | 22.0 % |
| 1440p | 2X | 2.094 | 1.459 | 30.3 % | 1.443 | 31.1 % |
| 1440p | 3X | 3.030 | 2.238 | 26.1 % | 2.205 | 27.2 % |
| 1440p | 4X | 3.963 | 3.008 | 24.1 % | 2.960 | 25.3 % |
| 1440p | 5X | 4.900 | 3.786 | 22.7 % | 3.719 | 24.1 % |
| 1440p | 6X | 5.841 | 4.558 | 22.0 % | 4.472 | 23.4 % |
| 4K | 2X | 2.472 | 1.901 | 23.1 % | 1.864 | 24.6 % |
| 4K | 3X | 3.792 | 3.002 | 20.8 % | 2.924 | 22.9 % |
| 4K | 4X | 5.112 | 4.106 | 19.7 % | 3.987 | 22.0 % |
| 4K | 5X | 6.437 | 5.212 | 19.0 % | 5.054 | 21.5 % |
| 4K | 6X | 7.760 | 6.319 | 18.6 % | 6.123 | 21.1 % |
越低分辨率、越低倍率收益越大(更接近启动/延迟受限)。
插帧后帧率怎么估算
先在相同场景、输出分辨率、DLSS 超分档位与画质设置下关闭帧生成,得到帧率 F_off。用 1000 / F_off 换算基础帧时间,再从上表按分辨率、倍率与内核配置选整组插帧耗时 T_FG(ms)。
基础帧时间 T_base (ms) = 1000 / F_off
帧组时间 T_group (ms) ≈ T_base + T_FG
真实帧/帧组速率 G (组/s) ≈ 1000 / T_group
插帧后总帧率 F_out (FPS) ≈ G × M = 1000 × M / (1000 / F_off + T_FG)
M 为倍率(2X…6X 对应 2…6)。一组含一个真实帧与 M − 1 个生成帧;上表的 T_FG 已包含整组生成帧与共用预处理,不能再乘 M − 1。开启插帧后的真实帧/帧组速率 G 低于关闭插帧的 F_off。
例:关闭帧生成约 50 FPS(基础帧时间 20 ms),取上表 4K 4X 的 T_FG:
| 内核 | T_FG (ms) | 帧组时间 (ms) | 帧组速率 (组/s) | 估计总帧率 |
|---|---|---|---|---|
| 原厂内核 | 5.112 | 25.112 | 39.8 | 159.3 FPS |
| 出厂默认 | 3.987 | 23.987 | 41.7 | 166.8 FPS |
其他分辨率/倍率换用对应行,F_off 填该设置下自己实测的值。这是把基础渲染时间与插帧组开销相加的粗略估计;GPU 资源争用、同步、CPU 开销、限帧与刷新率都会影响实际结果,估计值不保证等于计数器读数或实际显示帧率。
6X 说明
6X(每真实帧生成 5 帧)为 NVIDIA DLSS 4.5 的 Dynamic Multi Frame Generation。随包的运行库支持该能力,本项目使其能在 Ampere 上运行(只限 Engine=DLSS);是否得到 6X 取决于游戏:
- 游戏自身支持 6X(自带较新的 Streamline 帧生成插件、菜单中可选 6X 或 Dynamic MFG):置
MaxGeneratedFrames=5即可,实测可稳定运行 6X。 - 游戏仅支持 4X(自带较旧的 4X 插件,当前多数游戏如此):上限由游戏侧插件决定,本项目无法将其抬到 6X(该插件在初始化时按 4X 铺设内部呈现队列,强行加帧会越界导致帧生成失效或崩溃)。这类游戏请使用 4X。
实测反馈
《黑神话:悟空》、《赛博朋克 2077》与 FH6 实测可正常开启 4X;《Resonance A Plague Tale Legacy》在帧生成选「动态 / 自动」时默认跑 6X。0.4.0 在 RTX 3070 上于这四款与《巫师 3》中各跑过 DLSS 默认、预设 C 与 XeSS(2X、4K 输出),没有崩溃、TDR 或设备移除。插帧观感依赖基础帧率:基础帧率偏低时可能出现画面破坏与边缘效应,倍率越高越明显(6X 比 4X 更吃基础帧率),部分游戏即使 4X 也需适当降低画质设置、把基础帧率抬高后才有较好观感;这是帧生成在帧率余量不足时的固有表现,非本项目缺陷。
已知问题
- XeSS-FG(
Engine=XeSS)是可选项,默认仍是 DLSS-G。在 RTX 30 上它每生成帧比 DLSS-G 慢得多(4K:RTX 3070 +77..+86 %、约 +3 ms,RTX 3080 Ti 离线 +109..+114 %),真实帧率低 8..15 %,《A Plague Tale: Resonance》低 28 %;显存多约 0.4–0.5 GB;只 2X。后缓冲是 HDR 常用的 RGBA16F,或游戏缺深度 / 运动矢量等输入时,该游戏不用 XeSS、改跑 DLSS-G,日志写明原因(xefg_fallback)。 [DLSSG] Preset=B只在游戏同时提供 HUD-less 画面与 UI 平面时生效,多数游戏不提供;这时日志记一条preset_ineffective。- 预设 C 没有与 RTX 40 / 50 上官方预设 C 的对照。
- 超分
Mode=On:同一次运行里只有先用上的那个 L / M 档位加速,切到另一档要重启游戏。 - RTX 20:本版帧生成只在 RTX 3070 上做过 sm_75 前向 JIT 验证,310.9.16 的三个新内核尚未在真 Turing 上跑过。RTX 40 / 50:帧生成走本项目内核的 PTX 路线,实机未测。
诊断与边界
- 日志写入游戏目录
dlssg_sm86\logs\(loader_<PID>.jsonl/backend_<PID>.jsonl,[Logging] FrameTiming=1时另有逐帧的frames_<PID>.jsonl)。默认[Logging] Level=1只记错误,排查时改2或3。 - 帧生成未生效时先看
backend_*.jsonl是否有install且route active=true;缺失多为驱动/运行库不匹配,会记录原因并回退原厂路径。 - 本版优化的是帧生成的 GPU 计算开销,不能将离线耗时下降当成实测游戏 FPS 增幅;实际帧率增益取决于游戏与瓶颈所在。
- INI 全部键、日志字段与录制回放见
docs/INSTALL.md、docs/CAPTURE.md。
SM75 来源与致谢
- Coldwood1026 的 RTX 20 系列 / SM75 适配(实验性 SM75 路由的内核族来源,见
THIRD_PARTY_NOTICES.txt)。 - NVIDIA 的 DLSS-G 运行库、模型与前后处理(随包、未经修改)。
- Intel XeSS-FG 的着色器与模型权重(MIT 许可,
XeSS引擎用;不包含也不加载 Intel 的libxess_fg.dll)。
许可与第三方
- 本项目源码采用 GPLv3。
- 随包的
nvngx_dlssg.dll(310.9.16,SHA 前缀cadee1aa…)与nvngx_dlss.dll(310.7.129,SHA 前缀d202b024…)、提取/重编译的内核资源与 SM75 内核族为 NVIDIA 及上游第三方材料,不随源码转授权;XeSS-FG 的着色器与权重按 Intel 的 MIT 许可分发。见THIRD_PARTY_NOTICES.txt。
