Commit Graph

8673 Commits

Author SHA1 Message Date
Chris Wilson 01ce7efe73 sna: Fix Drawable offsets prior to performing shadow discard
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-20 13:36:50 +00:00
Chris Wilson c27e6306e8 sna/dri2: Check for implicit flushing after updating a Pixmap buffer
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-20 12:46:52 +00:00
Chris Wilson 5c16a4ec9b sna: Skip allocation of new TearFree buffer if not actually flipping
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>
2014-12-20 12:33:28 +00:00
Chris Wilson 9b3b591476 sna/dri2: Preserve the shadow CRTCs when copying to other areas
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>
2014-12-19 20:08:44 +00:00
Chris Wilson 391b50c81d sna/dri2: Report changes in pitch when swapping bo
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>
2014-12-19 20:07:56 +00:00
Chris Wilson ada97d2725 sna/dri2: Look for preferred CRTC for visible portion of the window
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-19 09:43:33 +00:00
Chris Wilson 6f99bbe67e sna/dri2: Prevent NULL pointer dereference of Window private
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>
2014-12-19 08:37:07 +00:00
Chris Wilson fdd7508e53 sna/dri2: Decouple Window cache on Pixmap changes
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>
2014-12-19 07:59:24 +00:00
Chris Wilson 82e4802670 intel-virtual-output: Do not attempt to tidy up the local display if it fails
Just fix the segfault dereferencing the primary display if we bail
during its setup.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-17 08:01:30 +00:00
Chris Wilson c211b3bc61 intel-virtual-output: Add version number to verbose output
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-17 08:00:00 +00:00
Chris Wilson 123754de41 sna: Make error debug tracing available at normal debug levels
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-16 10:34:20 +00:00
Chris Wilson 9953708934 sna: Tune handling of kernel error detection during intial setup
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-12 15:37:07 +00:00
Chris Wilson 01692b8cf2 sna: Fix TearFree multi-monitor operation whilst wedged
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>
2014-12-12 15:13:04 +00:00
Chris Wilson 343299c78b sna/trapezoids: Check the pixmap is wrapped before deferencing it
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>
2014-12-12 09:40:51 +00:00
Chris Wilson 60ebac5915 sna: Add another Xinerama vs RandR guard
Another place used rrScrPriv without checking for its validity.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87257
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-12 07:55:51 +00:00
Chris Wilson f587d71f3c sna: Catch NULL RandR screen private
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>
2014-12-11 08:53:54 +00:00
Chris Wilson 04a09d353f uxa/dri: Remove defunct intel->back_pixmap
This was only required for glamor support.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-09 20:43:52 +00:00
Chris Wilson 08ee9a75df uxa/dri: Fix triple buffer swapping
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>
2014-12-09 20:43:44 +00:00
Chris Wilson fc984e8953 sna/dri3: Mesa relies upon implicit fences for X/Compositor synchronisation
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>
2014-12-09 08:08:01 +00:00
Chris Wilson d247cb7d0c sna/gen6: Poke PSMI control around WAIT_FOR_EVENT to prevent idling
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>
2014-12-08 11:09:23 +00:00
Chris Wilson d39dc73a80 sna: Inline check for pending events before reading from drm fd
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-08 08:33:11 +00:00
Chris Wilson f8aecdffad sna: Clear the read flags for the shared drm fd after use
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>
2014-12-04 11:25:55 +00:00
Chris Wilson 594470c809 sna: Update the fence marker after submitting a new batch
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-04 11:16:58 +00:00
Chris Wilson 9c2c485df9 sna: Validate that the reg/insn size is well defined
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 14:31:34 +00:00
Chris Wilson 263d109986 sna: Clamp downsampling tile size
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>
2014-12-01 13:26:46 +00:00
Chris Wilson 88e9bb760f sna: Explicitly disable unused pipes after an output reconfiguration
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 10:54:14 +00:00
Chris Wilson ddf5feba78 sna: Generate a backtrace on assertion failures
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 10:00:32 +00:00
Chris Wilson e12ec452a9 sna: Cancel pending mode change notification
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>
2014-12-01 09:46:20 +00:00
Chris Wilson 700c036d18 sna: Reject modesets with 0 outputs
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 09:31:41 +00:00
Chris Wilson dd421005ca sna: Add a few more asserts to sna_crtc_flip()
Check that we are updating an active CRTC with a valid mode and
associated outputs.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 09:29:07 +00:00
Chris Wilson 104517507f sna: Do not post shadow updates in the middle of output reconfiguration
Wait until the screens and framebuffers settle before we start updating.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 09:26:29 +00:00
Chris Wilson faef6e5e1a sna: Clean up DBG compile warnings
Including a potential crash due to using a unspecified string, oops.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 08:29:47 +00:00
Chris Wilson 0bec625cc4 sna: Report when we disable TearFree due to an error in operation
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01 08:13:18 +00:00
Chris Wilson 6059b51b59 sna: Reject attempts to set an invalid mode
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>
2014-11-28 07:35:26 +00:00
Chris Wilson 0f15b8b45b sna/transform: Correctly check for imprecise fractional translations
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-20 13:26:29 +00:00
Chris Wilson 7725c423cd sna/dri2: Improve precision of completion event for no-op swaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-20 13:26:29 +00:00
Chris Wilson f367f3dee5 sna/dri2: Add more DBG to explain invalid frames
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-20 13:26:28 +00:00
Chris Wilson 05a1aba1ab sna: DBG compile fix
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-20 13:26:28 +00:00
Chris Wilson a90cc3b388 sna: Tweak alignment constraints on gen8 to allow BLT
The previous commits prevent us from using the BLT if the destination
address is misaligned. Honour that restriction when creating buffers as
well, so that they are always usuable by the BLT.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-19 13:41:16 +00:00
Chris Wilson 8dee529978 sna: Add more checks and asserts for BLT capable bo
Before we use the BLT for core acceleration, double check that we can.
This should catch the case where we attempt to operate on SHM pixmaps
which do not meet the restrictions.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-19 13:38:20 +00:00
Mika Kuoppala 3a22b6f6d5 sna: gen8 BLT broken when address has bit 4 set
With bit 4 set in address, the gen8 blitter fails and blits errorneously
into the cacheline preceeding the destination and similarly when reading from
the source, corrupting memory.

v2: Update the destination base offset pattern as revealed
    by igt/tests/gem_userptr_blits/destination-bo-align

v3: Check base address as well

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79053
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: xunx.fang@intel.com [v2]
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-11-19 13:20:51 +00:00
Chris Wilson 29aab766f4 sna/dri2: Remove unused function
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-19 13:15:36 +00:00
Chris Wilson b6eeb7a1f7 Disable DRI3 by default
The external libraries, both in git, and especially shipping already
enabled in distributions, are buggy and lead to server crashes and
lockups. Caveat emptor.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-19 13:15:36 +00:00
Chris Wilson 6c2707d7bb sna: Unroll pwrite using our cached mmappings
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-14 12:39:29 +00:00
Chris Wilson f9f85b8803 sna: Reorder PARAMs based on upstream inclusion
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-12 11:51:32 +00:00
Chris Wilson 13fa1f1a26 sna/gen7: Be paranoid and force a pipecontrol stall at least every 4 flushes
The documentation warns of potential GPU hangs if we emit more than 4
pipecontrol flushes without a CS stall. This is highly unlikely given
how frequently we must inject stalls into the pipeline, but force a
stall just in case!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-12 11:51:32 +00:00
Chris Wilson b2492fa45b sna: Only reshow unhidden cursors after modesetting
Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-10 13:37:26 +00:00
Chris Wilson 0267f5902d sna: Check after filtering points before submitting boxes to be drawn
As we clip the points when converting them into GPU boxes, check that we
have something to draw before submitting the commands.

Reported-by: Ian Gay <gay@sfu.ca>
References: https://bugs.freedesktop.org/show_bug.cgi?id=86075
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-10 07:46:53 +00:00
Chris Wilson 9ea242c275 sna: Check picture format on destination before beginning a GPU operation
This is more important in the multiple stage operations like glyph
rendering where we do not want to initiate an operation on the GPU only
then to fallback due to an incompatible destination.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-10 07:46:39 +00:00
Sedat Dilek e96520327b sna: wc-mmap: Fix warning in configure
This fixes the following warning due to a typo:

configure: WARNING: unrecognized options: --enable-wc-map
Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
2014-11-07 10:05:59 +00:00