测试者指南:在您的 GPU 上运行 TotK Recomp¶
本指南用于在开发者的 GPU(AMD RX 9070)之外的其他 GPU 上测试构建。您需要使用自己的游戏副本和自己的主机密钥从源代码构建。此仓库中不包含任何游戏内容,您从中构建的任何内容也不得共享。
需要准备什么¶
- Windows 10 或更高版本,支持 AVX2 的 x86-64 CPU,约 60 GB 可用空间。
- 支持 Vulkan 1.3 和
VK_EXT_external_memory_host且使用最新驱动的 GPU。 - Tears of the Kingdom 基础游戏(1.0.0)以及 1.2.1 或 1.4.3 更新,从您自己的 Switch 以 NSP 或 XCI 格式导出。
- 从您自己的 Switch 导出的
prod.keys。切勿将其发送给任何人,也不要将其粘贴到日志或问题报告中。
构建¶
- 按照 building.md 操作:先安装工具链,然后执行构建步骤 1-6(Python 环境、包含您自己路径的
config.local.toml、解包、着色器翻译器、提升与链接、着色器准备)。结果是build\<ver>\totk.exe,其中<ver>是您构建的游戏版本(v143或v121)。 - 在不使用游戏的情况下检查构建:
build\<ver>\totk.exe --selftest必须输出通过(pass)。 - 要在您的另一台机器上运行构建,请打包一个便携文件夹(building.md 中的 “Portable folder”)。该文件夹包含游戏代码:仅限您自己的机器使用。
- 安装程序(installer.md)是让没有工具链的机器使用的另一条途径:它会在该机器上从您自己的文件构建游戏。目前还没有发布任何安装程序版本。
运行并收集日志¶
每次运行都会将其日志写入 totk.exe 旁边的 logs\totk.log;之前的四次运行会保留为 totk.1.log 至 totk.4.log,设置菜单“高级”选项卡(F1)中的“打开日志文件夹”会显示这些文件。在再次启动游戏之前,请先复制日志。单个文件达到 64 MiB 后停止写入。如果以 2> file 启动,游戏会将日志写入该文件而不是默认位置。
在仓库根目录的 cmd.exe 中,启用验证层:
TOTK_VK_VALIDATION=1 会启用 Vulkan 验证层(它随 Vulkan SDK 提供)。这会使游戏变慢;因此请分别进行两次运行:一次启用它,一次不启用(set TOTK_VK_VALIDATION=)。
让窗口保持在前台:窗口未聚焦会导致游戏停滞。准备阶段未覆盖的着色器会在首次使用时编译,因此游戏刚开始的几分钟可能会出现卡顿。游玩到开放区域(加载存档,走动约一分钟,如果可以的话战斗一下),然后关闭窗口。
选择 GPU¶
配备核显和独立显卡的笔记本电脑,或安装了两张显卡的机器,会在日志顶部列出每个 GPU(vk: gpu 0: ...)。
set TOTK_GPU_NAME=Radeon会选择名称包含该文本(不区分大小写)的第一个可用 GPU。set TOTK_GPU_INDEX=1会从该列表中选择 GPU 1。
其中 vk: using gpu N: <name> 这一行会显示实际使用的是哪一个。
需要反馈的内容¶
- 每次运行产生的
logs\totk.log。其中不包含密钥,也不包含游戏文件。最需要注意的行以vk caps:(GPU、驱动、特性以及采用的回退方案)、vk: gpu、validation和gfx_shader:开头。 - GPU 型号、驱动程序版本、CPU、内存,以及是否为笔记本电脑。在设置菜单的“高级”选项卡(F1)中点击“复制系统信息”会将上述信息和您更改过的设置复制到剪贴板。请说明您运行的是哪个游戏更新版本。
- 您看到的情况:进展到哪一步(菜单、加载、开放区域),运行大致是否流畅,以及任何异常情况的截图(黑色或缺失区域、闪烁、颜色错误、草地缺失)。Win+Shift+S 截图即可。
- 如果崩溃或卡死:请说明您当时正在做什么。该次运行的日志以崩溃报告结尾,因此请发送完整日志。
- 对于您可以复现的 bug:提供一份输入录制(
set TOTK_INPUT_RECORD=input.txt,参见 controls.md 中的“Scripted input”)以及您开始游戏时使用的存档。
用于开发者询问的开关¶
仅在被要求时设置这些开关;每个开关都会强制启用一种回退方案,而构建本身会在需要该回退方案的 GPU 上自动选择它。
| Variable | Effect |
|---|---|
TOTK_VK_NO_FLOAT64=1 |
不使用 64 位浮点数来翻译着色器 |
TOTK_VK_SSBO_ALIGN=64 |
将存储缓冲区视为需要 64 字节对齐 |
TOTK_VK_SUBGROUP_PIN=0 |
不将着色器固定到 32 条通道;告知翻译器 GPU 自身的子组大小 |
每个开关都会让首次启动时重新翻译所有着色器。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 to/totk-pc-recomp