Blender trava usando gráficos integrados Intel

Blender trava usando gráficos integrados Intel

O Blender trava frequentemente e precisa ser encerrado durante o uso normal do modo de edição e modo de objeto com gráficos integrados da Intel. Estou usando a versão 3.6.0 no Ubuntu 22.04, embora o problema esteja presente em outras versões. Eu tive esse problema desde que instalei o Ubuntu e ele persistiu durante a reinstalação do Ubuntu. Consegui encontrar o seguinte nos Logs após um congelamento:

Em "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

Em "aplicativos"

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'

Os congelamentos parecem desaparecer se eu usar uma placa gráfica externa bastante antiquada (o que é pior em todos os outros casos de uso), então o problema parece específico dos gráficos Intel. Nenhum outro programa parece ter problemas com isso. Pesquisei bastante, mas há mais de 50% de chance de estar perdendo algo dolorosamente óbvio. Obrigado!

EDIT: A instalação da libdecor não tem influência nos travamentos, portanto as primeiras mensagens de log são as únicas relevantes.

Responder1

Também fui atingido por esse problema no Debian 11 ("Bullseye") com o Blender 3.6.1 (binário oficial do Linux). O Blender não responde simplesmente redimensionando o cubo de inicialização! dmesgmostra mensagens semelhantes sobre travamento da GPU. Minha placa gráfica é Skylake GT2 [HD Graphics 520] integrada em um Intel Core i5-6300U.

Encontrei este problema relatado como problema2935(e duplicado3125) no repositório Freedesktop para driver de kernel Intel drm/i915.

Eu tentei a solução alternativa de Petr Nosek mencionada nessas discussões:

Primeiro, aumente o parâmetro do driver preempt_timeout_mspara 10000. Essa alteração pode ser feita com qualquer editor de texto (com permissão de root), mas aqui está um comando de uma linha que faz o trabalho (usando teeconforme explicado porhttps://stackoverflow.com/a/36853636):

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

A alteração pode ser verificada por $ cat /sys/class/drm/card0/engine/rcs0/preempt_timeout_ms.

Observação: esta alteração na configuração do driver énão persistente nas reinicializações!

Então, o Blender deve ser iniciado com uma variável de ambiente (não tenho ideia do que ela faz, mas está documentada emhttps://docs.mesa3d.org/envvars.html#intel-driver-environment-variables).

$ INTEL_DEBUG=reemit blender

No entanto, achei esta segunda etapa mais fácil de automatizar, modificando o blender.desktoparquivo do inicializador que coloquei no formato ~/.local/share/applications. Seguindohttps://unix.stackexchange.com/q/469466/194642, modifiquei a linha Exec para ser:

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

Até agora funciona (não há mais congelamento do Blender)...

informação relacionada