Hello list! Apologies if this is the wrong forum, but I do not know a better place to post.
First, let's say that I am trying to do somehting ... "interesting" ... with the X server. So far understanding most of the architecture has not been too hard thanks to generally very readable coding style and helpful comments. (Oh, if someone can recommend a book on this topic it would not hurt nevertheless.) Anyway, the thing I really do not understand is the notion of asynchronicity in request processing; let's take this example: Client issues request to draw a line, so the ProcPolyLine dispatcher function is called in the server, which in turn may eventually call into the driver. But what is guaranteed to have been done on return from the dispatcher function? a) the pixels have been drawn into the frame buffer b) the hardware has been instructed to draw a line, but we don't know if it has finished yet (of course the question also applies to other requests, like CopyArea) Option a) is certainly true for non-accelerated drawing, but it seems a waste of resources for accelerated drawing, so I assume this is not the case (is it?), and some remarks in the driver sources also indicate otherwise As far as my (in this area rather poor) understanding goes, something like b) is happening in the driver code; but then I do not understand how synchronization with other requests is handled -- I mean, what happens when another request wants to draw in the same area, how can it be sure that the line drawing has completed? Is there some interface exported for this, e.g. a completion callback or similiar? Or is this kind of synchronization purely internal to the hardware driver (to maintain the illusion of a) )? I would be very grateful if someone could shed some light onto this Kind regards, Helge _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert
