weston issueshttps://gitlab.freedesktop.org/wayland/weston/-/issues2022-06-24T12:24:24Zhttps://gitlab.freedesktop.org/wayland/weston/-/issues/532Weston is not compatiable with plymouth's --retain-splash flag2022-06-24T12:24:24ZRussell GreeneWeston is not compatiable with plymouth's --retain-splash flagI'm trying to get nice clean startup behavior for my application that uses weston, and after some reading (https://blogs.gnome.org/halfline/2009/11/28/plymouth-%E2%9F%B6-x-transition/) I found that how this was solved for X was the `--re...I'm trying to get nice clean startup behavior for my application that uses weston, and after some reading (https://blogs.gnome.org/halfline/2009/11/28/plymouth-%E2%9F%B6-x-transition/) I found that how this was solved for X was the `--retain-splash` flag on the plymouth quit call, but adding this seems to get weston to crash.
Steps to repro:
- Have a system with plymouth and weston. I'm using Ubuntu 20.04 with a service file very similar to the one in https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/439
- Edit the plymouth quit call to have `--retain-splash`. For my system, this is `systemctl edit --full plymouth-quit.service`
- Reboot
I get this in my logs:
```
Aug 18 16:43:32 shotover kernel: weston[2257]: segfault at 7fc1607d8240 ip 00007fc1607d8240 sp 00007ffc8feb3038 error 15 in libc-2.31.so[7fc1607d7000+3000]
Aug 18 16:43:32 shotover kernel: Code: 00 00 00 82 7d 60 c1 7f 00 00 10 a4 09 07 88 55 00 00 10 a4 09 07 88 55 00 00 20 82 7d 60 c1 7f 00 00 20 82 7d 60 c1 7f 00 00 <30> 82 7d 60 c1 7f 00 00 30 82 7d 60 c1 7f 00>
Aug 18 16:43:32 shotover systemd[1]: Started Process Core Dump (PID 2264/UID 0).
```
However, the workaround I found was just making the plymouth-quit service, which weston is fine with, and results in a clean-looking transitionhttps://gitlab.freedesktop.org/wayland/weston/-/issues/582Remove desktop zoom2022-06-22T16:21:09ZDerek ForemanRemove desktop zoomZoom as currently implemented results in an ugly split in many of the transform paths, and occasional weirdo corner case bugs (most recently !765). It appears to be infrequently used, and rarely tested.
I propose removing it in the next...Zoom as currently implemented results in an ugly split in many of the transform paths, and occasional weirdo corner case bugs (most recently !765). It appears to be infrequently used, and rarely tested.
I propose removing it in the next release cycle if nobody complains too loudly.https://gitlab.freedesktop.org/wayland/weston/-/issues/607weston-terminal Segmentation fault (core dumped)2022-06-22T12:37:30ZHeYongweston-terminal Segmentation fault (core dumped)The weston-terminal print Segmentation fault (core dumped) when I click the close button in the upper right corner of the weston-terminal
env: imx8qxp mek board
version : weston 9.0.0
![Screenshot](/uploads/af3bd7e20813128afe15edfbb53f...The weston-terminal print Segmentation fault (core dumped) when I click the close button in the upper right corner of the weston-terminal
env: imx8qxp mek board
version : weston 9.0.0
![Screenshot](/uploads/af3bd7e20813128afe15edfbb53fff5c/Screenshot.png)https://gitlab.freedesktop.org/wayland/weston/-/issues/454Window position incorrect after restoring from fullscreen mode2022-06-20T17:59:27ZMarcel KorpelWindow position incorrect after restoring from fullscreen modeAfter returning from fullscreen mode, the window position of the restored window is changed: the window is about 20 pixels moved to the left and the top.
To reproduce, open a browser, e.g. Chromium, press F11 to go to fullscreen mode, a...After returning from fullscreen mode, the window position of the restored window is changed: the window is about 20 pixels moved to the left and the top.
To reproduce, open a browser, e.g. Chromium, press F11 to go to fullscreen mode, and return by pressing F11 again. Do this several times in a row. The first time, the window position of a maximized Chromium window still seems correct, but every other time you can see the window move up and left.https://gitlab.freedesktop.org/wayland/weston/-/issues/612How to program "max bpc" KMS property?2022-06-19T16:55:37ZPekka Paalanenppaalanen@gmail.comHow to program "max bpc" KMS property?The following discussion from !835 should be addressed:
- [ ] @swick started a [discussion](https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/835#note_1352235): (+5 comments)
> SDR can still benefit from higher bpc, e...The following discussion from !835 should be addressed:
- [ ] @swick started a [discussion](https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/835#note_1352235): (+5 comments)
> SDR can still benefit from higher bpc, especially on displays with a WCG. In general I'm not sure what the max bpc property is useful for in general because there is no minimum guarantee.
I did a bit of digging.
The kernel has [commit](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e2306cc6a07aefc458982b3d7ae1e146515ed656):
```
commit e2306cc6a07aefc458982b3d7ae1e146515ed656
Author: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Date: Thu Nov 15 17:19:12 2018 -0500
drm/amdgpu: Add amdgpu "max bpc" connector property (v2)
[Why]
Many panels support more than 8bpc but some modes are unavailable while
running at greater than 8bpc due to DP/HDMI bandwidth constraints.
Support for more than 8bpc was added recently in the driver but it
defaults to the maximum supported bpc - locking out these modes.
This should be a user configurable option such that the user can select
what bpc configuration they would like.
[How]
This patch introduces the "max bpc" amdgpu driver specific connector
property so the user can limit the maximum bpc. It ranges from 8 to 16.
This doesn't directly set the preferred bpc for the panel since it
follows Intel's existing driver conventions.
This proprety should be removed once common drm support for max bpc
lands.
v2: rebase on upstream (Alex)
```
and after that when it's [converted to the standard property](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1825fd34e8ed026911c6de6d7be7bd2d1ff8101a), the default of 8 bpc is kept.
This sounds like `max bpc` being high could make some video modes be rejected due to too high bandwidth requirements. Unfortunately [the documentation](https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties) on `max bpc` is silent on this.
However, [the commit that adds the standard property](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=47e22ff1a9e0c144611bd063b3e6135f9a269503) says:
```
commit 47e22ff1a9e0c144611bd063b3e6135f9a269503
Author: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Date: Fri Oct 12 11:42:32 2018 -0700
drm: Add connector property to limit max bpc
At times 12bpc HDMI cannot be driven due to faulty cables, dongles
level shifters etc. To workaround them we may need to drive the output
at a lower bpc. Currently the user space does not have a way to limit
the bpc. The default bpc to be programmed is decided by the driver and
is run against connector limitations.
Creating a new connector property "max bpc" in order to limit the bpc.
xrandr can make use of this connector property to make sure that bpc does
not exceed the configured value. This property can be used by userspace to
set the bpc.
```
This sounds like a workaround for buggy hardware, and not something that would limit/relax the choice of video modes.https://gitlab.freedesktop.org/wayland/weston/-/issues/621Crash in draw_paint_node2022-06-16T09:45:30ZAlexandros FrantzisCrash in draw_paint_nodeHow to reproduce:
1. Start latest Weston (2df71c6dd) under X11 (may work with other backends, but I haven't tested)
2. Start pavucontrol (ensuring it runs natively in the just started Weston instance).
3. Go to the "Input devices" tab.
...How to reproduce:
1. Start latest Weston (2df71c6dd) under X11 (may work with other backends, but I haven't tested)
2. Start pavucontrol (ensuring it runs natively in the just started Weston instance).
3. Go to the "Input devices" tab.
4. Click on the "Port" drop down menu of the device (only one device in my case)
5. Crash (it may take a few clicks at step 4)
The gdb log is:
```
Thread 1 "weston" received signal SIGSEGV, Segmentation fault.
0x00007ffff72aa718 in draw_paint_node (pnode=0x555555c35610, damage=0x7fffffffcf50) at ../libweston/renderer-gl/gl-renderer.c:1017
1017 if (gb->shader_variant == SHADER_VARIANT_NONE &&
(gdb) bt
#0 0x00007ffff72aa718 in draw_paint_node (pnode=0x555555c35610, damage=0x7fffffffcf50) at ../libweston/renderer-gl/gl-renderer.c:1017
#1 0x00007ffff72aabf1 in repaint_views (output=0x555555c14f60, damage=0x7fffffffcf50) at ../libweston/renderer-gl/gl-renderer.c:1108
#2 0x00007ffff72ac6b8 in gl_renderer_repaint_output (output=0x555555c14f60, output_damage=0x7fffffffd020) at ../libweston/renderer-gl/gl-renderer.c:1702
#3 0x00007ffff7f9c73a in x11_output_repaint_gl (output_base=0x555555c14f60, damage=0x7fffffffd020) at ../libweston/backend-x11/x11.c:425
#4 0x00007ffff7d58e51 in weston_output_repaint (output=0x555555c14f60) at ../libweston/compositor.c:3117
#5 0x00007ffff7d59110 in weston_output_maybe_repaint (output=0x555555c14f60, now=0x7fffffffd100) at ../libweston/compositor.c:3183
#6 0x00007ffff7d592e8 in output_repaint_timer_handler (data=0x55555556b380) at ../libweston/compositor.c:3250
#7 0x00007ffff7d208e2 in wl_timer_heap_dispatch (timers=0x555555562fa8) at ../src/event-loop.c:526
#8 wl_event_loop_dispatch (loop=0x555555562f60, timeout=timeout@entry=-1) at ../src/event-loop.c:1020
#9 0x00007ffff7d1e2b5 in wl_display_run (display=0x555555568e40) at ../src/wayland-server.c:1408
#10 0x00007ffff7fb5f24 in wet_main (argc=1, argv=0x7fffffffd948, test_data=0x0) at ../compositor/main.c:3589
#11 0x000055555555515e in main (argc=6, argv=0x7fffffffd948) at ../compositor/executable.c:33
(gdb) info locals
gr = 0x55555558b270
gs = 0x555555c35730
gb = 0x0
buffer = 0x0
repaint = {extents = {x1 = 0, y1 = 32, x2 = 1596, y2 = 1757}, data = 0x0}
surface_opaque = {extents = {x1 = 26, y1 = 23, x2 = 3222, y2 = 1817}, data = 0x555555c6d070}
surface_blend = {extents = {x1 = 0, y1 = 0, x2 = 3248, y2 = 1846}, data = 0x555555c0bf20}
filter = 9728
sconf = {req = {variant = 2, input_is_premult = true, green_tint = false, color_pre_curve = 0, color_mapping = 0, pad_bits_ = 0}, projection = {d = {0.00125313282, 0, 0, 0, 0, -0.00113830389, 0, 0, 0, 0, 1, 0,
-1, 1, 0, 1}, type = 3}, view_alpha = 1, unicolor = {0, 0, 0, 0}, input_tex_filter = 9728, input_tex = {5, 0, 0}, color_pre_curve_lut_tex = 0, color_pre_curve_lut_scale_offset = {0, 0}, color_mapping = {
lut3d = {tex = 0, scale_offset = {0, 0}}}}
```https://gitlab.freedesktop.org/wayland/weston/-/issues/622Overlay Planes not working2022-06-14T22:24:13Zbhawanpreet lakhaOverlay Planes not workingAccording to @pq Overlay should work by using weston-simple-egl -o or weston-simple-dmabuf-egl. But that doesn't seem to be happening.
I am using Build: 10.0.90
7412a014 backend-drm: Retrieve reason if dmabuf import failed
I also tried...According to @pq Overlay should work by using weston-simple-egl -o or weston-simple-dmabuf-egl. But that doesn't seem to be happening.
I am using Build: 10.0.90
7412a014 backend-drm: Retrieve reason if dmabuf import failed
I also tried Build: 10.0.0, but I see "[plane] not adding plane 60 to candidate list: invalid pixel format" for the simple-egl plane
[weston-log_10.0.0.txt](/uploads/465419c24878eff9976046635de72a8e/weston-log_10.0.0.txt)
[weston-log_10.0.90.txt](/uploads/2179fdb4dd27369968255edf775571f9/weston-log_10.0.90.txt)https://gitlab.freedesktop.org/wayland/weston/-/issues/623Weston 10.0 New Shader leads to performance drop2022-06-07T07:16:25ZMORDRET Pierre-Yvespierre-yves.mordret@foss.st.comWeston 10.0 New Shader leads to performance dropHi all,
Already discussed with Pekka Paalanen it turns out new Shader management has ended up in performance drop in out side (STM32MP1 MPU from STMicroelectronics)
The pre_mult code added, pre_curve and color mapping changes leads to e...Hi all,
Already discussed with Pekka Paalanen it turns out new Shader management has ended up in performance drop in out side (STM32MP1 MPU from STMicroelectronics)
The pre_mult code added, pre_curve and color mapping changes leads to extra GPU cycles that can't be optimized by the compiler: RCP, MUL and worse JMP
The reason pre-multiplied alpha is first undone is that otherwise it is not possible to apply anything non-identity in color_pipeline(). view-alpha is not needing that, color_pre_curve() and color_mapping() are.
For identity pipeline, the pre-mult is not required at all.
I believe some additional "if" prior to run color_pipeline is likely needed here to prevent extra GPU cycles (even more un-wanted)
Thanks in advance
Regardshttps://gitlab.freedesktop.org/wayland/weston/-/issues/469kiosk-shell app-ids not working2022-06-03T16:42:40ZAaron Bricekiosk-shell app-ids not workingI have weston 9.0 running with kiosk-shell on an i.MX arm board with two HDMI displays. I am trying to get two chromium ozone wayland windows to open, one on each screen, but they both seem to always open on the same screen. My test ca...I have weston 9.0 running with kiosk-shell on an i.MX arm board with two HDMI displays. I am trying to get two chromium ozone wayland windows to open, one on each screen, but they both seem to always open on the same screen. My test case is to run weston with the following weston.ini:
```
[core]
shell=kiosk-shell.so
idle-time=0
[shell]
[output]
name=HDMI-A-1
mode=1920x1080@60
app-ids=Chrome-testa
[output]
name=HDMI-A-2
mode=1920x1080@60
app-ids=Chrome-testb
```
I run:
```
export CHROME_DESKTOP=Chrome-testa.desktop
chromium --use-gl=egl --no-first-run --incognito --ozone-platform=wayland --user-data-dir=chrome-testa --in-process-gpu https://google.com
```
and then:
```
export CHROME_DESKTOP=Chrome-testb.desktop
chromium --use-gl=egl --no-first-run --incognito --ozone-platform=wayland --user-data-dir=chrome-testb --in-process-gpu https://cnn.com
```
`weston-debug proto` shows:
[2021-02-10 12:18:01.243][proto] client 0xaaaaffdbd6d0 rq xdg_toplevel@24.set_app_id("Chrome-testa")
for the first chromium, and:
[2021-02-10 12:19:41.768][proto] client 0xaaaaffdbd030 rq xdg_toplevel@24.set_app_id("Chrome-testb")
for the second chromium, but they both show up on the same output. If I move the mouse cursor over to the other screen before starting the second chromium process then they show up on different screens, but trying to start them from systemd.
Logs:
[scene.log](/uploads/def64782f6e8c9518db55346c5641dc7/scene.log)
[testa.log](/uploads/31399184a1b999b9bda241733b2e0468/testa.log)
[testb.log](/uploads/3db857711c41a691560941f3022db116/testb.log)https://gitlab.freedesktop.org/wayland/weston/-/issues/624weird resize behavior2022-06-02T15:06:38ZMike Blumenkrantzweird resize behaviorI'll preface by saying I don't know whether this is an app bug or a compositor bug, but definitely on one side there is a bug.
* run weston
* run [kitty](https://sw.kovidgoyal.net/kitty/)
* resize kitty
During resize, the window gets d...I'll preface by saying I don't know whether this is an app bug or a compositor bug, but definitely on one side there is a bug.
* run weston
* run [kitty](https://sw.kovidgoyal.net/kitty/)
* resize kitty
During resize, the window gets drawn as a black rect because it hits the fallback texture path in mesa due to being an incomplete texture. Essentially there is no dmabuf attached when the resized repaint happens.
This can be seen in action with breakpoints on `set_tex_image()` and `_mesa_get_fallback_texture()` in mesa.https://gitlab.freedesktop.org/wayland/weston/-/issues/436Weston crashes on compositor wake up2022-05-31T10:27:08ZJohn GoodWeston crashes on compositor wake upSometimes, waking up a sleeping compositor causes a crash. The crash is caused by the assert
`assert(output->repaint_status == REPAINT_AWAITING_COMPLETION)`
in the function weston_output_finish_frame of libweston/compositor.c. Steps to r...Sometimes, waking up a sleeping compositor causes a crash. The crash is caused by the assert
`assert(output->repaint_status == REPAINT_AWAITING_COMPLETION)`
in the function weston_output_finish_frame of libweston/compositor.c. Steps to reproduce: set a small idle time in weston.ini (i.e., idle-time=3), wait for the compositor to sleep, move the pointer to awake the compositor and repeat until the compositor crashes.https://gitlab.freedesktop.org/wayland/weston/-/issues/614Weston does not use scanout for weston-simple-dmabuf-feedback on AMD Gen >= 92022-05-25T06:24:20ZRobert MaderWeston does not use scanout for weston-simple-dmabuf-feedback on AMD Gen >= 9Weston doesn't use scanout/overlay planes when running `weston-simple-dmabuf-feedback` on my AMD system (with explicit modifier support).
From the default feedback it will pick the modifier `0x20000001896bb03` which is apparently not sc...Weston doesn't use scanout/overlay planes when running `weston-simple-dmabuf-feedback` on my AMD system (with explicit modifier support).
From the default feedback it will pick the modifier `0x20000001896bb03` which is apparently not scanout compatible.Other compositors will send a scanout tranche and `weston-simple-dmabuf-feedback` will switch to `0x200000018967b03`, allowing successful scanout.
Here are two logs for Weston with `--logger-scopes=log,drm-backend`:
- [weston-amd-default-new.log](/uploads/805d88b4efb95ec2fe00453717511d0c/weston-amd-default-new.log) default, no occurrence of "Using plane-only state composition"
- [weston-amd-force-0x200000018937b03-new.log](/uploads/9db618b60a71e9a959ad13d7f737b0ff/weston-amd-force-0x200000018937b03-new.log) force `0x200000018967b03` modifier -> successful scanout, lots of occurrences of "Using plane-only state composition"Robert MaderRobert Maderhttps://gitlab.freedesktop.org/wayland/weston/-/issues/426Weston shows subsurfaces of unmapped subsurfaces2022-05-25T06:24:19ZRobert MaderWeston shows subsurfaces of unmapped subsurfacesThis came up while debugging issues around the [OBS Wayland port](https://github.com/obsproject/obs-studio/pull/2484):
The [spec states](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_subsurface):
> A sub-surface be...This came up while debugging issues around the [OBS Wayland port](https://github.com/obsproject/obs-studio/pull/2484):
The [spec states](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_subsurface):
> A sub-surface becomes mapped, when a non-NULL wl_buffer is applied and the parent surface is mapped. The order of which one happens first is irrelevant. A sub-surface is hidden if the parent becomes hidden, or if a NULL wl_buffer is applied. These rules apply recursively through the tree of surfaces.
On Weston it is possible to map a subsurface `subB` of a subsurface `subA`, even if `subA` never got a buffer attached.
While this should be easy to fix, apparently the QT Wayland backend makes heavy use of bufferless "intermediate" subsurfaces - likely because it currently appears to work on all major compositors. I tested Mutter and Sway and assume KWin behaves similar. So fixing this should probably involve some coordination with the QT team and distributors (at least Fedora, which enables the QT Wayland backend by default).
Todo:
- [ ] provide a cleaned up example client
---
see also https://bugreports.qt.io/browse/QTBUG-86229 and https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1412
cc: @pq, @feaneron, @jadahlhttps://gitlab.freedesktop.org/wayland/weston/-/issues/446subsurfaces not updated on commit2022-05-25T06:24:18ZChristian Rauchrauch.christian@gmx.desubsurfaces not updated on commitIn an example where I have multiple subsurfaces as decoration for a toplevel surface, some subsurfaces are not updated as they should.
In the [libdecoration demo](https://gitlab.gnome.org/jadahl/libdecoration) the top right min/max/clos...In an example where I have multiple subsurfaces as decoration for a toplevel surface, some subsurfaces are not updated as they should.
In the [libdecoration demo](https://gitlab.gnome.org/jadahl/libdecoration) the top right min/max/close buttons are supposed to change colour when the mouse hovers over them. This works as expected in mutter, sway and mir, but does not work on Weston.
Expected behaviour (mutter 3.36.6):
![mutter](/uploads/b33978b14ec941faf3e00c2f8059929b/mutter.m4v)
Behaviour on weston 8.0.0:
![weston](/uploads/7cff34581da7e647b2354bcafc9fbd31/weston.m4v)https://gitlab.freedesktop.org/wayland/weston/-/issues/611weston-simple-dmabuf-feedback crashes on KDE2022-05-23T13:25:02ZRobert Maderweston-simple-dmabuf-feedback crashes on KDEOn recent Kwin 5.24 `weston-simple-dmabuf-feedback` crashes with the following error:
```
error: INITIAL_BUFFER_FORMAT not supported by the hardware
```
[Here](https://gitlab.freedesktop.org/wayland/weston/-/blob/6129cbd8806e0c6fffcf597...On recent Kwin 5.24 `weston-simple-dmabuf-feedback` crashes with the following error:
```
error: INITIAL_BUFFER_FORMAT not supported by the hardware
```
[Here](https://gitlab.freedesktop.org/wayland/weston/-/blob/6129cbd8806e0c6fffcf59767150f12700881fad/clients/simple-dmabuf-feedback.c#L1160) we assume that the first non-scanout tranche includes `DRM_FORMAT_XRGB8888`. However Kwin orders formats into several tranches like this:
```
compositor sent main_device event for dma-buf feedback - /dev/dri/renderD128
├──────target_device for tranche - /dev/dri/renderD128
│ └scanout tranche? no
│ ├────────tranche format/modifier pair - format ABGR2101010, modifier AMD_GFX10_RBPLUS,GFX9_64K_R_X,PIPE_XOR_BITS=4,PACKERS=3 (0x200000018801b03)
│ ├────────...
│ └end of tranche
├──────target_device for tranche - /dev/dri/renderD128
│ └scanout tranche? no
│ ├────────tranche format/modifier pair - format ABGR8888, modifier AMD_GFX10_RBPLUS,GFX9_64K_R_X,PIPE_XOR_BITS=4,PACKERS=3 (0x200000018801b03)
│ ├────────...
│ └end of tranche
├──────target_device for tranche - /dev/dri/renderD128
│ └scanout tranche? no
│ ├────────tranche format/modifier pair - format XBGR16161616F, modifier AMD_GFX10_RBPLUS,GFX9_64K_R_X,PIPE_XOR_BITS=4,PACKERS=3 (0x200000018801b03)
│ ├────────...
│ └end of tranche
└end of dma-buf feedback
```
That is in accordance with the spec and thus should be supported.Robert MaderRobert Maderhttps://gitlab.freedesktop.org/wayland/weston/-/issues/620weston-gears missing2022-05-23T13:02:04Zdavidakweston-gears missingI want to have weston-gears, so i enabled the demo-clients in the Nix package. It added 18 demos, but gears is missing. Does it need another option enabled?
https://github.com/NixOS/nixpkgs/pull/174079/files
Build log: https://gitlab.f...I want to have weston-gears, so i enabled the demo-clients in the Nix package. It added 18 demos, but gears is missing. Does it need another option enabled?
https://github.com/NixOS/nixpkgs/pull/174079/files
Build log: https://gitlab.freedesktop.org/-/snippets/6207https://gitlab.freedesktop.org/wayland/weston/-/issues/587Clients not displaying on kiosk shell, while desktop-shell works perfectly fine2022-05-17T16:59:46ZMaya MatuszczykClients not displaying on kiosk shell, while desktop-shell works perfectly fineIn Weston built from commit ce8ead4bf7384cab3bbd5581aa6014a8078147af, 10.0.0 and 9.0.91 releases,
kiosk-shell refuses to display any clients, while desktop-shell works fine.
I'm using an ARM64 device, with Mali G31 GPU running Buildroot ...In Weston built from commit ce8ead4bf7384cab3bbd5581aa6014a8078147af, 10.0.0 and 9.0.91 releases,
kiosk-shell refuses to display any clients, while desktop-shell works fine.
I'm using an ARM64 device, with Mali G31 GPU running Buildroot with glibc.
Weston on it is launched as:
`weston --config=/root/.config/weston.ini --drm-device=card1 --seat=0 --continue-without-input --debug --shell=kiosk-shell.so`
with `XDG_RUNTIME_DIR=/temp` in environment, `/temp` has mode 0700.
and weston.ini is:
```
[core]
idle-time=0
repaint-window=15
[output]
name=DSI-1
transform=rotate-90
[autolaunch]
path=/bin/rmenu
[shell]
panel-position=none
```
`/bin/rmenu` is a SDL2 program, and works fine when launched with Weston running desktop-shell,
Supertuxkart and weston-terminal don't seem to do anything too.
Weston scene graph, with rmenu and Supertuxkart running:
```
# XDG_RUNTIME_DIR=/temp/ WAYLAND_DISPLAY=wayland-1 weston-debug scene-graph
Weston scene graph at 1058.102141212:
Output 0 (DSI-1):
position: (0, 0) -> (854, 480)
mode: 480x854@59.987Hz
scale: 1
repaint status: no repaint
Head 0 (DSI-1): connected
Layer 0 (pos 0xffffffff):
[no views]
Layer 1 (pos 0xfffffffe):
[no views]
Layer 2 (pos 0x50000001):
[no views]
Layer 3 (pos 0x50000000):
[no views]
Layer 4 (pos 0x2):
View 0 (role kiosk-shell-background, PID 0, surface ID 0, kiosk shell background surface, 0x32df00f0):
position: (0, 0) -> (854, 480)
[fully opaque]
outputs: 0 (DSI-1) (primary)
[buffer not available]
Layer 5 (pos 0x0):
[no views]
```
And Weston log:
```
Date: 2022-02-09 UTC
[20:36:22.481] weston 10.0.90
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 10.0.90
[20:36:22.482] Command line: weston --config=/root/.config/weston.ini --drm-device=card1 --seat=0 --continue-without-input --debug --shell=kiosk-shell.so
[20:36:22.482] OS: Linux, 5.15.0-rc6, #1 SMP Tue Feb 8 14:59:06 UTC 2022, aarch64
[20:36:22.482] Flight recorder: enabled
[20:36:22.482] Using config file '/root/.config/weston.ini'
WARNING: debug protocol has been enabled. This is a potential denial-of-service attack vector and information leak.
[20:36:22.483] Output repaint window is 15 ms maximum.
[20:36:22.483] Loading module '/usr/lib/libweston-11/drm-backend.so'
[20:36:22.495] initializing drm backend
[20:36:22.495] Trying weston_launch launcher...
[20:36:22.495] could not get launcher fd from env
[20:36:22.495] Trying direct launcher...
[20:36:22.496] using /dev/dri/card1
[20:36:22.496] DRM: supports atomic modesetting
[20:36:22.496] DRM: supports GBM modifiers
[20:36:22.496] DRM: supports picture aspect ratio
[20:36:22.497] Loading module '/usr/lib/libweston-11/gl-renderer.so'
[20:36:22.542] EGL client extensions: EGL_EXT_client_extensions
EGL_EXT_device_base EGL_EXT_device_enumeration
EGL_EXT_device_query EGL_EXT_platform_base
EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug
EGL_EXT_platform_device EGL_EXT_platform_wayland
EGL_KHR_platform_wayland EGL_MESA_platform_gbm
EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
[20:36:22.548] EGL device extensions: EGL_EXT_device_drm
[20:36:22.548] EGL version: 1.4
[20:36:22.548] EGL vendor: Mesa Project
[20:36:22.548] EGL client APIs: OpenGL OpenGL_ES
[20:36:22.548] EGL extensions: EGL_ANDROID_blob_cache EGL_EXT_buffer_age
EGL_EXT_image_dma_buf_import
EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
EGL_KHR_config_attribs EGL_KHR_create_context
EGL_KHR_create_context_no_error EGL_KHR_fence_sync
EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
EGL_KHR_no_config_context EGL_KHR_partial_update
EGL_KHR_reusable_sync EGL_KHR_surfaceless_context
EGL_EXT_pixel_format_float EGL_KHR_wait_sync
EGL_MESA_configless_context EGL_MESA_drm_image
EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
EGL_WL_bind_wayland_display
[20:36:22.549] warning: Disabling render GPU timeline and explicit synchronization due to missing EGL_ANDROID_native_fence_sync extension
[20:36:22.549] EGL_KHR_surfaceless_context available
[20:36:22.554] GL version: OpenGL ES 3.1 Mesa 21.3.2
[20:36:22.554] GLSL version: OpenGL ES GLSL ES 3.10
[20:36:22.554] GL vendor: Panfrost
[20:36:22.554] GL renderer: Mali-G31 (Panfrost)
[20:36:22.555] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1
GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888
GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
GL_OES_element_index_uint GL_OES_fbo_render_mipmap
GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float
GL_OES_texture_float_linear GL_OES_texture_half_float
GL_OES_texture_half_float_linear GL_OES_texture_npot
GL_OES_vertex_half_float GL_EXT_draw_instanced
GL_EXT_texture_sRGB_decode GL_OES_EGL_image
GL_OES_depth_texture GL_OES_packed_depth_stencil
GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render
GL_OES_get_program_binary GL_APPLE_texture_max_level
GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
GL_EXT_frag_depth GL_NV_fbo_color_attachments
GL_OES_EGL_image_external GL_OES_EGL_sync
GL_OES_vertex_array_object GL_ANGLE_pack_reverse_row_order
GL_ANGLE_texture_compression_dxt3
GL_ANGLE_texture_compression_dxt5
GL_EXT_occlusion_query_boolean GL_EXT_texture_rg
GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer
GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil
GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug
GL_KHR_texture_compression_astc_ldr GL_NV_pixel_buffer_object
GL_OES_depth_texture_cube_map GL_OES_required_internalformat
GL_OES_surfaceless_context GL_EXT_color_buffer_float
GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects
GL_EXT_shader_framebuffer_fetch
GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix
GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture
GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex
GL_EXT_gpu_shader5 GL_EXT_primitive_bounding_box
GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp
GL_EXT_texture_buffer GL_EXT_texture_view
GL_KHR_blend_equation_advanced
GL_KHR_blend_equation_advanced_coherent
GL_KHR_context_flush_control GL_NV_image_formats
GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex
GL_OES_gpu_shader5 GL_OES_primitive_bounding_box
GL_OES_sample_shading GL_OES_sample_variables
GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation
GL_OES_texture_border_clamp GL_OES_texture_buffer
GL_OES_texture_stencil8
GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view
GL_EXT_blend_func_extended GL_EXT_float_blend
GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_no_error
GL_KHR_texture_compression_astc_sliced_3d
GL_OES_EGL_image_external_essl3 GL_OES_shader_image_atomic
GL_EXT_multisampled_render_to_texture
GL_EXT_multisampled_render_to_texture2
GL_EXT_texture_compression_s3tc_srgb
GL_MESA_shader_integer_functions GL_EXT_color_buffer_half_float
GL_EXT_texture_compression_bptc
GL_EXT_texture_mirror_clamp_to_edge
GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage
GL_EXT_shader_framebuffer_fetch_non_coherent
GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y
GL_EXT_depth_clamp GL_MESA_bgra
[20:36:22.600] GL ES 3.1 - renderer features:
read-back format: BGRA
EGL Wayland extension: yes
[20:36:22.601] couldn't fstat launcher tty: Bad file descriptor
[20:36:22.611] warning: no input devices found, but none required as per configuration.
[20:36:22.611] DRM: head 'DSI-1' updated, connector 39 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[20:36:22.612] DRM: head 'DSI-1' found, connector 39 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[20:36:22.613] Registered plugin API 'weston_drm_output_api_v1' of size 24
[20:36:22.613] Color manager: no-op
[20:36:22.613] Output 'DSI-1' using color profile: built-in default sRGB SDR profile
[20:36:22.613] Chosen EGL config details: id: 25 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-1 type: win vis_id: XRGB8888 (0x34325258)
[20:36:22.614] Output DSI-1 (crtc 35) video modes:
480x854@60.0, preferred, current, 27.5 MHz
[20:36:22.614] Output 'DSI-1' enabled with head(s) DSI-1
[20:36:22.614] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: no
view mask clipping: yes
explicit sync: no
color operations: yes
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[20:36:22.617] Loading module '/usr/lib/weston/kiosk-shell.so'
[20:36:22.620] Note: support for the deprecated wl_shell interface is disabled. If a legacy client still needs it, it can be re-enabled by passing -Ddeprecated-wl-shell=true to Meson when building Weston.
Dbg: Spawning Rdevkit handler thread
Dbg: Initializing SDL
Dbg: Rdevkit not found, handler quitting
Dbg: Initializing TTF
Dbg: Initializing input handling
Dbg: Attaching new input handle
Dbg: Loading emulator config file
Dbg: Got config entry: command /usr/bin/mednafen, system GBA, ext gba, args
Dbg: Looking for GBA roms in /roms/GBA/
Warn: Failed opening /roms/GBA/ directory
Dbg: Got config entry: command /usr/bin/mednafen, system GB, ext gb, args
Dbg: Looking for GB roms in /roms/GB/
Warn: Failed opening /roms/GB/ directory
Dbg: Got config entry: command /usr/bin/mednafen, system NES, ext nes, args
Dbg: Looking for NES roms in /roms/NES/
Warn: Failed opening /roms/NES/ directory
Dbg: Got config entry: command /usr/bin/mednafen, system SNES, ext smc, args
Dbg: Looking for SNES roms in /roms/SNES/
Warn: Failed opening /roms/SNES/ directory
Dbg: Got config entry: command /bin/PPSSPPSDL, system PSP, ext iso, args
Dbg: Looking for PSP roms in /roms/PSP/
Warn: Failed opening /roms/PSP/ directory
```
Lines after "[20:36:22.620] Note: support for the deprecated wl_shell interface is disabled. If a legacy client still needs it, it can be re-enabled by passing -Ddeprecated-wl-shell=true to Meson when building Weston." are from `rmenu`.
Weston was configured with these options:
```
--prefix=/usr --libdir=lib --default-library=shared --buildtype=release --cross-file=/root/Ragnarok/tmp/buildroot/output/build/weston-main//build/cross-compilation.conf -Db_pie=false -Dstrip=false -Dbuild.pkg_config_path=/root/Ragnarok/tmp/buildroot/output/host/lib/pkgconfig -Dbackend-headless=false -Dcolor-management-colord=false -Dremoting=false -Dsimple-clients=dmabuf-v4l -Dlauncher-logind=false -Dimage-webp=false -Drenderer-gl=true -Dpipewire=false -Dbackend-rdp=false -Dbackend-drm=true -Dbackend-x11=false -Dbackend-default=drm -Dxwayland=false -Dbackend-drm-screencast-vaapi=false -Dcolor-management-lcms=false -Dsystemd=false -Dtest-junit-xml=true -Dshell-desktop=true -Dshell-fullscreen=false -Dshell-ivi=false -Dshell-kiosk=true -Ddemo-clients=false
```
I'm not sure where to continue trying to debug this, tomorrow I plan on trying much older versions,
and bisecting this issue.https://gitlab.freedesktop.org/wayland/weston/-/issues/618GStreamer getting stucks during weston sleep-wakeon2022-05-13T13:14:38ZKishan DudhatraGStreamer getting stucks during weston sleep-wakeonHi,
I am using weston(9.0.0) in IMX8MP(5.4.161 BSP).
I am facing an issue while running GStreamer video, it gets stuck on weston sleep(idle-time param).
Test Procedure:-
- Set `idle-time=15` in `weston.ini` in core section.
- Restart ...Hi,
I am using weston(9.0.0) in IMX8MP(5.4.161 BSP).
I am facing an issue while running GStreamer video, it gets stuck on weston sleep(idle-time param).
Test Procedure:-
- Set `idle-time=15` in `weston.ini` in core section.
- Restart weston services.
- Play video using GStreamer pipeline.
`gst-play-1.0 SampleVideo_1280x720_30mb.mp4 ! rtph264depay ! clockoverlay ! waylandsink`
- After idle-time reached weston going to sleep (video length is 2 mins - should be running in the backend ).
- **Now, wake-up weston using mouse/touch event and observe that video getting stuck(before sleep last frame freeze )
However in terminal video playback timer is running continuously.**https://gitlab.freedesktop.org/wayland/weston/-/issues/584Intermittent crash when a client exits (usually around the same time the disp...2022-05-13T12:32:22Zn3rdopolisIntermittent crash when a client exits (usually around the same time the display server becomes inactive)I have an instance of Weston that I use as a greeter. It seems that sometimes when a client quits (I do have the Zoom animation turned on for windowing events) at the same time it becomes inactive (and it's not 100% replicateable) Weston...I have an instance of Weston that I use as a greeter. It seems that sometimes when a client quits (I do have the Zoom animation turned on for windowing events) at the same time it becomes inactive (and it's not 100% replicateable) Weston crashes.
I had a streak where it crashed 5 times in a row, (after a restart too) but then all of a sudden it's much more rare, so it must be some odd timing thing
Below is a stack trace. I hope it is helpful
```
#0 0x00007fcbb99d99b8 in wl_list_remove (elm=elm@entry=0x55eb4e8a4668)
--Type <RET> for more, q to quit, c to continue without paging--
at ../src/wayland-util.c:55
55 ../src/wayland-util.c: No such file or directory.
(gdb) bt full
#0 0x00007fcbb99d99b8 in wl_list_remove (elm=elm@entry=0x55eb4e8a4668)
at ../src/wayland-util.c:55
No locals.
#1 0x00007fcbb99f80ee in weston_view_destroy (view=0x55eb4e8a4630)
at ../libweston/compositor.c:2285
pnode = <optimized out>
pntmp = 0x55eb4e8a4640
__PRETTY_FUNCTION__ = "weston_view_destroy"
#2 0x00007fcbb01c0411 in desktop_shell_destroy_surface (shsurf=0x55eb4e7ad210)
at ../desktop-shell/shell.c:267
shsurf_child = 0x55eb4e7ad200
tmp = 0x55eb4e7ad200
#3 0x00007fcbb01b0216 in weston_desktop_xdg_toplevel_destroy (
toplevel=0x55eb4e8411a0) at ../libweston-desktop/xdg-shell.c:797
No locals.
#4 weston_desktop_xdg_surface_destroy (dsurface=<optimized out>,
user_data=0x55eb4e8411a0) at ../libweston-desktop/xdg-shell.c:1412
surface = 0x55eb4e8411a0
configure = <optimized out>
temp = <optimized out>
#5 0x00007fcbb01aeb6a in weston_desktop_surface_destroy (
surface=0x55eb4e9345a0) at ../libweston-desktop/surface.c:144
view = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
next_view = <optimized out>
child = <optimized out>
next_child = <optimized out>
#6 0x00007fcbb01ad9c6 in wl_signal_emit (data=0x55eb4e913bb0, signal=0x55eb4e913be8) at /opt/include/wayland-server-core.h:481
l = <optimized out>
next = 0x55eb4e913be8
l = <optimized out>
next = <optimized out>
#7 weston_desktop_client_destroy (client=0x55eb4e913bb0) at ../libweston-desktop/client.c:60
list = 0x55eb4e913bc8
link = <optimized out>
tmp = <optimized out>
__PRETTY_FUNCTION__ = "weston_desktop_client_destroy"
#8 0x00007fcbb99c3d48 in destroy_resource (element=0x55eb4e7da810, data=<optimized out>, flags=0) at ../src/wayland-server.c:727
resource = 0x55eb4e7da810
#9 0x00007fcbb99c726c in for_each_helper (entries=entries@entry=0x55eb4e9ebb00, func=func@entry=0x7fcbb99c3cea <destroy_resource>, data=data@entry=0x7ffde7b3a6bc) at ../src/wayland-util.c:376
idx = 17
ret = WL_ITERATOR_CONTINUE
entry = {next = <optimized out>, data = <optimized out>}
start = 0x55eb4e82f200
count = 25
#10 0x00007fcbb99c764d in wl_map_for_each (map=map@entry=0x55eb4e9ebb00, func=func@entry=0x7fcbb99c3cea <destroy_resource>, data=data@entry=0x7ffde7b3a6bc) at ../src/wayland-util.c:390
ret = <optimized out>
#11 0x00007fcbb99c3e70 in wl_client_destroy (client=client@entry=0x55eb4e9ebad0) at ../src/wayland-server.c:886
serial = 0
#12 0x00007fcbb99c3ef5 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x55eb4e9ebad0) at ../src/wayland-server.c:342
client = 0x55eb4e9ebad0
connection = <optimized out>
resource = <optimized out>
object = <optimized out>
closure = <optimized out>
message = <optimized out>
p = {1307073008, 21995}
resource_flags = <optimized out>
opcode = <optimized out>
size = <optimized out>
since = <optimized out>
len = <optimized out>
#13 0x00007fcbb99c5770 in wl_event_loop_dispatch (loop=0x55eb4de5ff60, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
ep = {{events = 17, data = {ptr = 0x55eb4e881550, fd = 1317541200, u32 = 1317541200, u64 = 94469123216720}}, {events = 1, data = {ptr = 0x55eb4e7f3240, fd = 1316958784, u32 = 1316958784, u64 = 94469122634304}}, {events = 1, data = {ptr = 0x55eb4e8055e0, fd = 1317033440, u32 = 1317033440, u64 = 94469122708960}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 2, data = {ptr = 0xe00000000, fd = 0, u32 = 0, u64 = 60129542144}}, {events = 2147483648, data = {ptr = 0x6e0, fd = 1760, u32 = 1760, u64 = 1760}}, {events = 1, data = {ptr = 0x4000000001, fd = 1, u32 = 1, u64 = 274877906945}}, {events = 0, data = {ptr = 0x55eb4e95ae60, fd = 1318432352, u32 = 1318432352, u64 = 94469124107872}}, {events = 1318444664, data = {ptr = 0xb99c5b54000055eb, fd = 21995, u32 = 21995, u64 = 13374665409718932971}}, {events = 32715, data = {ptr = 0x1, fd = 1, u32 = 1, u64 = 1}}, {events = 24, data = {ptr = 0x4e95c5dc00000000, fd = 0, u32 = 0, u64 = 5662649655171743744}}, {events = 21995, data = {ptr = 0x18, fd = 24, u32 = 24, u64 = 24}}, {events = 1317130512, data = {ptr = 0xb01c292f000055eb, fd = 21995, u32 = 21995, u64 = 12690063131863438827}}, {events = 32715, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x7ffde7b3a810, fd = -407656432, u32 = 3887310864, u64 = 140728490764304}}, {events = 1, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x1400000000, fd = 0, u32 = 0, u64 = 85899345920}}, {events = 0, data = {ptr = 0x100000001, fd = 1, u32 = 1, u64 = 4294967297}}, {events = 23, data = {ptr = 0xb9ae7b4100000000, fd = 0, u32 = 0, u64 = 13379767062067412992}}, {events = 32715, data = {ptr = 0x400, fd = 1024, u32 = 1024, u64 = 1024}}, {events = 1317040336, data = {ptr = 0xe7b4794a000055eb, fd = 21995, u32 = 21995, u64 = 16696103077303834091}}, {events = 32765, data = {ptr = 0x7fcbb01c0ec8 <fade_startup_timeout>, fd = -1340338488, u32 = 2954628808, u64 = 140512809717448}}, {events = 3887364426, data = {ptr = 0x493e000007ffd, fd = 32765, u32 = 32765, u64 = 1288490188832765}}, {events = 0, data = {ptr = 0x7ffde7b3a910, fd = -407656176, u32 = 3887311120, u64 = 140728490764560}}, {events = 3887313000, data = {ptr = 0xe7b3a9cd00007ffd, fd = 32765, u32 = 32765, u64 = 16695874941525983229}}, {events = 32765, data = {ptr = 0x7fcbb9bfdc50, fd = -1178608560, u32 = 3116358736, u64 = 140512971447376}}, {events = 1, data = {ptr = 0xb9ae7b4100000000, fd = 0, u32 = 0, u64 = 13379767062067412992}}, {events = 32715, data = {ptr = 0x55eb4e7f4258, fd = 1316962904, u32 = 1316962904, u64 = 94469122638424}}, {events = 1306941240, data = {ptr = 0x4e9ebad0000055eb, fd = 21995, u32 = 21995, u64 = 5665170783794648555}}, {events = 21995, data = {ptr = 0x55eb4e9270b0, fd = 1318219952, u32 = 1318219952, u64 = 94469123895472}}}
source = <optimized out>
i = 0
count = <optimized out>
has_timers = <optimized out>
#14 0x00007fcbb99c4224 in wl_display_run (display=display@entry=0x55eb4de656f0) at ../src/wayland-server.c:1408
No locals.
#15 0x00007fcbb9bf415a in wet_main (argc=<optimized out>, argv=0x7ffde7b3b068, test_data=0x0) at ../compositor/main.c:3565
ret = 1
cmdline = <optimized out>
display = 0x55eb4de656f0
signals = {0x55eb4de5c6d0, 0x55eb4de5c2e0, 0x55eb4de5c200, 0x55eb4de5c010}
loop = <optimized out>
i = <optimized out>
fd = <optimized out>
backend = 0x55eb4de5dd90 "drm-backend.so"
shell = 0x55eb4e7dc590 "desktop-shell.so"
xwayland = false
modules = 0x55eb4e7e6500 ""
option_modules = 0x0
log = 0x55eb4de60900 "/var/log/waylandloginmanager/loginmanagerdisplays/loginmanagerdisplay_seat0.log"
log_scopes = 0x0
flight_rec_scopes = 0x7fcbb9bf8dc2 "log,drm-backend"
server_socket = <optimized out>
idle_time = 300
help = 0
socket_name = 0x55eb4de5ddb0 "loginmanagerdisplay_seat0"
version = 0
noconfig = 0
debug_protocol = 0
numlock_on = false
config_file = 0x55eb4de5e910 "/etc/loginmanagerdisplay//loginmanagerdisplay.ini"
config = <optimized out>
section = <optimized out>
primary_client = <optimized out>
primary_client_destroyed = {link = {prev = 0x0, next = 0x1}, notify = 0x0}
seat = <optimized out>
wet = {compositor = 0x55eb4de69510, config = 0x55eb4de677a0, parsed_options = 0x0, drm_use_current_mode = false, heads_changed_listener = {link = {prev = 0x55eb4de69910, next = 0x55eb4de69910}, notify = 0x7fcbb9bf12c7 <drm_heads_changed>}, simple_output_configure = 0x0, init_failed = false, layoutput_list = {prev = 0x55eb4e7b2a18, next = 0x55eb4e7b2a18}, child_process_list = {prev = 0x55eb4e7b5f60, next = 0x55eb4e7b66e0}, autolaunch_pid = -1, autolaunch_watch = false, use_color_manager = false}
log_ctx = 0x55eb4de657e0
logger = 0x55eb4de65aa0
flight_rec = 0x55eb4de65ae0
mask = {__val = {512, 0 <repeats 15 times>}}
wait_for_debugger = false
protologger = 0x55eb4de69ec0
core_options = {{type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8dca "backend", short_name = 66 'B', data = 0x7ffde7b3a9e8}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8018 "shell", short_name = 0 '\000', data = 0x7ffde7b3a9f0}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf767e "socket", short_name = 83 'S', data = 0x7ffde7b3aa20}, {type = WESTON_OPTION_INTEGER, name = 0x7fcbb9bf801e "idle-time", short_name = 105 'i', data = 0x7ffde7b3a9d0}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8028 "xwayland", short_name = 0 '\000', data = 0x7ffde7b3a9cd}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8031 "modules", short_name = 0 '\000', data = 0x7ffde7b3aa00}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf8039 "log", short_name = 0 '\000', data = 0x7ffde7b3aa08}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf803d "help", short_name = 104 'h', data = 0x7ffde7b3a9d4}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8042 "version", short_name = 0 '\000', data = 0x7ffde7b3a9d8}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf804a "no-config", short_name = 0 '\000', data = 0x7ffde7b3a9dc}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf804d "config", short_name = 99 'c', data = 0x7ffde7b3aa28}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8054 "wait-for-debugger", short_name = 0 '\000', data = 0x7ffde7b3a9ce}, {type = WESTON_OPTION_BOOLEAN, name = 0x7fcbb9bf8066 "debug", short_name = 0 '\000', data = 0x7ffde7b3a9e0}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf806c "logger-scopes", short_name = 108 'l', data = 0x7ffde7b3aa10}, {type = WESTON_OPTION_STRING, name = 0x7fcbb9bf807a "flight-rec-scopes", short_name = 102 'f', data = 0x7ffde7b3aa18}}
#16 0x00007fcbb9a48d0a in __libc_start_main (main=0x55eb4c17f050 <main>, argc=5, argv=0x7ffde7b3b068, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffde7b3b058) at ../csu/libc-start.c:308
self = <optimized out>
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 1906401613501594468, 94469082312800, 0, 0, 0, 5645738642457394020, 5635425129880648548}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x5, 0x7ffde7b3b068}, data = {prev = 0x0, cleanup = 0x0, canceltype = 5}}}
not_first_call = <optimized out>
#17 0x000055eb4c17f08a in _start ()
```https://gitlab.freedesktop.org/wayland/weston/-/issues/321desktop-shell: Client configured with (0,0) on fullscreen -> maximized transi...2022-05-10T12:16:50ZScott Andersondesktop-shell: Client configured with (0,0) on fullscreen -> maximized transitionThis happens with basically any client:
- Open a client (e.g. weston-terminal)
- Maximize it with weston's keybinding (Meta + Shift + m)
- Fullscreen it with weston's keybinding (Meta + Shift + f)
- Maximize it with weston's keybinding (...This happens with basically any client:
- Open a client (e.g. weston-terminal)
- Maximize it with weston's keybinding (Meta + Shift + m)
- Fullscreen it with weston's keybinding (Meta + Shift + f)
- Maximize it with weston's keybinding (Meta + Shift + m)
- The client will be killed by weston
```
[429283.180] xdg_toplevel@18.configure(0, 0, array)
[429283.184] xdg_surface@17.configure(1628)
[429283.186] -> xdg_surface@17.ack_configure(1628)
[429283.192] -> xdg_toplevel@18.set_title("Wayland Terminal")
[429283.201] -> wl_compositor@4.create_region(new id wl_region@21)
[429283.371] -> xdg_toplevel@18.set_title("Wayland Terminal")
[429283.374] -> wl_compositor@4.create_region(new id wl_region@22)
[429283.377] -> wl_region@22.add(32, 32, 742, 427)
[429283.383] -> wl_region@21.add(35, 35, 736, 421)
[429283.741] -> wl_shm@9.create_pool(new id wl_shm_pool@23, fd 9, 1582984)
[429283.752] -> wl_shm_pool@23.create_buffer(new id wl_buffer@24, 0, 806, 491, 3224, 0)
[429283.760] -> wl_surface@16.frame(new id wl_callback@25)
[429299.726] -> xdg_surface@17.set_window_geometry(32, 32, 742, 427)
[429299.744] -> wl_surface@16.set_opaque_region(wl_region@21)
[429299.747] -> wl_region@21.destroy()
[429299.752] -> wl_surface@16.set_input_region(wl_region@22)
[429299.754] -> wl_region@22.destroy()
[429299.756] -> wl_surface@16.attach(wl_buffer@24, 0, 0)
[429299.761] -> wl_surface@16.damage(0, 0, 806, 491)
[429299.766] -> wl_surface@16.commit()
[429300.361] wl_display@1.delete_id(21)
[429300.368] wl_display@1.delete_id(22)
[429300.371] wl_keyboard@20.repeat_info(40, 400)
[429300.375] wl_keyboard@20.keymap(1, fd 8, 47218)
[429306.598] wl_surface@16.enter(wl_output@13)
[429306.610] -> wl_surface@16.set_buffer_transform(0)
[429306.613] -> wl_surface@16.set_buffer_scale(1)
[429306.617] wl_keyboard@20.modifiers(1630, 0, 0, 0, 0)
[429306.625] wl_keyboard@20.enter(1630, wl_surface@16, array)
[429306.630] wl_data_device@11.selection(nil)
[429306.634] xdg_toplevel@18.configure(0, 0, array)
[429306.639] xdg_surface@17.configure(1632)
[429306.642] -> xdg_surface@17.ack_configure(1632)
[429306.645] -> xdg_toplevel@18.set_title("Wayland Terminal")
[429306.662] wl_display@1.delete_id(25)
[429306.666] wl_buffer@24.release()
[429306.668] wl_pointer@19.enter(1634, wl_surface@16, 667.980469, 271.773438)
[429306.677] -> wl_shm_pool@3.create_buffer(new id wl_buffer@22, 1941504, 32, 32, 128, 0)
[429306.687] -> wl_surface@12.attach(wl_buffer@22, 0, 0)
[429306.691] -> wl_surface@12.damage(0, 0, 32, 32)
[429306.696] -> wl_surface@12.commit()
[429306.698] -> wl_pointer@19.set_cursor(1634, wl_surface@12, 14, 15)
[429306.703] wl_pointer@19.frame()
[429306.705] xdg_wm_base@15.ping(1635)
[429306.707] -> xdg_wm_base@15.pong(1635)
[429306.710] wl_callback@25.done(19164742)
[429306.715] -> xdg_toplevel@18.set_title("scott@yuno:~")
[429306.721] -> wl_compositor@4.create_region(new id wl_region@25)
[429306.725] -> xdg_toplevel@18.set_title("scott@yuno:~")
[429306.727] -> wl_compositor@4.create_region(new id wl_region@21)
[429306.730] -> wl_region@21.add(32, 32, 742, 427)
[429306.735] -> wl_region@25.add(35, 35, 736, 421)
[429306.741] -> wl_surface@16.frame(new id wl_callback@26)
[429308.013] -> wl_surface@16.set_opaque_region(wl_region@25)
[429308.019] -> wl_region@25.destroy()
[429308.022] -> wl_surface@16.set_input_region(wl_region@21)
[429308.024] -> wl_region@21.destroy()
[429308.026] -> wl_surface@16.attach(wl_buffer@24, 0, 0)
[429308.031] -> wl_surface@16.damage(0, 0, 806, 491)
[429308.035] -> wl_surface@16.commit()
[429308.119] wl_display@1.delete_id(25)
[429308.124] wl_display@1.delete_id(21)
[429320.613] wl_display@1.delete_id(26)
[429320.629] wl_buffer@24.release()
[429320.633] wl_callback@26.done(19164759)
[429357.097] wl_keyboard@20.key(1636, 19164806, 28, 0)
[430667.338] wl_keyboard@20.key(1637, 19166116, 125, 1)
[430667.364] wl_keyboard@20.modifiers(1637, 64, 0, 0, 0)
[430704.333] wl_keyboard@20.key(1638, 19166153, 42, 1)
[430704.356] wl_keyboard@20.modifiers(1638, 65, 0, 0, 0)
[430828.354] wl_keyboard@20.leave(1639, wl_surface@16)
[430828.378] wl_keyboard@20.modifiers(1640, 65, 0, 0, 0)
[430828.392] wl_keyboard@20.enter(1640, wl_surface@16, array)
[430828.400] xdg_toplevel@18.configure(2560, 1408, array)
[430828.410] xdg_surface@17.configure(1641)
[430828.415] -> xdg_surface@17.ack_configure(1641)
[430828.421] -> xdg_toplevel@18.set_title("scott@yuno:~")
[430828.440] -> wl_compositor@4.create_region(new id wl_region@26)
[430829.559] -> xdg_toplevel@18.set_title("scott@yuno:~")
[430829.567] -> wl_compositor@4.create_region(new id wl_region@21)
[430829.573] -> wl_region@21.add(0, 0, 2560, 1408)
[430829.583] -> wl_region@26.add(0, 0, 2560, 1408)
[430829.596] -> wl_buffer@24.destroy()
[430829.669] -> wl_shm_pool@23.destroy()
[430834.243] -> wl_shm@9.create_pool(new id wl_shm_pool@25, fd 9, 14417920)
[430834.268] -> wl_shm_pool@25.create_buffer(new id wl_buffer@27, 0, 2560, 1408, 10240, 0)
[430834.279] -> wl_surface@16.frame(new id wl_callback@28)
[430848.133] -> xdg_surface@17.set_window_geometry(0, 0, 2560, 1408)
[430848.153] -> wl_surface@16.set_opaque_region(wl_region@26)
[430848.156] -> wl_region@26.destroy()
[430848.159] -> wl_surface@16.set_input_region(wl_region@21)
[430848.161] -> wl_region@21.destroy()
[430848.168] -> wl_surface@16.attach(wl_buffer@27, 0, 0)
[430848.173] -> wl_surface@16.damage(0, 0, 2560, 1408)
[430848.178] -> wl_surface@16.commit()
[430858.396] wl_display@1.delete_id(24)
[430858.409] wl_display@1.delete_id(23)
[430858.412] wl_display@1.delete_id(26)
[430858.414] wl_display@1.delete_id(21)
[430858.417] wl_display@1.delete_id(28)
[430858.419] wl_buffer@27.release()
[430858.422] wl_pointer@19.leave(1642, wl_surface@16)
[430858.434] wl_pointer@19.frame()
[430858.438] wl_pointer@19.enter(1643, wl_surface@16, 1891.980469, 983.773438)
[430858.448] -> wl_surface@12.attach(wl_buffer@22, 0, 0)
[430858.453] -> wl_surface@12.damage(0, 0, 32, 32)
[430858.458] -> wl_surface@12.commit()
[430858.460] -> wl_pointer@19.set_cursor(1643, wl_surface@12, 14, 15)
[430858.465] wl_pointer@19.frame()
[430858.467] xdg_wm_base@15.ping(1644)
[430858.469] -> xdg_wm_base@15.pong(1644)
[430858.471] wl_callback@28.done(19166294)
[430858.475] -> wl_surface@16.frame(new id wl_callback@28)
[430869.264] -> wl_surface@16.attach(wl_buffer@27, 0, 0)
[430869.292] -> wl_surface@16.damage(0, 0, 2560, 1408)
[430869.301] -> wl_surface@16.commit()
[430889.664] wl_display@1.delete_id(28)
[430889.684] wl_buffer@27.release()
[430889.688] wl_callback@28.done(19166327)
[430918.291] wl_keyboard@20.key(1645, 19166367, 50, 0)
[431731.442] wl_keyboard@20.leave(1646, wl_surface@16)
[431731.469] wl_keyboard@20.modifiers(1647, 65, 0, 0, 0)
[431731.484] wl_keyboard@20.enter(1647, wl_surface@16, array)
[431731.493] xdg_toplevel@18.configure(2560, 1440, array)
[431731.502] xdg_surface@17.configure(1648)
[431731.508] -> xdg_surface@17.ack_configure(1648)
[431731.515] -> xdg_toplevel@18.set_title("scott@yuno:~")
[431731.522] -> wl_compositor@4.create_region(new id wl_region@28)
[431732.267] -> xdg_toplevel@18.set_title("scott@yuno:~")
[431732.274] -> wl_compositor@4.create_region(new id wl_region@21)
[431732.280] -> wl_region@21.add(0, 0, 2560, 1440)
[431732.289] -> wl_region@28.add(0, 0, 2560, 1440)
[431732.303] -> wl_buffer@27.destroy()
[431732.879] -> wl_shm_pool@25.destroy()
[431737.675] -> wl_shm@9.create_pool(new id wl_shm_pool@26, fd 9, 14745600)
[431737.698] -> wl_shm_pool@26.create_buffer(new id wl_buffer@23, 0, 2560, 1440, 10240, 0)
[431737.710] -> wl_surface@16.frame(new id wl_callback@24)
[431750.231] -> xdg_surface@17.set_window_geometry(0, 0, 2560, 1440)
[431750.249] -> wl_surface@16.set_opaque_region(wl_region@28)
[431750.252] -> wl_region@28.destroy()
[431750.254] -> wl_surface@16.set_input_region(wl_region@21)
[431750.257] -> wl_region@21.destroy()
[431750.259] -> wl_surface@16.attach(wl_buffer@23, 0, 0)
[431750.263] -> wl_surface@16.damage(0, 0, 2560, 1440)
[431750.268] -> wl_surface@16.commit()
[431759.119] wl_display@1.delete_id(27)
[431759.133] wl_display@1.delete_id(25)
[431759.136] wl_display@1.delete_id(28)
[431759.138] wl_display@1.delete_id(21)
[431759.140] wl_display@1.delete_id(24)
[431759.143] wl_buffer@23.release()
[431759.146] wl_pointer@19.leave(1649, wl_surface@16)
[431759.151] wl_pointer@19.frame()
[431759.153] wl_pointer@19.enter(1650, wl_surface@16, 1891.980469, 1015.773438)
[431759.162] -> wl_surface@12.attach(wl_buffer@22, 0, 0)
[431759.168] -> wl_surface@12.damage(0, 0, 32, 32)
[431759.174] -> wl_surface@12.commit()
[431759.176] -> wl_pointer@19.set_cursor(1650, wl_surface@12, 14, 15)
[431759.183] wl_pointer@19.frame()
[431759.185] xdg_wm_base@15.ping(1651)
[431759.189] -> xdg_wm_base@15.pong(1651)
[431759.192] wl_callback@24.done(19167194)
[431759.197] -> wl_surface@16.frame(new id wl_callback@24)
[431766.096] -> wl_surface@16.attach(wl_buffer@23, 0, 0)
[431766.117] -> wl_surface@16.damage(0, 0, 2560, 1440)
[431766.122] -> wl_surface@16.commit()
[431790.290] wl_display@1.delete_id(24)
[431790.306] wl_buffer@23.release()
[431790.310] wl_callback@24.done(19167228)
[431840.402] wl_keyboard@20.key(1652, 19167289, 33, 0)
[432106.510] wl_keyboard@20.leave(1653, wl_surface@16)
[432106.537] wl_keyboard@20.modifiers(1654, 65, 0, 0, 0)
[432106.550] wl_keyboard@20.enter(1654, wl_surface@16, array)
[432106.570] xdg_toplevel@18.configure(0, 0, array)
[432106.579] xdg_surface@17.configure(1655)
[432106.584] -> xdg_surface@17.ack_configure(1655)
[432106.591] -> xdg_toplevel@18.set_title("scott@yuno:~")
[432106.596] -> wl_compositor@4.create_region(new id wl_region@24)
[432106.609] -> xdg_toplevel@18.set_title("scott@yuno:~")
[432106.614] -> wl_compositor@4.create_region(new id wl_region@21)
[432106.619] -> wl_region@21.add(0, 0, 806, 491)
[432106.629] -> wl_region@24.add(0, 0, 806, 491)
[432106.641] -> wl_buffer@23.destroy()
[432107.259] -> wl_shm_pool@26.destroy()
[432107.849] -> wl_shm@9.create_pool(new id wl_shm_pool@28, fd 9, 1582984)
[432107.866] -> wl_shm_pool@28.create_buffer(new id wl_buffer@25, 0, 806, 491, 3224, 0)
[432107.881] -> wl_surface@16.frame(new id wl_callback@27)
[432108.963] -> xdg_surface@17.set_window_geometry(0, 0, 806, 491)
[432108.991] -> wl_surface@16.set_opaque_region(wl_region@24)
[432108.996] -> wl_region@24.destroy()
[432108.999] -> wl_surface@16.set_input_region(wl_region@21)
[432109.004] -> wl_region@21.destroy()
[432109.007] -> wl_surface@16.attach(wl_buffer@25, 0, 0)
[432109.015] -> wl_surface@16.damage(0, 0, 806, 491)
[432109.024] -> wl_surface@16.commit()
[432111.513] wl_display@1.delete_id(23)
[432111.520] wl_display@1.delete_id(26)
[432111.524] wl_display@1.delete_id(24)
[432111.528] wl_display@1.delete_id(21)
[432111.532] wl_display@1.error(xdg_wm_base@15, 4, "xdg_surface buffer does not match the configured state")
```
The interesting part is that (0,0) is being sent on the final configure. weston-terminal decides to go with its default size of 806x491. Because this doesn't fit the maximized resolution weston is expecting (but didn't tell it), it kills it with a protocol error.
You can get similar results doing fullscreen -> maximized -> maximized.Marius VladMarius Vlad