gtk_window_present(window);証拠(添付ファイル参照)は、起動遅延がGTKアプリケーションコードによるものではないことを強く示唆しています。
この遅延は、GLレンダリングパス内のVivante /dev/galcore ioctlのブロッキングと関連しているようです。ソフトウェアレンダリング(GSK_RENDERER=カイロ)はこの問題を回避します。
Vivante GPUスタックを用いたi.MX8MPでのGTK4/OpenGL起動**レイテンシ**に関する既知の問題、デバッグ方法、設定変更、または修正方法について のガイダン スを探しています。
こんにちは、 @jim777さん
詳細な情報を共有していただき、ありがとうございます。最小限で再現可能なGTK4のソースコード例を教えてもらえますか?NXP BSPでさらにテストを実施する必要があります。
よろしくお願いします、
志明
こんにちは、志明さん
迅速なご対応ありがとうございます!
テスト用の、骨組みは小さいながらも完全なソースファイルを添付しました。
実行前に設定された環境変数:
#!/bin/sh
export XDG_RUNTIME_DIR=/run/user/0
export WAYLAND_DISPLAY=wayland-1
export GDK_BACKEND=wayland
export GSK_RENDERER=glweston.ini からの関連情報:
root@nitrogen8mp:~# cat /etc/xdg/weston/weston.ini
[core]
#gbm-format=argb8888
use-g2d=true
repaint-window=16
idle-time=0
xwayland=true
#enable-overlay-view=1
[shell]
panel-position=none
[libinput]
touchscreen_calibrator=true
#[output]
#name=HDMI-A-1
#mode=1920x1080@60
#transform=rotate-90
#[output]
#name=HDMI-A-2
#mode=off
# WIDTHxHEIGHT Resolution size width and height in pixels
# off Disables the output
# preferred Uses the preferred mode
# current Uses the current crt controller mode
#transform=rotate-90
[screen-share]
command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize
#start-on-startup=true
[input-method]
path=/usr/libexec/ibus-wayland
GPUサポートのないデスクトップでのgtk_window_presentの実行時間は数百ミリ秒(<1秒)かかります。そしてi.mx8MPデバイスでは9970ミリ秒かかります:
root@nitrogen8mp:~# gtk4-test
A: activate: before _present: 47333 ms
B: activate: after _present: 57303 ms, takes: 9970 ms
C: activate: after idele_add: 57303 ms
D: startup_task_cb: 57315 ms
^C
root@nitrogen8mp:~#
render: nglを試しましたが、画像やウィジェット、動画のにじみが生じてしまい、 Vulkanが重大なエラーを引き起こす:ローダーメッセージ:vkCreateDevice:リスト内の拡張を検証できません;表面の「GdkWaylandToplevel」に対してタイプ「GskVulkanRenderer」のレンダラーを実装できません:必要な機能を持つVulkanデバイスを見つけられませんでした。
私たちのアプリにはGPUサポートが必要で、Wayland/Westonで推奨されているレンダラーはまだGL(UG10159 11.3.2.1 GLレンダラー)なので、解決策を見つける手助けをいただければ幸いです。
よろしくお願いします、