dlssg_for_sm86

Introduction: Here is a dlssg for RTX30 Series GPU
More: Author   ReportBugs   
Tags:

中文 · 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 是大版本升级,文件结构和安装方式都变了,不能直接覆盖。

  1. 先删干净旧版:退出游戏,删掉游戏目录里本项目的全部代理 DLL(version.dll,以及以前放过的 winmm.dll / dbghelp.dll / dinput8.dll / dxgi.dll / d3d12.dll)和 dlssg_sm86.ini。
  2. 再复制新版的三样:version.dll、dlssg_sm86.ini、整个 dlssg_sm86\ 目录。运行库、后端、内核包都在 dlssg_sm86\ 里,只复制 DLL 什么都不会发生。
  3. 代理任何时候只放一个;游戏不加载 version.dll 时,从 alternatives\ 换一个(换,不是加)。
  4. 用新的 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)一步一步做。简要步骤:

  1. 完全退出游戏。
  2. 进入游戏的渲染 EXE 目录(如《黑神话:悟空》为 ...\b1\Binaries\Win64\)。
  3. 复制 version.dll、dlssg_sm86.ini 和整个 dlssg_sm86\ 目录;该目录已有同名 DLL 时先备份原文件。最省事的是直接下载 Release 附件 dlssg-release-0.4.0-x64.zip 解压:它与本仓库根目录相同,另外带超分的 dlssg_sm86\sr\ 两个文件(sr_kernels.dll 超过 GitHub 单个文件的上限,不在仓库里;不开超分可以不要)。
  4. 启动游戏,在图形设置中开启 DLSS 帧生成,选 2X / 3X / 4X(要 6X 见「6X 说明」)。
  5. 游戏不加载 version.dll([Logging] Level=2 下开了帧生成也没有 dlssg_sm86\logs\loader_*.jsonl):删掉它,从 alternatives\ 按 winmm.dll → dbghelp.dll → dinput8.dll → dxgi.dll → d3d12.dll 的顺序一次换一个,任何时候只放一个。
  6. 升级:退出游戏,先删掉旧的代理 DLL(0.3.x 可能放过几个,都要删)、dlssg_sm86.ini 和 dlssg_sm86\,再复制新版这三样;改过的设置在新 INI 里重新改。
  7. 卸载:删掉代理 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。
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools
AI Daily Digest