Initial DRI3000 protocol specs available

Chris Wilson chris at chris-wilson.co.uk
Wed Feb 20 13:54:31 PST 2013


On Wed, Feb 20, 2013 at 11:55:56AM -0800, Keith Packard wrote:
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> > Do we need an Invalidate for when the GEM object is
> > exchanged for the Pixmap following a Swap (or other external
> > modifications)?
> 
> I'm afraid I don't understand this question. Are you thinking that
> pixmap IDs will end up changing which GEM objects they point at?

You manage ask yourself the question I was trying to lead: how the heck
does the compositor learn that the underlying graphics object has
changed? In DRI2 this is through the InvalidateEvent, and the lack of
being able to send those from the driver before the Damage is sent is
one of the reasons why the current exchange mechanism is broken.

Getting buffer exchanges working in conjunction with the external
compositor is more or less as tricky as it gets. The notion that the
buffer is kept busy by the compositor and so prevents the DRI3 client
from overdrawing it is key. And that naturally leads to the compositor
needing to release the old buffer once it is referencing the new
post-swap buffer. Serialisation between rendering of the common buffers
is definitely s.e.p. I agree that should solve the compositor problem.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the xorg-devel mailing list