Bug 301427
| Summary: | [GTK][WPE] Increase AcceleratedSurface::s_maximumBuffers from 3 to 4 | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Nikolas Zimmermann <zimmermann> |
| Component: | WPE WebKit | Assignee: | Nikolas Zimmermann <zimmermann> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | bugs-noreply |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Nikolas Zimmermann
We can apparently exceed the amount of buffers in the swap chain - increase from 3 to 4.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Nikolas Zimmermann
ASSERTION FAILED: m_lockedTargets.size() < s_maximumBuffers
../../../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.cpp(666) : AcceleratedSurface::RenderTarget *WebKit::AcceleratedSurface::SwapChain::nextTarget()
1 0x7d9a050919c5 WebKit::AcceleratedSurface::SwapChain::nextTarget()
2 0x7d9a050922b2 WebKit::AcceleratedSurface::willRenderFrame(WebCore::IntSize const&)
3 0x7d9a050a1586 WebKit::ThreadedCompositor::renderLayerTree()
4 0x7d9a06fb5ed2 WTF::RunLoop::TimerBase::TimerBase(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral)::$_0::__invoke(void*)
5 0x7d9a06fb394d WTF::RunLoop::$_1::__invoke(_GSource*, int (*)(void*), void*)
6 0x7d99ff29a49e ???
7 0x7d99ff29a710 g_main_context_dispatch
8 0x7d9a06fb3f88 WTF::RunLoop::runGLibMainLoopIteration(WTF::RunLoop::MayBlock)
9 0x7d9a06fb46d5 WTF::RunLoop::run()
10 0x7d9a06f34a48 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
11 0x7d9a06fbb6d9 WTF::wtfThreadEntryPoint(void*)
12 0x7d99fea4caa4 start_thread
13 0x7d99fead9a64 __clone
Nikolas Zimmermann
Pull request: https://github.com/WebKit/WebKit/pull/52956
Nikolas Zimmermann
We apparently sometimes get the "done" message before the "wl_buffer.release":
2025-10-24 13:29:03,844 - INFO - Killed still alive minibrowser-wpe child with pid 24569 and cmd: /host/home/nzimmermann/Software/GitRepositories/WebKit/WebKitBuild/WPE/Release/bin/MiniBrowser http://127.0.0.1:43749/motionmark1.3.1-60fps/index.html --fullscreen
2025-10-24 13:29:03,845 - INFO - Killed still alive minibrowser-wpe child with pid 24638 and cmd: bwrap
2025-10-24 13:29:03,845 - INFO - Killed still alive minibrowser-wpe child with pid 24642 and cmd: /usr/bin/bwrap --args 31 -- /host/home/nzimmermann/Software/GitRepositories/WebKit/WebKitBuild/WPE/Release/bin/WPEWebProcess 5 24
2025-10-24 13:29:03,845 - INFO - Killed still alive minibrowser-wpe child with pid 24639 and cmd: /usr/bin/xdg-dbus-proxy --args=31
2025-10-24 13:29:03,862 - INFO - End the iteration 1 of 3 for current benchmark
2025-10-24 13:29:03,862 - INFO - Start the iteration 2 of 3 for current benchmark
2025-10-24 13:29:03,862 - INFO - Launching an builtin http server
2025-10-24 13:29:03,862 - INFO - HTTP requests will be logged to /tmp/run-benchmark-diagnostics-1761305022/run-benchmark-http.log
2025-10-24 13:29:03,863 - INFO - Start to fetching the port number of the http server
2025-10-24 13:29:03,863 - INFO - Server port is not found this time, retry after 0.5 seconds
2025-10-24 13:29:04,367 - INFO - HTTP Server is serving at port: 43165
2025-10-24 13:29:04,372 - INFO - Executing: /host/home/nzimmermann/Software/GitRepositories/WebKit/Tools/Scripts/run-minibrowser --wpe -- --fullscreen http://127.0.0.1:43165/motionmark1.3.1-60fps/index.html
Using default MiniBrowser
[3681429.288] -> wl_display@1.get_registry(new id wl_registry@2)
[3681429.301] -> wl_display@1.sync(new id wl_callback@3)
[3681429.476] wl_display@1.delete_id(3)
[3681429.483] wl_registry@2.global(1, "wl_compositor", 6)
[3681429.486] -> wl_registry@2.bind(1, "wl_compositor", 5, new id [unknown]@4)
[3681429.489] wl_registry@2.global(2, "wl_drm", 2)
[3681429.492] wl_registry@2.global(3, "wl_shm", 2)
[3681429.493] -> wl_registry@2.bind(3, "wl_shm", 1, new id [unknown]@5)
[3681429.495] wl_registry@2.global(4, "wl_output", 4)
[3681429.496] -> wl_registry@2.bind(4, "wl_output", 2, new id [unknown]@6)
[3681429.509] wl_registry@2.global(5, "zxdg_output_manager_v1", 3)
[3681429.511] wl_registry@2.global(6, "wl_data_device_manager", 3)
[3681429.512] -> wl_registry@2.bind(6, "wl_data_device_manager", 3, new id [unknown]@7)
[3681429.514] wl_registry@2.global(7, "xdg_toplevel_drag_manager_v1", 1)
[3681429.515] wl_registry@2.global(8, "zwp_primary_selection_device_manager_v1", 1)
[3681429.517] wl_registry@2.global(9, "wl_subcompositor", 1)
[3681429.518] wl_registry@2.global(10, "xdg_wm_base", 6)
[3681429.520] -> wl_registry@2.bind(10, "xdg_wm_base", 1, new id [unknown]@8)
[3681429.521] wl_registry@2.global(11, "gtk_shell1", 6)
[3681429.523] wl_registry@2.global(12, "wp_viewporter", 1)
[3681429.524] wl_registry@2.global(13, "wp_fractional_scale_manager_v1", 1)
[3681429.525] wl_registry@2.global(14, "zwp_pointer_gestures_v1", 3)
[3681429.527] wl_registry@2.global(15, "zwp_tablet_manager_v2", 1)
[3681429.528] wl_registry@2.global(16, "wl_seat", 8)
[3681429.530] -> wl_registry@2.bind(16, "wl_seat", 8, new id [unknown]@9)
[3681430.927] wl_registry@2.global(17, "zwp_relative_pointer_manager_v1", 1)
[3681430.931] -> wl_registry@2.bind(17, "zwp_relative_pointer_manager_v1", 1, new id [unknown]@10)
[3681430.934] wl_registry@2.global(18, "zwp_pointer_constraints_v1", 1)
[3681430.935] -> wl_registry@2.bind(18, "zwp_pointer_constraints_v1", 1, new id [unknown]@11)
[3681430.937] wl_registry@2.global(19, "zxdg_exporter_v2", 1)
[3681430.939] wl_registry@2.global(20, "zxdg_importer_v2", 1)
[3681430.940] wl_registry@2.global(21, "zxdg_exporter_v1", 1)
[3681430.942] wl_registry@2.global(22, "zxdg_importer_v1", 1)
[3681430.943] wl_registry@2.global(23, "zwp_linux_dmabuf_v1", 5)
[3681430.944] -> wl_registry@2.bind(23, "zwp_linux_dmabuf_v1", 4, new id [unknown]@12)
[3681430.945] wl_registry@2.global(24, "wp_single_pixel_buffer_manager_v1", 1)
[3681430.947] wl_registry@2.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[3681430.948] wl_registry@2.global(26, "zwp_text_input_manager_v3", 1)
[3681430.950] -> wl_registry@2.bind(26, "zwp_text_input_manager_v3", 1, new id [unknown]@13)
[3681430.951] wl_registry@2.global(27, "wp_presentation", 2)
[3681430.953] -> wl_registry@2.bind(27, "wp_presentation", 1, new id [unknown]@14)
[3681430.954] wl_registry@2.global(28, "xdg_activation_v1", 1)
[3681430.955] wl_registry@2.global(29, "zwp_idle_inhibit_manager_v1", 1)
[3681430.957] wl_registry@2.global(30, "wp_linux_drm_syncobj_manager_v1", 1)
[3681430.958] wl_registry@2.global(31, "xdg_wm_dialog_v1", 1)
[3681430.959] wl_registry@2.global(32, "wp_color_manager_v1", 1)
[3681430.961] wl_registry@2.global(33, "xdg_system_bell_v1", 1)
[3681430.962] wl_registry@2.global(34, "wp_drm_lease_device_v1", 1)
[3681430.964] wl_registry@2.global(35, "wp_drm_lease_device_v1", 1)
[3681430.965] wl_registry@2.global(36, "wp_commit_timing_manager_v1", 1)
[3681430.967] wl_registry@2.global(37, "wp_fifo_manager_v1", 1)
[3681430.968] wl_registry@2.global(38, "wp_cursor_shape_manager_v1", 2)
[3681430.970] wl_callback@3.done(5004)
[3681430.972] -> wl_compositor@4.create_surface(new id wl_surface@3)
[3681431.902] -> wl_shm@5.create_pool(new id wl_shm_pool@15, fd 14, 2304)
[3681431.916] -> wl_data_device_manager@7.get_data_device(new id wl_data_device@16, wl_seat@9)
[3681431.920] -> zwp_text_input_manager_v3@13.get_text_input(new id zwp_text_input_v3@17, wl_seat@9)
[3681431.922] -> zwp_linux_dmabuf_v1@12.get_default_feedback(new id zwp_linux_dmabuf_feedback_v1@18)
[3681431.923] -> wl_display@1.sync(new id wl_callback@19)
[3681432.210] wl_display@1.delete_id(19)
[3681432.215] wl_output@6.geometry(0, 0, 340, 220, 0, "CSO", "0x160d", 0)
[3681432.222] wl_output@6.mode(3, 1920, 1200, 60000)
[3681432.224] wl_output@6.scale(1)
[3681432.225] wl_output@6.done()
[3681432.231] wl_seat@9.capabilities(3)
[3681432.233] -> wl_seat@9.get_pointer(new id wl_pointer@20)
[3681432.235] -> wl_seat@9.get_keyboard(new id wl_keyboard@21)
[3681432.237] wl_seat@9.name("seat0")
[3681432.239] zwp_linux_dmabuf_feedback_v1@18.format_table(fd 14, 1360)
[3681432.241] zwp_linux_dmabuf_feedback_v1@18.main_device(array[8])
[3681432.446] zwp_linux_dmabuf_feedback_v1@18.tranche_target_device(array[8])
[3681432.448] zwp_linux_dmabuf_feedback_v1@18.tranche_flags(0)
[3681432.449] zwp_linux_dmabuf_feedback_v1@18.tranche_formats(array[170])
[3681432.450] zwp_linux_dmabuf_feedback_v1@18.tranche_done()
[3681432.451] zwp_linux_dmabuf_feedback_v1@18.done()
[3681432.452] wl_callback@19.done(5004)
[3681432.599] -> wl_compositor@4.create_surface(new id wl_surface@19)
[3681432.601] -> xdg_wm_base@8.get_xdg_surface(new id xdg_surface@22, wl_surface@19)
[3681432.603] -> xdg_surface@22.get_toplevel(new id xdg_toplevel@23)
[3681432.623] -> xdg_toplevel@23.set_title("MiniBrowser")
[3681432.627] -> xdg_toplevel@23.set_app_id("org.wpewebkit.MiniBrowser")
[3681432.629] -> wl_surface@19.commit()
[3681432.631] -> zwp_linux_dmabuf_v1@12.get_surface_feedback(new id zwp_linux_dmabuf_feedback_v1@24, wl_surface@19)
[3681432.633] -> wl_display@1.sync(new id wl_callback@25)
[3681435.118] wl_display@1.delete_id(25)
[3681435.124] wl_keyboard@21.keymap(1, fd 15, 68403)
[3681436.065] wl_keyboard@21.repeat_info(33, 500)
[3681436.073] xdg_toplevel@23.configure(0, 0, array[0])
[3681436.078] xdg_surface@22.configure(194)
[3681436.081] -> xdg_surface@22.ack_configure(194)
[3681436.083] zwp_linux_dmabuf_feedback_v1@24.format_table(fd 16, 1360)
[3681436.087] zwp_linux_dmabuf_feedback_v1@24.main_device(array[8])
[3681436.089] zwp_linux_dmabuf_feedback_v1@24.tranche_target_device(array[8])
[3681436.091] zwp_linux_dmabuf_feedback_v1@24.tranche_flags(0)
[3681436.092] zwp_linux_dmabuf_feedback_v1@24.tranche_formats(array[170])
[3681436.093] zwp_linux_dmabuf_feedback_v1@24.tranche_done()
[3681436.096] zwp_linux_dmabuf_feedback_v1@24.done()
[3681436.100] wl_callback@25.done(5004)
[3681436.104] -> wl_surface@19.set_buffer_scale(1)
[3681436.325] -> xdg_toplevel@23.set_fullscreen(nil)
[3681436.329] -> xdg_toplevel@23.set_title("WPEWebKit MiniBrowser")
ERROR: Failed to make thread real time: GDBus.Error:org.freedesktop.DBus.Error.Failed: No such file or directory
../../../Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t)
[3681478.541] xdg_toplevel@23.configure(1920, 1200, array[4])
[3681478.550] xdg_surface@22.configure(195)
[3681478.570] -> xdg_surface@22.ack_configure(195)
ERROR: Failed to make thread real time: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code0: Could not get pidns: PIDFD_GET_PID_NAMESPACE ioctl failed: Inappropriate ioctl for device
../../../Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t)
[3681815.025] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@25)
[3681815.043] -> zwp_linux_buffer_params_v1@25.add(fd 24, 0, 0, 7680, 16777216, 8)
[3681815.047] -> zwp_linux_buffer_params_v1@25.add(fd 27, 1, 9338880, 960, 16777216, 8)
[3681815.050] -> zwp_linux_buffer_params_v1@25.add(fd 28, 2, 9375744, 64, 16777216, 8)
[3681815.059] -> zwp_linux_buffer_params_v1@25.create_immed(new id wl_buffer@26, 1920, 1200, 875713112, 0)
[3681815.062] -> zwp_linux_buffer_params_v1@25.destroy()
[3681815.069] -> wl_compositor@4.create_region(new id wl_region@27)
[3681815.072] -> wl_region@27.add(0, 0, 1920, 1200)
[3681815.075] -> wl_surface@19.set_opaque_region(wl_region@27)
[3681815.077] -> wl_region@27.destroy()
[3681815.082] -> wl_surface@19.attach(wl_buffer@26, 0, 0)
[3681815.085] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3681815.088] -> wl_surface@19.frame(new id wl_callback@28)
[3681815.090] -> wl_surface@19.commit()
[3681818.751] wl_display@1.delete_id(25)
[3681818.766] wl_display@1.delete_id(27)
[3681818.768] wl_display@1.delete_id(28)
[3681818.769] wl_keyboard@21.enter(5006, wl_surface@19, array[0])
[3681818.803] wl_keyboard@21.modifiers(5006, 0, 0, 16, 0)
[3681818.815] wl_data_device@16.data_offer(new id wl_data_offer@4278190080)
[3681818.822] wl_data_offer@4278190080.offer("text/plain;charset=utf-8")
[3681818.829] wl_data_device@16.selection(wl_data_offer@4278190080)
[3681818.835] zwp_text_input_v3@17.enter(wl_surface@19)
[3681818.837] xdg_toplevel@23.configure(1920, 1200, array[8])
[3681818.839] xdg_surface@22.configure(197)
[3681818.862] -> xdg_surface@22.ack_configure(197)
[3681818.864] wl_surface@19.enter(wl_output@6)
[3681818.868] -> wl_surface@19.set_buffer_scale(1)
[3681818.875] wl_callback@28.done(1549981)
[3681831.318] wl_pointer@20.enter(5008, wl_surface@19, 1444.90625000, 429.37890625)
[3681831.393] wl_pointer@20.frame()
[3681832.301] -> wl_shm_pool@15.create_buffer(new id wl_buffer@28, 0, 24, 24, 96, 0)
[3681832.309] -> wl_pointer@20.set_cursor(5008, wl_surface@3, 3, 1)
[3681832.313] -> wl_surface@3.attach(wl_buffer@28, 0, 0)
[3681832.317] -> wl_surface@3.set_buffer_scale(1)
[3681832.318] -> wl_surface@3.damage(0, 0, 24, 24)
[3681832.320] -> wl_surface@3.commit()
ERROR: Failed to make thread real time: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code0: Could not get pidns: PIDFD_GET_PID_NAMESPACE ioctl failed: Inappropriate ioctl for device
../../../Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t)
[3681932.566] -> xdg_toplevel@23.set_title("MotionMark")
[3681947.553] zwp_linux_dmabuf_feedback_v1@24.format_table(fd 28, 1360)
[3681947.571] zwp_linux_dmabuf_feedback_v1@24.main_device(array[8])
[3681947.573] zwp_linux_dmabuf_feedback_v1@24.tranche_target_device(array[8])
[3681947.574] zwp_linux_dmabuf_feedback_v1@24.tranche_flags(1)
[3681947.575] zwp_linux_dmabuf_feedback_v1@24.tranche_formats(array[128])
[3681947.579] zwp_linux_dmabuf_feedback_v1@24.tranche_done()
[3681947.581] zwp_linux_dmabuf_feedback_v1@24.tranche_target_device(array[8])
[3681947.582] zwp_linux_dmabuf_feedback_v1@24.tranche_flags(0)
[3681947.583] zwp_linux_dmabuf_feedback_v1@24.tranche_formats(array[170])
[3681947.584] zwp_linux_dmabuf_feedback_v1@24.tranche_done()
[3681947.585] zwp_linux_dmabuf_feedback_v1@24.done()
[3681967.834] -> xdg_toplevel@23.set_title("MotionMark 1.3.1-60fps")
[3681981.419] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@27)
[3681981.432] -> zwp_linux_buffer_params_v1@27.add(fd 33, 0, 0, 7680, 16777216, 8)
[3681981.434] -> zwp_linux_buffer_params_v1@27.add(fd 34, 1, 9338880, 960, 16777216, 8)
[3681981.436] -> zwp_linux_buffer_params_v1@27.add(fd 35, 2, 9375744, 64, 16777216, 8)
[3681981.437] -> zwp_linux_buffer_params_v1@27.create_immed(new id wl_buffer@25, 1920, 1200, 875713112, 0)
[3681981.440] -> zwp_linux_buffer_params_v1@27.destroy()
[3681981.444] -> wl_surface@19.attach(wl_buffer@25, 0, 0)
[3681981.446] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3681981.448] -> wl_surface@19.frame(new id wl_callback@29)
[3681981.449] -> wl_surface@19.commit()
[3681982.044] wl_display@1.delete_id(27)
[3681982.052] wl_display@1.delete_id(29)
[3681982.053] wl_callback@29.done(1550145)
[3681982.062] -> wl_buffer@26.destroy()
[3682032.421] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@29)
[3682032.436] -> zwp_linux_buffer_params_v1@29.add(fd 37, 0, 0, 7680, 16777216, 8)
[3682032.441] -> zwp_linux_buffer_params_v1@29.add(fd 38, 1, 9338880, 960, 16777216, 8)
[3682032.446] -> zwp_linux_buffer_params_v1@29.add(fd 39, 2, 9375744, 64, 16777216, 8)
[3682032.449] -> zwp_linux_buffer_params_v1@29.create_immed(new id wl_buffer@27, 1920, 1200, 875713112, 0)
[3682032.454] -> zwp_linux_buffer_params_v1@29.destroy()
[3682032.463] -> wl_surface@19.attach(wl_buffer@27, 0, 0)
[3682032.468] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3682032.472] -> wl_surface@19.frame(new id wl_callback@30)
[3682032.475] -> wl_surface@19.commit()
[3682033.088] wl_display@1.delete_id(26)
[3682033.098] wl_display@1.delete_id(29)
[3682033.099] wl_display@1.delete_id(30)
[3682033.100] wl_callback@30.done(1550196)
[3682033.118] -> wl_buffer@25.destroy()
[3682036.472] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@30)
[3682036.514] -> zwp_linux_buffer_params_v1@30.add(fd 37, 0, 0, 7680, 16777216, 8)
[3682036.517] -> zwp_linux_buffer_params_v1@30.add(fd 38, 1, 9338880, 960, 16777216, 8)
[3682036.519] -> zwp_linux_buffer_params_v1@30.add(fd 39, 2, 9375744, 64, 16777216, 8)
[3682036.522] -> zwp_linux_buffer_params_v1@30.create_immed(new id wl_buffer@29, 1920, 1200, 875713112, 0)
[3682036.525] -> zwp_linux_buffer_params_v1@30.destroy()
[3682036.530] -> wl_surface@19.attach(wl_buffer@29, 0, 0)
[3682036.534] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3682036.535] -> wl_surface@19.frame(new id wl_callback@26)
[3682036.538] -> wl_surface@19.commit()
[3682036.982] wl_display@1.delete_id(25)
[3682036.987] wl_display@1.delete_id(30)
[3682036.988] wl_display@1.delete_id(26)
[3682036.989] wl_callback@26.done(1550200)
[3682042.679] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@26)
[3682042.696] -> zwp_linux_buffer_params_v1@26.add(fd 40, 0, 0, 7680, 16777216, 8)
[3682042.698] -> zwp_linux_buffer_params_v1@26.add(fd 41, 1, 9338880, 960, 16777216, 8)
[3682042.700] -> zwp_linux_buffer_params_v1@26.add(fd 42, 2, 9375744, 64, 16777216, 8)
[3682042.702] -> zwp_linux_buffer_params_v1@26.create_immed(new id wl_buffer@30, 1920, 1200, 875713112, 0)
[3682042.704] -> zwp_linux_buffer_params_v1@26.destroy()
[3682042.707] -> wl_surface@19.attach(wl_buffer@30, 0, 0)
[3682042.708] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3682042.710] -> wl_surface@19.frame(new id wl_callback@25)
[3682042.711] -> wl_surface@19.commit()
[3682047.129] wl_display@1.delete_id(26)
[3682047.136] wl_display@1.delete_id(25)
[3682047.137] wl_callback@25.done(1550210)
ASSERTION FAILED: m_lockedTargets.size() < s_maximumBuffers
../../../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.cpp(666) : AcceleratedSurface::RenderTarget *WebKit::AcceleratedSurface::SwapChain::nextTarget()
[3682063.627] wl_buffer@27.release()
[3682080.059] wl_buffer@29.release()
1 0x7d9a050919c5 WebKit::AcceleratedSurface::SwapChain::nextTarget()
2 0x7d9a050922b2 WebKit::AcceleratedSurface::willRenderFrame(WebCore::IntSize const&)
3 0x7d9a050a1586 WebKit::ThreadedCompositor::renderLayerTree()
4 0x7d9a06fb5ed2 WTF::RunLoop::TimerBase::TimerBase(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral)::$_0::__invoke(void*)
5 0x7d9a06fb394d WTF::RunLoop::$_1::__invoke(_GSource*, int (*)(void*), void*)
6 0x7d99ff29a49e ???
7 0x7d99ff29a710 g_main_context_dispatch
8 0x7d9a06fb3f88 WTF::RunLoop::runGLibMainLoopIteration(WTF::RunLoop::MayBlock)
9 0x7d9a06fb46d5 WTF::RunLoop::run()
10 0x7d9a06f34a48 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
11 0x7d9a06fbb6d9 WTF::wtfThreadEntryPoint(void*)
12 0x7d99fea4caa4 start_thread
13 0x7d99fead9a64 __clone
Dynamic triple buffering? Not sure didn't investigate deeper, raising to 4 and we survive this situation.
Nikolas Zimmermann
Regarding "done" before "release" -- that's actually ok, the question is just if all buffers were released apparently.
This is how a run looks like where things worked fine:
2025-10-24 13:23:44,378 - INFO - Server port is not found this time, retry after 0.5 seconds
2025-10-24 13:23:44,882 - INFO - HTTP Server is serving at port: 43749
2025-10-24 13:23:44,889 - INFO - Executing: /host/home/nzimmermann/Software/GitRepositories/WebKit/Tools/Scripts/run-minibrowser --wpe -- --fullscreen http://127.0.0.1:43749/motionmark1.3.1-60fps/index.html
Using default MiniBrowser
[3361946.596] -> wl_display@1.get_registry(new id wl_registry@2)
[3361946.607] -> wl_display@1.sync(new id wl_callback@3)
[3361946.907] wl_display@1.delete_id(3)
[3361946.924] wl_registry@2.global(1, "wl_compositor", 6)
[3361946.929] -> wl_registry@2.bind(1, "wl_compositor", 5, new id [unknown]@4)
[3361946.944] wl_registry@2.global(2, "wl_drm", 2)
[3361946.949] wl_registry@2.global(3, "wl_shm", 2)
[3361946.952] -> wl_registry@2.bind(3, "wl_shm", 1, new id [unknown]@5)
[3361946.955] wl_registry@2.global(4, "wl_output", 4)
[3361946.958] -> wl_registry@2.bind(4, "wl_output", 2, new id [unknown]@6)
[3361946.985] wl_registry@2.global(5, "zxdg_output_manager_v1", 3)
[3361946.989] wl_registry@2.global(6, "wl_data_device_manager", 3)
[3361946.992] -> wl_registry@2.bind(6, "wl_data_device_manager", 3, new id [unknown]@7)
[3361946.998] wl_registry@2.global(7, "xdg_toplevel_drag_manager_v1", 1)
[3361947.001] wl_registry@2.global(8, "zwp_primary_selection_device_manager_v1", 1)
[3361947.004] wl_registry@2.global(9, "wl_subcompositor", 1)
[3361947.006] wl_registry@2.global(10, "xdg_wm_base", 6)
[3361947.009] -> wl_registry@2.bind(10, "xdg_wm_base", 1, new id [unknown]@8)
[3361947.012] wl_registry@2.global(11, "gtk_shell1", 6)
[3361947.015] wl_registry@2.global(12, "wp_viewporter", 1)
[3361947.018] wl_registry@2.global(13, "wp_fractional_scale_manager_v1", 1)
[3361947.020] wl_registry@2.global(14, "zwp_pointer_gestures_v1", 3)
[3361947.023] wl_registry@2.global(15, "zwp_tablet_manager_v2", 1)
[3361947.025] wl_registry@2.global(16, "wl_seat", 8)
[3361947.028] -> wl_registry@2.bind(16, "wl_seat", 8, new id [unknown]@9)
[3361948.850] wl_registry@2.global(17, "zwp_relative_pointer_manager_v1", 1)
[3361948.862] -> wl_registry@2.bind(17, "zwp_relative_pointer_manager_v1", 1, new id [unknown]@10)
[3361948.864] wl_registry@2.global(18, "zwp_pointer_constraints_v1", 1)
[3361948.866] -> wl_registry@2.bind(18, "zwp_pointer_constraints_v1", 1, new id [unknown]@11)
[3361948.867] wl_registry@2.global(19, "zxdg_exporter_v2", 1)
[3361948.869] wl_registry@2.global(20, "zxdg_importer_v2", 1)
[3361948.871] wl_registry@2.global(21, "zxdg_exporter_v1", 1)
[3361948.872] wl_registry@2.global(22, "zxdg_importer_v1", 1)
[3361948.873] wl_registry@2.global(23, "zwp_linux_dmabuf_v1", 5)
[3361948.875] -> wl_registry@2.bind(23, "zwp_linux_dmabuf_v1", 4, new id [unknown]@12)
[3361948.876] wl_registry@2.global(24, "wp_single_pixel_buffer_manager_v1", 1)
[3361948.877] wl_registry@2.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1)
[3361948.879] wl_registry@2.global(26, "zwp_text_input_manager_v3", 1)
[3361948.880] -> wl_registry@2.bind(26, "zwp_text_input_manager_v3", 1, new id [unknown]@13)
[3361948.881] wl_registry@2.global(27, "wp_presentation", 2)
[3361948.883] -> wl_registry@2.bind(27, "wp_presentation", 1, new id [unknown]@14)
[3361948.884] wl_registry@2.global(28, "xdg_activation_v1", 1)
[3361948.886] wl_registry@2.global(29, "zwp_idle_inhibit_manager_v1", 1)
[3361948.887] wl_registry@2.global(30, "wp_linux_drm_syncobj_manager_v1", 1)
[3361948.888] wl_registry@2.global(31, "xdg_wm_dialog_v1", 1)
[3361948.890] wl_registry@2.global(32, "wp_color_manager_v1", 1)
[3361948.891] wl_registry@2.global(33, "xdg_system_bell_v1", 1)
[3361948.893] wl_registry@2.global(34, "wp_drm_lease_device_v1", 1)
[3361948.894] wl_registry@2.global(35, "wp_drm_lease_device_v1", 1)
[3361948.895] wl_registry@2.global(36, "wp_commit_timing_manager_v1", 1)
[3361948.897] wl_registry@2.global(37, "wp_fifo_manager_v1", 1)
[3361948.899] wl_registry@2.global(38, "wp_cursor_shape_manager_v1", 2)
[3361948.900] wl_callback@3.done(4991)
[3361948.903] -> wl_compositor@4.create_surface(new id wl_surface@3)
[3361949.859] -> wl_shm@5.create_pool(new id wl_shm_pool@15, fd 14, 2304)
[3361949.888] -> wl_data_device_manager@7.get_data_device(new id wl_data_device@16, wl_seat@9)
[3361949.892] -> zwp_text_input_manager_v3@13.get_text_input(new id zwp_text_input_v3@17, wl_seat@9)
[3361949.894] -> zwp_linux_dmabuf_v1@12.get_default_feedback(new id zwp_linux_dmabuf_feedback_v1@18)
[3361949.896] -> wl_display@1.sync(new id wl_callback@19)
[3361951.121] wl_display@1.delete_id(19)
[3361951.128] wl_output@6.geometry(0, 0, 340, 220, 0, "CSO", "0x160d", 0)
[3361951.135] wl_output@6.mode(3, 1920, 1200, 60000)
[3361951.137] wl_output@6.scale(1)
[3361951.138] wl_output@6.done()
[3361951.143] wl_seat@9.capabilities(3)
[3361951.145] -> wl_seat@9.get_pointer(new id wl_pointer@20)
[3361951.146] -> wl_seat@9.get_keyboard(new id wl_keyboard@21)
[3361951.148] wl_seat@9.name("seat0")
[3361951.149] zwp_linux_dmabuf_feedback_v1@18.format_table(fd 14, 1360)
[3361951.151] zwp_linux_dmabuf_feedback_v1@18.main_device(array[8])
[3361951.347] zwp_linux_dmabuf_feedback_v1@18.tranche_target_device(array[8])
[3361951.349] zwp_linux_dmabuf_feedback_v1@18.tranche_flags(0)
[3361951.350] zwp_linux_dmabuf_feedback_v1@18.tranche_formats(array[170])
[3361951.351] zwp_linux_dmabuf_feedback_v1@18.tranche_done()
[3361951.352] zwp_linux_dmabuf_feedback_v1@18.done()
[3361951.353] wl_callback@19.done(4991)
[3361951.501] -> wl_compositor@4.create_surface(new id wl_surface@19)
[3361951.503] -> xdg_wm_base@8.get_xdg_surface(new id xdg_surface@22, wl_surface@19)
[3361951.505] -> xdg_surface@22.get_toplevel(new id xdg_toplevel@23)
[3361951.508] -> xdg_toplevel@23.set_title("MiniBrowser")
[3361951.513] -> xdg_toplevel@23.set_app_id("org.wpewebkit.MiniBrowser")
[3361951.515] -> wl_surface@19.commit()
[3361951.516] -> zwp_linux_dmabuf_v1@12.get_surface_feedback(new id zwp_linux_dmabuf_feedback_v1@24, wl_surface@19)
[3361951.519] -> wl_display@1.sync(new id wl_callback@25)
[3361956.654] wl_display@1.delete_id(25)
[3361956.664] wl_keyboard@21.keymap(1, fd 15, 68403)
[3361958.303] wl_keyboard@21.repeat_info(33, 500)
[3361958.317] xdg_toplevel@23.configure(0, 0, array[0])
[3361958.320] xdg_surface@22.configure(185)
[3361958.326] -> xdg_surface@22.ack_configure(185)
[3361958.328] zwp_linux_dmabuf_feedback_v1@24.format_table(fd 16, 1360)
[3361958.337] zwp_linux_dmabuf_feedback_v1@24.main_device(array[8])
[3361958.340] zwp_linux_dmabuf_feedback_v1@24.tranche_target_device(array[8])
[3361958.342] zwp_linux_dmabuf_feedback_v1@24.tranche_flags(0)
[3361958.344] zwp_linux_dmabuf_feedback_v1@24.tranche_formats(array[170])
[3361958.347] zwp_linux_dmabuf_feedback_v1@24.tranche_done()
[3361958.351] zwp_linux_dmabuf_feedback_v1@24.done()
[3361958.354] wl_callback@25.done(4991)
[3361958.360] -> wl_surface@19.set_buffer_scale(1)
[3361958.735] -> xdg_toplevel@23.set_fullscreen(nil)
[3361958.745] -> xdg_toplevel@23.set_title("WPEWebKit MiniBrowser")
ERROR: Failed to make thread real time: GDBus.Error:org.freedesktop.DBus.Error.Failed: No such file or directory
../../../Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t)
[3362001.660] xdg_toplevel@23.configure(1920, 1200, array[4])
[3362001.665] xdg_surface@22.configure(186)
[3362001.682] -> xdg_surface@22.ack_configure(186)
ERROR: Failed to make thread real time: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code0: Could not get pidns: PIDFD_GET_PID_NAMESPACE ioctl failed: Inappropriate ioctl for device
../../../Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t)
[3362321.449] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@25)
[3362321.462] -> zwp_linux_buffer_params_v1@25.add(fd 24, 0, 0, 7680, 16777216, 8)
[3362321.466] -> zwp_linux_buffer_params_v1@25.add(fd 27, 1, 9338880, 960, 16777216, 8)
[3362321.469] -> zwp_linux_buffer_params_v1@25.add(fd 28, 2, 9375744, 64, 16777216, 8)
[3362321.475] -> zwp_linux_buffer_params_v1@25.create_immed(new id wl_buffer@26, 1920, 1200, 875713112, 0)
[3362321.477] -> zwp_linux_buffer_params_v1@25.destroy()
[3362321.484] -> wl_compositor@4.create_region(new id wl_region@27)
[3362321.486] -> wl_region@27.add(0, 0, 1920, 1200)
[3362321.489] -> wl_surface@19.set_opaque_region(wl_region@27)
[3362321.491] -> wl_region@27.destroy()
[3362321.495] -> wl_surface@19.attach(wl_buffer@26, 0, 0)
[3362321.498] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362321.501] -> wl_surface@19.frame(new id wl_callback@28)
[3362321.503] -> wl_surface@19.commit()
[3362336.523] wl_display@1.delete_id(25)
[3362336.537] wl_display@1.delete_id(27)
[3362336.541] wl_display@1.delete_id(28)
[3362336.543] wl_keyboard@21.enter(4993, wl_surface@19, array[0])
[3362336.576] wl_keyboard@21.modifiers(4993, 0, 0, 16, 0)
[3362336.587] wl_data_device@16.data_offer(new id wl_data_offer@4278190080)
[3362336.593] wl_data_offer@4278190080.offer("text/plain;charset=utf-8")
[3362336.598] wl_data_device@16.selection(wl_data_offer@4278190080)
[3362336.603] zwp_text_input_v3@17.enter(wl_surface@19)
[3362336.605] xdg_toplevel@23.configure(1920, 1200, array[8])
[3362336.608] xdg_surface@22.configure(188)
[3362336.640] -> xdg_surface@22.ack_configure(188)
[3362336.643] wl_surface@19.enter(wl_output@6)
[3362336.648] -> wl_surface@19.set_buffer_scale(1)
[3362336.655] wl_callback@28.done(1230498)
[3362367.114] wl_pointer@20.enter(4995, wl_surface@19, 1687.80468750, 178.27734375)
[3362367.192] wl_pointer@20.frame()
[3362367.849] -> wl_shm_pool@15.create_buffer(new id wl_buffer@28, 0, 24, 24, 96, 0)
[3362367.858] -> wl_pointer@20.set_cursor(4995, wl_surface@3, 3, 1)
[3362367.861] -> wl_surface@3.attach(wl_buffer@28, 0, 0)
[3362367.863] -> wl_surface@3.set_buffer_scale(1)
[3362367.865] -> wl_surface@3.damage(0, 0, 24, 24)
[3362367.867] -> wl_surface@3.commit()
ERROR: Failed to make thread real time: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code0: Could not get pidns: PIDFD_GET_PID_NAMESPACE ioctl failed: Inappropriate ioctl for device
../../../Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t)
[3362433.446] -> xdg_toplevel@23.set_title("MotionMark")
[3362467.961] -> xdg_toplevel@23.set_title("MotionMark 1.3.1-60fps")
[3362480.977] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@27)
[3362480.988] -> zwp_linux_buffer_params_v1@27.add(fd 33, 0, 0, 7680, 16777216, 8)
[3362480.992] -> zwp_linux_buffer_params_v1@27.add(fd 34, 1, 9338880, 960, 16777216, 8)
[3362480.995] -> zwp_linux_buffer_params_v1@27.add(fd 35, 2, 9375744, 64, 16777216, 8)
[3362480.999] -> zwp_linux_buffer_params_v1@27.create_immed(new id wl_buffer@25, 1920, 1200, 875713112, 0)
[3362481.002] -> zwp_linux_buffer_params_v1@27.destroy()
[3362481.008] -> wl_surface@19.attach(wl_buffer@25, 0, 0)
[3362481.012] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362481.015] -> wl_surface@19.frame(new id wl_callback@29)
[3362481.017] -> wl_surface@19.commit()
[3362481.332] wl_display@1.delete_id(27)
[3362481.336] wl_buffer@26.release()
[3362483.416] wl_display@1.delete_id(29)
[3362483.447] wl_callback@29.done(1230646)
[3362483.462] -> wl_buffer@26.destroy()
[3362499.935] wl_display@1.delete_id(26)
[3362499.944] zwp_linux_dmabuf_feedback_v1@24.format_table(fd 37, 1360)
[3362499.954] zwp_linux_dmabuf_feedback_v1@24.main_device(array[8])
[3362499.956] zwp_linux_dmabuf_feedback_v1@24.tranche_target_device(array[8])
[3362499.957] zwp_linux_dmabuf_feedback_v1@24.tranche_flags(1)
[3362499.958] zwp_linux_dmabuf_feedback_v1@24.tranche_formats(array[128])
[3362499.960] zwp_linux_dmabuf_feedback_v1@24.tranche_done()
[3362499.962] zwp_linux_dmabuf_feedback_v1@24.tranche_target_device(array[8])
[3362499.963] zwp_linux_dmabuf_feedback_v1@24.tranche_flags(0)
[3362499.964] zwp_linux_dmabuf_feedback_v1@24.tranche_formats(array[170])
[3362499.965] zwp_linux_dmabuf_feedback_v1@24.tranche_done()
[3362499.966] zwp_linux_dmabuf_feedback_v1@24.done()
[3362532.847] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@26)
[3362532.888] -> zwp_linux_buffer_params_v1@26.add(fd 37, 0, 0, 7680, 16777216, 8)
[3362532.891] -> zwp_linux_buffer_params_v1@26.add(fd 38, 1, 9338880, 960, 16777216, 8)
[3362532.893] -> zwp_linux_buffer_params_v1@26.add(fd 39, 2, 9375744, 64, 16777216, 8)
[3362532.894] -> zwp_linux_buffer_params_v1@26.create_immed(new id wl_buffer@29, 1920, 1200, 875713112, 0)
[3362532.896] -> zwp_linux_buffer_params_v1@26.destroy()
[3362532.900] -> wl_surface@19.attach(wl_buffer@29, 0, 0)
[3362532.902] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362532.904] -> wl_surface@19.frame(new id wl_callback@27)
[3362532.905] -> wl_surface@19.commit()
[3362533.690] wl_display@1.delete_id(26)
[3362533.710] wl_display@1.delete_id(27)
[3362533.711] wl_callback@27.done(1230696)
[3362534.427] -> wl_buffer@25.destroy()
[3362537.303] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@27)
[3362537.329] -> zwp_linux_buffer_params_v1@27.add(fd 37, 0, 0, 7680, 16777216, 8)
[3362537.332] -> zwp_linux_buffer_params_v1@27.add(fd 38, 1, 9338880, 960, 16777216, 8)
[3362537.334] -> zwp_linux_buffer_params_v1@27.add(fd 39, 2, 9375744, 64, 16777216, 8)
[3362537.338] -> zwp_linux_buffer_params_v1@27.create_immed(new id wl_buffer@26, 1920, 1200, 875713112, 0)
[3362537.339] -> zwp_linux_buffer_params_v1@27.destroy()
[3362537.342] -> wl_surface@19.attach(wl_buffer@26, 0, 0)
[3362537.345] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362537.348] -> wl_surface@19.frame(new id wl_callback@30)
[3362537.349] -> wl_surface@19.commit()
[3362550.013] wl_display@1.delete_id(25)
[3362550.018] wl_display@1.delete_id(27)
[3362550.020] wl_display@1.delete_id(30)
[3362550.020] wl_callback@30.done(1230713)
[3362550.027] -> wl_buffer@29.destroy()
[3362554.155] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@30)
[3362554.161] -> zwp_linux_buffer_params_v1@30.add(fd 37, 0, 0, 7680, 16777216, 8)
[3362554.163] -> zwp_linux_buffer_params_v1@30.add(fd 38, 1, 9338880, 960, 16777216, 8)
[3362554.165] -> zwp_linux_buffer_params_v1@30.add(fd 39, 2, 9375744, 64, 16777216, 8)
[3362554.166] -> zwp_linux_buffer_params_v1@30.create_immed(new id wl_buffer@27, 1920, 1200, 875713112, 0)
[3362554.168] -> zwp_linux_buffer_params_v1@30.destroy()
[3362554.171] -> wl_surface@19.attach(wl_buffer@27, 0, 0)
[3362554.172] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362554.174] -> wl_surface@19.frame(new id wl_callback@25)
[3362554.175] -> wl_surface@19.commit()
[3362566.470] wl_display@1.delete_id(29)
[3362566.476] wl_display@1.delete_id(30)
[3362566.477] wl_display@1.delete_id(25)
[3362566.478] wl_callback@25.done(1230729)
[3362572.172] -> zwp_linux_dmabuf_v1@12.create_params(new id zwp_linux_buffer_params_v1@25)
[3362572.179] -> zwp_linux_buffer_params_v1@25.add(fd 40, 0, 0, 7680, 16777216, 8)
[3362572.181] -> zwp_linux_buffer_params_v1@25.add(fd 41, 1, 9338880, 960, 16777216, 8)
[3362572.183] -> zwp_linux_buffer_params_v1@25.add(fd 42, 2, 9375744, 64, 16777216, 8)
[3362572.184] -> zwp_linux_buffer_params_v1@25.create_immed(new id wl_buffer@30, 1920, 1200, 875713112, 0)
[3362572.186] -> zwp_linux_buffer_params_v1@25.destroy()
[3362572.189] -> wl_surface@19.attach(wl_buffer@30, 0, 0)
[3362572.190] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362572.192] -> wl_surface@19.frame(new id wl_callback@29)
[3362572.193] -> wl_surface@19.commit()
[3362576.164] wl_display@1.delete_id(25)
[3362576.184] wl_buffer@26.release()
[3362583.259] wl_display@1.delete_id(29)
[3362583.264] wl_callback@29.done(1230746)
[3362585.284] -> wl_surface@19.attach(wl_buffer@26, 0, 0)
[3362585.290] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362585.291] -> wl_surface@19.frame(new id wl_callback@29)
[3362585.292] -> wl_surface@19.commit()
[3362593.041] wl_buffer@27.release()
[3362599.982] wl_display@1.delete_id(29)
[3362600.004] wl_callback@29.done(1230763)
[3362601.966] -> wl_surface@19.attach(wl_buffer@27, 0, 0)
[3362601.972] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362601.974] -> wl_surface@19.frame(new id wl_callback@29)
[3362601.975] -> wl_surface@19.commit()
[3362609.595] wl_buffer@30.release()
[3362616.793] wl_display@1.delete_id(29)
[3362616.798] wl_callback@29.done(1230780)
[3362618.977] -> wl_surface@19.attach(wl_buffer@30, 0, 0)
[3362618.983] -> wl_surface@19.damage(0, 0, 2147483647, 2147483647)
[3362618.984] -> wl_surface@19.frame(new id wl_callback@29)
[3362618.985] -> wl_surface@19.commit()
[3362626.347] wl_buffer@26.release()
[3362633.343] wl_display@1.delete_id(29)
[3362633.349] wl_callback@29.done(1230796)
EWS
Committed 302134@main (07d844568b32): <https://commits.webkit.org/302134@main>
Reviewed commits have been landed. Closing PR #52956 and removing active labels.