DLSS Swapper 快速上手指南:不等游戏更新,切换任意图像缩放与帧生成 DLL 版本
【免费下载链接】dlss-swapper项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper
游戏里的图像缩放与帧生成库——DLSS、FSR、XeSS——都是以 DLL 形式躺在安装目录里的,版本完全取决于厂商最后一次更新打进了什么。DLSS Swapper 是一款开源的 Windows 工具,负责集中下载、管理和切换这些 DLL,让你不必干等游戏补丁,就能把库升级或回退到任意历史版本,并且每次替换都留有可恢复的备份。想先试试新版 DLSS 效果如何,它是最直接的路。
游戏自带的 DLL 版本不合心意时
典型场景:某次更新后你发现游戏的光追或帧生成观感变差了,怀疑厂商把库降回了老版本;或者你刚装的新游戏还在捆绑 DLSS 2.x 早期版本,而你在别的作品里已经验证过新版本更稳。手动换文件很繁琐:原文件要备份到哪、新文件要丢到哪、怎么确保没换错地方,全得自己盯着。
Digital Foundry 在评测 DLSS 2.2 的升级效果时(视频 11:40 开始谈这一版),其实回答的就是这个问题——为什么要折腾 DLL:新版本通常画质更好、开销更低,老版本则可能在个别游戏里更稳,用哪个是你的选择。
主界面把装着可换 DLL 的游戏排成网格,每张卡片标出当前绑定的版本,例如图中赛博朋克 2077 显示的 DLSS 2.1.39.0。
官方下载途径与辨别仿冒站点的方法
📦 官方入口其实只有两个:
- GitHub Releases 页面,提供安装版与便携版两种形态;
- 一条 winget 命令装好:
winget install --id=beeradmoore.dlss-swapper -eREADME 里有一条专门的警告:网上存在冒充官方 DLSS Swapper 的站点。除上述两条途径外,任何宣称官方的账号或下载页都建议直接无视,最好再提一个 issue 通报一声。
想从技术上核实包是否正主,就看代码签名。发行版由 SignPath.io 的开源免费签名服务签名,证书出自 SignPath 开源社区基金会,这两项信息对得上才算数。装完之后可以打开 Windows 证书管理器,在“受信任的人”存储下能看到一张 Issued By 为 dlss-swapper 的证书,即与官方签名吻合。
一句话:来源拿不准时,只认两条官方途径,签名信息是最后的核对手段。
可替换的九种 DLL 全名单
很多人默认这工具只管 DLSS,打开源码会看到它的关注面宽得多。DLLManager 里维持着 9 组集合,每种 DLL 各占其一,按图形 API 路径归类如下:
| 厂商 | 可换的 DLL | 说明 |
|---|---|---|
| NVIDIA | DLSS | 标准版 dlss.dll,覆盖 2.x / 3.x 等版本 |
| NVIDIA | DLSS-G | 独立细分变体,预设名单在 dlss_g_presets.json |
| NVIDIA | DLSS-D | 独立细分变体,预设名单在 dlss_d_presets.json |
| AMD | FSR 3.1(DX12) | 面向 DX12 API 路径的构建 |
| AMD | FSR 3.1(Vulkan) | 面向 Vulkan API 路径的构建 |
| Intel | XeSS | 标准超分辨率 |
| Intel | XeLL | 低延迟变体 |
| Intel | XeSS-FG | 帧生成 |
| Intel | XeSS(DX11) | DX11 专用构建 |
同一个 FSR 3.1 为什么要拆 DX12 和 Vulkan 两套?因为游戏走的图形 API 并不一致,构建必须贴着游戏的 API 路径来选——钥匙得先选对,才谈得上开锁。
八个游戏库来源:哪些平台会被自动扫到
IGameLibrary 以位标志枚举登记了 8 个库,每个库都实现同一份三件套契约:ListGamesAsync(做全量扫描)、LoadGamesFromCacheAsync(从本地缓存取数)、IsInstalled(探测该客户端装没装)。
| 游戏库 | 对应源码类 | 工作方式 |
|---|---|---|
| Steam | SteamLibrary | 扫描 Steam 安装库 |
| GOG | GOGLibrary | 读取 GOG 本地库 |
| Epic Games | EpicGamesStoreLibrary | 读取 Epic 本地库 |
| Ubisoft Connect | UbisoftConnectLibrary | 读取育碧连接库 |
| Xbox App | XboxLibrary | 读取 Xbox App 库 |
| Battle.net | BattleNetLibrary | 读取战网库 |
| EA App | EAAppLibrary | 标题映射来自 ea_app_titles.json |
| 手动添加 | ManuallyAddedLibrary | 点“Add Game”按钮拉入任意游戏 |
EA App 这一路比较特别:它依赖一份随代码内置的静态标题映射表,实际支持范围比 README 里宣称的平台列表还多走了一步。哪些库参与扫描,可以在设置页逐项勾选,启用状态会落进全局设置里长期保存。
先看清三条风险边界,再谈替换失败怎么回滚
⚠️ 先把丑话说透。这个工具做不到的事有三件:
- 不给不支持 DLSS 的游戏注入 DLSS——它只换掉已存在的库,不会凭空加功能;
- 不承诺换完之后的效果:性能上涨、伪影变少、告别闪退,一样都不打包票;
- 不保证游戏还能正常启动——版本选错,游戏可能直接打不开。
兜底机制在哪?每次 DLL 操作都以“记录”为最小单位:扫到游戏里每一个可换的 DLL 位置,都会生成一条 DLLRecord 并同步进本地 SQLite 数据库 dlss_swapper.db。相当于每换一次锁,工具都替你留了一份“原钥匙”的档案:原文件长什么样、放在哪里都有档可查,新 DLL 一旦水土不服,随时能一键回到原版。
一句话:把它当作 DLL 的版本管理工具来用,别指望它替你做画质和性能承诺。
深入机制:清单三级兜底与游戏两阶段扫描
想往深处看的读者,这里讲两条核心数据流,各配一个形象的说法。
清单 = 货单。LoadManifestsAsync读取“现在有哪些版本可下、下载地址在哪”这份清单文件时,按三步走:
- 先读本地
json\manifest.json,即上一次远端成功取回的成果; - 取不到就打开程序内嵌的 static_manifest.json,它是随安装包一起出厂的静态副本;
- 本地和内置都落空,才会触发
UpdateManifestAsync重新访问远端抓取,并校验 MD5 后落盘。
另有一份独立的imported_manifest.json,对应自建 DLL 导入功能:你可以把自己整理的 DLL 集合带进来。这里的代码写得相当克制——文件缺失时对应对象保持 null,一个字节都不往盘上写,绝不碰你没用过的数据;解析失败时,整个导入功能直接下线。
游戏扫描 = 先查旧账、再逐户对账。启动时 GameManager 分两遍干活:第一遍对每个启用的库调LoadGamesFromCacheAsync,把数据库里已知的游戏秒级取出,界面立刻可用;第二遍LoadGamesAsync再对每个启用的库做全盘重扫,补齐新增与移除。游戏列表一有变动,界面网格自行刷新,无需手动操作。流程细节可查 docs/how-it-works/readme.md。
本地存储布局全解
根目录由 Storage 依据“形态 × 构建”两种开关的组合确定,共四种情况:
| 形态 | 存储根目录 |
|---|---|
| 安装版(正式发布) | %LOCALAPPDATA%\DLSS Swapper\ |
| 便携版 | DLSS Swapper.exe旁边的StoredData\目录 |
| 任意调试构建 | 在上面路径的基础上再挂一层DEBUG子目录,与正式数据隔离 |
根目录下的关键文件:
json\settings.json:全局设置,记录各库的启用状态、窗口最后停靠位置等;json\manifest.json:动态清单,即最近一次从远端拉回的最新名单;json\imported_manifest.json:你自行导入的自定义清单;image_cache\:游戏封面图缓存;dlss_swapper.db:SQLite 数据库,存放游戏缓存与 DLL 记录,也是“还原原文件”的数据依据;- 临时区:便携版写在根目录下
temp\,安装版写在系统临时目录的DLSS Swapper里,其中updates子目录放自更新文件。
便携与安装的路径差异靠编译开关实现:DLSS Swapper.csproj 里定义了Debug;Release;Debug_Portable;Release_Portable四套构建配置,凡是 Portable 后缀的配置都会点亮PORTABLE编译常量,存储路径随之换到 exe 旁边。
系统要求、常见问题与卸载清理
门槛一句话:Windows 10 64 位(20H1,build 19041),显卡不限。工程文件可以佐证:csproj 中TargetPlatformMinVersion恰为10.0.19041.0,运行时锁定win-x64,界面基于 WinUI 加 WindowsAppSDK 构建。且工具运行时不调用任何特定 GPU 厂商的 API,所以“显卡不限”是事实而非客套。
能给不支持 DLSS 的游戏加装 DLSS 吗?
不能。它只负责把已有的库换成别的版本,不会让不支持缩放技术的游戏获得这项能力。
卸载之后如何清理干净?
安装版:在“设置 - 应用 - 应用和功能”里搜 dlss swapper 正常卸载;签名过程中随装的那张证书,可到证书管理器里单独移除。
便携版更省事:删掉 exe 同目录下的StoredData目录,所有本地数据随之清空。
求助与经验分享渠道
“要是 DLSS Swapper 还能……”这类念头,走 feature request 模板提 issue;遇到问题则按官方 bug 模板提交。社区论坛 r/DLSS_Swapper 是玩家晒替换前后实测的地方,作者也常在那边跟进反馈。第三方依赖的许可证与致谢在 src/Acknowledgements 目录里逐家留档(CommunityToolkit、NvAPIWrapper、Serilog、SQLitePCLRaw、FidelityFX-SDK 等);贡献指南尚在筹备,README 只留了一句“更多信息很快发布”。
总结一句:它不承诺画质和帧数提升,但把游戏里“版本锁死”的图像缩放与帧生成 DLL 变成了一张看得见、留了底、能回退的清单。眼下能做的有两件事——去官方 Releases 领安装版或便携版,或者敲一行winget install --id=beeradmoore.dlss-swapper -e,然后开始第一次版本对比实验。
【免费下载链接】dlss-swapper项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考