mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-27 07:29:32 +00:00
self_bitmap flag is used for some complex drawing not possible by QXL_DRAW_COPY commands. Having this flag set causes spice-server do draw part of the screen, copy that part on new allocated image and reduce network optimisations with no visual changes. Some drivers (like Windows 10 DOD) set this flag by mistake for this command so reset it. More details follow. The self_bitmap flag is used for some drawing command requiring to mix the frame buffer with some other image. For this specific QXL_DRAW_COPY command self_bitmap is used by spice-server code during cachine/sending (the reason for the cache is to cache images sent to client so the relationship between the two parts of the code). However the self_bitmap_image (an image created in spice-server if this flags is set) is used only if src_bitmap of SpiceCopy structure (the structure used to store the QXL_DRAW_COPY command inside spice-server) is NULL. But in red_get_copy_ptr (red-parse-qxl.c, the function that parse the QXL_DRAW_COPY command form the QXL device) not having a src_bitmap is considered an error so the self_bitmap_image won't be used. Why this flag affects network performance? When spice-server see this flag it update the frame buffer according to the pending commands (commands to be sent or still to be drawn on frame buffer). spice-server maintain a tree of commands used to reduce rendering and command to send. More or less if a command is covering other commands (for instance filling the entire screen with a single color) the pending commands can be removed from the queue and not sent to the client. However when an update of the frame buffer is requested spice-server update the frame buffer removing the commands from the tree but not from the client queue. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Christophe Fergeau <cfergeau@redhat.com> |
||
|---|---|---|
| build-aux | ||
| docs | ||
| m4 | ||
| server | ||
| spice-common@a84f868e48 | ||
| tests | ||
| tools | ||
| uncrustify_cfg | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .gitmodules | ||
| .mailmap | ||
| .travis.yml | ||
| AUTHORS | ||
| autogen.sh | ||
| cfg.mk | ||
| ChangeLog | ||
| configure.ac | ||
| COPYING | ||
| GNUmakefile | ||
| maint.mk | ||
| Makefile.am | ||
| NEWS | ||
| README | ||
| spice-server.pc.in | ||
| TODO.multiclient | ||
SPICE: Simple Protocol for Independent Computing Environments
=============================================================
SPICE is a remote display system built for virtual environments which
allows you to view a computing 'desktop' environment not only on the
machine where it is running, but from anywhere on the Internet and
from a wide variety of machine architectures.
Installation
------------
The SPICE package uses GNU autotools, so the build install process
follows the standard process documented in the INSTALL file. As a
quick start you can do
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --libdir=/usr/lib
make
sudo make install
Or to install into a private user specific location
./configure --prefix=$HOME/spice
make
make install
The following mandatory dependencies are required in order to
build SPICE
Spice protocol >= 0.12.14
Pixman >= 0.17.7
OpenSSL
libjpeg
zlib
The following optional dependencies increase the available
functionality
Cyrus-SASL
libcacard >= 0.1.2 (Smartcard support)
Opus >= 1.0.0 (Opus audio encoding support)
LZ4 (LZ4 compression support)
GStreamer >= 1.0.0
Communication
-------------
To communicate with the development team, or to post patches
there is a technical mailing list:
http://lists.freedesktop.org/mailman/listinfo/spice-devel
There is also a mailing list for new release announcements:
http://lists.freedesktop.org/archives/spice-announce/
To view known bugs, or report new bugs, in SPICE visit
https://bugs.freedesktop.org/describecomponents.cgi?product=Spice
Bugs found when using an OS distribution's binary packages should
be reported to the OS vendors' own bug tracker first.
The latest SPICE code can be found in GIT at:
https://gitlab.freedesktop.org/spice/
Licensing
---------
SPICE is provided under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
Please see the COPYING file for the complete LGPLv2+ license
terms, or visit <http://www.gnu.org/licenses/>.
Experimental Features
---------------------
To enable multiple client connections, set:
SPICE_DEBUG_ALLOW_MC=1
-- End of readme