Commit Graph

6727 Commits

Author SHA1 Message Date
Chris Wilson d6c30d1d4d sna: Clear the cow_list when discarding the clone upon pixmap destroy
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-17 12:12:07 +01:00
Chris Wilson 21f1745565 sna: Add the missing ref(bo) when undoing the source clone
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-17 12:12:07 +01:00
Chris Wilson ee166ca856 sna: Undo the clone when replacing the DRI pixmap
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-17 11:30:46 +01:00
Chris Wilson 8d31fe771b sna: Transfer ownership of the cloned bo to the pixmaps
Fix the leak from the previous commit.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-17 11:15:05 +01:00
Chris Wilson 5d9315873e sna: Avoid replacing pinned bo when undoing a clone
Otherwise we end up cloning the scanout only to leave it dangling if the
client copies the from the front-buffer and then writes to it.

Reported-by: Nick Bowler <nbowler@draconx.ca>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64675
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-17 11:06:10 +01:00
Chris Wilson 3efe143e36 sna: Clear mapped hints upon cloning a pair of pixmaps
Once cloned, we do not want to use inplace operations and instead force
a copy. However, if we do not relinquish the hints when copying across
the bo, then those hints become stale and lead to corruption.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-17 11:06:09 +01:00
Chris Wilson f57a65c352 sna: Correct assertions to allow discarding of cpu hint for inplace ops
Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 16:19:45 +01:00
Chris Wilson bb0969e6a5 sna: Assert that the mapping is released before closing the GEM handle
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 16:19:45 +01:00
Chris Wilson 16a64649e9 sna: Basic copy-on-write support for cloning pixmaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 14:29:32 +01:00
Chris Wilson d89b2647dc sna: Propagate clears when using the BLT composite routines
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 11:09:19 +01:00
Chris Wilson 810a0ce2f8 sna: Propagate clear color when replacing by a CopyArea
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 09:37:26 +01:00
Chris Wilson 07a4400fff sna: Attempt to discard overwritten operations before CopyArea
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 09:37:26 +01:00
Rodrigo Vivi 3ee42de066 Adding more reserved PCI IDs for Haswell.
As Chris mentioned there is a tendency for us to find out more
PCI IDs only when users report. So let's add all new reserved Haswell IDs.
I didn't have better names for this reserved ids and didn't want to use rsvd1
and rsvd2 groups, so I decided to use "B" and "E" that stands for the last
id digit.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2013-05-14 09:34:58 +01:00
Rodrigo Vivi ee96de8b1e Fix Haswell GT3 names.
When publishing first HSW ids we weren't allowed to use "GT3" codname.
But this is the correct codname and Mesa is using it already.
So to avoid people getting confused why in Mesa it is called GT3 and here
it is called GT2_PLUS let's fix this name in a standard and correct way.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2013-05-14 09:34:42 +01:00
Chris Wilson 979d2f8d00 sna/gen4: Tidy testing for an active vertex buffer id
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 09:23:31 +01:00
Chris Wilson 7ba6330705 sna/gen4: Drop unused gen parameter to SF state setup
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-14 09:23:31 +01:00
Chris Wilson 2217f6356b sna/trapezoids: Fix the determination of the trapezoid origin
"src-x and src-y register the pattern to
the floor of the top x and y coordinate of the left edge of the
first trapezoid,"

Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1178020
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-09 13:49:56 +01:00
Chris Wilson 6e98df06fa sna: Add more debugging to unaligned trapezoids
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-09 13:49:56 +01:00
Chris Wilson 5d62ec2593 sna/gen7: Add DBG for channel setup for render source
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-09 13:49:56 +01:00
Chris Wilson debdcd6a09 sna: Add DBG statements for choice of spans vertex emitter
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-09 13:49:56 +01:00
Chris Wilson c6e4088dcb sna: Handle cached upload buffers for partial migration to GPU
Since the extended use of move_area_to_gpu for partial migration of
render sources, we exposed the lack of handling of upload caches along
that path.

Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-09 11:32:07 +01:00
Chris Wilson 262ee1ef1e sna: Do not attempt to clean an active scanout
For simplicity, skip buffers that are still in use by the batch - they
will be removed later.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-07 10:38:12 +01:00
Chris Wilson 5637c173f8 sna: Be careful not to preemptively upload portions of a SHM pixmap
Only upload the portion of the pixmap being used for this rendering
operation, as outside of that may remain undefined and to be written by
the client before a future operation.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-01 16:14:09 +01:00
Chris Wilson ca4a32c20d sna: Page align requests to userptr
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-05-01 16:14:09 +01:00
Chris Wilson ab576a4265 Add all reserved PCI-IDs for Haswell
There is a tendency for a product to ship based on a 'reserved' PCI-ID
prior to us being notified about it. In other words, the first we find
out about such a product is when customers start complaining about their
shiny new hardware not being supported...

References: https://bugs.freedesktop.org/show_bug.cgi?id=63701
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-27 12:09:07 +01:00
Chris Wilson 7dfb359677 uxa/dri: Fix compile error for unknown 'bool'
It appears that it is only accidentally pulled in on some systems, but
not all.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63957
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-26 13:22:01 +01:00
Chris Wilson 8eaafdb439 sna: Prevent accessing an uninitialised region in move_area_to_gpu()
If we skip the migration, we need to avoid using the unitialiased
region. There is no bad consequence as both branches of the if are
no-ops, but it does silence the static checkers and should make the
predicate cheaper.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-24 16:06:36 +01:00
Chris Wilson b4871f1dac sna: Rephrase initialisation without a specific backend
"generic" sounds more impressive than "no"

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-18 09:51:39 +01:00
Chris Wilson 6668f68054 Revert "xgvevent"
This reverts commit ddd75d6539.

This is a WIP patch, not ready for upstream. The danger of mixing topic
branches.
2013-04-17 15:32:58 +01:00
Chris Wilson 1bf0d869ae Prefer i830_dri.so for gen2 chipsets
Probe for i830_dri.so and, if it exists, use that driver in preference
to i915_dri.so for DRI (i.e. GL clients). This was suggested in the
context of distributions supplying i915g as the main DRI driver for
gen3, in which case we need to provide a separate DRI driver for gen2.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-17 15:28:13 +01:00
Chris Wilson ddd75d6539 xgvevent 2013-04-16 11:56:17 +01:00
Chris Wilson ddd3cc4ed6 sna: Add VALGRIND_CFLAGS whilst compiling with --enable-valgrind
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-16 11:56:17 +01:00
Chris Wilson f0b6ae2cfb sna: Only release the scanout cache whilst DRM_MASTER
If we try to release the framebuffers whilst not DRM_MASTER, the
operation will fail and we will leak the buffers. So do not bother
during the normal expiration to clean the scanout cache if vt switched
away.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-15 11:44:02 +01:00
Chris Wilson d68270ca84 sna/xvmc: silence a compiler warning
sna_video_hwmc.c: In function 'create_context':
sna_video_hwmc.c:95: warning: assignment from incompatible pointer type

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-12 14:48:38 +01:00
Chris Wilson a64490c794 sna: Add missing ';'
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-12 14:28:44 +01:00
Chris Wilson 9dae6f9f1f sna: Flush the scanout cache after resizing the display
And ensure that any new scanout allocations make the requested size.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-12 11:39:11 +01:00
Chris Wilson 97fc1d4c5b sna/gen5: Force a MI_FLUSH between using the BLT and RENDER engines
There is a workaround that says the first RENDER command following use of
the BLT should be a non-pipelined command. To be safe, emit a MI_FLUSH
before setting up the invariants.

Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1168066
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-12 10:25:55 +01:00
Chris Wilson aff14a23f9 sna: Refine assertion about the existence of CPU damage when GPU damaged
One particular buffer type is quite cunning and simultaneously sets both
CPU/GPU as all damaged (the upload buffer) so be aware when making bold
assertions.

Reported-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-12 09:56:33 +01:00
Chris Wilson afe61281d8 sna/gen7: Cache our kernels in L3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-10 13:46:45 +01:00
Chris Wilson caf3118f90 sna: Align uploads to start on page boundaries
This reduces the number of loops and restarts required in the kernel.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-10 13:46:45 +01:00
Chris Wilson 092e30de8a sna/xvmc: Wrap each output adaptor
Each of the overlay, sprite and textured video can support XvMC
passthrough, so we need to setup an XvMC adaptor for each of our Xv
adaptors.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-10 12:17:29 +01:00
Chris Wilson 540802595f sna: Suppress hotplug events whilst VT switched away
Whilst we are not DRM master, not only is another server in control of
the outputs and responding to the udev event, we ourselves cannot
change modes and just cause contention upon the DRM device. Instead
inform userspace of the change as soon as we are DRM master again and
back in control.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-10 10:38:30 +01:00
Chris Wilson 7afe2b4555 sna: Add a DBG option for testing userptr more thoroughly
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-10 10:35:58 +01:00
Chris Wilson fbe081061a sna: Document fence limits for gen4+
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-09 09:53:06 +01:00
Chris Wilson 5f1367d611 sna/video: Textured video passthrough no longer relies upon XvMC
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-09 09:19:51 +01:00
Chris Wilson 21294eaaf1 sna/video: Expand passthrough support for overlay planes
The passthrough is actually a generic, albeit private, mechanism that
anything can use to pass along a GEM handle for use with Xv.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-09 09:10:33 +01:00
Chris Wilson 86efddd9e4 sna: Remove assertions for mapped GPU bo if priv->cpu after GPU bo creation
The condition that we have a mapped GPU bo iff priv->cpu is only true if
we have a GPU bo at the time of using the CPU -- if we create the GPU bo
during move_to_gpu, then that assertion is bogus.

Reported-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-08 10:54:56 +01:00
Chris Wilson 678279eb37 2.21.6 release 2013-04-06 15:58:50 +01:00
Chris Wilson 5332d5a7e0 configure: Allow valgrind support to be manually enabled
Irrespective of the DDX debug settings, some people wish to run Xorg
under valgrind and so prefer to have the cleaner output by making the
DDX valgrind aware.

(Actually Maarten wants valgrind support enabled by default...)

Suggested-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-06 15:42:23 +01:00
Chris Wilson 091cf6f047 sna: Improve assertions to detect rogue priv->cpu status
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-04-06 09:30:57 +01:00