diff --git a/.jules/bolt.md b/.jules/bolt.md new file mode 100644 index 0000000..bab5444 --- /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 7e99a38..9959672 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) {