1. Crashed when window reloaded
1.1. 実行環境(確認済み)
項目 | 値 |
---|---|
OS | Windows 11 |
Qt | 5.15.17 MSVC 2019 |
Qt Module | Qt Quick 3D |
1.2. 問題報告内容
画面の再ロード中にクラッシュする現象があります。
- クラッシュするタイミングは、一度メイン画面をアンロードして、再ロードしている途中
- この時アクティブになっているパーツは再ロード中を知らせるダイアログ
- クラッシュ時のスタックトレースに QSGOpenGLLayer::updateTexture のモジュールがある
- ダイアログにエフェクトを追加してから顕著に落ちるようになった
これらからダイアログにつけたエフェクト layer.effect: DropShadow が要因と考え、こちらを削除したところ、完全に出なくなったわけではないですが、頻度が下がりました。
※開き直し10数回に1回→66回に1回
原因として layer.effect が関係するというのはあるのでしょうか?
これはQtのバグでしょうか?あるいは作りの問題でしょうか?
回避策はありますでしょうか?
なお、上記コードの説明のため、3D_Moduleに再ロード中のダイアログを追加したものを作成しましたので、添付します。
ただし、このソースでは現象は再現していません。 ← main.qmlの内容に依存する様子。
以下追加したところの説明です。
- mainLoad.qml:69
- アンロード前にWindow(id: waitWindow)を表示します
- mainLoad.qml:77
- 画面再ロード開始で、ProcessingDialog(id: mainWindowReloading)を表示します
- mainLoad.qml:17
- ロード完了後に上記ウィンドウをダイアログを非表示にします
- ProcessingDialog.qml
- カスタムダイアログです。この中にある layer.effect: 2か所を削除すると頻度がさがりました