From b3c35fae4691cbed9937d3da67f0321dab401af8 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 18:40:01 +0000 Subject: [PATCH] perf(drw): remove unnecessary XSync in drw_map Removing `XSync` from `drw_map` eliminates a blocking round-trip to the X server on every draw operation. This improves responsiveness and reduces latency during frequent updates, such as bar redrawing or mouse interactions. The X11 protocol guarantees order of operations, so `XCopyArea` remains safe without explicit synchronization. --- .jules/bolt.md | 3 +++ drw.c | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .jules/bolt.md diff --git a/.jules/bolt.md b/.jules/bolt.md new file mode 100644 index 00000000..bab5444b --- /dev/null +++ b/.jules/bolt.md @@ -0,0 +1,3 @@ +## 2026-01-26 - XSync Overuse in Drawing Paths +**Learning:** The codebase uses `XSync` extensively after drawing operations (e.g., in `drw_map`, `resizeclient`), forcing synchronous round-trips to the X server. This is a significant performance bottleneck, especially for frequent operations like bar updates or animations. +**Action:** When optimizing X11 code, look for `XSync` calls in hot paths and verify if they can be safely removed (relying on implicit flushing or explicit `XFlush`). diff --git a/drw.c b/drw.c index 7e99a386..99596725 100644 --- a/drw.c +++ b/drw.c @@ -494,7 +494,6 @@ void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, } XCopyArea(drw->dpy, drw->drawable, win, drw->gc, x, y, w, h, x, y); - XSync(drw->dpy, False); } unsigned int drw_fontset_getwidth(Drw *drw, const char *text) {