If the user adds a mode to the VIRTUAL display and then attempts to use
it, add that mode to the remote display.
Reported-by: Christoph Bessei <admin@schwarzwald-falke.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73816
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Avoid using @var@ since this could not be easily overwritten through
'make var=xxx' option which is normally available.
For Makefile.am users should avoid using @var@.
Signed-off-by: Zdenek Kabelac <zkabelac@redhat.com>
This reverts commit abf1a16914.
We need to track visibility over all clones on a display, not just the
last.
Regression from
commit abf1a16914 [2.99.906]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Nov 8 17:09:35 2013 +0000
intel-virtual-output: Only track the most recent visibility status of the curso
Reported-by: Kirill Müller <mail@kirill-mueller.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71838
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When we modify the outputs and end up with a different screen size, we
need to actually tell the display to resize with an explicit
XRRSetScreenSize.
Reported-by: Jethro Beekman <freedesktop-bugs@jbeekman.nl>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71441
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
XPending() reports if there are any events pending and does not perform
any dequeuing itself - ergo for a remote display while (XPending()) ;
becomes an infinite loop should there be an event pending.
References: https://bugs.freedesktop.org/show_bug.cgi?id=71345
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Whilst we want to take over and hide the cursor on the remote displays,
on the source we need to not interfere with the host.
Reported-by: Jethro Beekman <freedesktop-bugs@jbeekman.nl>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71439
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we fail to track rendering using ShmCompletionEvents and begin to
drop frames, insert an explicit XSync.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we ourselves only track the BBox of damage on the virtual outputs, we
can ask X to amalgamate the damage events as well.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Some versions of the Xserver lose Damage tracking across the modeset,
causing a loss of damage notifications and repainting to cease on the
virtual outputs. We can workaround this by reattaching the damage every
time we receive notification that the local Screen configuration
changes.
Reported-and-tested-by: Severin Strobl <fd@severin-strobl.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68987
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The timer will be enabled if a reconfiguration actually takes place and
we mark the damaged region to be redrawn.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
After processing the Damage notification, we need to send a message back
to the Xserver to clear the pending damage before we will be sent more
events. To make sure that message is sent we need to flush the output,
as we may never flush the output queue otherwise.
Reported-by: Severin Strobl <fd@severin-strobl.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68987
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For the frequent operations, such as moving the cursor or updating
damage, it is more efficient to walk the list of active outputs (as the
discrete GPUs support lots of outputs!)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Even though we don't use the trailing NUL byte for our comparisons,
sprintf will write it, so we need make space for it.
Reported-by: Severin Strobl <fd@severin-strobl.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68987
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When falling back to using XSync rather than XSendEvent it is imperative
that we remember to clear the flag so that we don't keep on performing
the synchronous RTT every time.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As there is an XID inside the ShmSegmentInfo we cannot share one between
both endpoints, or else it gets clobbered and rendering is lost (unless
by happy coincidence the last XID is available in both Xservers).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The 'output-is-changed' flags was accidentally initialised to 01 rather
than 0, causing all attached outputs to be considered to have changed
everytime.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>