From 336a7e768b8215f54512b867713abc83f984a5e3 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: May 07 2007 18:18:16 +0000 Subject: * Mon May 07 2007 Adam Jackson 1.3.0.0-4 - xorg-x11-server-1.1.1-offscreen-pixmaps.patch: Fix a crash when activating GLX_EXT_texture_from_pixmap without XAA. - xserver-1.3.0-randr12-config-hack.patch: If a Modes line is given in the Screen section, and no PreferredMode option is given for a RANDR 1.2 monitor, use the first mode in the Modes line as the preferred mode. Fixes anaconda ugliness on monitors larger than 800x600. (#238991) --- diff --git a/xorg-x11-server-1.1.1-offscreen-pixmaps.patch b/xorg-x11-server-1.1.1-offscreen-pixmaps.patch index 4462cee..4567f7a 100644 --- a/xorg-x11-server-1.1.1-offscreen-pixmaps.patch +++ b/xorg-x11-server-1.1.1-offscreen-pixmaps.patch @@ -1,6 +1,31 @@ ---- ./hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps 2006-07-05 14:31:42.000000000 -0400 -+++ ./hw/xfree86/xaa/xaaInit.c 2006-08-30 16:47:29.000000000 -0400 -@@ -98,6 +98,30 @@ +--- xorg-server-1.3.0.0/GL/glx/glxdri.c.offscreen-pixmaps 2007-04-09 15:59:09.000000000 -0400 ++++ xorg-server-1.3.0.0/GL/glx/glxdri.c 2007-05-07 11:35:04.000000000 -0400 +@@ -327,6 +327,22 @@ + int bpp; + GLenum target, format, type; + ++ /* When the GLX_EXT_texture_from_pixmap is used, as it's ++ * implemented here, we want to pull pixmap out of video memory ++ * and into host memory. */ ++ { ++ extern void XAAEvictPixmaps(void); ++ static int evictedPixmaps = 0; ++ ++ if (!evictedPixmaps) { ++ __glXDRIenterServer(); ++ if (dlsym(RTLD_DEFAULT, "XAAEvictPixmaps")) ++ XAAEvictPixmaps(); ++ __glXDRIleaveServer(); ++ evictedPixmaps = TRUE; ++ } ++ } ++ + pixmap = (PixmapPtr) glxPixmap->pDraw; + if (!glxPixmap->pDamage) { + glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone, +--- xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps 2006-09-18 02:04:18.000000000 -0400 ++++ xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c 2007-05-07 11:25:56.000000000 -0400 +@@ -97,6 +97,30 @@ xfree(infoRec); } @@ -31,27 +56,3 @@ Bool XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec) ---- ./GL/glx/glxdri.c.offscreen-pixmaps 2006-08-30 16:46:45.000000000 -0400 -+++ ./GL/glx/glxdri.c 2006-08-30 16:45:52.000000000 -0400 -@@ -367,6 +367,21 @@ - int bpp; - GLenum target, format, type; - -+ /* When the GLX_EXT_texture_from_pixmap is used, as it's -+ * implemented here, we want to pull pixmap out of video memory -+ * and into host memory. */ -+ { -+ extern void XAAEvictPixmaps(void); -+ static int evictedPixmaps; -+ -+ if (!evictedPixmaps) { -+ __glXDRIenterServer(); -+ XAAEvictPixmaps(); -+ __glXDRIleaveServer(); -+ evictedPixmaps = TRUE; -+ } -+ } -+ - pixmap = (PixmapPtr) glxPixmap->pDraw; - if (!glxPixmap->pDamage) { - glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone, diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 483060f..494418f 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -9,7 +9,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.3.0.0 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.x.org License: MIT/X11 Group: User Interface/X @@ -59,6 +59,7 @@ Patch2003: xserver-1.2.0-vfprintf.patch Patch2004: xserver-1.2.0-honor-displaysize.patch Patch2005: xserver-1.2.99.901-xephyr-crash-at-exit.patch Patch2006: xserver-1.3.0-less-randr-fakerama.patch +Patch2007: xserver-1.3.0-randr12-config-hack.patch # assorted PCI layer shenanigans. oh the pain. Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch @@ -301,6 +302,7 @@ Xserver source code needed to build VNC server (Xvnc) %patch2004 -p1 -b .displaysize %patch2005 -p1 -b .xephyr-crash %patch2006 -p1 -b .fakerama +%patch2007 -p1 -b .randrconfig %patch2500 -p1 -b .unbreak-domains %patch2501 -p1 -b .pci-bus-count @@ -566,6 +568,14 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Mon May 07 2007 Adam Jackson 1.3.0.0-4 +- xorg-x11-server-1.1.1-offscreen-pixmaps.patch: Fix a crash when activating + GLX_EXT_texture_from_pixmap without XAA. +- xserver-1.3.0-randr12-config-hack.patch: If a Modes line is given in + the Screen section, and no PreferredMode option is given for a RANDR 1.2 + monitor, use the first mode in the Modes line as the preferred mode. + Fixes anaconda ugliness on monitors larger than 800x600. (#238991) + * Mon Apr 30 2007 Adam Jackson 1.3.0.0-3 - xserver-1.3.0-xkb-and-loathing.patch: Ignore (not just block) SIGALRM around calls to Popen()/Pclose(). Fixes a hang in openoffice when diff --git a/xserver-1.3.0-randr12-config-hack.patch b/xserver-1.3.0-randr12-config-hack.patch new file mode 100644 index 0000000..c0c8028 --- /dev/null +++ b/xserver-1.3.0-randr12-config-hack.patch @@ -0,0 +1,36 @@ +--- xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c.jx 2007-04-16 12:53:50.000000000 -0400 ++++ xorg-server-1.3.0.0/hw/xfree86/modes/xf86Crtc.c 2007-05-02 14:03:28.000000000 -0400 +@@ -1202,6 +1202,23 @@ + return output; + } + ++static char * ++preferredMode(ScrnInfoPtr pScrn, xf86OutputPtr output) ++{ ++ char *preferred_mode = NULL; ++ ++ /* Check for a configured preference for a particular mode */ ++ preferred_mode = xf86GetOptValString (output->options, ++ OPTION_PREFERRED_MODE); ++ if (preferred_mode) ++ return preferred_mode; ++ ++ if (pScrn->display->modes && *pScrn->display->modes) ++ preferred_mode = *pScrn->display->modes; ++ ++ return preferred_mode; ++} ++ + #define DEBUG_REPROBE 1 + + void +@@ -1377,8 +1394,7 @@ + output->probed_modes = xf86SortModes (output->probed_modes); + + /* Check for a configured preference for a particular mode */ +- preferred_mode = xf86GetOptValString (output->options, +- OPTION_PREFERRED_MODE); ++ preferred_mode = preferredMode(scrn, output); + + if (preferred_mode) + {