Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
xen.7653
554cc211-libxl-add-qxl.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 554cc211-libxl-add-qxl.patch of Package xen.7653
commit 161212ef02312c0681d2d809c8ff1e1f0ea6f6f9 Author: Fabio Fantoni <fabio.fantoni@m2r.biz> Date: Wed Apr 29 11:20:28 2015 +0200 libxl: Add qxl vga interface support for upstream qemu Usage: vga="qxl" Qxl vga support many resolutions that not supported by stdvga, mainly the 16:9 ones and other high up to 2560x1600. With QXL you can get improved performance and smooth video also with high resolutions and high quality. Require their drivers installed in the domU and spice used otherwise act as a simple stdvga. Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz> Signed-off-by: Zhou Peng <zpengxen@gmail.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: George Dunlap <george.dunlap@eu.citrix.com> Index: xen-4.5.5-testing/docs/man/xl.cfg.pod.5 =================================================================== --- xen-4.5.5-testing.orig/docs/man/xl.cfg.pod.5 +++ xen-4.5.5-testing/docs/man/xl.cfg.pod.5 @@ -1294,6 +1294,9 @@ qemu-xen-traditional device-model, the a which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen device-model, the default and minimum is 8 MB. +For B<qxl> vga, the default is both default and minimal 128MB. +If B<videoram> is set less than 128MB, an error will be triggered. + =item B<stdvga=BOOLEAN> Select a standard VGA card with VBE (VESA BIOS Extensions) as the @@ -1305,9 +1308,14 @@ This option is deprecated, use vga="stdv =item B<vga="STRING"> -Selects the emulated video card (none|stdvga|cirrus). +Selects the emulated video card (none|stdvga|cirrus|qxl). The default is cirrus. +In general, QXL should work with the Spice remote display protocol +for acceleration, and QXL driver is necessary in guest in this case. +QXL can also work with the VNC protocol, but it will be like a standard +VGA without acceleration. + =item B<vnc=BOOLEAN> Allow access to the display via the VNC protocol. This enables the Index: xen-4.5.5-testing/tools/libxl/libxl.h =================================================================== --- xen-4.5.5-testing.orig/tools/libxl/libxl.h +++ xen-4.5.5-testing/tools/libxl/libxl.h @@ -506,6 +506,16 @@ typedef struct libxl__ctx libxl_ctx; #define LIBXL_HAVE_DOMINFO_OUTSTANDING_MEMKB 1 /* + * LIBXL_HAVE_QXL + * + * If defined, then the libxl_vga_interface_type will contain another value: + * "QXL". This value define if qxl vga is supported. + * + * If this is not defined, the qxl vga support is missed. + */ +#define LIBXL_HAVE_QXL 1 + +/* * LIBXL_HAVE_SPICE_VDAGENT * * If defined, then the libxl_spice_info structure will contain a boolean type: Index: xen-4.5.5-testing/tools/libxl/libxl_create.c =================================================================== --- xen-4.5.5-testing.orig/tools/libxl/libxl_create.c +++ xen-4.5.5-testing/tools/libxl/libxl_create.c @@ -240,6 +240,10 @@ int libxl__domain_build_info_setdefault( if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) b_info->video_memkb = 0; break; + case LIBXL_VGA_INTERFACE_TYPE_QXL: + LOG(ERROR,"qemu upstream required for qxl vga"); + return ERROR_INVAL; + break; case LIBXL_VGA_INTERFACE_TYPE_STD: if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) b_info->video_memkb = 8 * 1024; @@ -264,6 +268,15 @@ int libxl__domain_build_info_setdefault( if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) b_info->video_memkb = 0; break; + case LIBXL_VGA_INTERFACE_TYPE_QXL: + if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) { + b_info->video_memkb = (128 * 1024); + } else if (b_info->video_memkb < (128 * 1024)) { + LOG(ERROR, + "128 Mib videoram is the minimum for qxl default"); + return ERROR_INVAL; + } + break; case LIBXL_VGA_INTERFACE_TYPE_STD: if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) b_info->video_memkb = 16 * 1024; Index: xen-4.5.5-testing/tools/libxl/libxl_dm.c =================================================================== --- xen-4.5.5-testing.orig/tools/libxl/libxl_dm.c +++ xen-4.5.5-testing/tools/libxl/libxl_dm.c @@ -267,6 +267,8 @@ static char ** libxl__build_device_model case LIBXL_VGA_INTERFACE_TYPE_NONE: flexarray_append_pair(dm_args, "-vga", "none"); break; + case LIBXL_VGA_INTERFACE_TYPE_QXL: + break; } if (b_info->u.hvm.boot) { @@ -632,6 +634,12 @@ static char ** libxl__build_device_model break; case LIBXL_VGA_INTERFACE_TYPE_NONE: break; + case LIBXL_VGA_INTERFACE_TYPE_QXL: + /* QXL have 2 ram regions, ram and vram */ + flexarray_append_pair(dm_args, "-device", + GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64, + (b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) ); + break; } if (b_info->u.hvm.boot) { Index: xen-4.5.5-testing/tools/libxl/libxl_types.idl =================================================================== --- xen-4.5.5-testing.orig/tools/libxl/libxl_types.idl +++ xen-4.5.5-testing/tools/libxl/libxl_types.idl @@ -181,6 +181,7 @@ libxl_vga_interface_type = Enumeration(" (1, "CIRRUS"), (2, "STD"), (3, "NONE"), + (4, "QXL"), ], init_val = "LIBXL_VGA_INTERFACE_TYPE_CIRRUS") libxl_vendor_device = Enumeration("vendor_device", [ Index: xen-4.5.5-testing/tools/libxl/xl_cmdimpl.c =================================================================== --- xen-4.5.5-testing.orig/tools/libxl/xl_cmdimpl.c +++ xen-4.5.5-testing/tools/libxl/xl_cmdimpl.c @@ -1910,6 +1910,8 @@ skip_vfb: b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS; } else if (!strcmp(buf, "none")) { b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE; + } else if (!strcmp(buf, "qxl")) { + b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL; } else { fprintf(stderr, "Unknown vga \"%s\" specified\n", buf); exit(1);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor