-
Notifications
You must be signed in to change notification settings - Fork 312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LVGL 8.3+wayland can't find wayland shell #311
Comments
After searching the problem step by step, I found that weston10 did not have wl_shell interface, instead of xdg_shell, so I opened the macro definition of XDG_SHELL, searched the header file and lib again, and compiled and ran it. At this time, the following error occurred, I do not know how to solve it |
@daniel-rossier it might be useful for the LVGL v9 Wayland driver. |
Thanks Gábor! Indeed, it may help; I forward the info to @etag4048 who is nearly ready to submit a PR with the support of LVLG 9 in wayland. |
So the lvgl v9 doesn't have this problem? |
@arilink Did you update the |
@etag4048 Yes, I have set LV_WAYLAND_XDG_SHELL to 1 but it still won't display properly, this picture is USE LV_WAYLAND_XDG_SHELL |
@arilink Looking at the screenshots more carefully, there is something abnormal in the wayland debug logs. It seems like At it's core this problem is caused by a race condition that is apparent on some weston configurations. The buffer is attached to the surface before weston sends the configure event. Upon the configure event Try commenting out the line 1411 Also check why Please avoid screenshots, you can capture the wayland logs like so |
@etag4048 I only called lv_wayland_create_window once in main.c file. You mean that surface was not fully configured when flush cb was used, so this problem occurred, right? I uploaded wayland.c, could you please help me adjust the code, because the code line number you described seems to be inconsistent with mine |
@arilink It looks like lvgl drivers on the rk3568 are outdated, please apply the patch c8d483f this issue has been fixed in commit |
OK. I will try release/v8.3 |
@etag4048 |
lvgl app start log is blow: |
I think this problem is about window geometry |
@arilink Yes it is indeed, this is a different problem that is also apparent when running older versions of the wayland driver on weston.. The flush occurs before the buffers are resized. It looks like weston runs the application in fullscreen right at the beginning. Upon the configure event the compositor communicates the size it wants the client app to have:
In this case 720*1280 As a workaround, try passing these values to the This issue is fixed in the opened PR. BR |
@etag4048 In theory, lvgl should call xdg_surface_set_window_geometry to specify the display location, but when I try, I'm told that xdg_surface must have a role. I think this is related to the way I call, could you please help confirm the correct calling method, the specific log is as follows: |
@arilink However, sending a ' ...is used primarily for applications using client-side decorations, to distinguish the parts of their surface which are considered a part of the window, and the parts which are not. Most commonly, this is used to exclude client-side drop-shadows rendered behind the window from being considered a part of it.' There are no decorations and no windowing in the above screenshot, both apps are running in full screen. The proper solution to this is to resize the underlining SHM buffers before the first flush occurs. BR |
@etag4048 |
weston version:10.0.0
LVGL version:8.3.0
LVGL driver 8.3.0
I tried to run LVGL on the rk3568 platform. The macro definition enables wayland and XDG shell, but the segment err is prompted when lvgl demo is run, so I further debug the problem that lvgl cannot find wayland shell. But my qt program can work normally, what could be the problem?
The text was updated successfully, but these errors were encountered: