Merge branch 'master' into f24

This commit is contained in:
Cole Robinson 2016-05-20 16:38:38 -04:00
commit a05edfdf31
4 changed files with 183 additions and 42 deletions

View File

@ -0,0 +1,30 @@
From: Cole Robinson <crobinso@redhat.com>
Date: Wed, 18 May 2016 11:44:33 -0400
Subject: [PATCH] ui: spice: Exit if gl=on EGL init fails
The user explicitly requested spice GL, so if we know it isn't
going to work we should exit
Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
ui/spice-core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/ui/spice-core.c b/ui/spice-core.c
index 61db3c1..da05054 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -833,9 +833,11 @@ void qemu_spice_init(void)
"incompatible with -spice port/tls-port");
exit(1);
}
- if (egl_rendernode_init() == 0) {
- display_opengl = 1;
+ if (egl_rendernode_init() != 0) {
+ error_report("Failed to initialize EGL render node for SPICE GL");
+ exit(1);
}
+ display_opengl = 1;
}
#endif
}

View File

@ -0,0 +1,83 @@
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Wed, 3 Feb 2016 13:55:00 +0100
Subject: [PATCH] spice/gl: add & use qemu_spice_gl_monitor_config
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: qemu-stable@nongnu.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
(cherry picked from commit 39414ef4e93db9041e463a097084a407d0d374f0)
---
include/ui/spice-display.h | 1 +
ui/spice-display.c | 30 ++++++++++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/include/ui/spice-display.h b/include/ui/spice-display.h
index 00e4a0b..3c679e8 100644
--- a/include/ui/spice-display.h
+++ b/include/ui/spice-display.h
@@ -71,6 +71,7 @@ typedef struct QXLCookie {
QXLRect area;
int redraw;
} render;
+ void *data;
} u;
} QXLCookie;
diff --git a/ui/spice-display.c b/ui/spice-display.c
index 242ab5f..2a77a54 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -660,6 +660,11 @@ static void interface_async_complete(QXLInstance *sin, uint64_t cookie_token)
qemu_bh_schedule(ssd->gl_unblock_bh);
break;
}
+ case QXL_COOKIE_TYPE_IO:
+ if (cookie->io == QXL_IO_MONITORS_CONFIG_ASYNC) {
+ g_free(cookie->u.data);
+ }
+ break;
#endif
default:
/* should never be called, used in qxl native mode only */
@@ -795,6 +800,29 @@ static const DisplayChangeListenerOps display_listener_ops = {
#ifdef HAVE_SPICE_GL
+static void qemu_spice_gl_monitor_config(SimpleSpiceDisplay *ssd,
+ int x, int y, int w, int h)
+{
+ QXLMonitorsConfig *config;
+ QXLCookie *cookie;
+
+ config = g_malloc0(sizeof(QXLMonitorsConfig) + sizeof(QXLHead));
+ config->count = 1;
+ config->max_allowed = 1;
+ config->heads[0].x = x;
+ config->heads[0].y = y;
+ config->heads[0].width = w;
+ config->heads[0].height = h;
+ cookie = qxl_cookie_new(QXL_COOKIE_TYPE_IO,
+ QXL_IO_MONITORS_CONFIG_ASYNC);
+ cookie->u.data = config;
+
+ spice_qxl_monitors_config_async(&ssd->qxl,
+ (uintptr_t)config,
+ MEMSLOT_GROUP_HOST,
+ (uintptr_t)cookie);
+}
+
static void qemu_spice_gl_block(SimpleSpiceDisplay *ssd, bool block)
{
uint64_t timeout;
@@ -858,6 +886,8 @@ static void qemu_spice_gl_scanout(DisplayChangeListener *dcl,
surface_width(ssd->ds),
surface_height(ssd->ds),
stride, fourcc, y_0_top);
+
+ qemu_spice_gl_monitor_config(ssd, x, y, w, h);
}
static void qemu_spice_gl_update(DisplayChangeListener *dcl,

View File

@ -1,3 +1,10 @@
#!/bin/sh
exec /usr/bin/qemu-system-x86_64 -machine accel=kvm "$@"
# Libvirt introspects the binary using -M none. In that case, don't try
# to init KVM, which will fail and be noisy if the host has kvm disabled
opts="-machine accel=kvm"
if echo "$@" | grep -q " -M none "; then
opts=
fi
exec /usr/bin/qemu-system-x86_64 $opts "$@"

103
qemu.spec
View File

@ -49,7 +49,7 @@
Summary: QEMU is a FAST! processor emulator
Name: qemu
Version: 2.6.0
Release: 1%{?rcrel}%{?dist}
Release: 2%{?rcrel}%{?dist}
Epoch: 2
License: GPLv2+ and LGPLv2+ and BSD
Group: Development/Tools
@ -85,43 +85,68 @@ Source21: 50-kvm-s390x.conf
# Not for upstream, f24 only
Patch0001: 0001-spice-F24-spice-has-backported-gl-support.patch
# Fix gtk UI crash when switching to monitor (bz #1333424)
# Not upstream yet
Patch0002: 0002-ui-gtk-fix-crash-when-terminal-inner-border-is-NULL.patch
# Fix sdl2 UI lockup lockup when switching to monitor
# Not upstream yet
Patch0003: 0003-ui-sdl2-Release-grab-before-opening-console-window.patch
# Explicitly error if spice GL setup fails
Patch0004: 0004-ui-spice-Exit-if-gl-on-EGL-init-fails.patch
# Fix monitor resizing with virgl (bz #1337564)
Patch0005: 0005-spice-gl-add-use-qemu_spice_gl_monitor_config.patch
BuildRequires: SDL2-devel
BuildRequires: zlib-devel
BuildRequires: which
BuildRequires: chrpath
# documentation deps
BuildRequires: texi2html
BuildRequires: gnutls-devel
BuildRequires: cyrus-sasl-devel
BuildRequires: libtool
BuildRequires: libaio-devel
BuildRequires: rsync
BuildRequires: pciutils-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: libiscsi-devel
BuildRequires: libnfs-devel
BuildRequires: snappy-devel
BuildRequires: lzo-devel
BuildRequires: ncurses-devel
BuildRequires: libattr-devel
BuildRequires: usbredir-devel >= 0.5.2
%ifnarch s390 s390x
BuildRequires: gperftools-devel
%endif
BuildRequires: texinfo
# For /usr/bin/pod2man
BuildRequires: perl-podlators
# For sanity test
BuildRequires: qemu-sanity-check-nodeps
BuildRequires: kernel
# For acpi compilation
BuildRequires: iasl
# For chrpath calls in specfile
BuildRequires: chrpath
# -display sdl support
BuildRequires: SDL2-devel
# used in various places for compression
BuildRequires: zlib-devel
# used in various places for crypto
BuildRequires: gnutls-devel
# VNC sasl auth support
BuildRequires: cyrus-sasl-devel
# aio implementation for block drivers
BuildRequires: libaio-devel
# pulseaudio audio output
BuildRequires: pulseaudio-libs-devel
# iscsi drive support
BuildRequires: libiscsi-devel
# NFS drive support
BuildRequires: libnfs-devel
# snappy compression for memory dump
BuildRequires: snappy-devel
# lzo compression for memory dump
BuildRequires: lzo-devel
# needed for -display curses
BuildRequires: ncurses-devel
# used by 9pfs
BuildRequires: libattr-devel
BuildRequires: libcap-devel
# used by qemu-bridge-helper
BuildRequires: libcap-ng-devel
# spice usb redirection support
BuildRequires: usbredir-devel >= 0.5.2
%ifnarch s390 s390x
# tcmalloc support
BuildRequires: gperftools-devel
%endif
%if 0%{?have_spice:1}
# spice graphics support
BuildRequires: spice-protocol >= 0.12.2
BuildRequires: spice-server-devel >= 0.12.0
%endif
%if 0%{?have_seccomp:1}
# seccomp containment support
BuildRequires: libseccomp-devel >= 2.3.0
%endif
# For network block driver
@ -131,8 +156,6 @@ BuildRequires: ceph-devel >= 0.61
# We need both because the 'stap' binary is probed for by configure
BuildRequires: systemtap
BuildRequires: systemtap-sdt-devel
# For smartcard NSS support
BuildRequires: nss-devel
# For VNC JPEG support
BuildRequires: libjpeg-devel
# For VNC PNG support
@ -145,8 +168,6 @@ BuildRequires: bluez-libs-devel
BuildRequires: brlapi-devel
# For FDT device tree support
BuildRequires: libfdt-devel
# For virtfs
BuildRequires: libcap-devel
# Hard requirement for version >= 1.3
BuildRequires: pixman-devel
# For gluster support
@ -165,30 +186,25 @@ BuildRequires: gettext
%ifnarch s390 s390x
BuildRequires: librdmacm-devel
%endif
# For sanity test
BuildRequires: qemu-sanity-check-nodeps
BuildRequires: kernel
# For acpi compilation
BuildRequires: iasl
# Xen support
%if 0%{?have_xen:1}
# Xen support
BuildRequires: xen-devel
%endif
# memdev hostmem backend added in 2.1
%ifarch %{ix86} x86_64 aarch64
# qemu 2.1: needed for memdev hostmem backend
BuildRequires: numactl-devel
%endif
# Added in qemu 2.3
# qemu 2.3: reading bzip2 compressed dmg images
BuildRequires: bzip2-devel
# Added in qemu 2.4 for opengl bits
# qemu 2.4: needed for opengl bits
BuildRequires: libepoxy-devel
# For 2.5 TLS test suite
# qemu 2.5: needed for TLS test suite
BuildRequires: libtasn1-devel
# libcacard is it's own project as of qemu 2.5
# qemu 2.5: libcacard is it's own project now
BuildRequires: libcacard-devel >= 2.5.0
# virgl 3d support
# qemu 2.5: virgl 3d support
BuildRequires: virglrenderer-devel
# Needed explicitly for qemu 2.6 GL support
# qemu 2.6: Needed for gtk GL support
BuildRequires: mesa-libgbm-devel
@ -1199,6 +1215,11 @@ getent passwd qemu >/dev/null || \
%changelog
* Fri May 20 2016 Cole Robinson <crobinso@redhat.com> - 2:2.6.0-2
- Explicitly error if spice GL setup fails
- Fix monitor resizing with virgl (bz #1337564)
- Fix libvirt noise when introspecting qemu-kvm without hw virt
* Fri May 13 2016 Cole Robinson <crobinso@redhat.com> - 2:2.6.0-1
- Rebase to v2.6.0 GA