* Mon May 07 2007 Adam Jackson <ajax@redhat.com> 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)
This commit is contained in:
Adam Jackson 2007-05-07 18:18:16 +00:00
parent 78e07cfbea
commit 336a7e768b
3 changed files with 75 additions and 28 deletions

View File

@ -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,

View File

@ -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 <ajax@redhat.com> 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 <ajax@redhat.com> 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

View File

@ -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)
{