游戏不更新也能换 DLSS:DLSS Swapper 自由升降 9 类 DLL 版本完整指南
【免费下载链接】dlss-swapper项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper
Meta Description:DLSS Swapper 是一款免费的 Windows 开源工具,集中下载与切换游戏内自带的 DLSS、FSR、XeSS DLL 版本,无需等待游戏更新。本文覆盖安装方式、支持范围、能力边界与数据存储位置。
为什么游戏里的 DLSS 版本永远停在最后一次更新
游戏里的 DLSS 版本被"写死"在最后一次更新上——想试试新版的更好画质,或退回更稳的旧版,都无从选择。DLSS Swapper 是免费的 Windows 开源工具,集中下载并切换游戏内自带的 DLSS、FSR、XeSS DLL 版本,不用等游戏更新就能升级或降级。
图像缩放和帧生成库以 DLL 形式躺在游戏目录里,版本只能跟着厂商补丁走,手动备份替换文件既繁琐又容易弄丢原件。Digital Foundry 对 DLSS 2.2 的分析(11:40 开始讨论)算是"为什么要换 DLL"的最好注脚:版本之间画质与开销的差异是真实可测的。
主界面就是一个游戏网格:每张卡片直接标出该游戏当前缩放库的版本。
9 类缩放 DLL 加 8 个游戏库,它能管多少
别以为它只认 DLSS。src/Data/DLLManager.cs 里维护着九组 DLL 记录,按图形 API 路径归类:
| 厂商 / 路径 | 识别的 DLL |
|---|---|
| NVIDIA | nvngx_dlss.dll(DLSS) |
| NVIDIA | nvngx_dlssg.dll(DLSS-G) |
| NVIDIA | nvngx_dlssd.dll(DLSS-D) |
| AMD DX12 | amd_fidelityfx_dx12.dll(FSR 3.1) |
| AMD Vulkan | amd_fidelityfx_vk.dll(FSR 3.1) |
| Intel | libxess.dll(XeSS) |
| Intel | libxell.dll(XeLL 低延迟) |
| Intel | libxess_fg.dll(XeSS-FG 帧生成) |
| Intel | libxess_dx11.dll(DX11 专用) |
同一款 FSR 要分 DX12 与 Vulkan 构建,是因为不同游戏走的图形 API 路径不同,构建"对口"才能替换——换 DLL 不是把文件丢进去就完事。DLSS-G 与 DLSS-D 的预设清单在 Assets 目录的 json 文件里。
游戏库侧由 src/Interfaces/IGameLibrary.cs 的位标志枚举覆盖:Steam、GOG、Epic Games、Ubisoft Connect、Xbox App、战网、EA App 均可自动扫描,还能通过 Add Game 按钮手动拉进任意游戏。EA App 比 README 的支持列表还超前一步,标题映射 ea_app_titles.json 已在代码里。每个库的启用状态都持久化在设置中,设置页可勾选哪些库参与扫描。
1 分钟装好:一条 winget 命令,或去 Releases 拿安装/便携版
官方渠道只有两个:GitHub Releases 页面(安装版与便携版都有)和 winget:
winget install --id=beeradmoore.dlss-swapper -e⚠️ README 专门警告:网上存在自称 DLSS Swapper 的恶意网站。凡不是上面两条的"官方"账号或站点,直接忽略。鉴别官方包看 Windows 代码签名:发行版由 SignPath.io 免费签名,证书来自 SignPath 开源社区基金会,签名对得上才是正主。
系统要求极低:Windows 10 64 位(20H1,build 19041),显卡任意。工程配置与此互证——csproj 最低平台正是 10.0.19041.0,平台仅 x64。
打开程序后发生了什么:先读缓存,再全量扫描
启动分两步:先对每个启用库执行 LoadGamesFromCacheAsync,从本地数据库秒级读出已知游戏铺满网格;随后 LoadGamesAsync 全量扫描,增删游戏。游戏集合是可观察的,数据一变界面立刻跟上——这就是添加库、扫描完成后网格立刻变化的原因。细节见 docs/how-it-works/readme.md。
可下载清单走三级回退:先读上次远端抓取成功的 json\manifest.json;没有就退回程序内嵌的 static_manifest.json;再失败才去远端重新抓取。另有独立的"导入清单":可导入自己整理的 DLL 集合,文件不存在时清单保持 null、不新建文件,防止覆盖你还没用过的数据;加载失败则直接禁用导入功能。
避坑:做不到的 3 件事,和换错了怎么撤回
先划重点:
- 不能给不支持 DLSS 的游戏注入 DLSS,它只替换已存在的库,不注入新功能;
- 不保证换完的效果:性能提升、伪影减少、闪退减少,一个都不承诺;
- 不保证游戏一定还能启动:换对了能修 bug,换错了可能让游戏打不开。
安全垫在数据层:游戏目录里每发现一个受管 DLL 的位置,都会建立 DLLRecord 记录并写入本地 SQLite 数据库(dlss_swapper.db),工具始终"知道原文件长什么样、放在哪"。新 DLL 水土不服时可以直接恢复原始 DLL。把它当版本管理工具用,别当疗效承诺器。
你的数据存在哪:一张表看清本地目录结构
根目录由 src/Storage.cs 按"安装/便携 × 调试/发布"四种组合决定:
| 形态 | 存储根目录 |
|---|---|
| 安装版(正式发布) | %LOCALAPPDATA%\DLSS Swapper\ |
| 便携版 | 可执行文件同级 StoredData\ 目录 |
| 任意调试构建 | 上述路径下再套 DEBUG 子目录 |
根目录关键文件:json\settings.json(库启用状态、窗口位置)、json\manifest.json(上次远端拉取的 DLL 清单)、json\imported_manifest.json(你导入的自定义清单)、image_cache\(封面缓存)、dlss_swapper.db(SQLite 数据库,恢复原始 DLL 的依据)、temp\(便携版)或系统临时目录下的 DLSS Swapper(安装版)存放下载临时文件。
便携/安装的路径切换靠编译开关:csproj 定义 Debug、Release、Debug_Portable、Release_Portable 四套配置,*_Portable会定义 PORTABLE 常量,存储路径随之切换。
功能请求与 bug 反馈走项目 issue 模板;贡献指南注明"很快发布";全部第三方依赖许可在 src/Acknowledgements 目录。
动手就两步:winget 安装或去 Releases 拿安装/便携版;然后在设置页只勾一个常用库,挑一个最熟的游戏换一版 DLL 试试手。
【免费下载链接】dlss-swapper项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考