platform/upstream/xf86-video-intel.git
10 years agosna/gen7: Undo overzealous flushing
Chris Wilson [Fri, 1 Nov 2013 12:49:36 +0000 (12:49 +0000)]
sna/gen7: Undo overzealous flushing

commit d580a30aaf97687f9669ea72fbc3310c2fea26f1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Oct 31 15:58:47 2013 +0000

    sna/gen7: Flush render cache when changing CC state

ultimately doesn't prevent the issue and in the process adversely
affects perforamnce.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Scale uses of aperture_mappable by PAGE_SIZE
Chris Wilson [Fri, 1 Nov 2013 10:48:06 +0000 (10:48 +0000)]
sna: Scale uses of aperture_mappable by PAGE_SIZE

After converting aperture_mappable to count in pages, there were a few
residual users expecting a byte count.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71117
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/gen7: Flush render cache when changing CC state
Chris Wilson [Thu, 31 Oct 2013 15:58:47 +0000 (15:58 +0000)]
sna/gen7: Flush render cache when changing CC state

References: https://bugs.freedesktop.org/show_bug.cgi?id=68410
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/gen6: Tweak flush around CC state changes
Chris Wilson [Thu, 31 Oct 2013 13:35:59 +0000 (13:35 +0000)]
sna/gen6: Tweak flush around CC state changes

In order to fix some font corruption, it appears that we need an extra
flush in the Sandybridge pipeline when we change the CC stage and the
render cache is dirty. We previously triggered a full pipeline stall
for this case.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Tweak deletion of used buffers
Chris Wilson [Thu, 31 Oct 2013 10:32:46 +0000 (10:32 +0000)]
sna: Tweak deletion of used buffers

Make sure we never unwind a used buffer.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Allow limited recursion within sigtrapped routines
Chris Wilson [Wed, 30 Oct 2013 18:48:10 +0000 (18:48 +0000)]
sna: Allow limited recursion within sigtrapped routines

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoRevert "sna: Detect and handle mi recursion"
Chris Wilson [Wed, 30 Oct 2013 18:42:06 +0000 (18:42 +0000)]
Revert "sna: Detect and handle mi recursion"

This reverts commit c6b0e3fe0c299488932ba0392847f1faf298d079.

10 years agosna: Assert that the batch is in the correct mode prior to inserting BLT commands
Chris Wilson [Wed, 30 Oct 2013 13:26:23 +0000 (13:26 +0000)]
sna: Assert that the batch is in the correct mode prior to inserting BLT commands

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Detect and handle mi recursion
Chris Wilson [Wed, 30 Oct 2013 11:52:05 +0000 (11:52 +0000)]
sna: Detect and handle mi recursion

Some of the mi routines recuse back into the generic accel routines and
so confuse our trapping of SIGBUS. Add extra assertions to pinpoint the
recursion and unwrap sufficiently to avoid that recursion.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Queue retirement when placing a BO on the deferred flushing list
Chris Wilson [Wed, 30 Oct 2013 10:02:28 +0000 (10:02 +0000)]
sna: Queue retirement when placing a BO on the deferred flushing list

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Check for wedged after submitting
Chris Wilson [Wed, 30 Oct 2013 09:55:57 +0000 (09:55 +0000)]
sna: Check for wedged after submitting

If we submit prior to an operation, check that we didn't just wedge the
GPU.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Wrap access of upload buffers with sigtrap
Chris Wilson [Tue, 29 Oct 2013 21:19:02 +0000 (21:19 +0000)]
sna: Wrap access of upload buffers with sigtrap

For an extra layer of paranoia, catch any sigbus when trying to upload
a bitmap, and convert it to a no-op.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/gen7: Refactor BYT vsync using IVB routines
Chris Wilson [Tue, 29 Oct 2013 20:16:06 +0000 (20:16 +0000)]
sna/gen7: Refactor BYT vsync using IVB routines

The BYT vsync is closer to the IVB vsync, and using gen6 is just
erroneous. Apparently. At least that is what is in bspec today.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix assertion checks for fake flushing requests
Chris Wilson [Tue, 29 Oct 2013 18:27:41 +0000 (18:27 +0000)]
sna: Fix assertion checks for fake flushing requests

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Remove an overzealous assert
Chris Wilson [Tue, 29 Oct 2013 18:00:49 +0000 (18:00 +0000)]
sna: Remove an overzealous assert

Testing with a slow gen2 triggers this harmless assertion, so drop it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Handle deferred retiring of active-buffers
Chris Wilson [Tue, 29 Oct 2013 16:59:57 +0000 (16:59 +0000)]
sna: Handle deferred retiring of active-buffers

Yikes, the new assertions found cases where we would retain an active
buffer even though it was still owned by the next batch. Fortunately,
this should only be a bookkeeping issue rather than lead to corruption.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Always run the retire_buffers during ring_idle
Chris Wilson [Tue, 29 Oct 2013 16:20:14 +0000 (16:20 +0000)]
sna: Always run the retire_buffers during ring_idle

As we know that we had a request to retire, we know that we may make
progress retiring active buffers.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Perform an explicit retire for old active upload buffers
Chris Wilson [Tue, 29 Oct 2013 14:53:02 +0000 (14:53 +0000)]
sna: Perform an explicit retire for old active upload buffers

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Check for retired upload buffers after checking for an idle ring
Chris Wilson [Tue, 29 Oct 2013 15:12:17 +0000 (15:12 +0000)]
sna: Check for retired upload buffers after checking for an idle ring

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: asserts bitmap uploads are correct
Chris Wilson [Tue, 29 Oct 2013 13:50:51 +0000 (13:50 +0000)]
sna: asserts bitmap uploads are correct

Place guards around the pointer accesses to verify that they are within
the bitmap.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Don't attempt to move the GC back to the GPU before it is moved away
Chris Wilson [Tue, 29 Oct 2013 12:46:09 +0000 (12:46 +0000)]
sna: Don't attempt to move the GC back to the GPU before it is moved away

Fixes regression from

commit e3f15cbf39696edae9f716bdcfbb7032ec7d7e3f [2.99.905]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 22 15:19:15 2013 +0100

    sna: Move gc back to GPU after failure to move it to CPU

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Try harder to complete writes
Chris Wilson [Tue, 29 Oct 2013 09:56:10 +0000 (09:56 +0000)]
sna: Try harder to complete writes

Expunge our caches if we fail to write into a bo (presuming that
allocation failure is the likely fixable cause).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Quieten a couple of valgrind warnings about unknown ioctls
Chris Wilson [Mon, 28 Oct 2013 20:48:17 +0000 (20:48 +0000)]
sna: Quieten a couple of valgrind warnings about unknown ioctls

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Tidy RegionNil checks
Chris Wilson [Mon, 28 Oct 2013 13:06:16 +0000 (13:06 +0000)]
sna: Tidy RegionNil checks

After computing the clip intersection, we immediately check for the
empty result, so refactor the check into the common routine.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: And be pessimistic when checking aperture limits
Chris Wilson [Mon, 28 Oct 2013 11:29:13 +0000 (11:29 +0000)]
sna: And be pessimistic when checking aperture limits

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Account for extra guard pages around snooped BO in aperture checks
Chris Wilson [Mon, 28 Oct 2013 11:28:01 +0000 (11:28 +0000)]
sna: Account for extra guard pages around snooped BO in aperture checks

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Defer opportunistic flush if all bo are current on the GPU
Chris Wilson [Mon, 28 Oct 2013 11:16:29 +0000 (11:16 +0000)]
sna: Defer opportunistic flush if all bo are current on the GPU

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Leave extra room in the mappable aperture for fence alignment
Chris Wilson [Mon, 28 Oct 2013 10:33:57 +0000 (10:33 +0000)]
sna: Leave extra room in the mappable aperture for fence alignment

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Use page-count for mappable aperture size
Chris Wilson [Mon, 28 Oct 2013 10:45:52 +0000 (10:45 +0000)]
sna: Use page-count for mappable aperture size

For consistency with the other aperture metrics and correctness when
passing around required number of pages.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fallthrough to opportunistic flushing after aperture checks
Chris Wilson [Sun, 27 Oct 2013 16:45:53 +0000 (16:45 +0000)]
sna: Fallthrough to opportunistic flushing after aperture checks

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Handle transient TearFree flip failures
Chris Wilson [Sun, 27 Oct 2013 15:33:13 +0000 (15:33 +0000)]
sna: Handle transient TearFree flip failures

If we get a pageflip fail when trying to do a TearFree update, just
fallback to a copy (before turning off the display for complete
failure). The rare tearing copy should mar the user experience far less.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Trim usuable fenced aperture by unfenced usage
Chris Wilson [Fri, 25 Oct 2013 14:09:19 +0000 (15:09 +0100)]
sna: Trim usuable fenced aperture by unfenced usage

This will overcount buffers that both fenced and unfenced (likely most
fenced buffers!) but is required to prevent ENOSPC due to alignment
issues.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Don't assert indirect GPU state
Chris Wilson [Fri, 25 Oct 2013 13:27:21 +0000 (14:27 +0100)]
sna: Don't assert indirect GPU state

kgem_check_bo_fenced queries whether the GPU is idle, and so its result
is timing dependent and not suitable for assertion.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Remove stale mappings when replacing GPU bo
Chris Wilson [Fri, 25 Oct 2013 13:22:05 +0000 (14:22 +0100)]
sna: Remove stale mappings when replacing GPU bo

References: https://bugs.freedesktop.org/show_bug.cgi?id=70527
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix overallocation of fences for BLT commands (gen2/3)
Chris Wilson [Fri, 25 Oct 2013 12:20:10 +0000 (13:20 +0100)]
sna: Fix overallocation of fences for BLT commands (gen2/3)

Fixes a regression introduced in
commit 4d2840919fd00e4ae0bf1957f66009f55a01eb7b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Sep 26 15:30:58 2013 +0100

    sna: In desperation, query the actual available aperture space

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Add a line of DBG for when we discard uploads into CPU bo
Chris Wilson [Fri, 25 Oct 2013 10:35:39 +0000 (11:35 +0100)]
sna: Add a line of DBG for when we discard uploads into CPU bo

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/io: Propagate failure to XOR uploads
Chris Wilson [Fri, 25 Oct 2013 10:23:21 +0000 (11:23 +0100)]
sna/io: Propagate failure to XOR uploads

Similar to the handling required for the normal upload paths.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/io: Wrap the XOR upload paths with SIGBUS handling
Chris Wilson [Fri, 25 Oct 2013 10:03:05 +0000 (11:03 +0100)]
sna/io: Wrap the XOR upload paths with SIGBUS handling

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoman: Mention the new default accel
Chris Wilson [Thu, 24 Oct 2013 18:45:30 +0000 (19:45 +0100)]
man: Mention the new default accel

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoman: State the negative aspects of TearFree
Chris Wilson [Thu, 24 Oct 2013 18:38:53 +0000 (19:38 +0100)]
man: State the negative aspects of TearFree

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Do not apply drawable offsets to DamageRegionAppend
Chris Wilson [Thu, 24 Oct 2013 14:42:12 +0000 (15:42 +0100)]
sna: Do not apply drawable offsets to DamageRegionAppend

DamageRegionAppend() will itself apply the drawable offsets, so we need
to pass it the untransformed region. This also fixes an issue where we
might fallback without applying any Damage.

Reported-by: Christian Nassau <nassau@nullhomotopie.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32734
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix canonical mode name to correctly use asprintf
Chris Wilson [Thu, 24 Oct 2013 12:05:16 +0000 (13:05 +0100)]
sna: Fix canonical mode name to correctly use asprintf

Whoops. Only the kernel sprintf() accepts NULL as a valid target string,
not libc's.

Reported-by: Jay Little <jaylittle@jaylittle.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70835
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage
Chris Wilson [Tue, 22 Oct 2013 13:22:14 +0000 (14:22 +0100)]
sna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage

Otherwise we may not correctly undo COW or pending move-to-gpu updates.

v2: goto move_to_gpu instead for correcting the damage handling.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70821
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoRevert "sna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage"
Chris Wilson [Thu, 24 Oct 2013 06:28:18 +0000 (07:28 +0100)]
Revert "sna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage"

This reverts commit bccbbf8a68faf7aac274efd289d4916083b1a1e3.

10 years agoman: Describe the TearFree option
Chris Wilson [Wed, 23 Oct 2013 15:15:35 +0000 (16:15 +0100)]
man: Describe the TearFree option

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Reset bo after allocation failure during wait-for-shadow
Chris Wilson [Wed, 23 Oct 2013 10:15:28 +0000 (11:15 +0100)]
sna: Reset bo after allocation failure during wait-for-shadow

If we fail to allocate an alternate bo to replace the still visible
scanout bo, we stall and were supposed to continue using the old
wait->bo. However, we chose to use NULL instead which is going to lead
to an eventual crash.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years ago2.99.905 snapshot 2.99.905
Chris Wilson [Wed, 23 Oct 2013 08:50:24 +0000 (09:50 +0100)]
2.99.905 snapshot

10 years agosna: Tidy opportunistic flushing
Chris Wilson [Wed, 23 Oct 2013 07:40:43 +0000 (08:40 +0100)]
sna: Tidy opportunistic flushing

Rearrange the common code so that it should be tail-call optimised.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Flush the pending move-to-gpu upon Pixmap free
Chris Wilson [Tue, 22 Oct 2013 16:36:58 +0000 (17:36 +0100)]
sna: Flush the pending move-to-gpu upon Pixmap free

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Handle pending move-to-gpu for userptr uploads
Chris Wilson [Tue, 22 Oct 2013 16:35:33 +0000 (17:35 +0100)]
sna: Handle pending move-to-gpu for userptr uploads

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Pass the async hint when pushing GPU damage for redisplay
Chris Wilson [Tue, 22 Oct 2013 16:34:59 +0000 (17:34 +0100)]
sna: Pass the async hint when pushing GPU damage for redisplay

So that we don't accidentally clear any other hints.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix inconsistency in has_coherent_ptr assertion
Chris Wilson [Tue, 22 Oct 2013 15:59:29 +0000 (16:59 +0100)]
sna: Fix inconsistency in has_coherent_ptr assertion

We occasionally will read from an "incoherent" ptr in the belief that
the clflush hit will be worth it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage
Chris Wilson [Tue, 22 Oct 2013 13:22:14 +0000 (14:22 +0100)]
sna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage

Otherwise we may not correctly undo COW or pending move-to-gpu updates.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Make sure CPU damage is flushed to the TearFree shadow
Chris Wilson [Tue, 22 Oct 2013 12:33:06 +0000 (13:33 +0100)]
sna: Make sure CPU damage is flushed to the TearFree shadow

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Only force the TearFree exchange before a write
Chris Wilson [Tue, 22 Oct 2013 06:58:03 +0000 (07:58 +0100)]
sna: Only force the TearFree exchange before a write

We can read from the current scanout buffer without incurring a visual
tear, so delay the GPU bo exchange until we see a write to the object.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoxvmc: Handle errors along allocation path
Chris Wilson [Tue, 22 Oct 2013 14:54:59 +0000 (15:54 +0100)]
xvmc: Handle errors along allocation path

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Free our CRTC private after failing to create the xf86Crtc
Chris Wilson [Tue, 22 Oct 2013 14:35:31 +0000 (15:35 +0100)]
sna: Free our CRTC private after failing to create the xf86Crtc

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/trapezoids: Fix inversion of initialisation test for triangles
Chris Wilson [Tue, 22 Oct 2013 14:32:23 +0000 (15:32 +0100)]
sna/trapezoids: Fix inversion of initialisation test for triangles

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Ignore overflow in CPU count rather than abort
Chris Wilson [Tue, 22 Oct 2013 14:30:05 +0000 (15:30 +0100)]
sna: Ignore overflow in CPU count rather than abort

If there are more processors than we ever expect, good! Just use lots of
them, rather than none at all.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Move gc back to GPU after failure to move it to CPU
Chris Wilson [Tue, 22 Oct 2013 14:19:15 +0000 (15:19 +0100)]
sna: Move gc back to GPU after failure to move it to CPU

As the failure in gc move-to-cpu occurs late, i.e. after the function
pointers are updated to point to CPU functions, we need to undo those
changes, i.e. call move-to-gpu for the GC on failure.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Discard GPU bo when failing to setup the shared pixmap
Chris Wilson [Tue, 22 Oct 2013 14:02:53 +0000 (15:02 +0100)]
sna: Discard GPU bo when failing to setup the shared pixmap

If we fail to mmap the pixmap when preparing it for use with prime, be
sure to throw away the now lost priv->gpu_bo.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Free bo along unlikely one-off error path
Chris Wilson [Tue, 22 Oct 2013 14:00:16 +0000 (15:00 +0100)]
sna: Free bo along unlikely one-off error path

Add a missing free for a never-hit error.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Enable TearFree rendering for transformed scanouts
Chris Wilson [Mon, 21 Oct 2013 22:44:29 +0000 (23:44 +0100)]
sna: Enable TearFree rendering for transformed scanouts

References: https://bugs.freedesktop.org/show_bug.cgi?id=22969
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Eliminate the synchronous wait from inside TearFree
Chris Wilson [Mon, 21 Oct 2013 17:55:23 +0000 (18:55 +0100)]
sna: Eliminate the synchronous wait from inside TearFree

Defer the actual wait until the next use of the screen pixmap, and then
if needed replace the GPU bo with an alternative back buffer.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Improve handling of blit fallbacks for untransfomed large scanouts
Chris Wilson [Mon, 21 Oct 2013 16:52:05 +0000 (17:52 +0100)]
sna: Improve handling of blit fallbacks for untransfomed large scanouts

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Tweak opportunistic flushing to reduce power consumption
Chris Wilson [Mon, 21 Oct 2013 14:31:44 +0000 (15:31 +0100)]
sna: Tweak opportunistic flushing to reduce power consumption

When trying to conserve power, reduce the number of small batches we
emit - trying to maximise GPU efficacy and minimise CPU overhead.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Set the canonical name for the current mode if none match
Chris Wilson [Mon, 21 Oct 2013 12:35:24 +0000 (13:35 +0100)]
sna: Set the canonical name for the current mode if none match

Always give the mode a name for pretty printing for the user.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Copy the EDID mode name for the current CRTC mode
Chris Wilson [Mon, 21 Oct 2013 12:25:01 +0000 (13:25 +0100)]
sna: Copy the EDID mode name for the current CRTC mode

As the kernel does not preserve the name and driver type when returning
the current CRTC mode, we need to reconstruct those from the EDID mode
when available.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix typo inside an assertion
Chris Wilson [Mon, 21 Oct 2013 10:16:02 +0000 (11:16 +0100)]
sna: Fix typo inside an assertion

Use the right dst_priv variable instead of priv!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Suppress log messages for unchanging EDID
Chris Wilson [Mon, 21 Oct 2013 10:06:30 +0000 (11:06 +0100)]
sna: Suppress log messages for unchanging EDID

Whenever we reprobe an unchanging output and re-read its EDID, we emit a
useless log message. Previously this was squelched by trying to spot
when an EDID was unchanged through the use of its blob.id, however we
need to do a complete check on the contents in case the kernel returns
us a new EDID with the old id. So make a temporary copy of the current
EDID data and only squelch the log messages if the new EDID is an exact
match.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix the addition of the current output Mode to the probed lists
Chris Wilson [Sun, 20 Oct 2013 08:03:47 +0000 (09:03 +0100)]
sna: Fix the addition of the current output Mode to the probed lists

We need to add the current mode to the Modes list and not directly to
the output->probed_modes as that gets overwritten.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Unmap pixmap prior to release GPU bo
Chris Wilson [Sat, 19 Oct 2013 21:38:15 +0000 (22:38 +0100)]
sna: Unmap pixmap prior to release GPU bo

As the unmap routine will deference the GPu bo in its debugging code, we
need to be sure that the pointer is still valid at the time of
unmapping. Hence unmap before release.

Reported-by: Jiri Slaby <jirislaby@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=70461
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Do a quick pass on dirty damage before reduction
Chris Wilson [Fri, 18 Oct 2013 16:30:18 +0000 (17:30 +0100)]
sna: Do a quick pass on dirty damage before reduction

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Drop now obsolete assertion
Chris Wilson [Fri, 18 Oct 2013 16:27:27 +0000 (17:27 +0100)]
sna: Drop now obsolete assertion

We no longer unconditionally clear the CPU hint when moving to the GPU
for readonly updates, so we can no longer assert that the priv->cpu ==
false afterwards.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Tighten pixmap map assertions
Chris Wilson [Fri, 18 Oct 2013 10:12:51 +0000 (11:12 +0100)]
sna: Tighten pixmap map assertions

We need to also take account of upload buffers which include an offset
to the base map. To do so, we also need to stop conflating the cpu hint
with the current mapping flag.

References: https://bugs.freedesktop.org/show_bug.cgi?id=70461
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/glyphs: Remove glyph_approx_extents
Chris Wilson [Fri, 18 Oct 2013 08:19:14 +0000 (09:19 +0100)]
sna/glyphs: Remove glyph_approx_extents

It didn't consider the height of the glyph above the baseline, i.e. it
was fundamentally flawed. The only thing to do is to make sure that
glyph_extents() is sufficiently fast never to show up in profiles.
(Until then QA should spot the ~10% regression.) An alternative would be
to feed the drawable clip extents to the render engine and avoid manual
clipping if the clip region covers the whole drawable.

Reported-by: Clemens Eisserer <linuxhippy@gmail.com>
Reported-by: Jiri Slaby <jirislaby@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70552
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoRemove defunct file 'brw_eu_util.c' from git
Chris Wilson [Fri, 18 Oct 2013 07:33:58 +0000 (08:33 +0100)]
Remove defunct file 'brw_eu_util.c' from git

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Check return of source_bo for a potential failure
Chris Wilson [Thu, 17 Oct 2013 16:16:56 +0000 (17:16 +0100)]
sna: Check return of source_bo for a potential failure

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix computation of clip boxes for stipple uploads
Chris Wilson [Thu, 17 Oct 2013 16:14:13 +0000 (17:14 +0100)]
sna: Fix computation of clip boxes for stipple uploads

References: https://bugs.freedesktop.org/show_bug.cgi?id=67865
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Assert mapped state
Chris Wilson [Thu, 17 Oct 2013 11:01:02 +0000 (12:01 +0100)]
sna: Assert mapped state

When mapped, assert that we point to the expected mapping of the GPU bo.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/dri: Refactor to use the common GPU damage routine
Chris Wilson [Thu, 17 Oct 2013 10:32:39 +0000 (11:32 +0100)]
sna/dri: Refactor to use the common GPU damage routine

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/glyphs: Fix computation of extents for long strings
Chris Wilson [Wed, 16 Oct 2013 21:39:54 +0000 (22:39 +0100)]
sna/glyphs: Fix computation of extents for long strings

And make sure we consider such overflowing strings for correct clipping
against Windows.

To offset the cost of doing a full extents check (~10% on aa10text), we
introduce an approximate extents query (~1% on aa10text). The disparity
should be rare, and should be an overestimate to force redundant
clipping.

Reported-by: Clemens Eisserer <linuxhippy@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70541
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix inverted tiled CPU map check in has_coherent_ptr()
Chris Wilson [Wed, 16 Oct 2013 11:43:43 +0000 (12:43 +0100)]
sna: Fix inverted tiled CPU map check in has_coherent_ptr()

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Only carry 32/64-bit compat wrapper for drm_mode_get_connector
Chris Wilson [Wed, 16 Oct 2013 08:52:14 +0000 (09:52 +0100)]
sna: Only carry 32/64-bit compat wrapper for drm_mode_get_connector

This is the only structure we care about that has u64 and its size is
not a multiple of u64s.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Expand packed KMS structs for 64-bit alignment
Chris Wilson [Tue, 15 Oct 2013 20:53:16 +0000 (21:53 +0100)]
sna: Expand packed KMS structs for 64-bit alignment

Pavel Roskin found that with a 32-bit build of the DDX with a 64-bit
kernel that the call to GETCONNECTOR was overwriting the 4 bytes beyond
the end of the drm_mode_get_connector structure. This would appear to be
due to the surreptious padding inserted by the compiler so that the
structure would be naturally aligned on a 64-bit system. To compenstate
we need to insert padding between the adjacent 32-bit structures on the
stack.

As usual, be paranoid and make sure that all the adjacent KMS structs we
use are padded out to an 64-bit boundary.

Reported-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Add DBG along all output init failure paths
Chris Wilson [Tue, 15 Oct 2013 15:21:41 +0000 (16:21 +0100)]
sna: Add DBG along all output init failure paths

Suggested-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Allow read-mappings for has_coherent_ptr() assert
Chris Wilson [Tue, 15 Oct 2013 13:39:13 +0000 (14:39 +0100)]
sna: Allow read-mappings for has_coherent_ptr() assert

The assertion was a little too specific and disallowed us to have a CPU
read-only mapping.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Speed up inplace copies from SHM pixmaps to GPU bo
Chris Wilson [Tue, 15 Oct 2013 13:30:41 +0000 (14:30 +0100)]
sna: Speed up inplace copies from SHM pixmaps to GPU bo

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agoRevert "sna: Preserve the user backlight value for get_property calls"
Chris Wilson [Tue, 15 Oct 2013 11:48:27 +0000 (12:48 +0100)]
Revert "sna: Preserve the user backlight value for get_property calls"

This reverts commit 41b6b792d8e9c84c0a71a4bd7600e1c42e86b5bd in favour
of the better fix to not ask RRChangeOutputProperty to reset the known
hardware values.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Disable updating properties upon reading their values
Chris Wilson [Tue, 15 Oct 2013 11:46:09 +0000 (12:46 +0100)]
sna: Disable updating properties upon reading their values

When we assign the hardware values to the output properties, we do not
need to process the set_property callback to write those values back to
hardware. This callback is triggered by the pending update flag passed
to RRChangeOutputProperty.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70406
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Preserve the user backlight value for get_property calls
Chris Wilson [Tue, 15 Oct 2013 10:23:19 +0000 (11:23 +0100)]
sna: Preserve the user backlight value for get_property calls

When querying the current backlight value, be sure not to overwrite the
last user set value by the call to RRChangeOutputProperty.
RRChangeOutputProperty calls into set_backlight_property, tricking us
into believing that the user has set a new backlight value. The result
is that we end up believing that the user chooses a 0 backlight if she
should happen to query the property whilst the output is disabled.

Reported-by: reztho@archlinux.us
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70406
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/trapezoids: Initialise force_fallback
Chris Wilson [Tue, 15 Oct 2013 09:42:16 +0000 (10:42 +0100)]
sna/trapezoids: Initialise force_fallback

Remember to set it initially to false so that we randomly do not start
using fallbacks.

Fixes regression from
commit 0cd2c43fa8f3a66d612589ad1163a90e427668ac
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 13 14:46:45 2013 +0100

    sna/trapezoids: Use the aligned fast path for fallbacks

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Assert that the mode/ring are set when marking active bo
Chris Wilson [Mon, 14 Oct 2013 22:16:48 +0000 (23:16 +0100)]
sna: Assert that the mode/ring are set when marking active bo

As we use the current ring to encode upon the bo relocs, we need that
ring to be properly setup prior to performing relocations.

References: https://bugs.freedesktop.org/show_bug.cgi?id=70461
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/gen6: Fix the invert fix
Chris Wilson [Mon, 14 Oct 2013 10:54:35 +0000 (11:54 +0100)]
sna/gen6: Fix the invert fix

Eek, missed that 8-wide dispatch branch still had the opposite fix that I was
testing first.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/gen6+: Fix calculation of 1/z for projective textures
Chris Wilson [Sun, 13 Oct 2013 13:39:30 +0000 (14:39 +0100)]
sna/gen6+: Fix calculation of 1/z for projective textures

A typo crept in causing the shader to read from the wrong temporaries
for the invert operation.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Tighten has_coherent_ptr() assertion
Chris Wilson [Mon, 14 Oct 2013 08:33:52 +0000 (09:33 +0100)]
sna: Tighten has_coherent_ptr() assertion

Pass along the flags for read/write direction so that we know whether or
not we expect the gpu bo to be in the CPU write domain.

Reported-by: Pavel Ondračka <pavel.ondracka@email.cz>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70436
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Fix typo in DBG
Chris Wilson [Sun, 13 Oct 2013 17:50:03 +0000 (18:50 +0100)]
sna: Fix typo in DBG

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna/trapezoids: Use the aligned fast path for fallbacks
Chris Wilson [Sun, 13 Oct 2013 13:46:45 +0000 (14:46 +0100)]
sna/trapezoids: Use the aligned fast path for fallbacks

Route the fallback methods through the force_fallback aligned fast
paths.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Cleanup up unused variables
Chris Wilson [Sun, 13 Oct 2013 12:39:04 +0000 (13:39 +0100)]
sna: Cleanup up unused variables

commit 951f969fa63defbe7cfa52ca97c8985b157bbed0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Oct 13 12:47:20 2013 +0100

    sna: Update DPMS on attached outputs before disabling the CRT

left behind a couple of variables now deceased.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
10 years agosna: Update DPMS on attached outputs before disabling the CRTC
Chris Wilson [Sun, 13 Oct 2013 11:47:20 +0000 (12:47 +0100)]
sna: Update DPMS on attached outputs before disabling the CRTC

We may want to take action such as preserving the current user value of
the backlight before disabling it whilst forcing a CRTC off. This
requires us to record that value first.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>