<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jul 2, 2014 at 2:33 PM, Adam Jackson <span dir="ltr"><<a href="mailto:ajax@nwnk.net" target="_blank">ajax@nwnk.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Mon, 2014-06-30 at 20:29 -0400, Jasper St. Pierre wrote:<br>
> This implements simple throttling that keeps us to one attach per<br>
> frame. There isn't really an active performance benefit, since the<br>
> buffers will be redrawn only once per frame anyway, but it does cut down<br>
> on the chatty network traffic. Since the Wayland sockets might fill<br>
> up as well, the cut down on the volume of data we send out also provides<br>
> us with a big stability benefit.<br>
><br>
> Namely, mutter is a lot more stable running gtkperf, a fairly intensive<br>
> X11 application, after this change.<br>
<br>
</div>Not really, no.  Either with or without this change my gnome-on-wayland<br>
session doesn't survive more than about three consecutive gtkperfs<br>
before falling over.  (The difference between our scenarios, I suspect,<br>
being that you have an extra moving part in that you're running mutter<br>
--wayland under an existing X session where I'm running gnome-shell<br>
--wayland _as_ my session.)<br></blockquote><div><br></div><div>I was running it natively and couldn't get it to fall down. Hm.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


The issue with this patch, I think, is that instead of drowning the<br>
wayland server with attaches, we're drowning it in create/destroy pairs<br>
when gtkperf hits the popup tests.  Which means we actually want to<br>
defer _all_ window surface activity to the frame event, so that when<br>
popups live less than a frame time they never even reach xwayland.<br></blockquote><div><br></div><div>That makes a lot more sense, because MapRequest is really the only place where we're making a synchronous request to the X server as part of XGetWindowAttributes.<br>

<br></div><div>We should implement throttling in X11 for that as well, and I'd be fine with it, but after talking to Owen a bit more about it, I think we should probably just go and implement a better buffering approach inside libwayland-client so that if we ever get EAGAIN when trying to write to the pipe, we just allocate more data in the internal buffer.<br>

</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- ajax<br>
<br>
</blockquote></div><br>-- <br>  Jasper<br>
</div></div>