跳转至

User Handbook - 架构与平台

不同架构与平台下的注意事项和局限说明。

架构

Eden 主要为 amd64(x86_64,即 Intel/AMD 64 位)和 aarch64(arm64,即 ARM 64 位)CPU 设计。每种架构往往都有自己的特殊之处和“乐子”;本页就是这些特殊之处的参考手册。

amd64

AMD64,又名 x86_64,是桌面平台中测试最多、支持最完善的架构。Android 完全不受支持。

注意事项

AMD64 系统几乎总是受 CPU 限制。例如,Zen 5/RX 6600 系统在 GPU 使用率远未达到 70% 时,CPU 使用率往往就已经拉满,很少有例外(且这些例外通常只在超过 200fps 时出现)。JIT 很慢!

Linux 上的电脑几乎总是能比配置相当的 Windows 机器更流畅地运行 Eden。这在很大程度上归功于 Linux 内核处理内存管理的方式(以及没有微软间谍软件)。

Intel Mac 据信是受支持的,但没有为其提供 CI。除最高端 iMac 和 Pro 级 Mac 之外,性能可能会非常糟糕,而且 MoltenVK 的要求通常意味着 Vulkan 兼容性会受影响。

aarch64

ARM64,又名 aarch64,是 Android 唯一支持的架构,在 Linux、Windows 和 macOS 上也有有限的实验性支持。

注意事项

NCE(原生代码执行)目前仅在 Android 和(实验性地)Linux 上可用。macOS 支持正在开发中,但 Windows 极不可能实现(如果你想要——请提交补丁!)。一般来说,只要 NCE 可用,就应尽量使用它,因为 JIT 的性能损失巨大。

启用 NCE 时,请注意 GPU 几乎总是会成为瓶颈。这在 Android 上尤其明显,在缺乏独立 GPU 的桌面平台上也是如此;Adreno、Mali、PowerVR 等 GPU 相对于各自的 CPU 来说通常要弱得多。

Windows/arm64 处于非常实验性的阶段,很可能根本无法正常运行。相关支持和测试正在进行中。

riscv64

RISC-V,又名 riscv64,测试很少,但开发者的初步测试报告称,在 Milk-V 的 Fedora/riscv64 Linux 发行版上至少能获得部分支持。性能、Vulkan 支持、兼容性和构建系统方面的注意事项目前大多未知。

注意事项

Windows/riscv64 并不存在,而且可能永远不会出现(除非企业贪婪不再吞噬微软)。

Android/riscv64 很有意思。虽然如果 RISC-V 手机/掌机成为主流,可能会加入对其的支持,但由于 NCE,arm64 设备始终是更优先的选择。

目前只有 Fedora/riscv64 经过测试,但理论上,任何至少具备标准构建工具、Qt、FFmpeg 和 SDL3 的 riscv64 发行版都应该可以运行。

其他

其他架构,如 SPARC、MIPS、PowerPC、Loong 以及所有 32 位架构,完全不支持,因为没有相应的 JIT 后端或发射器。如果你想要支持——请提交补丁!

IA-64(Itanium)的支持情况完全未知。现有的 amd64 软件包无法在 IA-64 上运行(假设你甚至能找到受支持的 Windows/Linux 发行版)。

平台

Eden 的绝大多数测试都在 Windows、Linux 和 Android 上进行。不过,以下平台也提供一流支持:

  • FreeBSD(amd64、aarch64)
  • HaikuOS(amd64)
  • OpenBSD(amd64)
  • NetBSD(amd64)
  • macOS(aarch64)
  • OpenIndiana 又名 OpenSolaris(amd64)

Linux

虽然所有现代 Linux 发行版都受支持(Fedora >40、Ubuntu >24.04、Debian >12、Arch、Gentoo 等),但 Linux 的绝大多数测试和开发都是在 Arch 和 Gentoo 上完成的。大多数重大构建系统变更都首先在 Gentoo 上进行测试,因此如果你在任何现代发行版上无论怎么做都无法构建成功,那很可能是 bug,应该上报。

Intel 和 NVIDIA GPU 的支持有限。AMD(RADV)驱动接受一流测试,并且已知可提供尽可能最稳定的 Eden 体验。

不建议使用 Wayland。测试表明,与 X11 相比,大多数 Wayland 合成器上的性能明显更差,同时还伴随着各种神秘 bug 和兼容性错误。目前,请在运行 Eden 时设置 QT_QPA_PLATFORM=xcb,或在启动参数中传入 -platform xcb。

Windows

支持 Windows 10 和 11。更低的版本不受支持。

要运行 Eden,你需要安装 Visual C++ Redistributable。

AMD/NVIDIA 驱动都无法达到 Linux 的 RADV 驱动的水平。兼容性大体相同,但与 Linux 相比,性能以及某些难以运行的游戏的体验可能会受到影响。

Windows on ARM

如果你使用的是 Snapdragon X 或 8CX,只有在自带驱动无法正常工作时,才安装 Vulkan 转换层。当然,请始终保持系统更新。

Android

始终建议使用散热器。手机 SoC 往往非常容易发热,尤其是采用三星工艺制造的芯片或功耗表现不佳的芯片。

搭载 Turnip 驱动的 Adreno 6xx 和 7xx GPU 始终具有最好的兼容性。"Stock"(系统自带)驱动在 Adreno 上会有更好的性能,但兼容性会有所下降。对 Stock(系统自带)驱动(包括 Adreno 8xx)的更好支持正在开发中。

始终建议使用 Android 16,因为它为 Vulkan 要求和兼容性带来了重大改进,而且带来了显著的性能提升。有用户报告称,部分 Pixel 手机在更新后性能提升超过 50%。

Mali、PowerVR、Xclipse 和其他 GPU 厂商在性能和兼容性上普遍有所欠缺。值得注意的是:

  • 除了 DXT-48-1536 之外,没有任何 PowerVR GPU 已知能运行 Eden。
  • 除了最新的(例如 Xclipse 950)之外,没有任何 Xclipse GPU 已知能运行 Eden。
  • Mali 的性能尤其糟糕,不过 Mali-G715(Tensor G4)和 Immortalis-G925 已知通常运行得出奇地好,尤其是在 Android 16 上。
  • 其他 GPU 厂商的状态未知。只要它们支持 Vulkan,理论上就可以运行 Eden。
  • 请注意,这些 GPU 通常不太适合驱动注入。如果你选择通过已 root 的系统注入自定义驱动(Panfrost、RADV 等),可能会获得不错的效果。

Qualcomm Snapdragon SoC 通常支持得最好。

  • Google Tensor 芯片的性能相当糟糕,但即使是 G1 也已被证明能够在 Pixel 6 Pro 上良好运行一些游戏。
  • Tensor G4 是目前支持最好的。G5 目前表现如何尚不清楚,但从纸面参数来看,在搭配原厂驱动的情况下,它的表现应该大致相当于 Snapdragon 8 Gen 2。
  • 2022 年之前制造的 Samsung Exynos 芯片不受支持。
  • MediaTek Dimensity 芯片性能非常弱,而且 2023 年年中之前的大多数芯片完全无法使用。
  • 这意味着大多数廉价手机将无法使用,因为它们通常使用旧款 MediaTek SoC。
  • 一般来说,如果你的手机价格没有至少达到 Switch 本身的价位,那么它就无法很好地模拟 Switch。
  • Snapdragon 865 和其他较老的 SoC 或许能从 Legacy 构建版本中获益。这些版本会降低性能,但应该能大幅提升兼容性。
  • 如果你不确定自己的 SoC 性能如何,请查阅 NanoReview——例如 Tensor G5。
  • 一个很好的对比基准是 Snapdragon 865——例如 Tensor vs SD865
  • 有些基准测试可能会由于热降频或 RAM 要求而产生误导。
    • 例如,Pixel 6a(Tensor G1)由于 RAM 不足和散热不佳,性能大约只有 865 的三分之一。
  • 记住——只要条件允许,务必使用散热器,而且你必须拥有至少 8GB 的 RAM!
  • 如果你不确定自己用的是哪款 SoC,请查阅 GSMArena——例如 Pixel 9 Pro

推荐使用自定义 ROM,前提是你清楚自己在做什么。

Eden 目前未在 F-Droid 或 Play Store 上架。请偶尔回来看看。

macOS

macOS 相对稳定,只是偶尔会出现崩溃和 bug。不过,由于 MoltenVK 层,兼容性可能会受到影响。

请注意,使用高于 6.7.3 的 Qt 版本构建 GUI 版本会导致莫名其妙的 bug、Vulkan 错误和崩溃,同时还带有随机冻结整个系统 UI 的“酷炫”功能;我们建议你像 CI 那样使用 6.7.3(通过 aqtinstall)或更早版本进行构建。

*BSD, Solaris

BSD 和 Solaris 发行版在 Vulkan 支持和软件移植方面往往落后于 Linux。例如,OpenIndiana(Solaris)对 Qt 的打包不完善,这意味着目前推荐的使用方式是使用 eden-cli。Solaris 通常在使用 OpenGL 时表现也更好。

这些平台上对 AMD GPU 的支持有限或完全不存在,但 OpenBSD 除外,它拥有专门的 AMD GPU 驱动栈。

HaikuOS

HaikuOS 支持(见下文)Vulkan 1.3,并附带 Mesa 24.0。由于使用的是 OpenGL ES 而非桌面版 OpenGL,实际上 OpenGL 后端在稳定性和系统支持方面比 Vulkan 后端更差。非常不推荐使用 OpenGL,因为它使用的是树外构建的 Mesa,而且这些构建通常也很不稳定。建议用户改用 Vulkan。

  • 此外,还存在适用于 NVIDIA 和 Intel iGPU 的系统驱动,它们通过 Xcb 接口提供原生 Vulkan ICD,而不是原生 BView 接口。
  • 为了在原生 BView 支持下获得 Vulkan 1.3 支持,可以从源代码编译 Swiftshader;参见此帖。

虚拟机

Eden “可以”在虚拟机中运行,但只能使用软件渲染器,除非你创建了带有 GPU 直通的硬件加速 KVM。如果你真的想这样做,又没有闲置的 GPU,RX 570 和 580 GPU 在黑市上非常便宜,而且性能足以让大多数商业游戏以 60 FPS 运行。

一些用户和开发者已成功在 Linux 上配合 Windows 虚拟机使用纯 OpenGL 加速的 KVM,但设置起来极其繁琐。你或许还是选择双系统启动更好。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 eg/Eglantine