Re: [RFC PATCH] xlib-shm: Use XCB for SHM synchronization

Chris Wilson <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
On Sun, Dec 01, 2013 at 01:30:41PM +0100, Uli Schlachter wrote:
> The old code used XSendEvent() to make sure that LastKnownRequestProcessed()
> gets updated eventually and tracked sequence numbers to implement an
> asynchronous XSync() through this.
> 
> The problems with this is that XSetEventQueueOwner(dpy, XCBOwnsEventQueue)
> changes semantics here and _XReadEvents() becomes a no-op. This broke the
> implementation and would cause an endless loop in
> _cairo_xlib_shm_surface_flush().
> 
> Additionally, the SHM event that is generated through XSendEvent() ended up in
> the event queue and would need to be fetched by the main loop. Otherwise, the
> event queue's size would grow and "some things" got slow.
> 
> The new implementation uses xcb_get_input_focus() and xcb_poll_for_reply() to
> implement the asynchronous XSync(). This causes more syncs to be done, because
> the old optimization of "only call XSendEvent() when actually needed" no longer
> applies. Also, this causes ownership of the X11 socket to be passed back and
> forth between XCB and Xlib.
> 
> TODO: Run the perf suite and check for regressions

Not the perf suite but actual browser usage (e.g. midori).

Not impressed though.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.