Update to 1.7.3.

Copied F-12 spec file to here, so the F-12 patch history is maintained.
This commit is contained in:
Peter Hutterer 2010-01-07 02:14:19 +00:00
parent cdd3d22272
commit 704bf42673
11 changed files with 2904 additions and 9 deletions

View File

@ -1 +1 @@
xorg-server-1.6.99.903.tar.bz2
xorg-server-1.7.3.tar.bz2

View File

@ -1 +1 @@
3a2f20ebbeeae5c13f7a78df314b1164 xorg-server-1.6.99.903.tar.bz2
4c63b22cad9ed8ae8b86561f0f92c327 xorg-server-1.7.3.tar.bz2

View File

@ -18,8 +18,8 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.6.99.903
Release: 2%{dist}
Version: 1.7.3
Release: 7%{dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@ -72,6 +72,17 @@ Patch6028: xserver-1.6.99-randr-error-debugging.patch
Patch6030: xserver-1.6.99-right-of.patch
Patch6033: xserver-1.6.99-default-modes.patch
Patch6044: xserver-1.6.99-hush-prerelease-warning.patch
Patch6045: xserver-1.7.0-randr-gamma-restore.patch
Patch6047: xserver-1.7.0-glx-versioning.patch
#Patch6048: xserver-1.7.0-exa-fix-mixed.patch
Patch6049: xserver-1.7.1-multilib.patch
Patch6051: xserver-1.7.1-gamma-kdm-fix.patch
Patch6052: xserver-1.7.1-libcrypto.patch
Patch6066: xserver-1.7.1-glx14-swrast.patch
Patch6067: xserver-1.7.3-exa-master.patch
Patch6068: xserver-1.7.3-fb-backport.patch
%define moduledir %{_libdir}/xorg/modules
%define drimoduledir %{_libdir}/dri
@ -111,7 +122,6 @@ BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel
# Broken, this is global, should be Xephyr-only
BuildRequires: libXv-devel
# openssl? really?
BuildRequires: pixman-devel >= 0.15.14
BuildRequires: libpciaccess-devel >= 0.10.6-1 openssl-devel byacc flex
BuildRequires: mesa-libGL-devel >= 7.6-0.6
@ -315,7 +325,7 @@ git am -p1 %{lua: for i, p in ipairs(patches) do print(p.." ") end}
%endif
%if 0%{?fedora}
%define bodhi_flags --with-vendor-web="http://bodhi.fedoraproject.org/"
%define bodhi_flags --with-vendor-web="http://bodhi.fedoraproject.org/" --with-vendor-name="Fedora Project"
%endif
# --with-pie ?
@ -335,7 +345,7 @@ export CFLAGS="${RPM_OPT_FLAGS} -Wstrict-overflow -rdynamic $CFLAGS"
%{dri_flags} %{?bodhi_flags} \
${CONFIGURE}
make %{?_smp_mflags}
make V=1 %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
@ -358,6 +368,7 @@ install -m 644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/xserver
%define inst_srcdir %{buildroot}/%{xserver_source_dir}
mkdir -p %{inst_srcdir}/{Xext,xkb,GL,hw/{xquartz/bundle,xfree86/common}}
cp cpprules.in %{inst_srcdir}
cp shave*in %{inst_srcdir}
cp {,%{inst_srcdir}/}hw/xquartz/bundle/cpprules.in
cp xkb/README.compiled %{inst_srcdir}/xkb
cp hw/xfree86/xorgconf.cpp %{inst_srcdir}/hw/xfree86
@ -500,8 +511,96 @@ rm -rf $RPM_BUILD_ROOT
%{xserver_source_dir}
%changelog
* Wed Jan 06 2010 Peter Hutterer <peter.hutterer@redhat.com> 1.6.99.903-2
- Require xkeyboard-config, not the obsolete xkbdata.
* Tue Jan 05 2010 Peter Hutterer <peter.hutterer@redhat.com> 1.7.3-7
- Require xkeyboard-config, not xkbdata. xkbdata has been replaced by
xkeyboard-config.
* Mon Jan 04 2010 Adam Jackson <ajax@redhat.com> 1.7.3-6
- Build with V=1 for debugging.
* Mon Dec 21 2009 Adam Tkac <atkac redhat com> 1.7.3-5
- ship shave.in and shave-libtool.in in the -source subpackage
* Mon Dec 21 2009 Dave Airlie <airlied@redhat.com> 1.7.3-4
- Backport FB changes from master.
* Wed Dec 17 2009 Dave Airlie <airlied@redhat.com> 1.7.3-3
- backport EXA fixes from master, should fix xfig crashes X server
* Mon Dec 14 2009 Adam Jackson <ajax@redhat.com> 1.7.3-2
- xserver-1.7.1-sigaction.patch: Drop, exacerbates a race that leads to weird
behaviour like spontaneously repeating keys.
* Tue Dec 08 2009 Peter Hutterer <peter.hutterer@redhat.com> 1.7.3-1
- xserver 1.7.3
- xserver-1.7.1-stat-sanity.patch: Drop, merged upstream.
- xserver-1.7.1-window-pictures.patch: Drop, code it bases on reverted
upstream
- xserver-1.7.1-window-picture-performance-regression.patch: Drop, code it
bases on reverted upstream.
* Tue Nov 24 2009 Adam Jackson <ajax@redhat.com> 1.7.1-12
- xserver-1.7.1-glx14-swrast.patch: Enable GLX 1.4 for software GLX.
* Tue Nov 24 2009 Adam Jackson <ajax@redhat.com> 1.7.1-11
- xserver-1.7.1-window-picture-performance-regression.patch: Paper over a
performance regression caused by the window picture fixes.
* Mon Nov 23 2009 Adam Jackson <ajax@redhat.com> 1.7.1-10
- Fix crash message output. (#539401)
* Fri Nov 20 2009 Peter Hutterer <peter.hutterer@redhat.com> 1.7.1-9
- xserver-1.7.1-stat-sanity.patch: stat directories that actually exist
(possibly #537737).
* Mon Nov 16 2009 Adam Jackson <ajax@redhat.com> 1.7.1-8
- xserver-1.7.1-libcrypto.patch: Avoid linking against libssl, which is huge
and drags in dependent libs we don't care about.
- xserver-1.7.1-sigaction.patch: Microoptimization to SIGIO handling.
* Fri Nov 06 2009 Adam Jackson <ajax@redhat.com>
- Fix the previous changelog entry to name the right patch
* Fri Nov 06 2009 Dave Airlie <airlied@redhat.com> 1.7.1-7
- xserver-1.7.1-window-pictures.patch: remove the miClearDrawable (fingers crossed) (#533236)
- xserver-1.7.1-gamma-kdm-fix.patch: fix KDM vt gamma (#533217)
* Wed Nov 04 2009 Adam Jackson <ajax@redhat.com> 1.7.1-6
- xserver-1.7.1-multilib.patch: Keep defining _XSERVER64, it's needed in
some of the shared client/server headers.
* Wed Nov 4 2009 Soren Sandmann <ssp@redhat.com> 1.7.1-5
- Update xserver-1.7.1-window-pictures.patch. Instead of calling
GetImage(), simply call fb* functions rather than the screen
hooks. (#524244)
* Tue Nov 3 2009 Adam Jackson <ajax@redhat.com> 1.7.1-3
- xserver-1.7.1-window-pictures.patch: Fix Render from Pictures backed by
Windows to not crash in the presence of KMS. (#524244)
* Thu Oct 29 2009 Adam Jackson <ajax@redhat.com> 1.7.1-2
- xserver-1.7.1-multilib.patch: Fix silly multilib issue. (#470885)
* Mon Oct 26 2009 Adam Jackson <ajax@redhat.com> 1.7.1-1
- xserver 1.7.1
* Sat Oct 24 2009 Ben Skeggs <bskegg@redhat.com> 1.7.0-5
- Fix unbalancing of Prepare/FinishAccess in EXA mixed pixmaps (rh#528005)
* Fri Oct 16 2009 Dave Airlie <airlied@redhat.com> 1.7.0-4
- update GLX for 1.4 version reporting
* Fri Oct 09 2009 Ben Skeggs <bskeggs@redhat.com> 1.7.0-3
- xserver-1.7.0-exa-looping-forever-is-evil.patch: Fix rendercheck hang
* Thu Oct 08 2009 Adam Jackson <ajax@redhat.com> 1.7.0-2
- xserver-1.7.0-randr-gamma-restore.patch: Restore CRTC gamma on EnterVT.
* Mon Oct 05 2009 Dave Airlie <airlied@redhat.com> 1.7.0-1
- rebase to 1.7.0 upstream release - were 99% this already
* Thu Oct 01 2009 Dave Airlie <airlied@redhat.com> 1.6.99.903-2
- backport EXA and rotate crash fixes
* Mon Sep 28 2009 Peter Hutterer <peter.hutterer@redhat.com> 1.6.99.903-1
- xserver 1.6.99.903

View File

@ -0,0 +1,233 @@
From 3ef4be8129f78afd5566a9e5d0fb901449dcb771 Mon Sep 17 00:00:00 2001
From: Ian Romanick <ian.d.romanick@intel.com>
Date: Tue, 29 Sep 2009 16:43:43 -0700
Subject: [PATCH] GLX: Enable GLX 1.4 on DRI2
this squashes 4 commits
(cherry picked from commit ad5c0d9efa47476ed5cf75c82265c73919e468b4)
(cherry picked from commit cb54cf1b3e8c4109541cfb698542c00f2473e731)
(cherry picked from commit 4c6bfa2c09ae2b0cffdf9211a6dfbcaefe0366b5)
(cherry picked from commit 9bf2ff4faf730913de3073f346646a8727be41d4)
---
glx/glxcmds.c | 12 ++++++++----
glx/glxdri2.c | 12 ++++++++++++
glx/glxext.c | 8 +++++++-
glx/glxscreens.c | 15 ++++++++++++---
glx/glxscreens.h | 11 +++++++++++
glx/glxserver.h | 3 +++
glx/indirect_texture_compression.c | 4 ++--
include/protocol-versions.h | 2 +-
8 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index b1061a8..ba4c123 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -50,7 +50,6 @@
#include "indirect_dispatch.h"
#include "indirect_table.h"
#include "indirect_util.h"
-#include "protocol-versions.h"
static int
validGlxScreen(ClientPtr client, int screen, __GLXscreen **pGlxScreen, int *err)
@@ -739,8 +738,8 @@ int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc)
** client if it wants to work with older clients; however, in this
** implementation the server just returns its version number.
*/
- reply.majorVersion = SERVER_GLX_MAJOR_VERSION;
- reply.minorVersion = SERVER_GLX_MINOR_VERSION;
+ reply.majorVersion = glxMajorVersion;
+ reply.minorVersion = glxMinorVersion;
reply.length = 0;
reply.type = X_Reply;
reply.sequenceNumber = client->sequence;
@@ -2360,6 +2359,7 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc)
char *buf;
__GLXscreen *pGlxScreen;
int err;
+ char ver_str[16];
if (!validGlxScreen(client, req->screen, &pGlxScreen, &err))
return err;
@@ -2369,7 +2369,11 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc)
ptr = pGlxScreen->GLXvendor;
break;
case GLX_VERSION:
- ptr = pGlxScreen->GLXversion;
+ /* Return to the server version rather than the screen version
+ * to prevent confusion when they do not match.
+ */
+ snprintf(ver_str, 16, "%d.%d", glxMajorVersion, glxMinorVersion);
+ ptr = ver_str;
break;
case GLX_EXTENSIONS:
ptr = pGlxScreen->GLXextensions;
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index ed7fb4c..ed7dc80 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -685,6 +685,18 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
screen->base.GLXextensions);
}
+ /* We're going to assume (perhaps incorrectly?) that all DRI2-enabled
+ * drivers support the required extensions for GLX 1.4. The extensions
+ * we're assuming are:
+ *
+ * - GLX_SGI_make_current_read (1.3)
+ * - GLX_SGIX_fbconfig (1.3)
+ * - GLX_SGIX_pbuffer (1.3)
+ * - GLX_ARB_multisample (1.4)
+ */
+ screen->base.GLXmajor = 1;
+ screen->base.GLXminor = 4;
+
screen->enterVT = pScrn->EnterVT;
pScrn->EnterVT = glxDRIEnterVT;
screen->leaveVT = pScrn->LeaveVT;
diff --git a/glx/glxext.c b/glx/glxext.c
index 19d70d4..9f9c0ed 100644
--- a/glx/glxext.c
+++ b/glx/glxext.c
@@ -360,12 +360,18 @@ void GlxExtensionInit(void)
pScreen = screenInfo.screens[i];
for (p = __glXProviderStack; p != NULL; p = p->next) {
- if (p->screenProbe(pScreen) != NULL) {
+ __GLXscreen *glxScreen;
+
+ glxScreen = p->screenProbe(pScreen);
+ if (glxScreen != NULL) {
+ if (glxScreen->GLXminor < glxMinorVersion)
+ glxMinorVersion = glxScreen->GLXminor;
LogMessage(X_INFO,
"GLX: Initialized %s GL provider for screen %d\n",
p->name, i);
break;
}
+
}
if (!p)
diff --git a/glx/glxscreens.c b/glx/glxscreens.c
index 7d29d31..674e2c6 100644
--- a/glx/glxscreens.c
+++ b/glx/glxscreens.c
@@ -42,6 +42,7 @@
#include "glxserver.h"
#include "glxutil.h"
#include "glxext.h"
+#include "protocol-versions.h"
static int glxScreenPrivateKeyIndex;
static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex;
@@ -162,7 +163,8 @@ static const char GLServerExtensions[] =
** supported across all screens in a multi-screen system.
*/
static char GLXServerVendorName[] = "SGI";
-static char GLXServerVersion[] = "1.2";
+unsigned glxMajorVersion = SERVER_GLX_MAJOR_VERSION;
+unsigned glxMinorVersion = SERVER_GLX_MINOR_VERSION;
static char GLXServerExtensions[] =
"GLX_ARB_multisample "
"GLX_EXT_visual_info "
@@ -378,9 +380,17 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
pGlxScreen->pScreen = pScreen;
pGlxScreen->GLextensions = xstrdup(GLServerExtensions);
pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName);
- pGlxScreen->GLXversion = xstrdup(GLXServerVersion);
pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions);
+ /* All GLX providers must support all of the functionality required for at
+ * least GLX 1.2. If the provider supports a higher version, the GLXminor
+ * version can be changed in the provider's screen-probe routine. For
+ * most providers, the screen-probe routine is the caller of this
+ * function.
+ */
+ pGlxScreen->GLXmajor = 1;
+ pGlxScreen->GLXminor = 2;
+
pGlxScreen->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = glxCloseScreen;
pGlxScreen->DestroyWindow = pScreen->DestroyWindow;
@@ -454,7 +464,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
void __glXScreenDestroy(__GLXscreen *screen)
{
xfree(screen->GLXvendor);
- xfree(screen->GLXversion);
xfree(screen->GLXextensions);
xfree(screen->GLextensions);
}
diff --git a/glx/glxscreens.h b/glx/glxscreens.h
index 3c1bdd4..bff4363 100644
--- a/glx/glxscreens.h
+++ b/glx/glxscreens.h
@@ -161,6 +161,17 @@ struct __GLXscreen {
char *GLXversion;
char *GLXextensions;
+ /**
+ * \name GLX version supported by this screen.
+ *
+ * Since the GLX version advertised by the server is for the whole server,
+ * the GLX protocol code uses the minimum version supported on all screens.
+ */
+ /*@{*/
+ unsigned GLXmajor;
+ unsigned GLXminor;
+ /*@}*/
+
Bool (*CloseScreen)(int index, ScreenPtr pScreen);
Bool (*DestroyWindow)(WindowPtr pWindow);
};
diff --git a/glx/glxserver.h b/glx/glxserver.h
index 4aa8c2e..80f1b28 100644
--- a/glx/glxserver.h
+++ b/glx/glxserver.h
@@ -248,4 +248,7 @@ extern int __glXImageSize(GLenum format, GLenum type,
GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows,
GLint alignment);
+extern unsigned glxMajorVersion;
+extern unsigned glxMinorVersion;
+
#endif /* !__GLX_server_h__ */
diff --git a/glx/indirect_texture_compression.c b/glx/indirect_texture_compression.c
index 25c6eb3..5f44d7b 100644
--- a/glx/indirect_texture_compression.c
+++ b/glx/indirect_texture_compression.c
@@ -52,7 +52,7 @@ int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *p
const GLenum target = *(GLenum *)(pc + 0);
const GLint level = *(GLint *)(pc + 4);
GLint compsize = 0;
- char *answer, answerBuffer[200];
+ char *answer = NULL, answerBuffer[200];
CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize));
@@ -92,7 +92,7 @@ int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyt
const GLenum target = (GLenum) bswap_32( *(int *)(pc + 0) );
const GLint level = (GLint ) bswap_32( *(int *)(pc + 4) );
GLint compsize = 0;
- char *answer, answerBuffer[200];
+ char *answer = NULL, answerBuffer[200];
CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize));
diff --git a/include/protocol-versions.h b/include/protocol-versions.h
index da9770c..d688c66 100644
--- a/include/protocol-versions.h
+++ b/include/protocol-versions.h
@@ -61,7 +61,7 @@
/* GLX */
#define SERVER_GLX_MAJOR_VERSION 1
-#define SERVER_GLX_MINOR_VERSION 2
+#define SERVER_GLX_MINOR_VERSION 4
/* Xinerama */
#define SERVER_PANORAMIX_MAJOR_VERSION 1
--
1.6.5.rc2

View File

@ -0,0 +1,65 @@
From 18d2bd8cb513a0436739916620532247f13dbf03 Mon Sep 17 00:00:00 2001
From: Fedora X Ninjas <x@fedoraproject.org>
Date: Thu, 8 Oct 2009 15:25:24 -0400
Subject: [PATCH] randr gamma reload hack
---
hw/xfree86/loader/sdksyms.c | 4 ++++
hw/xfree86/modes/xf86RandR12.c | 6 ++++++
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/hw/xfree86/loader/sdksyms.c b/hw/xfree86/loader/sdksyms.c
index 12af6b7..656d07b 100644
--- a/hw/xfree86/loader/sdksyms.c
+++ b/hw/xfree86/loader/sdksyms.c
@@ -1056,6 +1056,8 @@ _X_HIDDEN void *xorg_symbols[] = {
(void *) &noXFree86VidModeExtension,
(void *) &noXFixesExtension,
(void *) &noPanoramiXExtension,
+ (void *) &noSELinuxExtension,
+ (void *) &selinuxEnforcingState,
(void *) &noXvExtension,
(void *) &noDRI2Extension,
(void *) &defaultTextFont,
@@ -1069,6 +1071,7 @@ _X_HIDDEN void *xorg_symbols[] = {
(void *) &defaultScreenSaverBlanking,
(void *) &defaultScreenSaverAllowExposures,
(void *) &display,
+ (void *) &displayfd,
(void *) &defaultBackingStore,
(void *) &disableBackingStore,
(void *) &enableBackingStore,
@@ -1078,6 +1081,7 @@ _X_HIDDEN void *xorg_symbols[] = {
(void *) &maxBigRequestSize,
(void *) &party_like_its_1989,
(void *) &whiteRoot,
+ (void *) &bgNoneRoot,
(void *) &CoreDump,
(void *) &DontPropagateMasks,
(void *) &screenIsSaved,
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 6ea9d26..41bac11 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1746,12 +1746,18 @@ xf86RandR12EnterVT (int screen_index, int flags)
{
ScreenPtr pScreen = screenInfo.screens[screen_index];
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
+ rrScrPrivPtr rp = rrGetScrPriv(pScreen);
if (randrp->orig_EnterVT) {
if (!randrp->orig_EnterVT (screen_index, flags))
return FALSE;
}
+ /* reload gamma */
+ int i;
+ for (i = 0; i < rp->numCrtcs; i++)
+ xf86RandR12CrtcSetGamma(pScreen, rp->crtcs[i]);
+
return RRGetInfo (pScreen, TRUE); /* force a re-probe of outputs and notify clients about changes */
}
--
1.6.5.rc2

View File

@ -0,0 +1,34 @@
From acc64ce5be7383c09e88a23aab06ebc2403f2ca3 Mon Sep 17 00:00:00 2001
From: Bill Nottingham <notting@redhat.com>
Date: Fri, 6 Nov 2009 10:32:27 +1000
Subject: [PATCH] fix KDM gamma issue on vt switch
---
hw/xfree86/modes/xf86RandR12.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 6ea9d26..ece12b9 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1761,6 +1761,7 @@ xf86RandR12Init12 (ScreenPtr pScreen)
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
rrScrPrivPtr rp = rrGetScrPriv(pScreen);
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
+ int i;
rp->rrGetInfo = xf86RandR12GetInfo12;
rp->rrScreenSetSize = xf86RandR12ScreenSetSize;
@@ -1790,6 +1791,9 @@ xf86RandR12Init12 (ScreenPtr pScreen)
*/
if (!xf86RandR12SetInfo12 (pScreen))
return FALSE;
+ for (i = 0; i < rp->numCrtcs; i++) {
+ xf86RandR12CrtcGetGamma(pScreen, rp->crtcs[i]);
+ }
return TRUE;
}
--
1.6.5.1

View File

@ -0,0 +1,26 @@
From 25a0107768c9f25e8edc5e423ca8b1d0813f2d04 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Tue, 24 Nov 2009 13:38:46 -0500
Subject: [PATCH] Enable GLX 1.4 for swrast
---
glx/glxdriswrast.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
index 44f658f..20f9f90 100644
--- a/glx/glxdriswrast.c
+++ b/glx/glxdriswrast.c
@@ -510,6 +510,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
__glXScreenInit(&screen->base, pScreen);
+ screen->base.GLXmajor = 1;
+ screen->base.GLXminor = 4;
+
LogMessage(X_INFO,
"AIGLX: Loaded and initialized %s\n", filename);
--
1.6.5.2

View File

@ -0,0 +1,35 @@
From 8875112f5c57ec5d575e717c5638fbc919145efb Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Mon, 16 Nov 2009 18:01:26 -0500
Subject: [PATCH] configure: Only link against libcrypto
openssl.pc will link you against libssl, which we don't need, and which
brings in another seven libraries we also don't need. This is still
bogus, we're really only trying to get a SHA1 routine, we could link it
statically and be even better off.
---
configure.ac | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index f69f97e..254d33d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1297,14 +1297,8 @@ if test "x$SHA1_LIB" = "x" ; then
fi
if test "x$SHA1_LIB" = "x" ; then
- PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
- [HAVE_OPENSSL_PKC=no])
- if test "x$HAVE_OPENSSL_PKC" = xyes; then
- REQUIRED_LIBS="$REQUIRED_LIBS openssl"
- else
AC_CHECK_LIB([crypto], [SHA1_Init], [SHA1_LIB="-lcrypto"],
[AC_MSG_ERROR([OpenSSL must be installed in order to build the X server.])])
- fi
fi
PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
--
1.6.5.2

View File

@ -0,0 +1,55 @@
From 6d9585ba6a5784328de479c6b648d7b7d6cec64c Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Thu, 29 Oct 2009 19:04:10 -0400
Subject: [PATCH] multilib fix for -devel subpackage
---
include/colormapst.h | 4 ++--
include/xorg-server.h.in | 7 ++++---
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/include/colormapst.h b/include/colormapst.h
index f1fc8eb..274cd65 100644
--- a/include/colormapst.h
+++ b/include/colormapst.h
@@ -103,12 +103,12 @@ typedef struct _ColormapRec
{
VisualPtr pVisual;
short class; /* PseudoColor or DirectColor */
-#if defined(_XSERVER64)
+#ifdef __LP64__
short pad0;
XID pad1;
#endif
XID mid; /* client's name for colormap */
-#if defined(_XSERVER64) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
+#if defined(__LP64__) && (X_BYTE_ORDER == X_LITTLE_ENDIAN)
XID pad2;
#endif
ScreenPtr pScreen; /* screen map is associated with */
diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
index 76cab16..081b8f3 100644
--- a/include/xorg-server.h.in
+++ b/include/xorg-server.h.in
@@ -157,9 +157,6 @@
/* Name of X server */
#undef __XSERVERNAME__
-/* Define to 1 if unsigned long is 64 bits. */
-#undef _XSERVER64
-
/* Building vgahw module */
#undef WITH_VGAHW
@@ -187,4 +184,8 @@
/* X Access Control Extension */
#undef XACE
+#ifdef __LP64__
+#define _XSERVER64 1
+#endif
+
#endif /* _XORG_SERVER_H_ */
--
1.6.5.2

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,339 @@
From 85577ae6bad8fd8673b9abc81e7f2531ae64fcec Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Mon, 21 Dec 2009 11:47:19 +1000
Subject: [PATCH] fb: backport fb changes from master for src window operations.
This rolls up the following commits and also keeps the image_from_pict
API compatiblity. It introduces a new image_from_pict_18 API that is
used by the server leaving the old API alone.
I've rolled this up as I don't want to introduce ABI breaks in bisection.
a72c65e9176c51de95db2fdbf4c5d946a4911695 fb: Adjust transform or composite coordinates for pixman operations
bd567061c8b84b268d9bbb01bc4d8981feefb862 Split fbGetDrawable into fbGetDrawablePixmap and fbGetPixmapBitsData
61335052972a78d67c0ba74f902273b34c63a198 Revert "Fix clipping when windows are used as sources"
071b3c1810d9f2602173acc8578caac20e0b771e Revert "Use IncludeInferiors when copying windows before compositing."
8e640d6b131d2865a9725d8997023865b0ef3d69 Revert "Reserve space for two GC values in copy_drawable()."
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
fb/fb.h | 76 ++++++++++++++++++++++++++++---------------------
fb/fbpict.c | 85 +++++++++++++++++++++++++++++++++++++++----------------
fb/fbtrap.c | 6 ++-
fb/wfbrename.h | 1 +
4 files changed, 108 insertions(+), 60 deletions(-)
diff --git a/fb/fb.h b/fb/fb.h
index 37de71e..8b2839a 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -700,38 +700,41 @@ typedef struct {
#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
-#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
- PixmapPtr _pPix; \
- if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
- _pPix = fbGetWindowPixmap(pDrawable); \
- (xoff) = __fbPixOffXWin(_pPix); \
- (yoff) = __fbPixOffYWin(_pPix); \
- } else { \
- _pPix = (PixmapPtr) (pDrawable); \
- (xoff) = __fbPixOffXPix(_pPix); \
- (yoff) = __fbPixOffYPix(_pPix); \
- } \
- fbPrepareAccess(pDrawable); \
- (pointer) = (FbBits *) _pPix->devPrivate.ptr; \
- (stride) = ((int) _pPix->devKind) / sizeof (FbBits); (void)(stride); \
- (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
+#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
+ if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
+ (pixmap) = fbGetWindowPixmap(pDrawable); \
+ (xoff) = __fbPixOffXWin(pixmap); \
+ (yoff) = __fbPixOffYWin(pixmap); \
+ } else { \
+ (pixmap) = (PixmapPtr) (pDrawable); \
+ (xoff) = __fbPixOffXPix(pixmap); \
+ (yoff) = __fbPixOffYPix(pixmap); \
+ } \
+ fbPrepareAccess(pDrawable); \
}
-#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
- PixmapPtr _pPix; \
- if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
- _pPix = fbGetWindowPixmap(pDrawable); \
- (xoff) = __fbPixOffXWin(_pPix); \
- (yoff) = __fbPixOffYWin(_pPix); \
- } else { \
- _pPix = (PixmapPtr) (pDrawable); \
- (xoff) = __fbPixOffXPix(_pPix); \
- (yoff) = __fbPixOffYPix(_pPix); \
- } \
- fbPrepareAccess(pDrawable); \
- (pointer) = (FbStip *) _pPix->devPrivate.ptr; \
- (stride) = ((int) _pPix->devKind) / sizeof (FbStip); (void)(stride); \
- (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
+#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
+ (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
+ (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
+ (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
+}
+
+#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
+ (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
+ (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
+ (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
+}
+
+#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
+ PixmapPtr _pPix; \
+ fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
+ fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
+}
+
+#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
+ PixmapPtr _pPix; \
+ fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
+ fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
}
/*
@@ -2079,9 +2082,16 @@ fbFillRegionSolid (DrawablePtr pDrawable,
FbBits xor);
extern _X_EXPORT pixman_image_t *
-image_from_pict (PicturePtr pict,
- Bool has_clip,
- Bool is_src);
+image_from_pict (PicturePtr pict,
+ Bool has_clip,
+ Bool is_src);
+
+extern _X_EXPORT pixman_image_t *
+image_from_pict_18 (PicturePtr pict,
+ Bool has_clip,
+ int *xoff,
+ int *yoff);
+
extern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
#endif /* _FB_H_ */
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 8fdaa58..f9f4343 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -158,19 +158,24 @@ fbComposite (CARD8 op,
CARD16 height)
{
pixman_image_t *src, *mask, *dest;
+ int src_xoff, src_yoff;
+ int msk_xoff, msk_yoff;
+ int dst_xoff, dst_yoff;
- miCompositeSourceValidate (pSrc, xSrc, ySrc, width, height);
+ miCompositeSourceValidate (pSrc, xSrc - xDst, ySrc - yDst, width, height);
if (pMask)
- miCompositeSourceValidate (pMask, xMask, yMask, width, height);
+ miCompositeSourceValidate (pMask, xMask - xDst, yMask - yDst, width, height);
- src = image_from_pict (pSrc, TRUE, TRUE);
- mask = image_from_pict (pMask, TRUE, TRUE);
- dest = image_from_pict (pDst, TRUE, FALSE);
+ src = image_from_pict_18 (pSrc, FALSE, &src_xoff, &src_yoff);
+ mask = image_from_pict_18 (pMask, FALSE, &msk_xoff, &msk_yoff);
+ dest = image_from_pict_18 (pDst, TRUE, &dst_xoff, &dst_yoff);
if (src && dest && !(pMask && !mask))
{
pixman_image_composite (op, src, mask, dest,
- xSrc, ySrc, xMask, yMask, xDst, yDst,
+ xSrc + src_xoff, ySrc + src_yoff,
+ xMask + msk_xoff, yMask + msk_yoff,
+ xDst + dst_xoff, yDst + dst_yoff,
width, height);
}
@@ -270,22 +275,22 @@ create_conical_gradient_image (PictGradient *gradient)
static pixman_image_t *
create_bits_picture (PicturePtr pict,
- Bool has_clip)
+ Bool has_clip,
+ int *xoff,
+ int *yoff)
{
+ PixmapPtr pixmap;
FbBits *bits;
FbStride stride;
- int bpp, xoff, yoff;
+ int bpp;
pixman_image_t *image;
- fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
-
- bits = (FbBits*)((CARD8*)bits +
- (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
- (pict->pDrawable->x + xoff) * (bpp / 8));
+ fbGetDrawablePixmap (pict->pDrawable, pixmap, *xoff, *yoff);
+ fbGetPixmapBitsData(pixmap, bits, stride, bpp);
image = pixman_image_create_bits (
pict->format,
- pict->pDrawable->width, pict->pDrawable->height,
+ pixmap->drawable.width, pixmap->drawable.height,
(uint32_t *)bits, stride * sizeof (FbStride));
@@ -311,30 +316,52 @@ create_bits_picture (PicturePtr pict,
if (pict->clientClipType != CT_NONE)
pixman_image_set_has_client_clip (image, TRUE);
- pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
+ if (*xoff || *yoff)
+ pixman_region_translate (pict->pCompositeClip, *xoff, *yoff);
pixman_image_set_clip_region (image, pict->pCompositeClip);
- pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
+ if (*xoff || *yoff)
+ pixman_region_translate (pict->pCompositeClip, -*xoff, -*yoff);
}
/* Indexed table */
if (pict->pFormat->index.devPrivate)
pixman_image_set_indexed (image, pict->pFormat->index.devPrivate);
+ /* Add in drawable origin to position within the image */
+ *xoff += pict->pDrawable->x;
+ *yoff += pict->pDrawable->y;
+
return image;
}
static void
-set_image_properties (pixman_image_t *image, PicturePtr pict)
+set_image_properties (pixman_image_t *image, PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
{
pixman_repeat_t repeat;
pixman_filter_t filter;
if (pict->transform)
{
- pixman_image_set_transform (
- image, (pixman_transform_t *)pict->transform);
+ /* For source images, adjust the transform to account
+ * for the drawable offset within the pixman image,
+ * then set the offset to 0 as it will be used
+ * to compute positions within the transformed image.
+ */
+ if (!has_clip) {
+ struct pixman_transform adjusted;
+
+ adjusted = *pict->transform;
+ pixman_transform_translate(&adjusted,
+ NULL,
+ pixman_int_to_fixed(*xoff),
+ pixman_int_to_fixed(*yoff));
+ pixman_image_set_transform (image, &adjusted);
+ *xoff = 0;
+ *yoff = 0;
+ } else
+ pixman_image_set_transform (image, pict->transform);
}
switch (pict->repeatType)
@@ -361,7 +388,8 @@ set_image_properties (pixman_image_t *image, PicturePtr pict)
if (pict->alphaMap)
{
- pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE, TRUE);
+ int alpha_xoff, alpha_yoff;
+ pixman_image_t *alpha_map = image_from_pict_18 (pict->alphaMap, FALSE, &alpha_xoff, &alpha_yoff);
pixman_image_set_alpha_map (
image, alpha_map, pict->alphaOrigin.x, pict->alphaOrigin.y);
@@ -393,10 +421,9 @@ set_image_properties (pixman_image_t *image, PicturePtr pict)
pixman_image_set_source_clipping (image, TRUE);
}
+
pixman_image_t *
-image_from_pict (PicturePtr pict,
- Bool has_clip,
- Bool is_src)
+image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
{
pixman_image_t *image = NULL;
@@ -405,7 +432,7 @@ image_from_pict (PicturePtr pict,
if (pict->pDrawable)
{
- image = create_bits_picture (pict, has_clip);
+ image = create_bits_picture (pict, has_clip, xoff, yoff);
}
else if (pict->pSourcePict)
{
@@ -429,11 +456,18 @@ image_from_pict (PicturePtr pict,
}
if (image)
- set_image_properties (image, pict);
+ set_image_properties (image, pict, has_clip, xoff, yoff);
return image;
}
+pixman_image_t *
+image_from_pict (PicturePtr pict, Bool has_clip, Bool is_src)
+{
+ int xoff = 0, yoff = 0;
+ return image_from_pict_18(pict, has_clip, &xoff, &yoff);
+}
+
void
free_pixman_pict (PicturePtr pict, pixman_image_t *image)
{
@@ -463,3 +497,4 @@ fbPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
return TRUE;
}
+
diff --git a/fb/fbtrap.c b/fb/fbtrap.c
index b1e1eff..5b5aeae 100644
--- a/fb/fbtrap.c
+++ b/fb/fbtrap.c
@@ -40,7 +40,8 @@ fbAddTraps (PicturePtr pPicture,
int ntrap,
xTrap *traps)
{
- pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
+ int image_xoff, image_yoff;
+ pixman_image_t *image = image_from_pict_18 (pPicture, FALSE, &image_xoff, &image_yoff);
if (!image)
return;
@@ -56,7 +57,8 @@ fbRasterizeTrapezoid (PicturePtr pPicture,
int x_off,
int y_off)
{
- pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
+ int mask_xoff, mask_yoff;
+ pixman_image_t *image = image_from_pict_18 (pPicture, FALSE, &mask_xoff, &mask_yoff);
if (!image)
return;
diff --git a/fb/wfbrename.h b/fb/wfbrename.h
index 73ee510..e9cdca8 100644
--- a/fb/wfbrename.h
+++ b/fb/wfbrename.h
@@ -187,4 +187,5 @@
#define fbZeroSegment wfbZeroSegment
#define free_pixman_pict wfb_free_pixman_pict
#define image_from_pict wfb_image_from_pict
+#define image_from_pict_18 wfb_image_from_pict_18
#define composeFunctions wfbComposeFunctions
--
1.6.5.2