DLSS Swapper:DLSS / FSR / XeSS 动态库的下载、管理与换装实战指南
【免费下载链接】dlss-swapper项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper
DLSS Swapper 是一款 Windows 桌面工具,用于在游戏不更新的前提下下载、管理并替换游戏内的 DLSS、FSR、XeSS 相关 DLL,从而升级或降级这些图像增强技术的版本。本文基于该项目的日文官方 README 展开,并结合仓库中的源码与构建脚本,说明它支持哪些游戏库、为什么需要换装 DLL、有哪些使用边界,以及如何安装、构建并定位其本地数据。读完后你将能够独立完成 DLSS Swapper 的获取与部署,并理解其底层的数据存储与 DLL 清单(manifest)管理机制。
工具定位与核心能力
项目日文 README 给出的定义是:DLSS Swapper は、DLSS、FSR、XeSSの dll を便利にダウンロード、管理、交換できるツール(一个可以方便地下载、管理、交换 DLSS、FSR、XeSS dll 的工具),并且可以在游戏不需要更新的情况下升级或降级这些版本(见 readmes/readme_ja-JP.md)。
从 src/DLSS Swapper.csproj 可以确认其技术栈与当前版本:
- 目标框架
net10.0-windows10.0.26100.0,基于 WinUI 3(UseWinUI)与 Microsoft.WindowsAppSDK 构建,以非打包(WindowsPackageType: None)的独立 exe 形式发布; - 版本号为
1.2.5.0,仅支持x64/win-x64; - 依赖 sqlite-net(本地数据库)、Serilog(日志)、NvAPIWrapper(NVIDIA 驱动交互)、YamlDotNet 等组件。
支持的游戏库
日文 README 列出的受支持游戏库(サポートされているゲームライブラリ)如下:
| 游戏库 | 说明 |
|---|---|
| Steam | 读取 Steam 库清单(AppManifest ACF / LibraryFolders VDF) |
| GOG | 解析 GOG 本地数据库 |
| Epic Games | 读取 Epic Games Store 本地缓存与清单 |
| Ubisoft Connect | 解析 Ubisoft Connect 配置项 |
| Xbox App | 读取 Xbox App 游戏库 |
| Battle.net | 通过 protobuf 结构解析 Battle.net 产品库 |
| 手动添加 | 通过Add Game按钮手动登记游戏 |
这一列表在仓库源码中有直接对应:每种库都在 src/Data 下有独立实现,例如 SteamLibrary.cs、GOGLibrary.cs、EpicGamesStoreLibrary.cs、UbisoftConnectLibrary.cs、XboxLibrary.cs、BattleNetLibrary.cs 以及手动添加游戏的 ManuallyAddedLibrary.cs,它们共同实现 src/Interfaces/IGameLibrary.cs 接口。
根据 docs/how-it-works/readme.md 的说明,应用启动后进入GameGridPage,由中心化的GameManager.Instance统一负责游戏加载与 UI 集合绑定:LoadGamesFromCacheAsync先轻量加载本地缓存,LoadGamesAsync再针对每个已启用的库做更彻底的增删同步。这解释了为什么工具首屏能快速展示已知游戏、随后在后台刷新库列表。
为什么要换装游戏内的 DLSS DLL
日文 README 的「ゲーム内の DLSS dll を変更する理由」一节指向 Digital Foundry 对 DLSS 2.2 的分析视频(原文引用了 Lego Builder's Journey 光线追踪演示 + DLSS 2.2 Upgrades Analysis 的分析,讨论自 11:40 开始)。其含义是:游戏厂商随游戏发布的 DLSS 版本往往落后于 NVIDIA 官方最新版本,而游戏内 DLL 的版本直接决定了可用特性(如 DLSS 2.2 的改进、DLSS 预设的更新等)。DLSS Swapper 允许你直接替换这些 DLL,让游戏“吃到”新版技术,或回退到更稳定的旧版本。
从源码看,工具管理的动态库远不止 DLSS 一种。src/Data/DLLManager.cs 中维护了 9 个独立的DLLRecord集合,对应不同技术栈与图形 API:
DLSSRecords/DLSSGRecords/DLSSDRecords:DLSS、DLSS Super Resolution(G)、DLSS DeepDenoise(D);FSR31DX12Records/FSR31VKRecords:FSR 3.1 的 DirectX 12 与 Vulkan 变体;XeSSRecords/XeSSFGRecords/XeSSDX11Records/XeLLRecords:Intel XeSS、XeSS FG 与 XeLL(分别覆盖 DX12/DX11 路径)。
每个版本记录(DLLRecord)携带版本号与 MD5 哈希。游戏目录中现有 DLL 是否“已知”、是否可被替换,由 src/Data/KnownDLLs.cs 定义的KnownDLLs(含HashedKnownDLL哈希清单)来判定——即工具通过哈希识别游戏里当前的 DLL 版本,而非猜测文件名。
DLL 版本清单的加载与更新链路在 DLLManager.cs 中清晰可见:
- 优先从本地
Storage.GetManifestPath()(json/manifest.json)加载动态清单; - 若无,则回退到内嵌资源
Assets/static_manifest.json(随程序分发的静态清单); - 运行时再通过
UpdateManifestAsync从官方站点拉取最新manifest.json,以 MD5 比对本地与远端哈希,仅在发生变化时重写本地文件并重建各 DLL 记录列表。
这套“本地清单 → 静态清单 → 远端清单”的三级回退保证了离线环境下工具仍可工作,也解释了为什么 README 强调只能通过官方渠道获取软件:DLL 来源与清单完整性是工具可信度的核心。
注意事项与使用边界
日文 README 的「注意事項」一节明确给出了三条边界,使用时必须理解:
- 不能给不支持 DLSS 的游戏添加 DLSS——它只做版本替换,不做功能注入;
- 不保证换装 DLL 后性能提升、伪影减少或零崩溃;
- 多数情况下可以修复一些问题,但也有可能阻止游戏启动——原文指出此时可用工具内提供的原始 DLL 备份进行恢复。
这一点与源码中的GameHistory(游戏操作历史)和换装前对原 DLL 的留存设计相呼应:工具在替换前会保留原始 DLL 记录,使得“恢复出厂状态”成为可行操作。README 最后还引用了作者大学教授的一句话作为“实验文化”的注脚:计算机科学的美好之处,在于你不会在临终前还疑惑“如果当初那样做会怎样”。
获取与安装方式
日文 README 给出的官方获取渠道只有两个:
- 项目 Release 页面(仓库 issues/releases 入口处的最新版本);
- winget 命令行安装:
winget install --id=beeradmoore.dlss-swapper -eREADME 特别警告(原文以 WARNING 提示框呈现):存在伪装成 DLSS Swapper 的恶意站点,官方下载只存在于上述渠道,并提醒忽略任何自称 DLSS Swapper 的第三方账号或网站。
如果你要从源码自行构建,package/README.md 说明了三条构建脚本,最终产物均输出到Output/:
| 脚本 | 产物 | 依赖工具 |
|---|---|---|
| build_Portable.cmd | 绿色免安装压缩包 | PowerShell(执行 zip 步骤) |
| build_Installer.cmd | NSIS 安装版(unpackaged app) | Nullsoft Scriptable Install System,脚本位于 NSIS/Installer.nsi |
| build_all.cmd | 两者兼有 | 上述全部 |
此外 extras/ 目录提供了一些辅助工具,例如为 EA App 生成游戏标题映射的 C# 小工具 EAAppGameListBuilder、翻译资源排序脚本 SortTranslations/sort.ps1 等,可用于理解项目数据文件的维护方式。
最低系统要求
日文 README 的「最低システム要件」表格如下:
| 要求 | 说明 |
|---|---|
| 操作系统 | Windows 10 64-bit(20H1, build 19041) |
| GPU | 任意 |
源码中的工程配置与之一致:src/DLSS Swapper.csproj 中TargetPlatformMinVersion为10.0.19041.0(即 Windows 10 20H1),且Platforms限定为x64,RuntimeIdentifier为win-x64——也就是说它只支持 64 位 Windows,这一点比 README 的表格更具体。
本地数据存储结构
对需要排查“为什么游戏没被识别”“换装记录存在哪里”的读者,这一节给出源码级证据。src/Storage.cs 通过编译期条件(PORTABLE/DEBUG)决定存储根路径StoragePath:
- 安装版(unpackaged):
%LOCALAPPDATA%\DLSS Swapper\; - 绿色版(Portable):相对于
DLSS Swapper.exe的StoredData\目录。
在StoragePath下会按需创建以下位置(同样来自 Storage.cs):
dlss_swapper.db:SQLite 数据库,最初作为游戏缓存加速启动,后来承载了收藏、备注、最近使用的 DLSS 版本等功能(见 docs/how-it-works/readme.md 的 “Data storage” 一节);json/manifest.json:动态 DLL 清单缓存;json/imported_manifest.json:用户自定义导入的 DLL 清单(DLLManager 会在其损坏时禁用导入系统以防覆盖用户数据);json/releases.json:Release 更新检查缓存;image_cache/:游戏封面等图片缓存;- 安装版的临时文件使用系统 Temp 下的
DLSS Swapper子目录,绿色版则放在StoredData\temp。
理解这些路径后,你就能定位日志(Serilog 文件输出)、手动检查清单是否被正确更新,或在迁移机器时完整带走自己的换装记录。
反馈、贡献与多语言文档
日文 README 中「DLSS Swapper へのリクエスト」一节建议通过仓库的 Issue 功能请求模板提交 feature request;「貢献方法」则注明贡献文档“近日公开”。就当前仓库状态而言,可直接上手的贡献形式包括:
- 翻译:readmes/ 目录收录了 8 种语言的 README(Català、English、Español、日本語、Português BR、Türkçe、简体中文、繁體中文),本文对应的 readme_ja-JP.md 即其中之一;应用内的界面翻译资源位于 src/Translations/(26 个语言目录的
Resources.resw),配套的检测工具见 extras/InNeedOfTranslationDetector; - 官网文档站点基于 Jekyll 搭建,源码在 docs/(含 Dockerfile.alpine 与 compose.yaml 部署配置),其中 docs/how-it-works/readme.md 是解释内部工作机制的活文档,也是本文多处结论的依据。
官方渠道与安全提示
日文 README 的「公式リンク」列出了官方渠道:GitHub 项目仓库、Twitter 账号与 Reddit 社区(r/DLSS_Swapper,用于分享换装经验)。这里不重复外链,仅强调两条事实:
- 任何与上述渠道不一致的“DLSS Swapper 下载站”都应视为可疑来源,README 明确要求忽略它们,最好通过仓库 Issue 报告;
- 发行签名由 SignPath.io 免费代码签名、SignPath Foundation 证书提供(README 的 Sponsors 一节),这是辨别安装包签名合法性的参考背景。
综上,DLSS Swapper 的价值边界非常清晰:它不是 DLSS 注入器,也不承诺画质与帧数的收益;它是一套带哈希校验、本地清单缓存与原始 DLL 备份恢复能力的动态库换装与版本管理工具,配合官方渠道获取和 winget 一键安装,即可在支持的环境中对游戏内的 DLSS、FSR、XeSS 版本进行可控的升级或回退。
【免费下载链接】dlss-swapper项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考