It turns out that they were not so special after all, and the "fast
path" was missing the important handling such as validating the GC. As a
result we ended up trying to render the glyphs through a planemask of 0
and similar garbage resulting in corruption. An example given by Kaus
Dittrich was the use of rotated glyphs in gnuplot.
Reported-by: Klaus Dittrich
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In order to support buildbots where the udev headers may exist on the
build system but not the target, we need explicit control over optional
dependencies.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54942
If we are performing a clipped copy, then we must be careful not to
completely discard the CPU damage as it may not be entirely replaced.
Reported-by: Roman Jarosz <kedgedev@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54937
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Be careful not to delete the reference we presume we hold as it is
borrowed from the DRI drawable.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Pass it the correct value for the pixmap height, and not its 'y'
coordinate!
Reported-by: Eugene Rosenzweig <ugn@outlook.com>
Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=434860
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In light of the discussion on how to add stereo modes it was revealed
that we would happily add modes with unknown and unhandled strange
flags. Adam Jackson mentioned that he has plans to fix that with some
upcoming work, but as a first step we can simply eradicate them whilst
pondering how to support the stereoscopic vision of the future.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
After we have computed the source offset vector for the transformed
source bo, we need to use that with respect to the destination rectangle
to verify that the source sample is wholly within bounds.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The caller will just have to live with the current tiling, which should
be fine in most cases, in other cases the gpu is wedged...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Like the assertion in sna_replace() this is now incorrect due to the
automatic flagging of large bo with flush.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we now regularly retire and so discard the temporary large buffers,
we find them in short supply and ourselves wasting lots of time creating
and destroying the transient buffers.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we know that such operations are likely to be slow and consume
precious GTT space, mark them as candidates for flushing.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Under ZaphodHeads we end up with multple screens accessing the common
sna_glyph_key and so cause conflicting updates and erroneous references
into the screen-local texture atlases.
Two approaches can be tried here. Transition to a screen-specific
private key introduced with xorg-1.13, or to move the glyph cache (and
the rest of the gpu state tracker) down into the device private rather
than screen private. This is neither of those, but a workaround to avoid
reusing the incorrect entries from shared screens.
Reported-by: Stephen Liang <inteldriver@angrywalls.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54707
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As the possible_crtcs is a bitmask of the available crtcs exposed to the
Xserver, we need to adjust it for the limited view given by Zaphod mode.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the outputs are resized very early on, in CreateScreenResources, then
we will not yet have created a RootWindow and so trying to change its
pixmap is a futile effort.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In case we should be creating an untiled framebuffer, we need to make
sure we honour the scanout alignment.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>