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

Reply via email to