* Mon Aug 13 2007 Dave Airlie <airlied@redhat.com> 1.3.0.0-18

- xserver-1.3.0-mesa7.patch: Add support for building against mesa 7.0.1
  along with DRI zero-copy TFP hopefully
- xserver-1.3.0-exaupgrade.patch: Add updated EXA support
- dropped xserver-1.2.99.901-xephyr-crash-at-exit.patch - upstream
- rebase xorg-x11-server-1.1.1-offscreen-pixmaps.patch to xserver-1.3.0-newglx-offscreen-pixmaps.patch
- dropped xorg-x11-server-1.1.1-glcore-visual-matching.patch - fixed upstream
This commit is contained in:
Dave Airlie 2007-08-14 06:16:44 +00:00
parent 1fa0041869
commit 5d4276c96a
7 changed files with 9893 additions and 118 deletions

View File

@ -1,29 +0,0 @@
--- xorg-server-1.1.1/GL/mesa/X/xf86glx.c.glcore-visual 2006-07-05 14:31:36.000000000 -0400
+++ xorg-server-1.1.1/GL/mesa/X/xf86glx.c 2006-12-11 12:14:30.000000000 -0500
@@ -311,17 +311,22 @@
{
__GLXMESAscreen *mesaScreen = (__GLXMESAscreen *) screen;
const __GLcontextModes *modes;
- unsigned i = 0;
+ XMesaVisual *xmv;
for ( modes = screen->modes ; modes != NULL ; modes = modes->next ) {
if ( modes->visualID == vid ) {
break;
}
-
- i++;
}
- return (modes != NULL) ? mesaScreen->xm_vis[i] : NULL;
+ if (!modes)
+ return NULL;
+
+ for (xmv = mesaScreen->xm_vis; xmv; xmv++)
+ if ((*xmv)->mesa_visual.visualID == vid)
+ return *xmv;
+
+ return NULL;
}
static void init_screen_visuals(__GLXMESAscreen *screen)

View File

@ -1,58 +0,0 @@
--- 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);
}
+void
+XAAEvictPixmaps(void)
+{
+ XAAScreenPtr pScreenPriv;
+ XAAInfoRecPtr infoRec;
+ ScreenPtr pScreen;
+ int i;
+
+ xf86MsgVerb(X_INFO, 3, "XAA: Evicting pixmaps\n");
+
+ for (i = 0; i < screenInfo.numScreens; i++) {
+ pScreen = screenInfo.screens[i];
+ infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
+
+ pScreenPriv = pScreen->devPrivates[XAAScreenIndex].ptr;
+ infoRec = pScreenPriv->AccelInfoRec;
+
+ infoRec->offscreenDepths = 0;
+ infoRec->Flags &= ~OFFSCREEN_PIXMAPS;
+
+ XAAMoveOutOffscreenPixmaps(pScreen);
+ XAAInvalidatePixmapCache(pScreen);
+ }
+}
Bool
XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec)

View File

@ -9,7 +9,7 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.3.0.0
Release: 17%{?dist}
Release: 18%{?dist}
URL: http://www.x.org
License: MIT/X11
Group: User Interface/X
@ -27,7 +27,6 @@ Patch10: xorg-x11-server-1.1.1-vbe-filter-less.patch
Patch11: xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch
Patch12: xorg-x11-server-1.1.1-graphics-expose.patch
Patch15: xorg-x11-server-1.1.1-automake-1.10-fixes.patch
Patch18: xorg-x11-server-1.1.1-glcore-visual-matching.patch
Patch19: xserver-1.3.0-xnest-exposures.patch
Patch20: xserver-1.3.0-x86emu-imul-int64.patch
Patch21: xserver-1.3.0-xkb-and-loathing.patch
@ -40,7 +39,6 @@ Patch100: xorg-x11-server-1.1.0-no-move-damage.patch
Patch101: xorg-x11-server-1.1.0-dont-backfill-bg-none.patch
Patch105: xorg-x11-server-1.2.0-enable-composite.patch
Patch106: xorg-x11-server-1.1.1-no-composite-in-xnest.patch
Patch107: xorg-x11-server-1.1.1-offscreen-pixmaps.patch
Patch108: xserver-1.3.0-no-pseudocolor-composite.patch
# Red Hat specific tweaking, not intended for upstream
@ -56,13 +54,15 @@ Patch1008: xorg-x11-server-1.2.0-xf86config-comment-less.patch
Patch1009: xorg-x11-server-1.2.0-maxpixclock-option.patch
Patch1010: xserver-1.3.0-no-prerelease-warning.patch
Patch1011: xserver-1.3.0-composite-version.patch
Patch1012: xserver-1.3.0-mesa7.patch
Patch1013: xserver-1.3.0-exaupgrade.patch
Patch1014: xserver-1.3.0-newglx-offscreen-pixmaps.patch
Patch1022: xserver-1.3.0-default-dpi.patch
Patch2001: xserver-1.2.0-geode-mmx.patch
Patch2002: xserver-1.2.0-xephyr-keysym-madness.patch
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
Patch2008: xserver-1.3.0-randrama-no-zero-screens.patch
@ -141,8 +141,8 @@ BuildRequires: libXpm-devel
BuildRequires: libXaw-devel
BuildRequires: libXfixes-devel
BuildRequires: mesa-libGL-devel >= 6.5.2
BuildRequires: mesa-source >= 6.5.2
BuildRequires: mesa-libGL-devel >= 7.0.1
BuildRequires: mesa-source >= 7.0.1
# XXX silly...
BuildRequires: libdrm-devel >= 2.3.0
%if %{with_hw_servers}
@ -289,7 +289,6 @@ Xserver source code needed to build VNC server (Xvnc)
%patch11 -p1 -b .vt-activate
%patch12 -p1 -b .graphics-expose
%patch15 -p1 -b .automake-1.10
%patch18 -p1 -b .glcore-visual
%patch19 -p1 -b .xnest-expose
%patch20 -p1 -b .x86emu-imul
%patch21 -p1 -b .xkb-signal-loathing
@ -301,7 +300,6 @@ Xserver source code needed to build VNC server (Xvnc)
%patch101 -p0 -b .dont-backfill-bg-none
%patch105 -p1 -b .enable-composite
%patch106 -p1 -b .no-xnest-composite
%patch107 -p1 -b .offscreen-pixmaps
%patch108 -p1 -b .composite-paranoia
%patch1001 -p1 -b .Red-Hat-extramodes
@ -315,13 +313,15 @@ Xserver source code needed to build VNC server (Xvnc)
%patch1009 -p1 -b .maxpixclock
%patch1010 -p1 -b .prerelease-warning
%patch1011 -p1 -b .composite-version
%patch1012 -p1 -b .newmesa
%patch1013 -p1 -b .newexa
%patch1014 -p1 -b .offscreen-pixmaps
%patch1022 -p1 -b .dpi
%patch2001 -p1 -b .geode-mmx
%patch2002 -p1 -b .xephyr-keysym
%patch2003 -p1 -b .vfprintf
%patch2004 -p1 -b .displaysize
%patch2005 -p1 -b .xephyr-crash
%patch2006 -p1 -b .fakerama
%patch2007 -p1 -b .randrconfig
%patch2008 -p1 -b .randrama-zero-screens
@ -604,6 +604,14 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Mon Aug 13 2007 Dave Airlie <airlied@redhat.com> 1.3.0.0-18
- xserver-1.3.0-mesa7.patch: Add support for building against mesa 7.0.1
along with DRI zero-copy TFP hopefully
- xserver-1.3.0-exaupgrade.patch: Add updated EXA support
- dropped xserver-1.2.99.901-xephyr-crash-at-exit.patch - upstream
- rebase xorg-x11-server-1.1.1-offscreen-pixmaps.patch to xserver-1.3.0-newglx-offscreen-pixmaps.patch
- dropped xorg-x11-server-1.1.1-glcore-visual-matching.patch - fixed upstream
* Thu Aug 09 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-17
- xserver-1.3.0-default-dpi.patch: Switch default DPI to 100, on the
principle that 75 is almost never right and 100 is much more likely.

View File

@ -1,22 +0,0 @@
--- xorg-server-1.2.99.901/GL/mesa/X/xf86glx.c.jx 2007-03-07 14:15:25.000000000 -0500
+++ xorg-server-1.2.99.901/GL/mesa/X/xf86glx.c 2007-03-13 14:27:38.000000000 -0400
@@ -281,12 +281,14 @@
__GLXMESAscreen *mesaScreen = (__GLXMESAscreen *) screen;
int i;
- for (i = 0; i < mesaScreen->num_vis; i++) {
- if (mesaScreen->xm_vis[i])
- XMesaDestroyVisual(mesaScreen->xm_vis[i]);
- }
+ if (mesaScreen->xm_vis) {
+ for (i = 0; i < mesaScreen->num_vis; i++) {
+ if (mesaScreen->xm_vis[i])
+ XMesaDestroyVisual(mesaScreen->xm_vis[i]);
+ }
- xfree(mesaScreen->xm_vis);
+ xfree(mesaScreen->xm_vis);
+ }
__glXScreenDestroy(screen);

File diff suppressed because it is too large Load Diff

8203
xserver-1.3.0-mesa7.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,60 @@
diff -up xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c
--- xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps 2007-08-13 10:27:45.000000000 +1000
+++ xorg-server-1.3.0.0/hw/xfree86/xaa/xaaInit.c 2007-08-13 10:28:35.000000000 +1000
@@ -97,6 +97,30 @@ XAADestroyInfoRec(XAAInfoRecPtr infoRec)
xfree(infoRec);
}
+void
+XAAEvictPixmaps(void)
+{
+ XAAScreenPtr pScreenPriv;
+ XAAInfoRecPtr infoRec;
+ ScreenPtr pScreen;
+ int i;
+
+ xf86MsgVerb(X_INFO, 3, "XAA: Evicting pixmaps\n");
+
+ for (i = 0; i < screenInfo.numScreens; i++) {
+ pScreen = screenInfo.screens[i];
+ infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
+
+ pScreenPriv = pScreen->devPrivates[XAAScreenIndex].ptr;
+ infoRec = pScreenPriv->AccelInfoRec;
+
+ infoRec->offscreenDepths = 0;
+ infoRec->Flags &= ~OFFSCREEN_PIXMAPS;
+
+ XAAMoveOutOffscreenPixmaps(pScreen);
+ XAAInvalidatePixmapCache(pScreen);
+ }
+}
Bool
XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
diff -up xorg-server-1.3.0.0/GL/glx/glxdri.c.offscreen-pixmaps xorg-server-1.3.0.0/GL/glx/glxdri.c
--- xorg-server-1.3.0.0/GL/glx/glxdri.c.offscreen-pixmaps 2007-08-13 10:23:52.000000000 +1000
+++ xorg-server-1.3.0.0/GL/glx/glxdri.c 2007-08-13 10:26:08.000000000 +1000
@@ -380,6 +380,22 @@ __glXDRIbindTexImage(__GLXcontext *baseC
__GLXDRIscreen * const screen =
(__GLXDRIscreen *) __glXgetActiveScreen(pScreen->myNum);
+ if (!screen->driScreen.setTexOffset) {
+ /* 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(GL_FALSE);
+ if (dlsym(RTLD_DEFAULT, "XAAEvictPixmaps"))
+ XAAEvictPixmaps();
+ __glXDRIleaveServer(GL_FALSE);
+ evictedPixmaps = TRUE;
+ }
+ }
+
pixmap = (PixmapPtr) glxPixmap->pDraw;
if (screen->texOffsetStart && screen->driScreen.setTexOffset) {