On Mon, Aug 2, 2010 at 2:36 PM, Keith Packard <[email protected]> wrote: > On Mon, 2 Aug 2010 11:29:55 -0400, Kristian Høgsberg <[email protected]> > wrote: >> >> Here's the other approach for fixing damage vs flush client. In writing the >> commit message, it certainly does feel like damage should just be fixed to >> not reply on that behaviour. And writing the patch, I realize that the >> optimization is not just about saving a syscall, but also about avoiding >> having to realloc the output buffer to hold a request that's bigger than >> BUFSIZE (hello, XkbSendMap()). The current code only does that when it >> fails to write the output buffer + extra request and the remaining bytes >> don't fit in a standard sized buffer. > > This doesn't really fix the issue as we're potentially sending a stream > of events from the damage extension. We'd have to buffer all of them > until FlushAllOutput, I think.
Ah, yes, I see the loop over the damage region boxes, should've checked that. It was pretty fragile to rely on that guarantee anyway; if we want the rendering to happen before the event is sent, we should do the rendering before we send the event. > It is a nice cleanup though; let's look at this post-1.9 separately. Maybe - the old code had the benefit of typically not having to allocate a big buffer for big events. It would just add the big buffer that overflowed the protocol buffer to the writev request and avoid the copy. And if I don't have to touch low level protocol code, I'd rather not. Kristian _______________________________________________ [email protected]: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: [email protected]
