DLSS帧生成分辨率修复 - 重制版

DLSS帧生成分辨率修复 - 重制版

修复了《巫师3:重制版》中可能导致NVIDIA DLSS帧生成在原生、超宽屏和DSR/DLDSR分辨率下无法启用的内部渲染分辨率不匹配问题。仅运行时ASI修复;不强制启用帧生成,也不修改磁盘上的witcher3.exe。

DLSS 帧生成分辨率修复 - 重制版

版本: 0.2.0-beta 作者: Armando Galeano 分类: 错误修复 标签: 重制版兼容

修复《巫师 3:重制版》中的内部渲染分辨率不匹配问题,该问题可能导致 NVIDIA DLSS 帧生成在受影响的原生、超宽屏、DSR 和 DLDSR 分辨率下无法启用。

仅运行时 ASI 修复。不替换 DLSS/Streamline 文件,不修改磁盘上的 witcher3.exe,也不强制开启帧生成。

问题所在

《巫师 3:重制版》包含一个遗留的动态分辨率(DRS)计算逻辑,可能生成小于请求输出分辨率的内部最大分辨率。

该遗留路径由一个隐藏的默认值控制:

Rendering/DRS/Legacy UseLegacy = 1

例如,在 2560x1080 下:

请求 / 交换链:2560x1080
遗留 DRS 最大值: 2544x1060

因此,游戏的渲染资源(包括 DLSS 帧生成使用的无 HUD/UI 资源)可能小于实际视口。

游戏自身的 DLSS-G 验证会拒绝这种不匹配,因此即使该选项已启用,帧生成仍会保持禁用状态。

在 1920x1080 下,遗留计算恰好返回请求的分辨率,这就是帧生成在那里可以正常工作的原因。

v0.1.0-beta 修复了什么

v0.1.0-beta 使两个受影响的取值范围计算使用游戏现有的非遗留 DRS 路径。

在 2560x1080 下,这恢复了匹配的尺寸:

请求 2560x1080
        ->
DRS 最大值 2560x1080
        ->
视口/资源 2560x1080
        ->
原始 DLSS-G 验证通过
        ->
游戏正常启用帧生成

这修复了最初的 2560x1080 问题。

遗留问题

非遗留路径本身仍会将其最大 DRS 范围向下对齐到 4 的倍数。

这意味着某些 DSR/DLDSR 及其他非 4 倍数分辨率仍可能在内部被缩小。

例如:

请求 3413x1440
        ->
DRS 最大值 3412x1440
        ->
视口 3412x1440
        ->
偏移 = 1,0
        ->
DLSS-G 验证失败
        ->
帧生成保持关闭

仅一个像素的差异就足以使游戏的无 HUD/视口验证无法通过。

v0.2.0-beta 修复

v0.2.0-beta 保留了原始的 v0.1 遗留 DRS 修复,同时修正了这一残留的最大分辨率对齐问题。

请求的最大 DRS 分辨率保持精确,全分辨率渲染目标与该精确最大值保持一致。

在 3413x1440 下:

请求 3413x1440
        ->
DRS 最大值 3413x1440
        ->
视口 3413x1440
        ->
偏移 = 0,0
        ->
全分辨率资源 3413x1440
        ->
原始 DLSS-G 验证通过
        ->
游戏正常启用帧生成

较低的 DRS 分辨率槽位保留游戏原有的对齐尺寸行为。

因此,最大分辨率修正仅限于渲染路径中需要与请求输出匹配的部分。

此模组不会强制开启帧生成。

它修复上游的分辨率状态,并保持游戏原有的 DLSS-G 安全和验证逻辑不变。

游戏本身仍决定是否可以启用帧生成。

它不做什么

  • 不替换 DLSS DLL
  • 不替换 Streamline
  • 不修改 nvngx 库
  • 不在磁盘上修补 witcher3.exe
  • 不修改存档
  • 不修改游戏设置
  • 不更改 DLSSGUseHudless
  • 不强制调用 slDLSSGSetOptions(eOn)
  • 不禁用游戏的 DLSS-G 验证
  • 无网络访问
  • 无遥测
  • 无自动更新器

工作原理

插件对受支持的 witcher3.exe 构建应用一组经过验证的仅运行时补丁。

v0.2.0-beta:

  • 保留原始的 v0.1 遗留 DRS 修正。
  • 将请求的宽度和高度保留为最大 DRS 范围。
  • 使全分辨率渲染目标描述符与该精确最大值保持一致。
  • 为较低 DRS 槽位保留游戏原有的对齐尺寸。
  • 保持游戏正常的 DLSS-G 验证逻辑不变。

受支持的构建接收 11 次运行时写操作,作为一组经过验证的补丁。

磁盘上的 witcher3.exe 永远不会被修改。

补丁仅在游戏运行时存在。

故障安全行为

在应用修复之前,插件会验证:

  • 两个预期的遗留 DRS 签名。
  • 两个位置引用相同的 UseLegacy cvar。
  • cvar 元数据与 Rendering/DRS/Legacy / UseLegacy 匹配。
  • 预期的非遗留代码块与受支持的游戏构建匹配。
  • 每个精确最大修正的原始字节均存在。
  • 渲染目标描述符尾部签名和预期字节匹配。
  • 运行时钩子编码通过自检。

如果预期的游戏代码不匹配,则不会应用修复。

游戏继续正常运行,并且:

Witcher3RemasteredDLSSGFix.log

会报告不受支持的游戏构建。

已验证

  • 《巫师 3:重制版》5.00c
  • Steam 构建 25646871
  • DX12
  • NVIDIA RTX 50 系列
  • DLSS 光线重建
  • DLSS 多帧生成(3 个生成帧)

本地验证:

  • 3413x1440 - 冷启动,DLSS-G eOn,3 个生成帧,DLSS-RR 输出 3413x1440,无 NGX InvalidParameter 失败。
  • 3620x1527 - 冷启动,帧生成正常工作。
  • 2560x1080 - 冷启动,帧生成正常工作。
  • 3840x1620 - 分辨率切换后帧生成保持正常工作。
  • 1920x1080 - 分辨率切换后帧生成保持正常工作。

所列分辨率也在同一会话中依次切换,未出现可见的渲染损坏或崩溃。

插桩验证运行使用独占全屏模式。

已与以下模组一同测试,但非必需且不保证兼容:

  • RenoDX / DLSS 5 配置
  • ReShade
  • W3SpawnMenu
  • NVIDIA App DLSS Override
  • Streamline OTA 插件

安装

  1. 单独为《巫师 3:重制版》DX12 安装兼容的 ASI Loader。
  2. 解压 Witcher3RemasteredDLSSGFix.asi。
  3. 将其复制到:
The Witcher 3\bin\x64_dx12\

使用 DX12 启动游戏,并在图形设置中正常启用 DLSS 帧生成。

卸载

删除:

Witcher3RemasteredDLSSGFix.asi

你也可以删除:

Witcher3RemasteredDLSSGFix.log

不会修改任何存档文件。

包内容

  • Witcher3RemasteredDLSSGFix.asi
  • README.txt
  • LICENSE - MIT
  • CHANGELOG.txt

不包含任何游戏文件、NVIDIA DLL 或第三方模组。

必须单独安装兼容的 ASI Loader。

源代码

MIT 许可证下的开源项目:

GitHub - Witcher3RemasteredDLSSGFix

该仓库包含完整源代码、技术文档,以及一个 dry-run 审计工具,可在不启动游戏或不修改游戏的情况下验证受支持的 witcher3.exe。

Beta 说明

v0.2.0-beta 将原始修复扩展到更多分辨率对齐场景,包括 DSR/DLDSR 风格分辨率。

测试已在本地多个分辨率下确认修复有效,但其他 GPU、显示器、显示模式及 DSR/DLDSR 组合仍需社区验证。

欢迎反馈。

如果报告兼容性问题,请附上:

Witcher3RemasteredDLSSGFix.log