atagen

monolith

public
Star0
Watch0

Commit 9e5c356ebe9e

tarball

atagen <boss@atagen.co>2026-10-17 05:11 UTC

6 files changed+381-152
monolith: map absolute pointer motion across every output

Absolute devices were scaled onto the first output only, so a tablet on a two-monitor desk could never reach the second. They now span the desktop's bounding box like sway's default, clamped onto an output where the outputs leave gaps.
Modified file: Cargo.lock+72 additions
@@ -247,6 +247,20 @@ dependencies = [
247247 ]
248248
249249 [[package]]
250+name = "encoding_rs"
251+version = "0.8.42"
252+source = "registry+https://github.com/rust-lang/crates.io-index"
253+checksum = "8e985e0451871ad22fb8d2b6b076e2028a502a0d3950998c2c5c0a4f9b5d9679"
254+dependencies = [
255+ "cfg-if",
256+ "core_detect",
257+ "multiversion_no_op",
258+ "rustversion",
259+ "scopeguard",
260+ "simdutf8",
261+]
262+
263+[[package]]
250264 name = "enumflags2"
251265 version = "0.7.12"
252266 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -323,6 +337,16 @@ dependencies = [
323337 ]
324338
325339 [[package]]
340+name = "gethostname"
341+version = "1.1.0"
342+source = "registry+https://github.com/rust-lang/crates.io-index"
343+checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8"
344+dependencies = [
345+ "rustix 1.1.5",
346+ "windows-link",
347+]
348+
349+[[package]]
326350 name = "getrandom"
327351 version = "0.4.3"
328352 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -520,6 +544,7 @@ name = "monolith"
520544 version = "0.0.0"
521545 dependencies = [
522546 "calloop-wayland-source",
547+ "libc",
523548 "monolith-config",
524549 "monolith-ipc",
525550 "monolith-layout",
@@ -554,6 +579,7 @@ dependencies = [
554579 name = "monolith-ipc"
555580 version = "0.0.0"
556581 dependencies = [
582+ "monolith-layout",
557583 "serde",
558584 ]
559585
@@ -563,6 +589,7 @@ version = "0.0.0"
563589 dependencies = [
564590 "monolith-planner",
565591 "proptest",
592+ "serde",
566593 "slotmap",
567594 ]
568595
@@ -600,6 +627,7 @@ dependencies = [
600627 "rustix 1.1.5",
601628 "smithay",
602629 "thiserror 2.0.21",
630+ "tracing",
603631 ]
604632
605633 [[package]]
@@ -610,6 +638,12 @@ dependencies = [
610638 ]
611639
612640 [[package]]
641+name = "multiversion_no_op"
642+version = "1.0.0"
643+source = "registry+https://github.com/rust-lang/crates.io-index"
644+checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d"
645+
646+[[package]]
613647 name = "nu-ansi-term"
614648 version = "0.50.3"
615649 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -882,6 +916,12 @@ dependencies = [
882916 ]
883917
884918 [[package]]
919+name = "rustversion"
920+version = "1.0.23"
921+source = "registry+https://github.com/rust-lang/crates.io-index"
922+checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
923+
924+[[package]]
885925 name = "rusty-fork"
886926 version = "0.3.1"
887927 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -894,6 +934,12 @@ dependencies = [
894934 ]
895935
896936 [[package]]
937+name = "scopeguard"
938+version = "1.2.0"
939+source = "registry+https://github.com/rust-lang/crates.io-index"
940+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
941+
942+[[package]]
897943 name = "serde"
898944 version = "1.0.229"
899945 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -961,6 +1007,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
9611007 checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
9621008
9631009 [[package]]
1010+name = "simdutf8"
1011+version = "0.1.5"
1012+source = "registry+https://github.com/rust-lang/crates.io-index"
1013+checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
1014+
1015+[[package]]
9641016 name = "siphasher"
9651017 version = "1.0.4"
9661018 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -996,6 +1048,7 @@ dependencies = [
9961048 "drm-ffi",
9971049 "drm-fourcc",
9981050 "drm-sys",
1051+ "encoding_rs",
9991052 "errno",
10001053 "gbm",
10011054 "glam",
@@ -1009,6 +1062,7 @@ dependencies = [
10091062 "rand",
10101063 "reis",
10111064 "rustix 1.1.5",
1065+ "scopeguard",
10121066 "siphasher",
10131067 "smallvec",
10141068 "tempfile",
@@ -1019,6 +1073,7 @@ dependencies = [
10191073 "wayland-protocols-misc",
10201074 "wayland-protocols-wlr",
10211075 "wayland-server",
1076+ "x11rb",
10221077 "xkbcommon",
10231078 ]
10241079
@@ -1543,6 +1598,23 @@ dependencies = [
15431598 ]
15441599
15451600 [[package]]
1601+name = "x11rb"
1602+version = "0.13.2"
1603+source = "registry+https://github.com/rust-lang/crates.io-index"
1604+checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414"
1605+dependencies = [
1606+ "gethostname",
1607+ "rustix 1.1.5",
1608+ "x11rb-protocol",
1609+]
1610+
1611+[[package]]
1612+name = "x11rb-protocol"
1613+version = "0.13.2"
1614+source = "registry+https://github.com/rust-lang/crates.io-index"
1615+checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd"
1616+
1617+[[package]]
15461618 name = "xcursor"
15471619 version = "0.3.11"
15481620 source = "registry+https://github.com/rust-lang/crates.io-index"
Modified file: crates/monolith/src/drm.rs+9 additions−2 deletions
@@ -672,11 +672,18 @@ fn on_input(state: &mut State, event: InputEvent<LibinputInputBackend>) {
672672 state.dirty.cursor = true;
673673 }
674674 InputEvent::PointerMotionAbsolute { event } => {
675- let Some(area) = state.wm.layout.outputs().next().map(|(_, o)| o.area) else {
675+ // Tablets and absolute mice span the whole desktop, as in sway.
676+ let Some(area) = state
677+ .wm
678+ .layout
679+ .outputs()
680+ .map(|(_, o)| o.area)
681+ .reduce(|a, b| a.union(&b))
682+ else {
676683 return;
677684 };
678685 let p = event.position_transformed((area.w as i32, area.h as i32).into());
679- let pos = Point::from((area.x + p.x, area.y + p.y));
686+ let pos = clamp(state, Point::from((area.x + p.x, area.y + p.y)));
680687 state.pointer_to(pos, event.time());
681688 state.pointer_frame();
682689 state.dirty.cursor = true;
Modified file: crates/planner/src/geom.rs+7 additions
@@ -26,6 +26,13 @@ impl Rect {
2626 x >= self.x && y >= self.y && x < self.right() && y < self.bottom()
2727 }
2828
29+ pub fn union(&self, other: &Rect) -> Rect {
30+ let (x, y) = (self.x.min(other.x), self.y.min(other.y));
31+ let r = self.right().max(other.right());
32+ let b = self.bottom().max(other.bottom());
33+ Rect::new(x, y, r - x, b - y)
34+ }
35+
2936 pub fn center_x(&self) -> f64 {
3037 self.x + self.w / 2.0
3138 }
Binary file: exclusive.pngbinary

Binary file not shown.

Modified file: monolith.log+293 additions−150 deletions
@@ -1,150 +1,293 @@
1- Finished `release` profile [optimized] target(s) in 0.09s
2- Running `target/release/monolith run --backend drm , vkcube`
3-2026-10-16T13:55:27.915038Z INFO monolith: logging spans slower than 1 ms
4-slow span input_seat>add_keyboard_with_context_flags>input_keyboard took_us=2087
5-slow span input_seat>add_keyboard_with_context_flags took_us=2132
6-slow span input_seat>add_keyboard took_us=2147
7-2026-10-16T13:55:29.224103Z INFO monolith::drm: primary GPU path=/dev/dri/card1
8-slow span drm_device>drm_atomic took_us=90722
9-slow span drm_device took_us=90767
10-slow span new>acquire>acquire>create_buffer>create_buffer_with_flags>create_buffer_with_flags took_us=1298
11-slow span new>acquire>acquire>create_buffer>create_buffer_with_flags took_us=1328
12-slow span new>acquire>acquire>create_buffer took_us=1336
13-slow span new>acquire>acquire took_us=1345
14-slow span new>acquire took_us=1353
15-slow span drm_device>drm_atomic>create_surface>drm_atomic>test_state took_us=15241
16-slow span new>test_state>test_state>test_state took_us=15264
17-slow span new>test_state>test_state took_us=15273
18-slow span new>test_state took_us=15281
19-slow span new took_us=17299
20-slow span drm_device>drm_atomic>create_surface>drm_atomic>test_state took_us=6765
21-slow span drm_compositor>render_frame>test_state_complete>test_state>test_state took_us=6782
22-slow span drm_compositor>render_frame>test_state_complete>test_state took_us=6790
23-slow span drm_compositor>render_frame>test_state_complete took_us=6799
24-slow span drm_compositor>render_frame>bind took_us=15573
25-slow span drm_compositor>render_frame took_us=22996
26-slow span render_frame took_us=23018
27-slow span drm_device>drm_atomic>create_surface>drm_atomic>commit took_us=99237
28-slow span commit>commit>commit took_us=99272
29-slow span commit>commit took_us=99282
30-slow span commit took_us=99297
31-2026-10-16T13:55:29.641815Z INFO monolith::drm: output connected name="DP-2" w=2560 h=1440 refresh=165
32-2026-10-16T13:55:29.641868Z INFO monolith::ipc: control socket path=/run/user/1000/monolith-wayland-2.sock
33-2026-10-16T13:55:29.641880Z INFO monolith: monolith running socket="wayland-2" device="NVIDIA GeForce RTX 3060"
34-2026-10-16T13:55:29.642294Z INFO monolith::commands: spawned pid=358809 argv=[",", "vkcube"]
35-slow span render_surface>import_texture>import_texture>upload_with took_us=15812
36-slow span render_surface>import_texture>import_texture took_us=26501
37-slow span render_surface>import_texture took_us=26511
38-slow span drm_compositor>render_frame>acquire>acquire>create_buffer>create_buffer_with_flags>create_buffer_with_flags took_us=1252
39-slow span drm_compositor>render_frame>acquire>acquire>create_buffer>create_buffer_with_flags took_us=1278
40-slow span drm_compositor>render_frame>acquire>acquire>create_buffer took_us=1295
41-slow span drm_compositor>render_frame>acquire>acquire took_us=1314
42-slow span drm_compositor>render_frame>acquire took_us=1330
43-slow span drm_compositor>render_frame>add_framebuffer>framebuffer_from_bo>framebuffer_from_bo_internal took_us=7774
44-slow span drm_compositor>render_frame>add_framebuffer>framebuffer_from_bo took_us=7821
45-slow span drm_compositor>render_frame>add_framebuffer took_us=7837
46-slow span drm_compositor>render_frame>bind took_us=13767
47-slow span drm_compositor>render_frame took_us=23309
48-slow span render_surface>render_frame took_us=23323
49-2026-10-16T13:55:29.692355Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=49995407 scene_ns=7600 render_ns=23337629 render_cpu_ns=2849132 queue_ns=125632
50-slow span render_surface took_us=50013
51-2026-10-16T13:55:29.697539Z DEBUG monolith::drm: frame rate output="DP-2" presented=1 vblanks=8719010 budget_us=51995
52-Selected WSI platform: wayland
53-Selected GPU 0: NVIDIA GeForce RTX 3060, type: DiscreteGpu, apiVersion: 4211017 (1.4.329), driverVersion: -1797652352 (83.416.128)
54-2026-10-16T13:55:30.697736Z DEBUG monolith::drm: frame rate output="DP-2" presented=19 vblanks=164 budget_us=2437
55-slow span import_dmabuf took_us=17856
56-slow span import_dmabuf took_us=27238
57-slow span import_dmabuf took_us=20155
58-2026-10-16T13:55:31.697991Z DEBUG monolith::drm: frame rate output="DP-2" presented=82 vblanks=164 budget_us=2191
59-2026-10-16T13:55:32.679444Z DEBUG monolith::input: bind cmd=Fullscreen
60-2026-10-16T13:55:32.698256Z DEBUG monolith::drm: frame rate output="DP-2" presented=164 vblanks=165 budget_us=2013
61-slow span import_dmabuf took_us=17700
62-slow span import_dmabuf took_us=24037
63-slow span import_dmabuf took_us=15677
64-slow span on_commit_buffer_handler>update_buffer took_us=6342
65-slow span on_commit_buffer_handler took_us=6395
66-slow span new>render_damage>render_output_internal took_us=24988
67-slow span new>render_damage>render_output>render_output_internal took_us=25040
68-slow span new>render_damage>render_output took_us=25071
69-slow span drm_compositor>render_frame>render_output took_us=25080
70-slow span drm_compositor>render_frame took_us=25146
71-slow span render_surface>render_frame took_us=25158
72-2026-10-16T13:55:32.913829Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=25435336 scene_ns=26330 render_ns=25175162 render_cpu_ns=5136493 queue_ns=222484
73-slow span render_surface took_us=25483
74-2026-10-16T13:55:32.922566Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=96993106 budget_ns=2508765
75-2026-10-16T13:55:32.934693Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6064851 budget_ns=3011606
76-2026-10-16T13:55:32.971061Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6068851 budget_ns=3327399
77-slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=5815
78-slow span new>render_damage>render_output_internal>submit took_us=5930
79-slow span new>render_damage>render_output_internal took_us=5971
80-slow span new>render_damage>render_output>render_output_internal took_us=5978
81-slow span new>render_damage>render_output took_us=6008
82-slow span drm_compositor>render_frame>render_output took_us=6017
83-slow span drm_compositor>render_frame took_us=6080
84-slow span render_surface>render_frame took_us=6090
85-2026-10-16T13:55:33.016548Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=6376037 scene_ns=33750 render_ns=6107272 render_cpu_ns=1178461 queue_ns=223444
86-slow span render_surface took_us=6418
87-2026-10-16T13:55:33.019676Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6090851 budget_ns=3416091
88-2026-10-16T13:55:33.698509Z DEBUG monolith::drm: frame rate output="DP-2" presented=128 vblanks=165 budget_us=3342
89-2026-10-16T13:55:34.698766Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3311
90-slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=5602
91-slow span new>render_damage>render_output_internal>submit took_us=5690
92-slow span new>render_damage>render_output_internal took_us=5712
93-slow span new>render_damage>render_output>render_output_internal took_us=5720
94-slow span new>render_damage>render_output took_us=5733
95-slow span drm_compositor>render_frame>render_output took_us=5740
96-slow span drm_compositor>render_frame took_us=5787
97-slow span render_surface>render_frame took_us=5796
98-2026-10-16T13:55:34.768375Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=6245805 scene_ns=8490 render_ns=5808747 render_cpu_ns=1863972 queue_ns=424608
99-slow span render_surface took_us=6312
100-2026-10-16T13:55:34.771529Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6069851 budget_ns=3362830
101-2026-10-16T13:55:35.699025Z DEBUG monolith::drm: frame rate output="DP-2" presented=164 vblanks=165 budget_us=3472
102-2026-10-16T13:55:36.699286Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3415
103-slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=3063
104-slow span new>render_damage>render_output_internal>submit took_us=3108
105-slow span new>render_damage>render_output_internal took_us=3123
106-slow span new>render_damage>render_output>render_output_internal took_us=3130
107-slow span new>render_damage>render_output took_us=3141
108-slow span drm_compositor>render_frame>render_output took_us=3149
109-slow span drm_compositor>render_frame took_us=3170
110-slow span render_surface>render_frame took_us=3179
111-2026-10-16T13:55:37.432701Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=3290440 scene_ns=7500 render_ns=3204169 render_cpu_ns=3270391 queue_ns=75401
112-slow span render_surface took_us=3306
113-2026-10-16T13:55:37.699539Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3298
114-2026-10-16T13:55:38.699792Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3330
115-2026-10-16T13:55:39.700055Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3345
116-2026-10-16T13:55:40.700318Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3478
117-2026-10-16T13:55:41.700567Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3266
118-2026-10-16T13:55:42.700827Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3578
119-slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=3009
120-slow span new>render_damage>render_output_internal>submit took_us=3120
121-slow span new>render_damage>render_output_internal took_us=3142
122-slow span new>render_damage>render_output>render_output_internal took_us=3155
123-slow span new>render_damage>render_output took_us=3174
124-slow span drm_compositor>render_frame>render_output took_us=3188
125-slow span drm_compositor>render_frame took_us=3220
126-slow span render_surface>render_frame took_us=3235
127-2026-10-16T13:55:43.640465Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=3363021 scene_ns=9080 render_ns=3252660 render_cpu_ns=3339252 queue_ns=97881
128-slow span render_surface took_us=3384
129-2026-10-16T13:55:43.646539Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6066851 budget_ns=3369191
130-2026-10-16T13:55:43.701091Z DEBUG monolith::drm: frame rate output="DP-2" presented=164 vblanks=165 budget_us=3591
131-2026-10-16T13:55:44.701355Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3399
132-2026-10-16T13:55:45.701605Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3279
133-2026-10-16T13:55:46.701869Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3357
134-2026-10-16T13:55:47.702145Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3503
135-2026-10-16T13:55:48.702451Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 budget_us=3412
136-2026-10-16T13:55:49.702636Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=164 budget_us=3267
137-slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=3504
138-slow span new>render_damage>render_output_internal>submit took_us=3561
139-slow span new>render_damage>render_output_internal took_us=3578
140-slow span new>render_damage>render_output>render_output_internal took_us=3585
141-slow span new>render_damage>render_output took_us=3598
142-slow span drm_compositor>render_frame>render_output took_us=3605
143-slow span drm_compositor>render_frame took_us=3628
144-slow span render_surface>render_frame took_us=3636
145-2026-10-16T13:55:49.854584Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=3769619 scene_ns=9481 render_ns=3647066 render_cpu_ns=3739753 queue_ns=109462
146-slow span render_surface took_us=3793
147-2026-10-16T13:55:49.860264Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6067851 budget_ns=3373150
148-2026-10-16T13:55:50.378283Z DEBUG monolith::input: bind cmd=Quit
149-slow span drm_device>drm_atomic>create_surface>drm_atomic took_us=67389
150-slow span drm_device>drm_atomic>create_surface>drm_atomic>clear_state took_us=67443
1+ Compiling monolith-render-vk v0.0.0 (/home/bolt/code/monolith/crates/render-vk)
2+ Compiling monolith v0.0.0 (/home/bolt/code/monolith/crates/monolith)
3+ Finished `release` profile [optimized] target(s) in 17.42s
4+ Running `target/release/monolith run --backend drm`
5+2026-10-17T04:38:44.170181Z INFO monolith: logging spans slower than 1000 us
6+2026-10-17T04:38:44.171288Z INFO monolith: no realtime scheduling, it needs CAP_SYS_NICE or an rtprio limit: Operation not permitted (os error 1)
7+2026-10-17T04:38:44.346541Z DEBUG monolith_render_vk::device: queue global priority refused: ERROR_NOT_PERMITTED_KHR priority=Some(REALTIME)
8+2026-10-17T04:38:44.346776Z DEBUG monolith_render_vk::device: queue global priority refused: ERROR_NOT_PERMITTED_KHR priority=Some(HIGH)
9+2026-10-17T04:38:44.459666Z INFO monolith_render_vk::device: queue global priority priority=None
10+slow span input_seat>add_keyboard_with_context_flags>input_keyboard took_us=1719
11+slow span input_seat>add_keyboard_with_context_flags took_us=1739
12+slow span input_seat>add_keyboard took_us=1753
13+2026-10-17T04:38:44.465864Z INFO monolith::drm: primary GPU path=/dev/dri/card1
14+slow span drm_device>drm_atomic took_us=37058
15+slow span drm_device took_us=37109
16+slow span drm_device>drm_atomic>create_surface>drm_atomic>test_state took_us=6597
17+slow span new>test_state>test_state>test_state took_us=6624
18+slow span new>test_state>test_state took_us=6632
19+slow span new>test_state took_us=6641
20+slow span new took_us=8127
21+slow span drm_device>drm_atomic>create_surface>drm_atomic>test_state took_us=7121
22+slow span drm_compositor>render_frame>test_state_complete>test_state>test_state took_us=7148
23+slow span drm_compositor>render_frame>test_state_complete>test_state took_us=7166
24+slow span drm_compositor>render_frame>test_state_complete took_us=7184
25+slow span drm_compositor>render_frame>bind took_us=2433
26+slow span drm_compositor>render_frame took_us=10146
27+slow span render_frame took_us=10162
28+slow span drm_device>drm_atomic>create_surface>drm_atomic>commit took_us=49851
29+slow span commit>commit>commit took_us=49872
30+slow span commit>commit took_us=49881
31+slow span commit took_us=49893
32+2026-10-17T04:38:44.649687Z INFO monolith::drm: output connected name="DP-2" w=2560 h=1440 refresh=165 vrr_capable=true
33+2026-10-17T04:38:44.649752Z INFO monolith::ipc: control socket path=/run/user/1000/monolith-wayland-2.sock
34+2026-10-17T04:38:44.649818Z INFO monolith::xwayland: X11 clients will start Xwayland on :0
35+2026-10-17T04:38:44.649823Z INFO monolith: monolith running socket="wayland-2" device="NVIDIA GeForce RTX 3060"
36+slow span render_surface>import_texture>import_texture>upload_with took_us=1371
37+slow span render_surface>import_texture>import_texture took_us=5409
38+slow span render_surface>import_texture took_us=5417
39+slow span drm_compositor>render_frame>acquire>acquire>create_buffer>create_buffer_with_flags>create_buffer_with_flags took_us=1496
40+slow span drm_compositor>render_frame>acquire>acquire>create_buffer>create_buffer_with_flags took_us=1508
41+slow span drm_compositor>render_frame>acquire>acquire>create_buffer took_us=1516
42+slow span drm_compositor>render_frame>acquire>acquire took_us=1524
43+slow span drm_compositor>render_frame>acquire took_us=1532
44+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane took_us=1297
45+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane took_us=1317
46+slow span drm_compositor>render_frame>try_assign_element>try_assign_element took_us=1332
47+slow span drm_compositor>render_frame>try_assign_element took_us=1356
48+slow span drm_compositor>render_frame>bind took_us=1591
49+slow span drm_compositor>render_frame took_us=4870
50+slow span render_surface>render_frame took_us=4881
51+2026-10-17T04:38:44.660750Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=10435636 scene_ns=5430737 render_ns=4891937 render_cpu_ns=3583322 queue_ns=112222
52+slow span render_surface took_us=10449
53+2026-10-17T04:38:44.663521Z DEBUG monolith::drm: frame rate output="DP-2" presented=1 vblanks=3878441 vrr=false budget_us=12435
54+2026-10-17T04:39:24.548397Z DEBUG monolith::input: bind cmd=Spawn { argv: ["beer"] }
55+2026-10-17T04:39:24.548973Z INFO monolith::commands: spawned pid=283170 argv=["beer"]
56+2026-10-17T04:39:24.558591Z DEBUG monolith::stats: commits per second top=[("other", 1)]
57+2026-10-17T04:39:24.558818Z DEBUG monolith::drm: frame rate output="DP-2" presented=1 vblanks=6581 vrr=false budget_us=2521
58+slow span wayland_shm took_us=2617
59+slow span wayland_shm took_us=1619
60+2026-10-17T04:39:26.278204Z DEBUG monolith::stats: commits per second top=[("dev.notashelf.beer", 11)]
61+2026-10-17T04:39:26.286461Z DEBUG monolith::drm: frame rate output="DP-2" presented=55 vblanks=284 vrr=false budget_us=2360
62+2026-10-17T04:39:27.280560Z DEBUG monolith::stats: commits per second top=[("dev.notashelf.beer", 12)]
63+2026-10-17T04:39:27.286722Z DEBUG monolith::drm: frame rate output="DP-2" presented=12 vblanks=165 vrr=false budget_us=2398
64+2026-10-17T04:39:27.293574Z INFO monolith::xwayland: starting Xwayland
65+2026-10-17T04:39:27.364232Z INFO monolith::xwayland: Xwayland ready
66+2026-10-17T04:39:27.944452Z DEBUG monolith::layers: new layer surface namespace="quickshell" output="DP-2"
67+2026-10-17T04:39:27.944617Z DEBUG monolith::layers: new layer surface namespace="quickshell" output="DP-2"
68+2026-10-17T04:39:27.944666Z DEBUG monolith::layers: new layer surface namespace="quickshell" output="DP-2"
69+2026-10-17T04:39:27.944709Z DEBUG monolith::layers: new layer surface namespace="quickshell" output="DP-2"
70+slow span wayland_shm took_us=3745
71+2026-10-17T04:39:28.157816Z DEBUG monolith::layers: new layer surface namespace="quickshell" output="DP-2"
72+slow span drm_compositor>render_frame took_us=1535
73+slow span render_surface>render_frame took_us=1603
74+slow span render_surface took_us=2081
75+slow span wayland_shm took_us=2424
76+2026-10-17T04:39:28.285107Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 35), ("dev.notashelf.beer", 4)]
77+2026-10-17T04:39:28.286976Z DEBUG monolith::drm: frame rate output="DP-2" presented=25 vblanks=165 vrr=false budget_us=2405
78+slow span new>render_damage>render_output_internal>submit>end_and_submit>queue_submit took_us=2235
79+slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=2266
80+slow span new>render_damage>render_output_internal>submit took_us=2295
81+slow span new>render_damage>render_output_internal took_us=2308
82+slow span new>render_damage>render_output>render_output_internal took_us=2316
83+slow span new>render_damage>render_output took_us=2331
84+slow span drm_compositor>render_frame>render_output took_us=2338
85+slow span drm_compositor>render_frame took_us=2382
86+slow span render_surface>render_frame took_us=2390
87+slow span render_surface took_us=2517
88+2026-10-17T04:39:28.505232Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6064851 budget_ns=2796078
89+2026-10-17T04:39:29.267450Z DEBUG monolith::input: bind cmd=Close
90+slow span dropping Pool took_us=3081
91+slow span wayland_shm took_us=1338
92+2026-10-17T04:39:29.285636Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 98)]
93+2026-10-17T04:39:29.287268Z DEBUG monolith::drm: frame rate output="DP-2" presented=74 vblanks=165 vrr=false budget_us=2761
94+slow span render_surface took_us=1076
95+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane>create_buffer>create_buffer_with_flags>create_buffer_with_flags took_us=1194
96+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane>create_buffer>create_buffer_with_flags took_us=1223
97+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane>create_buffer took_us=1231
98+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane took_us=1845
99+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane took_us=1861
100+slow span drm_compositor>render_frame>try_assign_element>try_assign_element took_us=1870
101+slow span drm_compositor>render_frame>try_assign_element took_us=1893
102+slow span drm_compositor>render_frame took_us=1991
103+slow span render_surface>render_frame took_us=2004
104+slow span render_surface took_us=2209
105+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm>upload_with>end_and_submit>queue_submit took_us=1674
106+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm>upload_with>end_and_submit took_us=1696
107+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm>upload_with took_us=1719
108+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm took_us=1729
109+slow span import_surface_tree>import_surface_tree>import_surface>import_surface took_us=1739
110+slow span import_surface_tree>import_surface_tree>import_surface took_us=1748
111+slow span import_surface_tree>import_surface_tree took_us=1757
112+slow span import_surface_tree took_us=1766
113+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane>add_framebuffer>framebuffer_from_bo>framebuffer_from_bo_internal took_us=1354
114+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane>add_framebuffer>framebuffer_from_bo took_us=1394
115+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane>add_framebuffer took_us=1405
116+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane>try_assign_cursor_plane took_us=2345
117+slow span drm_compositor>render_frame>try_assign_element>try_assign_element>try_assign_cursor_plane took_us=2366
118+slow span drm_compositor>render_frame>try_assign_element>try_assign_element took_us=2375
119+slow span drm_compositor>render_frame>try_assign_element took_us=2385
120+slow span drm_compositor>render_frame took_us=2485
121+slow span render_surface>render_frame took_us=2498
122+slow span render_surface took_us=2648
123+2026-10-17T04:39:30.039935Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6037851 budget_ns=3207156
124+2026-10-17T04:39:30.287499Z DEBUG monolith::drm: frame rate output="DP-2" presented=164 vblanks=165 vrr=false budget_us=3211
125+2026-10-17T04:39:30.290753Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 195)]
126+slow span backend_libinput took_us=2101
127+slow span process_events took_us=2146
128+slow span wayland_shm took_us=1460
129+2026-10-17T04:39:31.287752Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=165 vrr=false budget_us=3216
130+2026-10-17T04:39:31.291311Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 91)]
131+slow span wayland_shm took_us=1852
132+slow span new>render_damage>render_output_internal>submit>end_and_submit>queue_submit took_us=2669
133+slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=2711
134+slow span new>render_damage>render_output_internal>submit took_us=2736
135+slow span new>render_damage>render_output_internal took_us=2747
136+slow span new>render_damage>render_output>render_output_internal took_us=2756
137+slow span new>render_damage>render_output took_us=2771
138+slow span drm_compositor>render_frame>render_output took_us=2779
139+slow span drm_compositor>render_frame took_us=2818
140+slow span render_surface>render_frame took_us=2827
141+2026-10-17T04:39:32.257602Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=3046020 scene_ns=27610 render_ns=2838516 render_cpu_ns=3004462 queue_ns=179524
142+slow span render_surface took_us=3095
143+2026-10-17T04:39:32.288013Z DEBUG monolith::drm: frame rate output="DP-2" presented=96 vblanks=165 vrr=false budget_us=3161
144+2026-10-17T04:39:32.292102Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 29)]
145+slow span wayland_shm took_us=1507
146+2026-10-17T04:39:33.288273Z DEBUG monolith::drm: frame rate output="DP-2" presented=25 vblanks=165 vrr=false budget_us=3194
147+2026-10-17T04:39:33.292130Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 29)]
148+slow span wayland_shm took_us=1404
149+2026-10-17T04:39:34.288538Z DEBUG monolith::drm: frame rate output="DP-2" presented=26 vblanks=165 vrr=false budget_us=3168
150+2026-10-17T04:39:34.297797Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 31)]
151+slow span wayland_shm took_us=1388
152+2026-10-17T04:39:35.288793Z DEBUG monolith::drm: frame rate output="DP-2" presented=26 vblanks=165 vrr=false budget_us=3197
153+2026-10-17T04:39:35.298083Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 30)]
154+slow span wayland_shm took_us=1160
155+2026-10-17T04:39:36.289062Z DEBUG monolith::drm: frame rate output="DP-2" presented=27 vblanks=165 vrr=false budget_us=3169
156+2026-10-17T04:39:36.298297Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 31)]
157+slow span wayland_shm took_us=1358
158+2026-10-17T04:39:37.289313Z DEBUG monolith::drm: frame rate output="DP-2" presented=27 vblanks=165 vrr=false budget_us=3223
159+2026-10-17T04:39:37.298556Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 31)]
160+slow span wayland_shm took_us=1337
161+2026-10-17T04:39:38.289580Z DEBUG monolith::drm: frame rate output="DP-2" presented=27 vblanks=165 vrr=false budget_us=3236
162+2026-10-17T04:39:38.299126Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 31)]
163+2026-10-17T04:39:38.720360Z DEBUG monolith::input: bind cmd=Spawn { argv: ["beer"] }
164+2026-10-17T04:39:38.721056Z INFO monolith::commands: spawned pid=283380 argv=["beer"]
165+slow span wayland_shm took_us=1871
166+slow span wayland_shm took_us=1915
167+slow span wayland_shm took_us=2297
168+2026-10-17T04:39:39.295912Z DEBUG monolith::drm: frame rate output="DP-2" presented=88 vblanks=166 vrr=false budget_us=3183
169+2026-10-17T04:39:39.449877Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 86), ("dev.notashelf.beer", 10), ("other", 1)]
170+slow span wayland_shm took_us=1143
171+slow span drm_device>drm_atomic>create_surface>drm_atomic>page_flip took_us=3011
172+slow span render_surface>queue_frame>submit>page_flip>page_flip>page_flip took_us=3056
173+slow span render_surface>queue_frame>submit>page_flip>page_flip took_us=3069
174+slow span render_surface>queue_frame>submit>page_flip took_us=3083
175+slow span render_surface>queue_frame>submit took_us=3097
176+slow span render_surface>queue_frame took_us=3109
177+2026-10-17T04:39:39.568645Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=3247183 scene_ns=27700 render_ns=96022 render_cpu_ns=297360 queue_ns=3123321
178+slow span render_surface took_us=3291
179+slow span wayland_shm took_us=1527
180+slow span wayland_shm took_us=1021
181+2026-10-17T04:39:40.296146Z DEBUG monolith::drm: frame rate output="DP-2" presented=75 vblanks=164 vrr=false budget_us=3227
182+slow span new>render_damage>render_output_internal>submit>end_and_submit>queue_submit took_us=3241
183+slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=3277
184+slow span new>render_damage>render_output_internal>submit took_us=3309
185+slow span new>render_damage>render_output_internal took_us=3338
186+slow span new>render_damage>render_output>render_output_internal took_us=3347
187+slow span new>render_damage>render_output took_us=3370
188+slow span drm_compositor>render_frame>render_output took_us=3380
189+slow span drm_compositor>render_frame took_us=3448
190+slow span render_surface>render_frame took_us=3459
191+2026-10-17T04:39:40.357161Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=3623911 scene_ns=40241 render_ns=3470648 render_cpu_ns=1371421 queue_ns=112862
192+slow span render_surface took_us=3653
193+2026-10-17T04:39:40.362853Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=6065851 budget_ns=3395391
194+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm>upload_with>end_and_submit>queue_submit took_us=1419
195+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm>upload_with>end_and_submit took_us=1464
196+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm>upload_with took_us=1492
197+slow span import_surface_tree>import_surface_tree>import_surface>import_surface>wayland_shm took_us=1525
198+slow span import_surface_tree>import_surface_tree>import_surface>import_surface took_us=1540
199+slow span import_surface_tree>import_surface_tree>import_surface took_us=1571
200+slow span import_surface_tree>import_surface_tree took_us=1584
201+slow span import_surface_tree took_us=1594
202+2026-10-17T04:39:40.450831Z DEBUG monolith::stats: commits per second top=[("layer:quickshell", 102), ("title:vkcube", 17), ("dev.notashelf.beer", 11)]
203+2026-10-17T04:39:41.296440Z DEBUG monolith::drm: frame rate output="DP-2" presented=164 vblanks=165 vrr=false budget_us=3480
204+2026-10-17T04:39:41.451004Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165), ("layer:quickshell", 41)]
205+slow span new>render_damage>render_output_internal>submit>end_and_submit>queue_submit took_us=2335
206+slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=2366
207+slow span new>render_damage>render_output_internal>submit took_us=2392
208+slow span new>render_damage>render_output_internal took_us=2406
209+slow span new>render_damage>render_output>render_output_internal took_us=2414
210+slow span new>render_damage>render_output took_us=2434
211+slow span drm_compositor>render_frame>render_output took_us=2441
212+slow span drm_compositor>render_frame took_us=2502
213+slow span render_surface>render_frame took_us=2510
214+slow span render_surface took_us=2652
215+slow span drm_device>drm_atomic>create_surface>drm_atomic>page_flip took_us=1112
216+slow span render_surface>queue_frame>submit>page_flip>page_flip>page_flip took_us=1194
217+slow span render_surface>queue_frame>submit>page_flip>page_flip took_us=1208
218+slow span render_surface>queue_frame>submit>page_flip took_us=1226
219+slow span render_surface>queue_frame>submit took_us=1242
220+slow span render_surface>queue_frame took_us=1256
221+slow span render_surface took_us=1663
222+slow span drm_device>drm_atomic>frame_submitted took_us=1450
223+slow span drm_device>drm_atomic took_us=1494
224+slow span wayland_shm took_us=1126
225+slow span render_surface>queue_frame>submit>page_flip>page_flip>page_flip took_us=1001
226+slow span render_surface>queue_frame>submit>page_flip>page_flip took_us=1069
227+slow span render_surface>queue_frame>submit>page_flip took_us=1089
228+slow span render_surface>queue_frame>submit took_us=1106
229+slow span render_surface>queue_frame took_us=1120
230+slow span render_surface took_us=2257
231+slow span wayland_shm took_us=1364
232+2026-10-17T04:39:42.296676Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vblanks=164 vrr=false budget_us=3573
233+2026-10-17T04:39:42.451143Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165), ("layer:quickshell", 61)]
234+2026-10-17T04:39:42.895274Z DEBUG monolith::input: bind cmd=Fullscreen
235+slow span render_surface>create_test_buffer took_us=1359
236+2026-10-17T04:39:42.901731Z INFO render_surface: monolith::drm: adaptive sync output="DP-2" vrr=true
237+slow span drm_device>drm_atomic>create_surface>drm_atomic>page_flip took_us=7430
238+slow span render_surface>queue_frame>submit>page_flip>page_flip>page_flip took_us=7453
239+slow span render_surface>queue_frame>submit>page_flip>page_flip took_us=7469
240+slow span render_surface>queue_frame>submit>page_flip took_us=7487
241+slow span render_surface>queue_frame>submit took_us=7502
242+slow span render_surface>queue_frame took_us=7517
243+2026-10-17T04:39:42.909485Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=7735443 scene_ns=48411 render_ns=155714 render_cpu_ns=6771784 queue_ns=7531038
244+slow span render_surface took_us=10019
245+2026-10-17T04:39:42.915017Z DEBUG monolith::drm: frame missed its vblank output="DP-2" late_ns=12121851 budget_ns=3458772
246+slow span on_commit_buffer_handler>update_buffer took_us=2253
247+slow span on_commit_buffer_handler took_us=2282
248+slow span drm_device>drm_atomic took_us=4049
249+slow span drm_device>drm_atomic>create_surface>drm_atomic>page_flip took_us=1088
250+slow span drm_device>drm_atomic>render_surface>queue_frame>submit>page_flip>page_flip>page_flip took_us=1241
251+slow span drm_device>drm_atomic>render_surface>queue_frame>submit>page_flip>page_flip took_us=1258
252+slow span drm_device>drm_atomic>render_surface>queue_frame>submit>page_flip took_us=1342
253+slow span drm_device>drm_atomic>render_surface>queue_frame>submit took_us=1357
254+slow span drm_device>drm_atomic>render_surface>queue_frame took_us=1370
255+slow span drm_device>drm_atomic>render_surface took_us=2378
256+slow span drm_device>drm_atomic took_us=2430
257+slow span wayland_shm took_us=1371
258+2026-10-17T04:39:43.298517Z DEBUG monolith::drm: frame rate output="DP-2" presented=163 vrr=true budget_us=3479
259+2026-10-17T04:39:43.456616Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 162), ("layer:quickshell", 30)]
260+slow span wayland_shm took_us=1343
261+2026-10-17T04:39:44.299406Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vrr=true budget_us=3488
262+2026-10-17T04:39:44.457806Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165), ("layer:quickshell", 6)]
263+2026-10-17T04:39:45.300368Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vrr=true budget_us=3359
264+2026-10-17T04:39:45.458311Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165)]
265+2026-10-17T04:39:46.301215Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vrr=true budget_us=3276
266+2026-10-17T04:39:46.459211Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165)]
267+slow span new>render_damage>render_output_internal>submit>end_and_submit>queue_submit took_us=3340
268+slow span new>render_damage>render_output_internal>submit>end_and_submit took_us=3386
269+slow span new>render_damage>render_output_internal>submit took_us=3418
270+slow span new>render_damage>render_output_internal took_us=3435
271+slow span new>render_damage>render_output>render_output_internal took_us=3449
272+slow span new>render_damage>render_output took_us=3469
273+slow span drm_compositor>render_frame>render_output took_us=3483
274+slow span drm_compositor>render_frame took_us=3522
275+slow span drm_device>drm_atomic>render_surface>render_frame took_us=3538
276+2026-10-17T04:39:47.093645Z DEBUG render_surface: monolith::drm: slow frame output="DP-2" took_ns=3839606 scene_ns=15781 render_ns=3559300 render_cpu_ns=3810302 queue_ns=264045
277+slow span drm_device>drm_atomic>render_surface took_us=3869
278+slow span drm_device>drm_atomic took_us=3897
279+2026-10-17T04:39:47.302116Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vrr=true budget_us=3394
280+2026-10-17T04:39:47.460167Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165)]
281+slow span drm_device>drm_atomic>end_and_submit>queue_submit took_us=1125
282+slow span drm_device>drm_atomic>end_and_submit took_us=1168
283+slow span drm_device>drm_atomic took_us=1598
284+2026-10-17T04:39:48.303060Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vrr=true budget_us=3362
285+2026-10-17T04:39:48.461217Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165)]
286+2026-10-17T04:39:49.303963Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vrr=true budget_us=3381
287+2026-10-17T04:39:49.462253Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165)]
288+2026-10-17T04:39:50.304828Z DEBUG monolith::drm: frame rate output="DP-2" presented=165 vrr=true budget_us=3294
289+2026-10-17T04:39:50.462775Z DEBUG monolith::stats: commits per second top=[("title:vkcube", 165)]
290+2026-10-17T04:39:50.925261Z DEBUG monolith::input: bind cmd=Quit
291+slow span drm_device>drm_atomic>create_surface>drm_atomic took_us=50184
292+slow span drm_device>drm_atomic>create_surface>drm_atomic>clear_state took_us=50219
293+Io error: Broken pipe (os error 32)
Binary file: workspace.pngbinary

Binary file not shown.