Re: synchronizing window frame/client repaint
- From: Havoc Pennington <hp redhat com>
- To: Matthias Clasen <maclas gmx de>
- Cc: Soeren Sandmann <sandmann daimi au dk>, wm-spec-list gnome org
- Subject: Re: synchronizing window frame/client repaint
- Date: Thu, 19 Dec 2002 10:41:51 -0500
On Thu, Dec 19, 2002 at 01:20:30PM +0100, Matthias Clasen wrote:
> Would an extension to abort queued requests (mentioned in WhyX.pdf,
> 8.2) help ? The client could the abort all queued requests before
> restarting the drawing when a new configure notify arrives.
>
I would expect two problems with this:
- same as the sync extension's "block all requests", modern
toolkits and WMs are just too complicated to block or
cancel all requests; you'll accidentally block or cancel
things that have nothing to do with drawing...
I think we would really need something like:
id = create_cancel_id ();
push_cancel_id (id);
send_draw_requests ();
pop_cancel_id ();
then later:
cancel_requests_by_id (id);
And the sync extension could use something similar for requests to
block. Probably pretty annoying to implement in the X server but I
just don't see using either the block requests or a cancel requests
feature without this, unless I was writing a very simple dedicated
client.
- I think this is basically a "make things go faster" optimization -
which will help with lag, by decreasing how far behind the client
gets. But it doesn't really fix the problem in any fundamental way,
we are still susceptible to scheduler problems (from both X server
and the kernel), and no matter how fast both client and frame can
repaint, it seems like a ratio thing to me - if frame repaints 2x
as fast, then the client will get behind...
Havoc
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]