Future commit "pixmap: fix reverse optimus support with multiple heads"
will allow for tracking within pixmaps (i.e. break the presumption that
everything starts at offset 0,0 in the target pixmap).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
ADDFB fails with a headless config (as any fb size is invalid).
Fortunately, with headless we can use any depth we like.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When the client goes away, we need to free its events. However, we
have to defer the freeing of any pending event (ones currently routed
through the kernel) for those we need to remember to decouple the event
from the Drawable's list before they are freed.
Reported-by: John Lindgren <john.lindgren@aol.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82979
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Especially when we delete the output property halfway through and the
ChangeProperty routine then attempts to wire it back up...
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82833
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Other platforms are not going to have the same debug infrastructure, nor
even the same mount(2).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Since this is an error path with a major user visible failure (the
modeset fails), make sure that we log the reason.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In Xorg-1.12.4 we have DRI2 version 6 (and so triple buffering support
by Xorg) but we don't yet have Prime. Remove the check for the Prime bug
in the Xserver for that case.
Reported-by: Axel Rohde
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Internally only use a square cursor, but 845g/865g actually supports
rectangular cursors (as they have a relaxed cursor height restriction).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Mostly paranoia, but we need to validate that the stored mode is valid
before applying the modeset.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We only want to log a mode change when it is initiated by the user. For
internal updates, such as changing the frame or restoring a mode from
DPMS, we want to silently apply the current mode.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Before we can query whether an option is set, we first need to generate
the options table. This is done through xf86OutputUseScreenMonitor() so
make sure it is called as early as possible in the proceedings.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The is a monitor option to allow the user to specify whether to add the
default modes, use it to determine adding the extra modes for panels.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
xf86InitialConfiguration() depends upon the order of the outputs for its
mode selection and expects the Primary output to be listed first.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82205
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we require debugging information from debugfs and we cannot find it,
silently mount it and dump the information we need.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we fail to claim the DRM device as master, dump /debugfs/.../clients
so that we can check to see who failed to drop master for us.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Along the legacy phys cursor path, we use a common scratch buffer. As
this is global, we need to be careful not to trust the cursor local
dirty tracking and be sure to clear the image before uploading.
Reported-by: Dirk Griesbach
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82337
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When changing the stride on a cursor, we have to clear the whole area
and not just the rectangle outside of our overwritten area.
Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82273
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
../../../src/uxa/intel_uxa.c: In function 'intel_uxa_init':
../../../src/uxa/intel_uxa.c:1557:27: error: 'true' undeclared (first use in this function)
../../../src/uxa/intel_uxa.c:1557:27: note: each undeclared identifier is reported only once for each function it appears in
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The kernel only sees changes in the cursor width when the cursor handle
is updated. In the cases where we reuse larger bo for smaller cursors,
make sure we then reset the cursor handle (even though it has not
changed) so tht the kernel updates its width.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Old Xorg xf86str.h defines NONE preventing us from using it within an
enum. Use NOACCEL instead.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the user specifies the Option "Primary" for a monitor, we need to set
it as the RandR primary output.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82193
We only want to add the current mode to the modelist if it is not
already present in the EDID. At the moment, we always add the current
mode first which causes the list to be reordered. If we add it after
checking the EDID, then we will not perturb the list.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82068
The backlight xrandr property is missing unless the backlight level
was 0 on starting X, regression introduced in
commit f9e7ac7db7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Jul 23 21:53:31 2014 +0100
backlight: Set structure to safe values when not initialised
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82146
CRTC flips depend upon having a proxy front buffer, so
commit 33a0dd8f0b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Jul 29 09:11:01 2014 +0100
sna/dri2: Also check for stale buffers before exchanges
was false and disabling every other CRTC flip. However,
commit 70868c7aa8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Jul 23 08:37:46 2014 +0100
sna/dri2: Recreate buffer in reuse rather than force recreate
was not the entire story and to prevent unnecessary confusion when
multiple clients share the same front buffer, we have to force the
recreation of the back. Do this inside the xchg routine to avoid the
confusion first fixed by 70868c7aa8.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This is done upfront based on the fenced size within the batch, so we do
not need to assume everything is fenced later on.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>