Otherwise a later call to GetImage will not notice the DRI update if it
was already clear - and so return a blank image. One example is the use
of x11vnc replaying xbmc.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69730
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
During the intial KMS probe, we do not yet have the list of output
modes, and in particular do not have the list of user preferred modes.
So, in order to honour the user preferrence, we need to query for any
preferred mode on the output from the option list.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=841696
Missing chunk from
commit 42330fbae8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Sep 22 14:39:57 2013 +0100
sna: Track CPU/GTT maps independently
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
A regression from
commit f99e49f764
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Sep 17 09:15:40 2013 +0100
intel: Make the option to control VSync and PageFlip explict
which used the inverse meaning of the option to disable waiting on
swapbuffers.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Now that we use CPU mmaps to read/write to tiled X surfaces, we find
ourselves frequently switching between CPU and GTT mmaps and so wish to
cache both.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we fail the initial tests, we need to undo our translation to the
region before returning and starting the fallback paths.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The mapped hint is only useful for coherent mappings where it is
preferable to guide placement of regular operations.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
One debugging option forces the use of the write domain when
synchronising to force a full synchronisation. This trips up an
assertion to catch when we try to move the scanout into the CPU write
domain. So don't.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The operation is in theory redundant, and in the case of Haswell where
we have multiple outputs aliasing to the same encoder, actually harmful.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68030
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Stefan Dirsch <sndirsch@suse.de>
The operation is in theory redundant, and in the case of Haswell where
we have multiple outputs aliasing to the same encoder, actually harmful.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68030
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Forcing the batch emission on virtually every glyph eats a lot of CPU
time sending very short commands to the GPU, and is totally unnecessary.
Reported-by: Arkadiusz Miskiewicz <a.miskiewicz@gmail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In commit dcf9b5ae18
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Sep 17 22:27:45 2013 +0100
intel: Compile fixes for base install of SLED11.sp3
the includes were juggled around to avoid pulling in xorg-server.h
outside of the driver. However, missing xorg-server.h leads to subtle
bugs in the layout of structures, in this case breaking xf86Options.
Reported-by: FBrown <francisbrwn9@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69555
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Move the wrapping out of the main code body and hide it with the others
in our compatability header.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
SLED11 also requires us to poke around in the privates as it does not
provide the more recent privates API.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Too often our implementation of vsync or pageflip is buggy, or for some
other reason it is desired by the user to disable those code paths. Make
it possible once again by restoring the Options for the user to control.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We always are going to write to the image, despite the flag set in
commit fa961ec99a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Jul 21 18:00:22 2013 +0100
sna: Allow linear inplace uploads along the tiled X PutImage blt paths
which was accidentally conditional on the image not being too large.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We need to be careful not to copy too much data during the vertex flush
or else that becomes the rate-limiting step. The goal here is to do the
early flush to warm up the GPU, then transition to larger batches.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Given how fragile the render operations are, taking the hit from
transitioning from the slow render operations to the comparatively fast
BLT (when possible) is always worth it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This problematic GPU still seems to like to fallover when faced with
Y-tiling. It was reserved only for use with glyphs, but even that
occasionally runs into trouble, so disable all selection of Y-tiling for
our own use.
Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1222203
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Oh my, bspec is missing a few details on how to perform a scanline wait
on Haswell. But by using the extra steps required for Ivybridge, we can
successfully send events from the scanout to the BCS ring. Sadly this
again means that to use vsync on Haswell requires preventing the GPU
from sleeping whilst it waits for the scanout to advance.
Reported-by: Dan Doel <dan.doel@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69119
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Hmm, this should have meant that we never actually waited for a
scan-line on pipe A. I wonder if it even works...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Sigh. I added the new functions for the asserts, updated the parameters,
but forgot to change the actual function themselves.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When using sna_copy_boxes__inplace(), we need to remember that the
region is in destination space, so we need to offset the boxes when
comparing against the source. The assertion forgot to do so, and so
failed as soon as it met a little complexity.
Reported-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For SNB, the different between RCS and BCS is more marginal but it is
slightly in favour of using rendercopy on GT2.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
On gt1, the BCS is faster than the RCS for all equivalent operations,
unlike gt2+ where the RCS is faster (but at greater power draw).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
It appears possible to race the framebuffer resize with a VT switch and
so end up attempting to update the CRTCs whilst master. The code
complains, but in reality we can just ignore the requested change until
we VT switch back and then apply the updates upon restoration of master.
Reported-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>