在linux下使用nvidia的体验确实是一言难尽,有着许多的bug,经常会屏幕撕裂,不过经过仔细的检查,发现是有很多窗口跑在xwayland兼容层了,兼容层的垂直同步做的不太行(也有可能是我没配置好)

安装驱动

驱动我在安装好arch后就打上了,根据arch linux官方的教程配置一下就差不多了,不过有个雷点,就是wiki中提到的

https://wiki.archlinux.org/title/NVIDIA#Basic_support

Basic support  基本支持

There are two kernel parameters for the nvidia_drm module to be considered: modeset and fbdev. Both are enabled by default when using the nvidia-utils package. NVIDIA also plans to enable them by default in a future release.
要考虑 nvidia_drm 模块有两个内核参数: modesetfbdev。在使用 nvidia-utils 软件包时,两者都默认启用 。NVIDIA 还计划在未来版本中默认启用它们

默认启用其实是没有的,还是要自己往引导文件内追加这两个参数。

nvidia_drm.modeset=1 nvidia_drm.fbdev=1

这边有个小坑,很多教程都说fbdev不是必选项,但是根据我的测试,要正常使用nvidia渲染画面(尤其是opengl),必须打开,我就是在这边被坑了好久(6个月)!!!!

https://wiki.archlinux.org/title/NVIDIA#fbdev

fbdev

Enabling fbdev is necessary for some Wayland configurations.
启用 fbdev 对于某些 Wayland 配置是必要的。

It is specifically a hard requirement on Linux 6.11 and later, but it is currently unclear whether this is intended behavior or a bug, see [2] for more details.
这在 Linux 6.11 及更高版本上是一个硬性要求,但目前尚不清楚这是有意为之还是错误,有关详细信息,请参见 [2]。

It can be set the same way as the modesetting parameter, with the difference that executing:
它可以像 modesetting 参数一样进行设置,区别在于执行:

# cat /sys/module/nvidia_drm/parameters/fbdev

Will return a missing file error if it is not set at all, instead of N.
如果根本没有设置,将返回 missing file 错误,而不是 N

让Minecraft在wayland下使用nvidia跑起来

首先我们得知道minecraft依赖glfw渲染,但是glfw在最近(2025-04-03)对于wayland的适配还属于半能用状态,尤其是有个大bug:程序无法控制鼠标位置,也就是说mc打开物品栏后鼠标不会居中,飘得到处都是,这非常影响使用,此外,假如跑在xwayland下,mc经常会屏幕撕裂(垂直同步开了也没用,只要出low帧就会撕裂,但是mc的low帧还是非常平常的)。

所以,该怎么办呢?

安装补丁

寻找办法之后发现archlinux的aur中有一个软件,解决了鼠标和wayland的问题,于是我赶快yay了下来

https://aur.archlinux.org/packages/glfw-wayland-minecraft-cursorfix

直接尝试发现没变化,仔细搜索后发现有好几个雷没避哈哈!

配置MC

首先你得确保你使用hmcl启动器或者你确保你的启动器有对应设置(应该都有的,有能力自己找一找)

对于HMCL,你需要进入到一个全局游戏设置或者独立游戏设置

拖到最下面,点击编辑高级设置

更改为系统glfw

拖到最下面打开最后两个选项

设置环境变量
https://github.com/BoyOrigin/glfw-wayland
Use it on Minecraft  在 Minecraft 上使用它

In order to use it on Minecraft, just add this to your VM options. -Dorg.lwjgl.glfw.libname=/your_download_path/libglfw.so.3.4
为了在 Minecraft 上使用它,只需将其添加到您的 VM 选项中。 -Dorg.lwjgl.glfw.libname=/your_download_path/libglfw.so.3.4

To use the patched GLFW library with Nvidia GPUs the __GL_THREADED_OPTIMIZATIONS environment variable needs to be set to 0.
要将修补后的 GLFW 库与 Nvidia GPU 一起使用,__GL_THREADED_OPTIMIZATIONS 环境变量需要设置为 0

The shared library is downloadable from our release page
共享库可从我们的发布页面下载

使用nvidia启动

请确保你安装或者配置好nvidia的prime-run以允许应用程序切换渲染卡(需要自己配置或安装)

forge启动崩溃补丁

-Dfml.earlyprogresswindow=false

大概遇到的问题就这么些,希望能帮到你在linux下愉快的使用nvidia在没有屏幕撕裂的wayland下玩MC!!

有帮到你的话请评论支持下吧!