Blender crash a grafická karta Intel i915

Autor: | 23. 3. 2021 | IT, Linux, Video

Štítky: blender | intel

Při práci s Blenderem jsem se na notebooku s grafickou kartou Intel setkával s pády Blenderu. Původně jsem hledal chybu v samotné verzi Blenderu, nicméně zjistil jsem, že problém se vyskytuje u všech verzí. To nejhorší na pádu bylo, že zamrznul celý desktop. Ne zřídka jsem musel použít Ctrl + Alt + F3 a restartovat GDM.

Později jsem si v logu všimnul těchto chyb:

[  353.699935] Asynchronous wait on fence 0000:00:02.0:gnome-shell[3045]:1950 timed out (hint:intel_atomic_commit_ready [i915])
[  353.700001] Asynchronous wait on fence 0000:00:02.0:gnome-shell[3045]:1950 timed out (hint:intel_atomic_commit_ready [i915])
[  353.700058] Asynchronous wait on fence 0000:00:02.0:gnome-shell[3045]:1950 timed out (hint:intel_atomic_commit_ready [i915])
[  356.165370] i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
[  356.165378] i915 0000:00:02.0: [drm] blender[5998] context reset due to GPU hang
[  356.181847] i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:87f59eb9, in blender [5998]
[  357.669334] i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
[  357.669343] i915 0000:00:02.0: [drm] blender[5998] context reset due to GPU hang
[  357.686560] i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:87cabff2, in blender [5998]
[  359.049269] i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
[  359.049278] i915 0000:00:02.0: [drm] blender[5998] context reset due to GPU hang
[  359.063068] i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:87cabff2, in blender [5998]

Problém nebyl na straně Blenderu, ale na straně ovladačů. Na fórech jsem našel tipy, že je potřeba použít novější jádro. Nakonec jsem zkompiloval nejnovější jádro a stejně se problém nevyřešil.

uname -a
Linux zenbook 5.10.13-051013-generic #202102032337 SMP Thu Feb 4 00:17:21 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Řešení workaround

Nedávno jsem našel ve fórech řešení, které mi nejvíce pomohlo. Sice jsem jeden pád zaznamenal, ale s tím, co se dělo předtím se to nedá ani srovnávat. V článku „MX Linux and Blender crash“ je problematika podrobněji popsána.

Podle popisu by měla stačit jedna z následujících variant, nicméně rozhodl jsem se raději použít obě. První je spustit Blender s nastavením proměnné INTEL_DEBUG a pak zvýšením timaout pro GPU. Příkazy vypadají takto:

 

 INTEL_DEBUG=reemit blender
 echo 10000 > /sys/class/drm/card0/engine/rcs0/preempt_timeout_ms

 

Další články