[Intel-gfx] [PATCH v2] uxa/glamor: Create glamor pixmap by default.
chris at chris-wilson.co.uk
Tue Jan 10 19:00:32 CET 2012
On Wed, 11 Jan 2012 10:01:09 +0800, zhigang.gong at gmail.com wrote:
> From: Zhigang Gong <zhigang.gong at linux.intel.com>
> A minor fix, after convert the old pixmap to the textured-drm pixmap,
> we need to modify the old pixmap's header to make sure the width/height
> and stride are the same as the new textured-drm BO.
We can not just call FatalError there, but should just propagate the error
so that the client at least sees BadMatch and X doesn't simply die... How
does this resolve the issue of mesa replacing a bo for a glamor pixmap
even though we've exported it? Or is that simply an orthogonal problem
to be tackled later?
> As create glamor pixmap by default will get much better performance
> by using the textured-drm pixmap, this commit is to make that the
> default behaviour when configure to use glamor.
> A side effect is that for those glamor pixmaps, they don't have a
> valid BO attached to it and thus it fails to get a DRI drawable. This
> commit also fixes that problem by copy the fixup_shadow mechanism. I
> tested this with mutter, and it seems work fine.
> The performance gain to apply this patch is about 20% to 40% with
> different workload.
Waiting to see if I get any results to support that claim... ;-)
You can also mention that by using glamor to allocate the pixmaps, we
reduce the risk of encountering the "incompatible region exists for this name"
and the associated render corruption. Until that is resolved, every time
we export a DRI pixmap and create a BO we still may trigger that bug.
However, since we now never intentionally allocate a reusable pixmap we
could just make all (intel_glamor) allocations non-reusable without
incurring too great an overhead.
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx