diff options
4 files changed, 578 insertions, 3 deletions
diff --git a/x11-drivers/xf86-video-qxl/ChangeLog b/x11-drivers/xf86-video-qxl/ChangeLog index c3340668a227..db816a273df9 100644 --- a/x11-drivers/xf86-video-qxl/ChangeLog +++ b/x11-drivers/xf86-video-qxl/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for x11-drivers/xf86-video-qxl # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-qxl/ChangeLog,v 1.13 2012/08/08 13:22:32 chithanh Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-qxl/ChangeLog,v 1.14 2012/08/08 13:33:10 chithanh Exp $ + +*xf86-video-qxl-0.0.17-r1 (08 Aug 2012) + + 08 Aug 2012; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> + +files/xf86-video-qxl-0.0.17-xorg-server-1.13.patch, + +xf86-video-qxl-0.0.17-r1.ebuild: + Add compatibility to xorg-server-1.13, bug #430162. 08 Aug 2012; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> -xf86-video-qxl-0.0.13.ebuild, -xf86-video-qxl-0.0.14.ebuild, diff --git a/x11-drivers/xf86-video-qxl/Manifest b/x11-drivers/xf86-video-qxl/Manifest index 906781849305..21bc7e57eb22 100644 --- a/x11-drivers/xf86-video-qxl/Manifest +++ b/x11-drivers/xf86-video-qxl/Manifest @@ -1,4 +1,6 @@ -DIST xf86-video-qxl-0.0.17.tar.bz2 379844 SHA256 193c2bb4889de39f7b0071990adaae1753b45e542f68d76cc0d55a7299b49f82 +AUX xf86-video-qxl-0.0.17-xorg-server-1.13.patch 17845 SHA256 d7746f3cf9982967d10eadb97b3aba28cba67d8f4ac2ad9af6335a993b1db168 SHA512 4bde621b1d30447728030a49ede3ab61a8b671609a1928bdcc6ae8683c39bfa1634f4dea7b611cfa222ab57e229d02131da7d0f13b56557a18e57beddb07ebe3 WHIRLPOOL 80b28fbcd2330349b644b33c362fe827711d4a5e92504dcfa2a3020e0752b9d5a899bfe87e7c112b46ec493490a819230cf9f354e92ece06106731f5b22a3172 +DIST xf86-video-qxl-0.0.17.tar.bz2 379844 SHA256 193c2bb4889de39f7b0071990adaae1753b45e542f68d76cc0d55a7299b49f82 SHA512 04af0eedf548f495c8e84880785db50f8e4198790bc9d2d7ef11cd7c4dbec5c0e1496bc2c1e250481327b90ff8f7dede649b2fcc35baa08f9c24826d996199d8 WHIRLPOOL 487523d6daaab2ad4bb0eed0e90ae8535d28cce3b0bcd50a4b075389b6b04df987fe7db390ee5f67a4bbc9e11a4f1ae425981edb2ee311f59dc2419a6714abfb +EBUILD xf86-video-qxl-0.0.17-r1.ebuild 649 SHA256 3e268a19ffcb1c7c6971e76a137c4671f07d0574c780fd54b9439b856b711eaa SHA512 70851fdb884256346ba324031dd25382290ee9d3727abf6655ccc1ad4f586bf842fba182c79e2ea15ec587114d2558dfa9665f357afb7da461e368e021cf71d8 WHIRLPOOL e4be40fdca48c328cf1176a59e0d44c3abf05287195c890726e78d29bce29b3a237892b1ebf6d9807f3fdcb1f199c242e55010ec12eecbdcdc34401903870c84 EBUILD xf86-video-qxl-0.0.17.ebuild 597 SHA256 143c1c48edf9be5b2ca2fb8532f3265e39f8d37b8f89226c4fb69d612f2255ea SHA512 bed107e864e9366c58980b2e96db233101590f2a0be62293ab6424a38bc2f5d3431f0849e60bedacc6d2bdae3dd366dfd394c7b157f7b126c5c05ebce27c04b8 WHIRLPOOL f1694cc68bf0875cc001ece27748668dd88f98b56ec5b6002ad0a1d420b36ef76c91894cff2590fe8d375c6c242a20ce445aaf6bccf6721b3ca835cec53ec26c -MISC ChangeLog 2332 SHA256 b5ce82881562bf118bd04c0c1d7c3669ff4168cd2804be39f3c8e98bc20c89f1 SHA512 9396ba4c8dabd0e9515c285f90e81e347530e99ed016f8b95f120c9c6334d3d7acd2781fc352ba67f03eaf0f88441442f181f932e1a07227a90c2af98dce3c8d WHIRLPOOL 3290d567ecdfc91d9dedfc768b84120b9ca7a6047c3360230f4a0d179f7621a0197b04a3dec190595f42c24901d352ee7ced7101215733091943d9fc79ebdedc +MISC ChangeLog 2588 SHA256 b26e8ad5372139f93f24071108f0c0a974b73f9d28d7ea4126cca256c4dc9b67 SHA512 f6dc6ecb9312dd5ea3f7312685cef168a6afb06be3bc19d0ee881b816c2492a895788158af4b8e0200a6c8c714b289ca2ae4d5bfdcfedc27347429feb4a3b818 WHIRLPOOL 8d666f98b1ad6faafcb86dce92bdc3e1143d3f139203c62b0f0e8deaf4b5bc5b87cd0dc253a5e447d1f095f24ea85f9e70c21750bda4ff0e80f0c87519dcf576 MISC metadata.xml 220 SHA256 02098a3246ae2126fbc3d37008096f3ebfcd48cbb57947f910df9aebf8164849 SHA512 d242006225d374d35db154926c75747798abbbc55f7d6d2539e1f87dcf85cf426ec4123478a4968c33cac6cb5ed3b3e5f27d5c53be9fcb4376c241565174c372 WHIRLPOOL d65762a3ac1a9bff012eac9965b37cf53747e494efb561d0c0b192aec219c16e12131d27faaf636ab13b49092d1035a5f93900534bc2d27452a5369c1c2e855c diff --git a/x11-drivers/xf86-video-qxl/files/xf86-video-qxl-0.0.17-xorg-server-1.13.patch b/x11-drivers/xf86-video-qxl/files/xf86-video-qxl-0.0.17-xorg-server-1.13.patch new file mode 100644 index 000000000000..cfb476649125 --- /dev/null +++ b/x11-drivers/xf86-video-qxl/files/xf86-video-qxl-0.0.17-xorg-server-1.13.patch @@ -0,0 +1,538 @@ +From f1a9c1b33bff038807755824190c69889ef6d794 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +Date: Wed, 06 Jun 2012 13:19:04 +0000 +Subject: qxl: add API compat for latest X server. + +Signed-off-by: Dave Airlie <airlied@redhat.com> +--- +diff --git a/src/Makefile.am b/src/Makefile.am +index c3ba074..79ea3cc 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -47,7 +47,8 @@ qxl_drv_la_SOURCES = \ + mspace.h \ + murmurhash3.c \ + murmurhash3.h \ +- qxl_cursor.c ++ qxl_cursor.c \ ++ compat-api.h + endif + + if BUILD_XSPICE +diff --git a/src/compat-api.h b/src/compat-api.h +new file mode 100644 +index 0000000..6bc946f +--- a/dev/null ++++ b/src/compat-api.h +@@ -0,0 +1,99 @@ ++/* ++ * Copyright 2012 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ * ++ * Author: Dave Airlie <airlied@redhat.com> ++ */ ++ ++/* this file provides API compat between server post 1.13 and pre it, ++ it should be reused inside as many drivers as possible */ ++#ifndef COMPAT_API_H ++#define COMPAT_API_H ++ ++#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR ++#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] ++#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p ++#endif ++ ++#ifndef XF86_HAS_SCRN_CONV ++#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] ++#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] ++#endif ++ ++#ifndef XF86_SCRN_INTERFACE ++ ++#define SCRN_ARG_TYPE int ++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] ++ ++#define SCREEN_ARG_TYPE int ++#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] ++ ++#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv ++ ++#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask ++#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask ++ ++#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen ++#define CLOSE_SCREEN_ARGS scrnIndex, pScreen ++ ++#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags ++#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0 ++ ++#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags ++#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0 ++ ++#define FREE_SCREEN_ARGS_DECL int arg, int flags ++ ++#define VT_FUNC_ARGS_DECL int arg, int flags ++#define VT_FUNC_ARGS pScrn->scrnIndex, 0 ++ ++#define XF86_SCRN_ARG(x) ((x)->scrnIndex) ++#else ++#define SCRN_ARG_TYPE ScrnInfoPtr ++#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) ++ ++#define SCREEN_ARG_TYPE ScreenPtr ++#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) ++ ++#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv ++ ++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask ++#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask ++ ++#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen ++#define CLOSE_SCREEN_ARGS pScreen ++ ++#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y ++#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y ++ ++#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode ++#define SWITCH_MODE_ARGS(arg, m) arg, m ++ ++#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg ++ ++#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg ++#define VT_FUNC_ARGS pScrn ++ ++#define XF86_SCRN_ARG(x) (x) ++ ++#endif ++ ++#endif +diff --git a/src/qxl.h b/src/qxl.h +index ed12680..46155c9 100644 +--- a/src/qxl.h ++++ b/src/qxl.h +@@ -50,6 +50,7 @@ + #include "vgaHW.h" + #endif /* XSPICE */ + ++#include "compat-api.h" + #define hidden _X_HIDDEN + + #ifdef XSPICE +diff --git a/src/qxl_driver.c b/src/qxl_driver.c +index f7ccbbf..b0250e5 100644 +--- a/src/qxl_driver.c ++++ b/src/qxl_driver.c +@@ -328,7 +328,7 @@ qxl_blank_screen(ScreenPtr pScreen, int mode) + + #ifdef XSPICE + static void +-unmap_memory_helper(qxl_screen_t *qxl, int scrnIndex) ++unmap_memory_helper(qxl_screen_t *qxl) + { + free(qxl->ram); + free(qxl->vram); +@@ -336,7 +336,7 @@ unmap_memory_helper(qxl_screen_t *qxl, int scrnIndex) + } + + static void +-map_memory_helper(qxl_screen_t *qxl, int scrnIndex) ++map_memory_helper(qxl_screen_t *qxl) + { + qxl->ram = malloc(RAM_SIZE); + qxl->ram_physical = qxl->ram; +@@ -349,7 +349,7 @@ map_memory_helper(qxl_screen_t *qxl, int scrnIndex) + } + #else /* Default */ + static void +-unmap_memory_helper(qxl_screen_t *qxl, int scrnIndex) ++unmap_memory_helper(qxl_screen_t *qxl) + { + #ifdef XSERVER_LIBPCIACCESS + if (qxl->ram) +@@ -369,7 +369,7 @@ unmap_memory_helper(qxl_screen_t *qxl, int scrnIndex) + } + + static void +-map_memory_helper(qxl_screen_t *qxl, int scrnIndex) ++map_memory_helper(qxl_screen_t *qxl) + { + #ifdef XSERVER_LIBPCIACCESS + pci_device_map_range(qxl->pci, qxl->pci->regions[0].base_addr, +@@ -412,7 +412,7 @@ map_memory_helper(qxl_screen_t *qxl, int scrnIndex) + #endif /* XSPICE */ + + static void +-qxl_unmap_memory(qxl_screen_t *qxl, int scrnIndex) ++qxl_unmap_memory(qxl_screen_t *qxl) + { + #ifdef XSPICE + if (qxl->worker) { +@@ -420,7 +420,7 @@ qxl_unmap_memory(qxl_screen_t *qxl, int scrnIndex) + qxl->worker_running = FALSE; + } + #endif +- unmap_memory_helper(qxl, scrnIndex); ++ unmap_memory_helper(qxl); + qxl->ram = qxl->ram_physical = qxl->vram = qxl->rom = NULL; + + qxl->num_modes = 0; +@@ -430,7 +430,7 @@ qxl_unmap_memory(qxl_screen_t *qxl, int scrnIndex) + static Bool + qxl_map_memory(qxl_screen_t *qxl, int scrnIndex) + { +- map_memory_helper(qxl, scrnIndex); ++ map_memory_helper(qxl); + + if (!qxl->ram || !qxl->vram || !qxl->rom) + return FALSE; +@@ -556,9 +556,9 @@ qxl_reset (qxl_screen_t *qxl) + } + + static Bool +-qxl_close_screen(int scrnIndex, ScreenPtr pScreen) ++qxl_close_screen(CLOSE_SCREEN_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + qxl_screen_t *qxl = pScrn->driverPrivate; + Bool result; + +@@ -569,7 +569,7 @@ qxl_close_screen(int scrnIndex, ScreenPtr pScreen) + pScreen->CreateScreenResources = qxl->create_screen_resources; + pScreen->CloseScreen = qxl->close_screen; + +- result = pScreen->CloseScreen(scrnIndex, pScreen); ++ result = pScreen->CloseScreen(CLOSE_SCREEN_ARGS); + + #ifndef XSPICE + if (!xf86IsPrimaryPci (qxl->pci) && qxl->primary) +@@ -579,7 +579,7 @@ qxl_close_screen(int scrnIndex, ScreenPtr pScreen) + if (pScrn->vtSema) + { + qxl_restore_state(pScrn); +- qxl_unmap_memory(qxl, scrnIndex); ++ qxl_unmap_memory(qxl); + } + pScrn->vtSema = FALSE; + +@@ -589,7 +589,7 @@ qxl_close_screen(int scrnIndex, ScreenPtr pScreen) + static void + set_screen_pixmap_header (ScreenPtr pScreen) + { +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + qxl_screen_t *qxl = pScrn->driverPrivate; + PixmapPtr pPixmap = pScreen->GetScreenPixmap(pScreen); + +@@ -611,10 +611,11 @@ set_screen_pixmap_header (ScreenPtr pScreen) + } + + static Bool +-qxl_switch_mode(int scrnIndex, DisplayModePtr p, int flags) ++qxl_switch_mode(SWITCH_MODE_ARGS_DECL) + { +- qxl_screen_t *qxl = xf86Screens[scrnIndex]->driverPrivate; +- int mode_index = (int)(unsigned long)p->Private; ++ SCRN_INFO_PTR(arg); ++ qxl_screen_t *qxl = pScrn->driverPrivate; ++ int mode_index = (int)(unsigned long)mode->Private; + struct QXLMode *m = qxl->modes + mode_index; + ScreenPtr pScreen; + void *evacuated; +@@ -680,7 +681,7 @@ enum ROPDescriptor + static Bool + qxl_create_screen_resources(ScreenPtr pScreen) + { +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + qxl_screen_t *qxl = pScrn->driverPrivate; + Bool ret; + PixmapPtr pPixmap; +@@ -848,7 +849,7 @@ qxl_set_screen_pixmap (PixmapPtr pixmap) + static PixmapPtr + qxl_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usage) + { +- ScrnInfoPtr scrn = xf86Screens[screen->myNum]; ++ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); + PixmapPtr pixmap; + qxl_screen_t *qxl = scrn->driverPrivate; + qxl_surface_t *surface; +@@ -906,7 +907,7 @@ static Bool + qxl_destroy_pixmap (PixmapPtr pixmap) + { + ScreenPtr screen = pixmap->drawable.pScreen; +- ScrnInfoPtr scrn = xf86Screens[screen->myNum]; ++ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); + qxl_screen_t *qxl = scrn->driverPrivate; + qxl_surface_t *surface = NULL; + +@@ -936,7 +937,7 @@ qxl_destroy_pixmap (PixmapPtr pixmap) + static Bool + setup_uxa (qxl_screen_t *qxl, ScreenPtr screen) + { +- ScrnInfoPtr scrn = xf86Screens[screen->myNum]; ++ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); + #if HAS_DIXREGISTERPRIVATEKEY + if (!dixRegisterPrivateKey(&uxa_pixmap_index, PRIVATE_PIXMAP, 0)) + return FALSE; +@@ -1030,9 +1031,9 @@ spiceqxl_screen_init(int scrnIndex, ScrnInfoPtr pScrn, qxl_screen_t *qxl) + #endif + + static Bool +-qxl_screen_init(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) ++qxl_screen_init(SCREEN_INIT_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + qxl_screen_t *qxl = pScrn->driverPrivate; + struct QXLRam *ram_header; + VisualPtr visual; +@@ -1041,7 +1042,7 @@ qxl_screen_init(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + + qxl->pScrn = pScrn; + +- if (!qxl_map_memory(qxl, scrnIndex)) ++ if (!qxl_map_memory(qxl, pScrn->scrnIndex)) + return FALSE; + + #ifdef XSPICE +@@ -1160,7 +1161,7 @@ qxl_screen_init(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + pScreen->width = pScrn->currentMode->HDisplay; + pScreen->height = pScrn->currentMode->VDisplay; + +- qxl_switch_mode(scrnIndex, pScrn->currentMode, 0); ++ qxl_switch_mode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); + + CHECK_POINT(); + +@@ -1171,13 +1172,13 @@ out: + } + + static Bool +-qxl_enter_vt(int scrnIndex, int flags) ++qxl_enter_vt(VT_FUNC_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ SCRN_INFO_PTR(arg); + qxl_screen_t *qxl = pScrn->driverPrivate; + + qxl_save_state(pScrn); +- qxl_switch_mode(scrnIndex, pScrn->currentMode, 0); ++ qxl_switch_mode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); + + if (qxl->vt_surfaces) + { +@@ -1186,18 +1187,18 @@ qxl_enter_vt(int scrnIndex, int flags) + qxl->vt_surfaces = NULL; + } + +- pScrn->EnableDisableFBAccess (scrnIndex, TRUE); ++ pScrn->EnableDisableFBAccess (XF86_SCRN_ARG(pScrn), TRUE); + + return TRUE; + } + + static void +-qxl_leave_vt(int scrnIndex, int flags) ++qxl_leave_vt(VT_FUNC_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ SCRN_INFO_PTR(arg); + qxl_screen_t *qxl = pScrn->driverPrivate; + +- pScrn->EnableDisableFBAccess (scrnIndex, FALSE); ++ pScrn->EnableDisableFBAccess (XF86_SCRN_ARG(pScrn), FALSE); + + qxl->vt_surfaces = qxl_surface_cache_evacuate_all (qxl->surface_cache); + +@@ -1327,9 +1328,9 @@ qxl_find_native_mode(ScrnInfoPtr pScrn, DisplayModePtr p) + } + + static ModeStatus +-qxl_valid_mode(int scrn, DisplayModePtr p, Bool flag, int pass) ++qxl_valid_mode(SCRN_ARG_TYPE arg, DisplayModePtr p, Bool flag, int pass) + { +- ScrnInfoPtr pScrn = xf86Screens[scrn]; ++ SCRN_INFO_PTR(arg); + int scrnIndex = pScrn->scrnIndex; + qxl_screen_t *qxl = pScrn->driverPrivate; + int bpp = pScrn->bitsPerPixel; +@@ -1550,7 +1551,7 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags) + #endif + + /* hate */ +- qxl_unmap_memory(qxl, scrnIndex); ++ qxl_unmap_memory(qxl); + + CHECK_POINT(); + +diff --git a/src/qxl_surface.c b/src/qxl_surface.c +index a8901f0..c6f21a9 100644 +--- a/src/qxl_surface.c ++++ b/src/qxl_surface.c +@@ -842,7 +842,7 @@ qxl_surface_prepare_access (qxl_surface_t *surface, + int n_boxes; + BoxPtr boxes; + ScreenPtr pScreen = pixmap->drawable.pScreen; +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + RegionRec new; + + if (!pScrn->vtSema) +diff --git a/src/uxa/uxa-glyphs.c b/src/uxa/uxa-glyphs.c +index c9fae0f..dd50dfc 100644 +--- a/src/uxa/uxa-glyphs.c ++++ b/src/uxa/uxa-glyphs.c +@@ -221,7 +221,7 @@ uxa_glyph_cache_upload_glyph(ScreenPtr screen, + GlyphPtr glyph, + int x, int y) + { +- PicturePtr pGlyphPicture = GlyphPicture(glyph)[screen->myNum]; ++ PicturePtr pGlyphPicture = GetGlyphPicture(glyph, screen); + PixmapPtr pGlyphPixmap = (PixmapPtr) pGlyphPicture->pDrawable; + PixmapPtr pCachePixmap = (PixmapPtr) cache->picture->pDrawable; + PixmapPtr scratch; +@@ -430,7 +430,7 @@ uxa_check_glyphs(CARD8 op, + INT16 xSrc, + INT16 ySrc, int nlist, GlyphListPtr list, GlyphPtr * glyphs) + { +- int screen = dst->pDrawable->pScreen->myNum; ++ ScreenPtr pScreen = dst->pDrawable->pScreen; + pixman_image_t *image; + PixmapPtr scratch; + PicturePtr mask; +@@ -494,7 +494,7 @@ uxa_check_glyphs(CARD8 op, + n = list->len; + while (n--) { + GlyphPtr glyph = *glyphs++; +- PicturePtr g = GlyphPicture(glyph)[screen]; ++ PicturePtr g = GetGlyphPicture(glyph, pScreen); + if (g) { + if (maskFormat) { + CompositePicture(PictOpAdd, g, NULL, mask, +@@ -560,7 +560,7 @@ static PicturePtr + uxa_glyph_cache(ScreenPtr screen, GlyphPtr glyph, int *out_x, int *out_y) + { + uxa_screen_t *uxa_screen = uxa_get_screen(screen); +- PicturePtr glyph_picture = GlyphPicture(glyph)[screen->myNum]; ++ PicturePtr glyph_picture = GetGlyphPicture(glyph, screen); + uxa_glyph_cache_t *cache = &uxa_screen->glyphCaches[PICT_FORMAT_RGB(glyph_picture->format) != 0]; + struct uxa_glyph *priv = NULL; + int size, mask, pos, s; +@@ -760,7 +760,7 @@ uxa_glyphs_to_dst(CARD8 op, + this_atlas = uxa_glyph_cache(screen, glyph, &mask_x, &mask_y); + if (this_atlas == NULL) { + /* no cache for this glyph */ +- this_atlas = GlyphPicture(glyph)[screen->myNum]; ++ this_atlas = GetGlyphPicture(glyph, screen); + mask_x = mask_y = 0; + } + } +@@ -970,7 +970,7 @@ uxa_glyphs_via_mask(CARD8 op, + this_atlas = uxa_glyph_cache(screen, glyph, &src_x, &src_y); + if (this_atlas == NULL) { + /* no cache for this glyph */ +- this_atlas = GlyphPicture(glyph)[screen->myNum]; ++ this_atlas = GetGlyphPicture(glyph, screen); + src_x = src_y = 0; + } + } +diff --git a/src/uxa/uxa-priv.h b/src/uxa/uxa-priv.h +index 80095ac..7a3c85e 100644 +--- a/src/uxa/uxa-priv.h ++++ b/src/uxa/uxa-priv.h +@@ -60,6 +60,7 @@ + #endif + #include "damage.h" + ++#include "../compat-api.h" + /* Provide substitutes for gcc's __FUNCTION__ on other compilers */ + #if !defined(__GNUC__) && !defined(__FUNCTION__) + # if defined(__STDC__) && (__STDC_VERSION__>=199901L) /* C99 */ +@@ -110,7 +111,7 @@ typedef struct { + + #define UXA_NUM_SOLID_CACHE 16 + +-typedef void (*EnableDisableFBAccessProcPtr) (int, Bool); ++typedef void (*EnableDisableFBAccessProcPtr) (SCREEN_ARG_TYPE, Bool); + typedef struct { + uxa_driver_t *info; + CreateGCProcPtr SavedCreateGC; +diff --git a/src/uxa/uxa.c b/src/uxa/uxa.c +index dc973ef..4acf53f 100644 +--- a/src/uxa/uxa.c ++++ b/src/uxa/uxa.c +@@ -361,10 +361,10 @@ static RegionPtr uxa_bitmap_to_region(PixmapPtr pPix) + return ret; + } + +-static void uxa_xorg_enable_disable_fb_access(int index, Bool enable) ++static void uxa_xorg_enable_disable_fb_access(SCREEN_ARG_TYPE arg, Bool enable) + { +- ScreenPtr screen = screenInfo.screens[index]; +- uxa_screen_t *uxa_screen = uxa_get_screen(screen); ++ SCREEN_PTR(arg); ++ uxa_screen_t *uxa_screen = uxa_get_screen(pScreen); + + if (!enable && uxa_screen->disableFbCount++ == 0) + uxa_screen->swappedOut = TRUE; +@@ -373,7 +373,7 @@ static void uxa_xorg_enable_disable_fb_access(int index, Bool enable) + uxa_screen->swappedOut = FALSE; + + if (uxa_screen->SavedEnableDisableFBAccess) +- uxa_screen->SavedEnableDisableFBAccess(index, enable); ++ uxa_screen->SavedEnableDisableFBAccess(arg, enable); + } + + void uxa_set_fallback_debug(ScreenPtr screen, Bool enable) +@@ -401,10 +401,10 @@ Bool uxa_swapped_out(ScreenPtr screen) + * uxa_close_screen() unwraps its wrapped screen functions and tears down UXA's + * screen private, before calling down to the next CloseSccreen. + */ +-static Bool uxa_close_screen(int i, ScreenPtr pScreen) ++static Bool uxa_close_screen(CLOSE_SCREEN_ARGS_DECL) + { + uxa_screen_t *uxa_screen = uxa_get_screen(pScreen); +- ScrnInfoPtr scrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen); + #ifdef RENDER + PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); + #endif +@@ -447,7 +447,7 @@ static Bool uxa_close_screen(int i, ScreenPtr pScreen) + + free(uxa_screen); + +- return (*pScreen->CloseScreen) (i, pScreen); ++ return (*pScreen->CloseScreen) (CLOSE_SCREEN_ARGS); + } + + /** +@@ -478,7 +478,7 @@ uxa_driver_t *uxa_driver_alloc(void) + Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver) + { + uxa_screen_t *uxa_screen; +- ScrnInfoPtr scrn = xf86Screens[screen->myNum]; ++ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); + + if (!uxa_driver) + return FALSE; +-- +cgit v0.9.0.2-2-gbebe diff --git a/x11-drivers/xf86-video-qxl/xf86-video-qxl-0.0.17-r1.ebuild b/x11-drivers/xf86-video-qxl/xf86-video-qxl-0.0.17-r1.ebuild new file mode 100644 index 000000000000..56f3b0f4379d --- /dev/null +++ b/x11-drivers/xf86-video-qxl/xf86-video-qxl-0.0.17-r1.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-qxl/xf86-video-qxl-0.0.17-r1.ebuild,v 1.1 2012/08/08 13:33:10 chithanh Exp $ + +EAPI=4 +inherit xorg-2 + +DESCRIPTION="QEMU QXL paravirt video driver" + +KEYWORDS="~amd64 ~x86" +IUSE="xspice" + +RDEPEND="xspice? ( app-emulation/spice ) + x11-base/xorg-server[-minimal]" +DEPEND="${RDEPEND} + x11-proto/xf86dgaproto + >=app-emulation/spice-protocol-0.8.1" + +PATCHES=( + "${FILESDIR}"/${P}-xorg-server-1.13.patch +) + +pkg_setup() { + xorg-2_pkg_setup + XORG_CONFIGURE_OPTIONS=( + $(use_enable xspice) + ) +} |