trace: Fix propagation of CAIRO_TRACE_OUTDIR to children

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
egl: s/EGL_KHR_surfaceless_opengl/EGL_KHR_surfaceless_context/

Mesa changed the name of the extension it invented, so check for the
real name and the old name before falling back to pbuffers which are not
supported by most EGL implementations.

References: https://bugs.freedesktop.org/show_bug.cgi?id=53361
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
gl: Remove unused variable

cairo-gl-glyphs.c: In function '_cairo_gl_composite_glyphs_with_clip':
cairo-gl-glyphs.c:442:9: warning: unused variable 'i' [-Wunused-variable]

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
xlib: Silence compiler warning

cairo-xlib-display.c: In function '_cairo_xlib_display_get_xrender_format':
cairo-xlib-display.c:519:21: warning: 'pict_format' may be used
uninitialized in this function [-Wmaybe-uninitialized]

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
gl: Use a wide texture ramp to emulate a linear step function

If the gradient contains a step function, we need an infinitely sharp
texture to emulate the correct output. Failing that, lets just use as
large a texture as can be reasonably handled by the hardware
gl: Fudge gradient color generation to handle multiple stops at 0

In order to generate the correct left-hand border color, we need to
fudge the offsets of the color stops if multiple stops are defined at 0.
The reason is that pixman will generate our color ramp by using the
right-most color stop for the pixel centre, but in order to provide the
sample colour outside of the gradient we need pixel 0 to be have the
left-most color.

Reported by Henry Song.
damage: Update tail pointer after allocating new chunk

Reported and based on a patch by fmot.fics

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53384
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
skia: Compile fix for changes to map-to-image

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
image: Temporarily resurrect the old non-pixman glyph compositor

As the easiest approach to making another snapshot that only depends
upon a stable pixman, make the new dependency a compile time option.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Fix broken XRender ARGB32 formats

46d79228 did indeed silence the compilation warning, but did so by never
creating an ARGB32 format, as PictStandardARGB32 is defined to 0.  Fix
this by using PictStandardNUM as our canary value instead.

This fixes GEdit and Chromium for me, both of which were only rendering
backgrounds and text in their GTK+ sections.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
xlib: Implement SHM fallbacks and fast upload paths

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
tor22: Add a simple method to quickly compute coverage (with saturation)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
configure: Restore previous pixman required version of 0.22.0

With optional compile time support for pixman glyphs, our hard pixman
requirement is then just 0.22.0 for the radial fixes (iirc).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
xlib/shm: Fix up the shrinking of the priority queue

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
xcb: Migrate to the common mempool implementation

Having extracted the code for use by the SHM allocator for xlib, remove
the now redundant copy from xcb.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
gl: Add a non-thread-aware mode for GL devices

GLX and EGL devices are thread-aware currently. This
is safe, but on certain GPUs can be very expensive. In
this patch, we expose a new API which turns off the
safety feature in cases where performance is a priority.
gl/msaa: Add full support masking with the SOURCE operator
gl/msaa: Share the depth/stencil buffer among all surfaces

Instead of allocating a depth/stencil buffer for all surfaces, share
a common buffer that's the size of the largest surface. This should
reduce memory size when there are many surfaces of the same size.
gl/msaa: Cache uniform location.
gl/msaa: Return traps as an out parameter of clip rendering

This allows caching the clip between successive calls to clip painting
and avoids a retessellation.