在正常使用 Intel 集成显卡的编辑模式和对象模式时,Blender 经常挂起,必须将其关闭。我在 Ubuntu 22.04 上使用 3.6.0 版本,但其他版本也存在此问题。自从我安装 Ubuntu 以来,这个问题一直存在,而且在重新安装 Ubuntu 后仍然存在。冻结后,我在日志中找到以下内容:
在“系统”下
20:02:34 kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85df9e9f, in blender [35275]
20:02:34 kernel: i915 0000:00:02.0: [drm] blender[35275] context reset due to GPU hang
在“应用程序”下
20:02:26 blender: WAYLAND found but libdecor was not, install libdecor for Wayland support, falling back to X11
20:02:26 blender: Unable to find 'libdecor-0.so'
如果我使用相当老旧的外置显卡(在其他所有用例中都更糟糕),冻结似乎就会消失,所以问题似乎只出现在英特尔显卡上。似乎没有其他程序遇到这个问题。我搜索了好一会儿,但有 50% 以上的可能性是我错过了一些显而易见的东西。谢谢!
编辑:安装 libdecor 对挂起没有影响,因此第一条日志消息是唯一相关的消息。
答案1
我在 Debian 11(“Bullseye”)上使用 Blender 3.6.1(官方 Linux 二进制文件)时也遇到了这个问题。Blender 只需调整启动立方体的大小即可无响应!dmesg
显示有关 GPU 挂起的类似消息。我的显卡是 Skylake GT2 [HD Graphics 520],与 Intel Core i5-6300U 集成。
我发现这个问题被报告为问题2935(并重复3125) 在 Freedesktop repo 上查找 Intel drm/i915 内核驱动程序。
我尝试过 Petr Nosek 在这些讨论中提到的解决方法:
首先,将驱动程序参数增加到preempt_timeout_ms
10000。可以使用任何文本编辑器(具有 root 权限)进行此更改,但这里有一个单行命令可以完成此工作(使用tee
如下所述https://stackoverflow.com/a/36853636):
$ echo 10000 | sudo tee /sys/class/drm/card0/engine/rcs0/preempt_timeout_ms
可以通过 检查更改$ cat /sys/class/drm/card0/engine/rcs0/preempt_timeout_ms
。
备注:此驱动程序设置更改是重启后不会持久!
然后,Blender 应该使用环境变量启动(不知道它有什么用,但它有文档记录在https://docs.mesa3d.org/envvars.html#intel-driver-environment-variables)。
$ INTEL_DEBUG=reemit blender
blender.desktop
但是,我发现通过修改我放置在中的启动器文件,第二步更容易实现自动化~/.local/share/applications
。以下https://unix.stackexchange.com/q/469466/194642,我已将 Exec 行修改为:
Exec=env INTEL_DEBUG=reemit /my/path/to/blender/bin/blender-3.6.1/blender %f
到目前为止它可以正常工作(不再有 Blender 冻结)...