Blender se bloquea al usar gráficos integrados Intel

Blender se bloquea al usar gráficos integrados Intel

Blender se bloquea frecuentemente y es necesario cerrarlo durante el uso normal del modo de edición y el modo de objeto con gráficos integrados Intel. Estoy usando la versión 3.6.0 en Ubuntu 22.04, aunque el problema está presente en otras versiones. He tenido este problema desde que tuve Ubuntu instalado y persistió a través de una reinstalación de Ubuntu. Pude encontrar lo siguiente en Registros después de una congelación:

En "sistema"

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

En "aplicaciones"

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'

Los bloqueos parecen desaparecer si uso una tarjeta gráfica externa bastante anticuada (lo cual es peor en cualquier otro caso de uso), por lo que el problema parece específico de los gráficos Intel. Ningún otro programa parece tener problemas con él. He buscado bastante, pero hay una probabilidad >50% de que me esté perdiendo algo dolorosamente obvio. ¡Gracias!

EDITAR: La instalación de libdecor no influye en los bloqueos, por lo que los primeros mensajes de registro son los únicos relevantes.

Respuesta1

También tuve este problema en Debian 11 ("Bullseye") con Blender 3.6.1 (binario oficial de Linux). ¡Blender deja de responder simplemente cambiando el tamaño del cubo de inicio! dmesgmuestra mensajes similares sobre el bloqueo de la GPU. Mi tarjeta gráfica es Skylake GT2 [HD Graphics 520] integrada junto con un Intel Core i5-6300U.

Encontré este problema reportado como problema2935(y duplicar3125) en el repositorio de Freedesktop para el controlador del kernel Intel drm/i915.

Probé la solución alternativa de Petr Nosek mencionada en estas discusiones:

Primero, aumente el parámetro del controlador preempt_timeout_msa 10000. Ese cambio se puede realizar con cualquier editor de texto (con permiso de root), pero aquí hay un comando de una línea que hace el trabajo (usando teecomo se explica enhttps://stackoverflow.com/a/36853636):

$ echo 10000 | sudo tee /sys/class/drm/card0/engine/rcs0/preempt_timeout_ms

El cambio se puede comprobar mediante $ cat /sys/class/drm/card0/engine/rcs0/preempt_timeout_ms.

Observación: este cambio de configuración del controlador es¡No es persistente entre reinicios!

Luego, Blender debería iniciarse con una variable de entorno (no tengo idea de lo que hace, pero está documentado enhttps://docs.mesa3d.org/envvars.html#intel-driver-environment-variables).

$ INTEL_DEBUG=reemit blender

Sin embargo, este segundo paso me resultó más fácil de automatizar modificando el blender.desktoparchivo de inicio que había colocado en ~/.local/share/applications. Siguientehttps://unix.stackexchange.com/q/469466/194642, He modificado la línea Exec para que sea:

Exec=env INTEL_DEBUG=reemit /my/path/to/blender/bin/blender-3.6.1/blender %f

Hasta ahora funciona (no más congelación de Blender)...

información relacionada