Age | Commit message (Collapse) | Author | Files | Lines |
|
Prevents rpm build failures when -Werror=format-security is used.
|
|
You will get occasional screen glitches; you could observe
this doing an 'ls; clear' pattern again and again.
This was caused by the full screen optimization made in 97517317bdc3
which can cause some scan reports to be incorrectly discarded.
Full disclosure: I modified Brendan's original patch to introduce
this bug, so the blame is mine alone.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
It was not clear that a lot of tests were here just to handle
borders.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
|
|
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
|
|
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
|
|
These arrays are just used to store if the tile is changed.
This produces a bit more optimised code, is more readable
and it's clear it's a boolean value.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
|
|
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
|
|
This saves time waiting for spin up.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
This makes the treatment of the logic condition in display.c
match that of scan.c.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
This option will bypass XDamage and periodic scanning and simply
transmit the whole screen to the spice server at the specified rate.
This will allow the streaming logic to kick in and hopefully for
video codecs to optimize the transmission. This is particularly
useful for applications that often change the whole screen.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
It was previously inconsistent, with partial initialization
outside and partial initialization inside.
Noted by Frediano Ziglio.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Credit to Frediano Ziglio.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
This goes further than commit cb122392 by forcing a whole screen
scan, looking for changes.
This improves the feel of using a session with mutter, which is
quite noticeable in a terminal window.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
There is no need to increase our CPU usage if we're going
to be largely responding to full screen painting requests
from a window manager such as mutter.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
This bug became noticable after cb122392, in that we routinely
send a new scan report type, which should not affect region
tracking.
Investigating this revealed that this code was also buggy
in that the region code could cause non region related
scan reports to be discarded. The code was refactored
to avoid that case.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
These use a refined version of the doc/spice_indent tool to make sure
that all controlled sources follow the spice style guide.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
There are times when the spice screen is not updated
insantaneously; this is particularly true when we are
not using damage.
Let's add a little delay to allow images to settle.
This makes testing more consistent and robust.
|
|
The previous logic assumes that the vertical height divided
by NUM_SCANLINES is less or equal to NUM_SCANLINES.
For large displays, this is clearly wrong. The new logic
scales with vertical height.
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
|
|
This exposes a bug in the current code base. That is, we
do not scan beyond the 32 scan lines currently given.
That means if we have a screen taller than 1024 pixels, we will
not scan every block fully, and so we can miss changes.
This test exposes that issue, and currently fails.
|
|
Our functions should really not be named xcb_xxx.
|
|
If the number of vertical lines results in an odd dividend, we were
truncating the computation and not sending the last few lines.
This fixes that by first avoiding early division which would truncate
values, and by then rounding up our width and height calculations.
This fixes the bug in the tests introduced in the previous patch.
|
|
|
|
This is not expected to be useful in production, but it will
be useful in developing tests.
|
|
With compositing window managers like mutter, when used with the
spice-video-dummy, you can get damage reports that are the whole screen.
Essentially, you just get an indication that the screen has changed,
but no sense of what has changed.
This change detects that behavior and stops trusting those damage
reports, and instead increases the scan frequency to compensate.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Spice uses evdev codes, and this provides a better default on RHEL 7.3,
which defaults to the base rules. Without evdev, the 'grey' extended
keys (e.g. up/down/home/end) do not function properly.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
gcc 4.x warns if you use a { 0 } initialization construct
for a structure with an initial member that is also a struct.
The { } construct is simpler and appears to work on a wider
range of gcc versions.
This is a correction to fdfdf1107be100b983de1bff4beee8e6360f670b
|
|
Using NULL causes the server to relay the message on to the agent,
which does a superior job to anything we currently want to do.
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Acked-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
This is probably not strictly needed, but it's easy and gets rid of the
"Xlib: extension "DPMS" missing on display ":2"." message.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
This allow us to size and dynamically resize the dummy driver.
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Acked-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
|
|
Add a cache to allow the reuse of SHM segments.
Shared memory segments are added to the cache instead of being
deallocated, and the cache is searched instead of/before allocating a
new segment.
Both the SHM segments and their attachment with the X server are cached.
The cache currently has a fixed number of 10 entries, this provided a
good cache hit rate while keeping memory usage under control.
Building with DEBUG_SHM_CACHE defined and running with
G_MESSAGES_DEBUG=all will periodically print out the SHM cache hit
rate.
On my Ubuntu 18.04 system running XFCE4 with a 2560x1440 screen, the
cache hit rate starts around 72%. On-screen windows that update often
and have consistently-sized damage rectangles are the best case. With
several of those (scrolling terminal windows, web browser showing a
WebGL demo), the hit rate slowly rises to around 92%.
Operations that generate rapid damage reports (like resizing or moving
windows) will lower the hit rate.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Acked-by: Jeremy White <jwhite@codeweavers.com>
|
|
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Acked-by: Jeremy White <jwhite@codeweavers.com>
|
|
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Acked-by: Jeremy White <jwhite@codeweavers.com>
|
|
The 'display->fullscreen' SHM segment was previously being used for both
x11spice's internal change scanning and as the spice primary surface.
I don't think spice wants anything else writing to the primary surface,
and this caused sporadic test failures and graphical corruption.
Create a separate SHM segment 'display->primary' and use it only for the
primary surface.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Acked-by: Jeremy White <jwhite@codeweavers.com>
|
|
Check the Debian/Ubuntu path for the non-wrapper Xorg binary
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Acked-by: Jeremy White <jwhite@codeweavers.com>
|
|
Fixes compilation on RHEL 7.3.
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
In Xorg 1.18, X changed so that GLAMOR_USE_EGL_SCREEN was the only
flag required and it implies the behavior previously requested
with the GLAMOR_USE_SCREEN and GLAMORE_USE_PICTURE_SCREEN flags.
Thus, if we are building against an older Xorg, we need to specify
those now deprecated flags.
Additionally, the compat-api header conflicts with the older
glamor header file, so it needs to be moved to be included
after glamor.h.
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|