https://bugs.kde.org/show_bug.cgi?id=506412
Bug ID: 506412
Summary: A protocol error "xdg_surface must not have a buffer
at creation" occurs with a null buffer attached to the
surface
Classification: Plasma
Product: kwin
Version First 6.1.1
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: wayland-generic
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 182816
--> https://bugs.kde.org/attachment.cgi?id=182816&action=edit
Full WAYLAND_DEBUG=1 output
SUMMARY
The protocol error "xdg_wm_base#29: error 3: xdg_surface must not have a buffer
at creation" occurs when attempting to create an xdg_surface while mapping a
window on KDE, even though a null buffer is attached and committed to the
surface at the time of creation.
STEPS TO REPRODUCE
1. Clone the reproducer from https://github.com/kontrabant/SDL.git
2. Switch to the xdg_configure_test branch
3. Build with the cmake option -DSDL_TESTS=ON
4. Run the testsprite demo with "SDL_RENDER_DRIVER=vulkan ./testsprite"
5. The window will automatically hide and show, and the issue should quickly
occur. I've only seen this on the Mesa AMD and Intel Vulkan drivers, llvmpipe
doesn't seem to exhibit the issue (unsure about the proprietary Nvidia
drivers).
OBSERVED RESULT
The program halts with the protocol error "xdg_wm_base#29: error 3: xdg_surface
must not have a buffer at creation" while mapping the window.
Relevant bits of the WAYLAND_DEBUG=1 log:
```
[2487569.784] {mesa vk display queue} ->
wp_linux_drm_syncobj_surface_v1#58.set_acquire_point(wp_linux_drm_syncobj_timeline_v1#74,
0, 918)
[2487569.813] {mesa vk display queue} ->
wp_linux_drm_syncobj_surface_v1#58.set_release_point(wp_linux_drm_syncobj_timeline_v1#75,
0, 918)
[2487569.821] {mesa vk display queue} -> wl_surface#3.attach(wl_buffer#73, 0,
0)
[2487569.826] {mesa vk display queue} -> wl_surface#3.damage(0, 0, 2147483647,
2147483647)
[2487569.831] {mesa vk display queue} -> wl_surface#3.commit()
[2487569.838] {mesa vk display queue} discarded wl_buffer#65.release()
[2487569.899] {Default Queue} -> wl_display#1.sync(new id wl_callback#60)
[2487569.971] {Display Queue} wl_display#1.delete_id(60)
[2487569.980] {Default Queue} wl_callback#60.done(8867)
[2487570.001] {Default Queue} -> wl_surface#3.attach(nil, 0, 0)
[2487570.006] {Default Queue} -> wl_surface#3.commit()
[2487570.011] {Default Queue} -> xdg_wm_base#29.get_xdg_surface(new id
xdg_surface#60, wl_surface#3)
[2487570.019] {Default Queue} -> xdg_surface#60.get_toplevel(new id
xdg_toplevel#80)
[2487570.025] {Default Queue} -> xdg_toplevel#80.set_app_id("testsprite")
[2487570.030] {Default Queue} ->
zxdg_decoration_manager_v1#7.get_toplevel_decoration(new id
zxdg_toplevel_decoration_v1#81, xdg_toplevel#80)
[2487570.038] {Default Queue} -> zxdg_toplevel_decoration_v1#81.set_mode(2)
[2487570.043] {Default Queue} -> zxdg_exporter_v2#22.export_toplevel(new id
zxdg_exported_v2#72, wl_surface#3)
[2487570.049] {Default Queue} -> xdg_toplevel#80.set_parent(nil)
[2487570.054] {Default Queue} ->
xdg_toplevel#80.set_title("./test/testsprite")
[2487570.059] {Default Queue} -> wl_surface#3.commit()
[2487570.193] {Display Queue} wl_display#1.error(xdg_wm_base#29, 3,
"xdg_surface must not have a buffer at creation")
xdg_wm_base#29: error 3: xdg_surface must not have a buffer at creation
```
EXPECTED RESULT
The example program maps the window and runs normally.
SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 42
KDE Plasma Version: 6.4.1
KDE Frameworks Version: 6.15.0
Qt Version: 6.9.1
ADDITIONAL INFORMATION
I can run the reproducer for long periods of time on GNOME, Weston, and Sway
under the same conditions with no issues, so this is KDE specific.
--
You are receiving this mail because:
You are watching all bug changes.