Fixes regression from a missed replacement in:
commit 191c6b6ca7 [2.99.917]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Oct 5 09:05:20 2014 +0100
sna/trapezoids: Improve sample locations for imprecise rasterisation
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the GPU is wedged, we cannot use the blitter for filling the
colorkey, so provide an interface to write the value using the GTT
instead.
Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The value is typically used only for human readable output, though some
kernel modules do use it for preferred mode matching (notably not
i915.ko today). Let us not second guess the desired vrefresh if it is
known.
Suggested-by: "Jasper St. Pierre" <jstpierre@mecheye.net>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We only want to prefer shadow access to ordinary pixmaps (to avoid
reading back via the GTT). However, since we must use the GTT for
scanouts, we may as well take advantage of direct writes even if the GPU
is wedged.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the user sets the CRTC position before resizing the framebuffer, we
end up with an out-of-bounds CRTC and install a shadow (as the current
framebuffer does not cover the CRTC). In this case, we copy the visible
region before displaying on the CRTC. However, this needs to be clipped
for self-consistency.
Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we don't have a GPU available, we can not do the colour space
conversion and compositing with the GPU, so bail early.
Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Now included in upstream kernels as of
commit 1816f92363036600f2387bb8273b1e5e1f5b304e
Author: Akash Goel <akash.goel@intel.com>
Date: Fri Jan 2 16:29:30 2015 +0530
drm/i915: Support creation of unbound wc user mappings for objects
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When we read vblank events back from the fd, we have to be wary in case
they are older than the most recent vblank query. If they are stale, we
do not want to record them as being the last-known vblank event.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For whatever reason, it seems that for HSW GT1 we cannot specify the
maximum value of the field and leave it to the hardware to clamp the
value to the maximum supported. The impact should be zero other than the
possibilty it workarounds an issue if the hardware doesn't apply the
limit.
References: https://bugs.freedesktop.org/show_bug.cgi?id=87564
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
After showing the new front buffer, we have to avoid writing to the back
buffer whilst the flip is still pending (as it may still be being shown
by the display). To do this we check if there are any outstanding flips,
and reallocate if so. However, with a CRTC override, we may just be
flipping that one CRTC and not the current TearFree back buffer and in
that case we can avoid the reallocation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In the Composite setup, if we are doing a DRI2 copy onto the front
buffer, we are fully cognizant that the copy will not go onto the
unredirected Windows of another Client. So we can preserve the shadow
CRTC mapping for those Clients, and prevent ping-ponging between CRTC
modes.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we have relaxed the pitch restriction between front/back buffers when
swapping, we need to make sure that any change is also reported back
along with the change in front/back names.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In case we receive quick successive calls to DRI2GetBuffers on the same
Window, we need to check that the private exists before dereferencing
it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the Pixmap for a Window is changed (i.e. Composite
redirection/unredirection), we also need to decouple any associated DRI2
front buffer for the Pixmap (e.g. used for single CRTC flipping).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The crtc flip (for when the kernel can't do a pageflip) made the mistake
of setting the shadow buffer to the scanout - nullifying the effect of
the TearFree.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When we AddTraps to a low resolution bitmap, we need to fallback as we
don't wrap it with a GPU pixmap.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If Xinerama is enabled, than RandR12 will be silently disabled. Be
careful not to dereference the rrScrPiv when it doesn't exist.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87207
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Fixes regression from
commit 0aa2edbd29
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Nov 5 11:56:20 2014 +0000
Remove defunct glamor support
where the wrong branch of pixmap exchange upon SwapBuffers was kept when
removing the glamor paths.
Reported-by: Rui Matos
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The decision has been made that DRI3/intel shall continue with DRI2-style
implicit fencing for synchronisation between X and clients using pixmaps
as texture sources. (The other way around uses explicit fencing!)
References: https://bugs.freedesktop.org/show_bug.cgi?id=81551
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The bspec recommends preventing the hardware from going to sleep around
a WAIT_FOR_EVENT, and tells us to use disable sleep bit in PSMI control
to accomplish this.
References: https://bugs.freedesktop.org/show_bug.cgi?id=62373
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In ZaphodHeads, we may reuse the same select read flags and attempt to
read from a blocking drm fd multiple times. However, if we clear the
read flags after first exhausting the fd, we shouldn't then block on
subsequent heads.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For very large scale factors, it is possible for the current calculation
to underflow and try negative tile sizes.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Along a couple of paths, we either do not care about the notification
(i.e. during suspend) or do it explicitly. There we should mark the work
as done.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Let's be sure the mode has been established before we attempt to apply
it to a CRTC - just in case the kernel tries to use the invalid mode and
blows up.
References: https://bugs.freedesktop.org/show_bug.cgi?id=86679
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>