通常、Blenderを起動すると
一瞬コンソールが立ち上がった後、Blenderのウィンドウが立ち上がると思います。
今回は、一瞬コンソールが立ち上がった後
いくら待ってもBlenderのウィンドウが表示されない
という状況に陥りましたので、その解決方法と自分が辿った手順を
忘れないように記録したいと思います。
Blender関係の環境トラブルの記事は少ないので
少しでも誰かの役に立てばと思います。
環境
PC環境かなり古いです
OS: windows 10
メモリ: 32GB
CPU: Intel Corei7-6700 CPU@3.40GHz
GPU1: Intel(R) HD Graphics 530
ドライバ: ver. 27.20.100.8682
GPU2: NVIDIA Quadro K620
ドライバ: ver. 10.18.13.5330
Blender: ver. 2.90 -> 2.91 -> ver. 2.83
何が原因だったか
NVIDIA GeForce とかにしとけばよかったのかなって思いました。
何が原因だったのか、結論から言うと
Blenderを2.90から2.91にアップデートしたことにより
OpenGL関係のファイルが足りなくなったこと と、もう一つ
IntelGraphicsドライバのバージョンが間違っていた ことが原因でした。
opengl32.dll というファイルをblender.exeと同じディレクトリに置くことで
Blenderが起動できるようになりました。
その後、Blenderの動作が異様に重くなったため
原因調査したところ、IntelGraphicのバージョンがおかしいと気付き
ダウングレードしてみたら快適に動くようになりました!
今回試した修正方法を
この後詳しく触れていきます。
現象
Blenderの2.91が最新版としてリリースされていたので使ってみようと思いインストール
Blenderを起動すると、一瞬コンソールが立ち上がり、すぐに消える。
その後、いくら待ってもBlenderのウィンドウが立ち上がらない。
おかしいなと思い
一瞬表示されるコンソールの文字を目を凝らして見てみると
なんかアプリがclashしてるっぽいことが書いてあった(と思う)
まずは、Blenderのログファイルを確認する
何らかの原因で、Blenderが落ちている。
起動中のコマンドプロンプトを見たところ
logが吐かれていそうなので、logファイルを探してみることに
C:\Users\name\AppData\Local\Temp/blender.clash.txt
ここにあるっぽい
clash.txt
ということは、やはり起動中にクラッシュしてしまったのか
中身はこんな感じ
# Blender 2.90.1, Commit date: 2020-09-23 06:43, Hash 3e85bb34d0d7
# backtrace
Exception Record:
ExceptionCode : EXCEPTION_ACCESS_VIOLATION # これがエラーコード?
Exception Address : 0x0000000000000000
Exception Module :
Exception Flags : 0x00000000
Exception Parameters : 0x2
Parameters[0] : 0x0000000000000008
Parameters[1] : 0x0000000000000000
Stack trace:
blender.exe :0x00007FF648697950 bli_windows_system_backtrace_stack_thread
blender.exe :0x00007FF648696BC0 BLI_system_backtrace
blender.exe :0x00007FF644895D10 windows_exception_handler
KERNELBASE.dll :0x00007FFDA47E0F90 UnhandledExceptionFilter
ntdll.dll :0x00007FFDA7203600 memset
ntdll.dll :0x00007FFDA71ECC40 _C_specific_handler
ntdll.dll :0x00007FFDA7201730 _chkstk
ntdll.dll :0x00007FFDA71CA4F0 RtlRaiseException
ntdll.dll :0x00007FFDA7200490 KiUserExceptionDispatcher
EXCEPTION_ACCESS_VIOLATION
これがエラーコードっぽいので、これでぐぐってみる。
調べてみるとドライバのアップデートで解決したという記事が多いので
NVIDIAのドライバアップデートと、Intelのドライバアップデートを試してみる。
NVIDIAとIntel Graphicsのアップデート
NVIDIAとIntelのバージョンアップして、以下のバージョンになりましたが
やはりBlenderは起動せず。
NVIDIA Quadro K620 ver. 27.21.14.527
Intel(R) HD Graphics 530 ver. 27.20.100.8682
ドライバのバージョン確認手順
ドライバのバージョン確認方法とアップデート手順も記載します。
- Windowsキー+ Rで、実行ウィンドウを開きます。
- 「dxdiag」と入力してOKをクリックし、DirectX 診断ツールを開きます。
DirectX 診断ツールでは、OSバージョンやGPUのバージョンを確認できます。 - 診断ツールの「ディスプレイ」から、グラフィックカードのバージョンを確認することができます。
Blenderをデバッグモードで起動してログを確認する
ドライバのバージョンアップでも改善しなかったので
さらにググってみると、Blenderをデバッグモードで起動できるよう。
--debug-all
オプションをつけて、powershell
から起動させて
ログを見れるようなので、試してみることに。
手順
blender.exeファイルのあるフォルダで
Shift+右クリック -> 「Power Shellウィンドウをここで開く」をクリック
PowerShellが起動するので、以下のコマンドを実行
./blender.exe --debug-all
この状態で起動すると、デバッグログがPowerShellに表示される
Logは以下
Switching to fully guarded memory allocator.
read file
Version 280 sub 39 date unknown hash unknown
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
graph_id_tag_update: id=SCScene flags=LEGACY_0 source=USER_EDIT
Error : EXCEPTION_ACCESS_VIOLATION
Address : 0x0000000000000000
Module :
Thread : 00003670
Writing: C:\Users\name\AppData\Local\Temp\blender.crash.txt
graph_id_tag_update: id=SCScene flags=LEGACY_0 source=USER_EDIT` のところでエラーになっているのだろうか・・・?
opengl32.dllを入れる
調べていくと
似たような症状が出ているページで、後日解決したとのことでコメントがついていました。opengl32.dll
をダウンロードして、blender.exeと同じディレクトリに入れればOK、ということらしい。。。
ダメ元でやってみたら、起動は一応できた!
が、すぐに終了してしまう。。。別のエラーが発生していました。。
別のエラーが発生した
opengl32.dll
を入れて、再度BlenderをPowerShellから
デバッグモードで起動してみた時のログ。
# コマンド実行
PS D:\programs\Blender\2_91> ./blender.exe --debug-all
# ログ
Switching to fully guarded memory allocator.
read file
Version 280 sub 39 date unknown hash unknown
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
DEG_relations_tag_update: Tagging relations for update.
graph_id_tag_update: id=SCScene flags=LEGACY_0 source=USER_EDIT
ED_screen_refresh: set screen
~~ 中略 ~~
Python Script Load Time 0.1910
Warning, unregistered class: ObjectConstraintPanel(Panel)
Warning, unregistered class: BoneConstraintPanel(Panel)
Warning, unregistered class: ConstraintButtonsPanel(Panel)
Warning, unregistered class: ConstraintButtonsSubPanel(Panel)
Warning, unregistered class: SEQUENCER_PT_sound(Panel)
Warning, unregistered class: CYCLES_RENDER_PT_sampling_total(Panel)
loading preset: D:\programs\Blender\2_91\2.91\scripts\presets\keyconfig\blender.py
FRS_set_context: context 0x00000276D8C92F58 scene 0x00000276DB14B428
UI_menutype_draw: opening menu "WM_MT_splash"
ghost_event_proc: ghost redraw 1
ghost_event_proc: window 1 state = maximized
win move event pos 0 40 size 2560 1377
ED_screen_refresh: set screen
UI_menutype_draw: opening menu "TOPBAR_MT_editor_menus"
UI_menutype_draw: opening menu "TIME_MT_editor_menus"
UI_menutype_draw: opening menu "VIEW3D_MT_editor_menus"
# ここでエラーが発生
ERROR (gpu.shader): OVERLAY_shader_outline_prepass_pointcloud_1223 Linking:
|
| Error: Input block `ShaderStageInterface' is not an output of the previous stage
Error : EXCEPTION_ACCESS_VIOLATION
Address : 0x00007FF74F13DBF0
Module : blender.exe
Thread : 00001108
Writing: C:\Users\name\AppData\Local\Temp\blender.crash.txt
エラー部分のみの抜粋
ERROR (gpu.shader): OVERLAY_shader_outline_prepass_pointcloud_1223 Linking:
|
| Error: Input block `ShaderStageInterface' is not an output of the previous stage
Error : EXCEPTION_ACCESS_VIOLATION
ShaderStageInterface
の出力先が違う、みたいな感じの内容でよいのか。
英語自信ないのもあるけど、そもそも ShaderStageInterface
が何を指しているか分からない・・・
Blenderを2.83にダウングレード
調べてると、とりあえずディスプレイドライバをアップデートしろ
というのがやはりある。
ダメ元でもう一度ドライバをアップデート
windows update もあったので、そちらもアップデートしてみる。
ここでアップデートする時に、ドライバのバージョンを間違えて入れてしまい
Blenderの動作が重くなる不具合が発生しました。
アップデート後、.exeから起動すると
グレー画面が表示され応答しなくなる。。。
power-shell
から、-debug-all
オプションをつけて実行すると
やはり同じ個所でエラーになって強制終了する。。。
試行錯誤している内に
互換性の問題なんじゃないかと思い
とりあえず起動できればなんでもいいやってことで
ダメ元でblender 2.83
を入れ直してみたところ、無事に起動できた。。。
2.9系と2.8系の違いってなんだろう・・・
GPUのサポート状況が2.8と2.9で違いそうだし
そのあたりの影響かもしれない。
Blenderの動作が異様に重くなる現象
Blender2.83を入れ直したあと、Blenderを動かしてみたところ
動作が重い。異様に重い。。。
カメラ操作だけで、CPUの負荷が100%を超えている・・
NVIDIAのドライバ設定の問題
Blenderが任意のGPUを使用してくれるように設定を変更ができるようなので
試してみました。
windowsの設定画面を開きます。
ディスプレイ -> グラフィックスの設定 で
blender.exeを追加 して
高パフォーマンスの設定 にしておく。
これで、Blenderの処理に、NVIDIAが使われるようになる、はず。
しかし、私の場合結果は変わらずでした。。。
しかもGPUには、ほぼ負荷がかかっていなかった。
つまり、Blenderの処理にNVIDIAが使われていないようだ。
NVIDIAのドライバをダウングレード
NVIDIAのドライバのバージョンを、ダメもとで古い状態に戻してみた
GPU: NVIDIA Quadro K620
ドライバ: ver. 27.21.14.5257 から
ドライバ: ver. 10.18.13.5330 にダウングレード
ver. 10.18.13.5330 が、Blenderが強制終了する不具合が起こる前の状態。
さくさく動いていたころのドライバのバージョン。
そのころにNVIDIAのGPUが使われていたかどうかは分からないが・・・
しかし、変化なし。
相変わらずCPUに負荷がかかりBlenderの動作が重い。
野良でインストールしたopengl32.dllは重いらしい・・・?
2014年のものですが
Blenderの日本公式の掲示板にこんな書き込みが
また、ゲームでは割とポピュラーな方法として、opengl32.dll を実行ファイルと同じフォルダに入れるというのもあります。
https://blender.jp/modules/newbb/viewtopic.php?topic_id=1597&pos=10
ただ、私も下の Mesa の Opengl32.dll を Blender のインストールフォルダに入れてみたのですが、表示されない領域があったり、文字もつぶれて読めない部分もあり、(私の古いPCの所為ですが)速度が遅くて使用できない状態でした。
このDLLはかなり昔の物だったようで、探せばもっと新しい DLL が見つかるかもしれません。
ただし信用できそうなところからダウンロードされることをおすすめします。
opengl32.dll
を入れても、うまく動作しない場合もあるようです。
表示されない領域などはなかったので、今回の自分のパターンとは違うかもですが。
信用できそうなところからダウンロード、ということで
やはり本家サイトからのダウンロードが一番良さそうです。
opengl32.dll
で検索すると、紹介しているサイトがたくさんでてきて
そこからもダウンロードできますが、
OpenGL32.dllはたぶん、ここが本家かも・・・。
https://blender.jp/modules/newbb/viewtopic.php?topic_id=1597&pos=10
www.opengl.org
WikiDownloading OpenGLから各OS別にダウンロードサイトに飛べるみたい。
(NVidiaだとディスプレイドライバーのダウンロードサイトに飛ばされるし・・・。)
Intelだとシステムを調べてくれるようなので、自分で探して適当なのをインストールするよりは安心できると思います。
IntelGraphicsのバージョンによって
Openglのサポートしているバージョンが違うっぽい。
つまり、今のIntelGraphicsで使っているOpenglのバージョンが
Blender2.83で使いたいOpenglのバージョンと食い違ってるってことかな?
Intel Graphics のドライバーを間違えていた可能性・・・?
intel core-i7 6700 で、第六世代なのに
第7世代のドライバを入れていたかもしれない・・・
今 ver 27.20.100.8682 が入っているので
15.45.33.5164を入れてみる
ver. 27.20.100.8682 から ver. 15.45.33.5164 へ、ダウングレード
ドライバを入れなおしたところ、Blenderの動作が軽くなった!!!
まとめ
再度に、Blenderが起動できなくなって自分がためした調査方法
解決策をまとめておきます。
1.Clashログを確認する
C:\Users\name\AppData\Local\Temp/blender.clash.txt
ここにあるっぽい
2.NVIDIAとIntel Graphicsのアップデート
バージョン間違えないように!!笑
3.Blenderをデバッグモードで起動してログを確認
blender.exeのあるフォルダでShift+右クリック
PowerShellで ./blender.exe –debug-all を実行!
4.opengl32.dllを入れる
blender.exeのあるフォルダにopengl32.dll
を入れる
5.動いていたころのBlenderを入れてみる
2.8系、2.9系など、メジャーバージョンアップでは
大きく仕様が変わることもあるので、別バージョンを入れて検証してみるのも効果的です。
自分は仕事ではMacBookを使っているので
windows環境でのトラブルには結構弱いです。
根本的に知識がないのもあるので
今回のようにバージョン入れ間違えていた、みたいな凡ミスが原因で
Blenderが起動しなくなることもままあります。
ので、少しでも誰かの助けになればと思います!