
C^2M 引擎
C2ME 插件,通过 OpenCL 提供硬件加速的世界生成功能。
C2ME OpenCL 加速模块
实验性 C2ME 附加组件,通过 OpenCL 提供硬件加速的世界生成。需要基础 C2ME 模组。
强烈建议安装 ScalableLux,因为光照处理很容易成为瓶颈。
注意
此模组需要 Java 25 才能正常运行,即使在低于 26.1 的版本上也是如此。
世界生成在 vanilla 世界生成中应具有完全的 vanilla 兼容性,但有一个例外:
生物群系边界可能会在极少数情况下偏移一到两个方块,因为原版实现依赖于顺序。(换句话说,此模组与 Noisium 及其分支(如 NoisiumForked)一样接近 vanilla,这些模组尽管声称完全兼容 vanilla,但也存在相同的问题)
常见的世界生成非确定性适用。
目前仅实现了噪声阶段和生物群系阶段。
在 CPU 性能受限时,原版主世界预期性能提升超过 80%。性能会因种子、数据包等因素而异。
另外,世界生成现在包含 GPU 驱动程序错误。在现有世界上使用前请备份。
已知某些世界生成模组会导致灾难性失败。详情请参阅模组兼容性部分。
平台兼容性矩阵
支持:已知在一般情况下完全正常工作部分:已知可以工作但存在重大限制不支持:已知完全无法工作N/A:不适用,因为组合不存在
| 供应商 | 代次 | 驱动程序 | Windows | Linux | MacOS |
|---|---|---|---|---|---|
| NVIDIA | Maxwell 及更新 | 专有和开源 | 支持 | 部分¹ | 未知 |
| NVIDIA | Kepler | 专有 | 未知 | 支持 | 未知 |
| NVIDIA | 更旧的显卡 | 任何 | 未知 | 未知 | 未知 |
| NVIDIA | nouveau 支持的 GPU | Rusticl on nouveau | N/A | 未知 | N/A |
| Intel | Gen9, Gen9.5⁵ | 官方² | 部分³ | 部分⁴ | 未知 |
| Intel | Gen11, Gen12, Gen12.5⁶ | 官方² | 不支持¹² | 不支持¹² | 未知 |
| Intel | Gen12.7, Xe2, Xe3 及更新⁷ | 官方² | 部分³ | 部分⁴ | 未知 |
| Intel | 更旧的显卡 | 官方² | 未知 | 未知 | 未知 |
| Intel | iris 支持的 GPU | Rusticl on iris | N/A | 未知 | N/A |
| AMD | RDNA1 及更新¹⁴ | 官方⁸ | 支持⁹ | 支持 | 未知 |
| AMD | GCN | 官方¹⁰ | 不支持¹³ | 不支持¹³ | 未知 |
| AMD | radeonsi 支持的 GPU | Rusticl on radeonsi | N/A | 部分¹¹ | N/A |
| Qualcomm | 任何 | 官方 | 不支持¹² | 不支持¹² | N/A |
| Apple | 任何 | MacOS 驱动程序 | N/A | N/A | 不支持¹² |
| Apple | 任何 | Rusticl on asahi | N/A | 未知 | N/A |
- ¹ 已知驱动程序在一段时间后会挂起。驱动分支 535 LTS 似乎工作正常。
- ² Windows 上的官方驱动程序包。Gen9 和 Gen9.5 需要最新的驱动程序:
Gen9: https://www.intel.com/content/www/us/en/download/762755/intel-6th-gen-processor-graphics-windows.html
Gen9.5: https://www.intel.com/content/www/us/en/download/776137/intel-7th-10th-gen-processor-graphics-windows.html
Linux: https://github.com/intel/compute-runtime - ³ 已知 GPU 几乎在所有非 vanilla 世界生成时都会崩溃。你的体验可能有所不同。
- ⁴ 已知 GPU 在处理一些复杂的生物群系数据包(如 Terralith)时会崩溃。你的体验可能有所不同。
- ⁵ Gen9 和 Gen9.5 是第 6-9 代酷睿处理器以及第 10 代非 G 系列酷睿处理器的集成显卡
- ⁶ 此处的 Gen11、Gen12、Gen12.5 是第 10 代 G 系列酷睿处理器、第 11-14 代酷睿处理器以及 Arc DG1、Arc A 系列的集成显卡
- ⁷ Gen12.7 指 Meteor Lake 和 Arrow Lake 的集成显卡。
此时它是 Core Ultra 100 系列及更高版本处理器以及 Battlemage 独立显卡及更高版本的集成显卡。 - ⁸ Windows 上的官方驱动程序包。Linux 上的 ROCm 运行时。
- ⁹ 已知驱动程序版本 26.5.1 总是崩溃。升级到 26.6.1+ 的现有安装也可能崩溃。
如果你在 26.6.1+ 上遇到崩溃,建议使用 DDU 然后进行全新安装。 - ¹⁰ Windows 上的官方驱动程序包。Linux 上的 AMDGPU-Pro 运行时。
- ¹¹ 已知 Mesa 26.1.x 分支在 RDNA3/4 上可以工作。任何硬件组合都可能发生任何情况,包括损坏的世界生成。你的体验可能有所不同。
- ¹² 缺少 FP64 支持
- ¹³ 驱动程序崩溃
- ¹⁴ 不包括 Ryzen 7000 系列和 9000 系列集成显卡。它们对于此任务来说太慢了。
此处未列出的任何硬件均处于“未知”状态。欢迎测试满足以下最低要求的其他硬件配置。
最低硬件要求
- 可工作的 OpenCL 1.2+ 驱动程序
cl_khr_fp64支持(fp64 支持)
建议具备的条件
- 可工作的 OpenCL 3.0 驱动程序
cl_khr_device_uuid用于稳定的设备匹配CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE用于最佳性能。AMD GPU 上不存在cl_khr_priority_hints和cl_khr_throttle_hints用于队列优先级。已知仅存在于 Intel GPU 上- 非统一工作组,Nvidia GPU 和一些 AMD GPU 上不存在
使用 Chunky 的性能预期
在 vanilla 主世界实现 1200+ cps 目标:
CPU:现代中端台式机(9700X、9800X3D、245K)
GPU:
- Nvidia GTX 1060 或更高
- AMD Radeon RX 6500 XT 或更高
- Intel Arc B570 或更高(Intel 没有更弱的 GPU,所以就这样)
在 vanilla 主世界实现 2500+ cps 目标:
CPU:现代旗舰台式机(9950X、9950X3D、285K、270K+)
GPU:
- Nvidia GTX 1080 Ti 或更高,RTX 4060 Ti 或更高
- AMD Radeon RX 7600 XT 或更高
- Intel Arc B570 或更高(Intel 仍然没有更弱的 GPU)
使用方法
Windows
- 安装 Fabric
- 安装模组
- 完成
Linux
由于大多数 Linux 发行版没有预装 OpenCL,你需要手动安装。
在 Flatpak 中运行是不受支持的配置
Flatpak 目前仅支持 Rusticl(可能还有 NVIDIA)作为 OpenCL 运行时,这在 Linux 上非常粗糙。请参阅上面的兼容性矩阵。
对于 Nvidia 用户
通常你的发行版提供的 nvidia 驱动程序包包含 OpenCL 驱动程序。你应该可以直接使用。如果没有,请参阅以下特定发行版的设置。
基于 Debian 的发行版(如 Ubuntu)
所有供应商:安装 ocl-icd-opencl-dev
Nvidia:安装 nvidia-driver-full 包
AMD:安装 rocm-opencl-icd 包
Intel:对于 Gen12 及以上版本安装 intel-opencl-icd,对于较旧的 iGPU(在 Debian 13 上不可用,你需要编译它们)安装 intel-opencl-icd-legacy
Arch Linux
https://wiki.archlinux.org/title/General-purpose_computing_on_graphics_processing_units#OpenCL
所有供应商:安装 ocl-icd
Nvidia:安装 opencl-nvidia
AMD:安装 rocm-opencl-runtime
Intel:对于 Gen12 及以上版本安装 intel-compute-runtime,对于较旧的 iGPU 从 AUR 安装 intel-compute-runtime-legacy
基于 Fedora 的发行版
注意:如果你使用带有 AMD GPU 的 Bazzite,你需要切换到 Bazzite-DX,而不是按照以下步骤操作。
所有供应商:安装 ocl-icd-devel
Nvidia:https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/fedora.html
AMD:安装 rocm-opencl
Intel:对于 Xe 安装 intel-opencl
使用 Rusticl(非常实验性)
这需要 Mesa 26.1 及以上版本,并且需要启用 rusticl+fp64。
兼容性
数据包兼容性
此功能保证与可以在 vanilla 中加载的数据包一起工作。例如:
- Stardust Labs 数据包(Terralith、Incedium、...)
- Tectonic
- CliffTree
- ... 更多
模组兼容性
大多数非世界生成模组应该可以工作。
对于世界生成模组:
- 重新打包数据包的模组(即,如果重命名为 .zip 仍可作为数据包工作),请参阅数据包兼容性。
- Tectonic 作为模组可以工作
- 使用自定义密度函数的模组目前不工作。(例如 Ender space、The Bumblezone)
- 推出全新世界生成器的模组不工作,并且如果没有大量工作可能永远无法工作。(例如 Big Globe)
- 其他特殊情况:
- Biomes O' Plenty:导致生物群系放置完全失败
- TerraBlender:也导致生物群系放置完全失败
已知问题:
- 已知着色器编译需要一段时间,具体取决于所使用的数据包。
- 堆外内存使用量增加预计用于着色器编译。
- 即使配置文件中将 pocl 列入黑名单,使用 CPU 后端的 PoCL 几乎肯定会崩溃。解决方法是完全删除它。
- 直接引用
minecraft:beardifier密度函数的数据包可能在地形形状上出现轻微错误。没有修复计划,因为 vanilla 不受此影响,修复它将使 GPU 吞吐量减半。
调优建议,适用于只想让世界生成速度更快的人
感谢 Discord 上的 skillnoob_。
模组:
- ScalableLux(光照引擎优化,高性能区块生成中的瓶颈)
- Lithium(各种内容的通用优化模组)
- FerriteCore(内存使用改进)
- Structure Layout Optimizer(使结构生成更快)
- zFastNoise(加速世界生成中的噪声和表面构建器)
Java/JVM 参数:
-XX:+UseCompactObjectHeaders -Dchunky.maxWorkingCount=768(-Dchunky.maxWorkingCount=768参数仅在你使用 chunky 时相关)。- 如果分配超过 16GB 内存,使用
-XX:+UseZGC,否则使用-XX:+UseG1GC -XX:G1HeapRegionSize=16M或-XX:+UseShenandoahGC -XX:ShenandoahGCMode=generational。
然后在你的配置文件夹中的 c2me.toml 中,你可以将 globalExecutorParallelism = "default" 选项更改为你的线程数或略低于它。
例如,如果你有一个 16 线程的 CPU,你需要将其更改为 globalExecutorParallelism = 16。
注意:如果你需要 fps 和 tps 稳定,你需要为系统的其余部分保留几个线程。
你还可以在配置中启用 gcFreeChunkSerializer = true,这可以提高区块生成性能。
常见问题
这会使用多个 GPU 吗?
默认情况下,它会在它能找到的所有 OpenCL 设备上执行最少负载调度。
但是,通常你的 CPU 是瓶颈。请参阅下文。
所以除非你只有一堆 GT1030,否则不要期望多 GPU 能带来任何改进。
我的 GPU 几乎未被使用,而我的 CPU 达到最大负载。发生了什么?
使用合理的 CPU 和 GPU 组合,你将会受 CPU 限制。这主要是因为只实现了噪声阶段和生物群系阶段。
其他阶段可能在将来实现。
如何选择 GPU?
你可以在配置文件中指定白名单和黑名单。设备 UUID 可以在日志中找到。
AMD GPU 名称在日志中是 gfx something,而不是它们的营销名称。
voxy 能与此兼容吗?
可以。
简而言之,要为 voxy 生成渲染距离,请安装 Chunky,运行 /voxy import current,然后启动一个 chunky 任务。建议加入他们的 Discord 服务器以获取更多信息。
Distant Horizons 能与此兼容吗?
简短回答:不推荐。请改用 Voxy。
详细回答:
DH 太慢,看不到此模组带来的好处。
如果你仍然打算使用 DH,请在 DH 中使用 Internal Server / Full - Save Chunks 模式才能使加速生效。
即便如此,你可能看不到改进,因为 LoD 生成已经是链条中最慢的部分。
我收到 OpenCL error [-1001]。这意味着什么?
OpenCL ICD 加载器无法找到任何 OpenCL 驱动程序。检查你的驱动程序安装。
建议使用 clinfo 工具进行快速检查。
这在专用服务器上工作吗?
只要驱动程序就位,在专用服务器和单人游戏上都能工作。
专用服务器仅附带 linux x86_64、linux arm64 和 windows x86_64 二进制文件。
如果初始化失败,我可以让它回退到正常的世界生成吗?
默认情况下不行。可以通过配置文件中的 openclAccel.allowIncompatibilityFallback 来实现。
我听说 Vulkan 是未来的图形 API。为什么选择 OpenCL?
- 我熟悉它
- 我在 vulkan 中需要无类型指针,直到最近才在 Vulkan 中存在
这实际上要求 Vulkan 1.4,大大缩小了硬件兼容性 - Vulkan 没有明确指定 FP64 精度,只说了“至少与 FP32 相同”。
- 正确的舍入除法和平方根在 vulkan 规范中仍然缺失
为什么不是 CUDA?或者 Rocm?或者 Level0?或者 Metal?
没有供应商锁定的 API。
我使用带有 RDNA GPU 的 AMD,在世界生成开始之前就看到崩溃。为什么?
已知驱动程序版本 26.5.1 总是崩溃。升级到 26.6.1 的现有安装也可能崩溃。
如果你在 26.6.1 上遇到崩溃,建议使用 DDU 然后进行全新的驱动程序安装。
请参阅平台兼容性矩阵中的脚注 9。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。