Skip to content
Snippets Groups Projects
Susumu Endo's avatar
Susumu Endo authored
13a88cbc
History

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か所を削除すると頻度がさがりました

アプリケーション