summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-12-20sna: Fix Drawable offsets prior to performing shadow discardChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-20sna/dri2: Check for implicit flushing after updating a Pixmap bufferChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-20sna: Skip allocation of new TearFree buffer if not actually flippingChris Wilson
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-19sna/dri2: Preserve the shadow CRTCs when copying to other areasChris Wilson
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-19sna/dri2: Report changes in pitch when swapping boChris Wilson
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-19sna/dri2: Look for preferred CRTC for visible portion of the windowChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-19sna/dri2: Prevent NULL pointer dereference of Window privateChris Wilson
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-19sna/dri2: Decouple Window cache on Pixmap changesChris Wilson
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-16sna: Make error debug tracing available at normal debug levelsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-12sna: Tune handling of kernel error detection during intial setupChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-12sna: Fix TearFree multi-monitor operation whilst wedgedChris Wilson
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-12sna/trapezoids: Check the pixmap is wrapped before deferencing itChris Wilson
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-12sna: Add another Xinerama vs RandR guardChris Wilson
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-11sna: Catch NULL RandR screen privateChris Wilson
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-09uxa/dri: Remove defunct intel->back_pixmapChris Wilson
This was only required for glamor support. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-09uxa/dri: Fix triple buffer swappingChris Wilson
Fixes regression from commit 0aa2edbd29c8dd26a5f3748e3875c445ea358a6d 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-09sna/dri3: Mesa relies upon implicit fences for X/Compositor synchronisationChris Wilson
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-08sna/gen6: Poke PSMI control around WAIT_FOR_EVENT to prevent idlingChris Wilson
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-08sna: Inline check for pending events before reading from drm fdChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-04sna: Clear the read flags for the shared drm fd after useChris Wilson
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-04sna: Update the fence marker after submitting a new batchChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01sna: Validate that the reg/insn size is well definedChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01sna: Clamp downsampling tile sizeChris Wilson
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-01sna: Explicitly disable unused pipes after an output reconfigurationChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01sna: Generate a backtrace on assertion failuresChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01sna: Cancel pending mode change notificationChris Wilson
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-01sna: Reject modesets with 0 outputsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01sna: Add a few more asserts to sna_crtc_flip()Chris Wilson
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-01sna: Do not post shadow updates in the middle of output reconfigurationChris Wilson
Wait until the screens and framebuffers settle before we start updating. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01sna: Clean up DBG compile warningsChris Wilson
Including a potential crash due to using a unspecified string, oops. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-01sna: Report when we disable TearFree due to an error in operationChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-28sna: Reject attempts to set an invalid modeChris Wilson
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-20sna/transform: Correctly check for imprecise fractional translationsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-20sna/dri2: Improve precision of completion event for no-op swapsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-20sna/dri2: Add more DBG to explain invalid framesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-20sna: DBG compile fixChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-19sna: Tweak alignment constraints on gen8 to allow BLTChris Wilson
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-19sna: Add more checks and asserts for BLT capable boChris Wilson
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-19sna: gen8 BLT broken when address has bit 4 setMika Kuoppala
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-19sna/dri2: Remove unused functionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-14sna: Unroll pwrite using our cached mmappingsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-12sna: Reorder PARAMs based on upstream inclusionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-12sna/gen7: Be paranoid and force a pipecontrol stall at least every 4 flushesChris Wilson
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-10sna: Only reshow unhidden cursors after modesettingChris Wilson
Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-10sna: Check after filtering points before submitting boxes to be drawnChris Wilson
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-10sna: Check picture format on destination before beginning a GPU operationChris Wilson
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-07sna/xv: Give the illusion of hardware progressChris Wilson
The number of ports we provide for Xv textured video is arbitrary. The main cost is reservation of a number of XIDs and preallocation of a block of memory. Whatever value we pick, someone will always want more... References: https://bugs.freedesktop.org/show_bug.cgi?id=85974 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-06Remove defunct glamor supportChris Wilson
It never was a stable or complete replacement, and now it is incorporated in Xorg itself! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-06sna: Fix debug mmapping of active + released aux buffersChris Wilson
The debug code wants to print the batch and the aux buffers. To do so, it needs to bypass the assertions on the lifetime of the buffers. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-06sna: Experimental support for write-combining mmapsChris Wilson
If we have a linear buffer, we can request the kernel mmap it directly with write-combining without having to pin it into the GTT. This allows us to efficiently upload very large buffers, and can avoid the dreaded aperture thrashing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>