Today's server from git
xserver-1.10-fix-trapezoids.patch: drop, c6cb70be1ed7cf7 xserver-1.10-glx-pixmap-crash.patch: drop, 6a433b67ca15fd1 xserver-1.10-bg-none-revert.patch: drop, dc0cf7596782087
This commit is contained in:
parent
e632931d59
commit
47655a41c1
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@ xorg-server-1.9.1.tar.bz2
|
||||
/xorg-server-20101201.tar.xz
|
||||
/xorg-server-1.10.0.tar.bz2
|
||||
/xorg-server-20110418.tar.xz
|
||||
/xorg-server-20110510.tar.xz
|
||||
|
2
commitid
2
commitid
@ -1 +1 @@
|
||||
b3d2164a0361f636bfe77b51456bee9213af4f13
|
||||
5cb31cd0cbf83fff5f17a475e7b0e45246b19bf3
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
1ae649350f2084fdd348589e68b44e55 xorg-server-20110418.tar.xz
|
||||
057d7e203b21055711e545373d07c5d6 xorg-server-20110510.tar.xz
|
||||
|
@ -25,12 +25,12 @@
|
||||
%define extension_minor 0
|
||||
|
||||
%define pkgname xorg-server
|
||||
%define gitdate 20110418
|
||||
%define gitdate 20110510
|
||||
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.10.99.1
|
||||
Release: 4%{?gitdate:.%{gitdate}}%{dist}
|
||||
Release: 5%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -83,10 +83,6 @@ Patch6053: xserver-1.8-disable-vboxvideo.patch
|
||||
|
||||
# misc
|
||||
Patch7006: xserver-1.10-pointer-barriers.patch
|
||||
Patch7007: xserver-1.10-fix-trapezoids.patch
|
||||
# from ajax/xserver-next
|
||||
Patch7008: xserver-1.10-glx-pixmap-crash.patch
|
||||
Patch7009: xserver-1.10-bg-none-revert.patch
|
||||
|
||||
%define moduledir %{_libdir}/xorg/modules
|
||||
%define drimoduledir %{_libdir}/dri
|
||||
@ -551,6 +547,12 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{xserver_source_dir}
|
||||
|
||||
%changelog
|
||||
* Mon May 09 2011 1.10.99.1-5.20110511
|
||||
- Today's server from git
|
||||
- xserver-1.10-fix-trapezoids.patch: drop, c6cb70be1ed7cf7
|
||||
- xserver-1.10-glx-pixmap-crash.patch: drop, 6a433b67ca15fd1
|
||||
- xserver-1.10-bg-none-revert.patch: drop, dc0cf7596782087
|
||||
|
||||
* Thu Apr 21 2011 Hans de Goede <hdegoede@redhat.com> 1.10.99.1-4.20110418
|
||||
- Drop xserver-1.9.0-qxl-fallback.patch, since the latest qxl driver
|
||||
supports both revision 1 and 2 qxl devices (#642153)
|
||||
|
@ -1,62 +0,0 @@
|
||||
From 2223b2b953fc6034d28d85dfe3f97652ca375beb Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Tue, 29 Mar 2011 10:09:46 -0400
|
||||
Subject: [PATCH 9/9] Revert "composite: Don't backfill non-bg-None windows"
|
||||
|
||||
This reverts commit 6dd775f57d2f94f0ddaee324aeec33b9b66ed5bc.
|
||||
|
||||
Bugzilla: https://bugs.freedesktop.org/34427
|
||||
|
||||
Acked-by: Alex Deucher <alexdeucher@gmail.com>
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
composite/compalloc.c | 26 --------------------------
|
||||
1 files changed, 0 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/composite/compalloc.c b/composite/compalloc.c
|
||||
index e4064f6..7164c0d 100644
|
||||
--- a/composite/compalloc.c
|
||||
+++ b/composite/compalloc.c
|
||||
@@ -508,17 +508,6 @@ compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin)
|
||||
return Success;
|
||||
}
|
||||
|
||||
-static int
|
||||
-bgNoneVisitWindow(WindowPtr pWin, void *null)
|
||||
-{
|
||||
- if (pWin->backgroundState != BackgroundPixmap)
|
||||
- return WT_WALKCHILDREN;
|
||||
- if (pWin->background.pixmap != None)
|
||||
- return WT_WALKCHILDREN;
|
||||
-
|
||||
- return WT_STOPWALKING;
|
||||
-}
|
||||
-
|
||||
static PixmapPtr
|
||||
compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
|
||||
{
|
||||
@@ -539,21 +528,6 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
|
||||
if (!map)
|
||||
return pPixmap;
|
||||
|
||||
- /*
|
||||
- * If there's no bg=None in the tree, we're done.
|
||||
- *
|
||||
- * We could optimize this more by collection the regions of all the
|
||||
- * bg=None subwindows and feeding that in as the clip for the
|
||||
- * CopyArea below, but since window trees are shallow these days it
|
||||
- * might not be worth the effort.
|
||||
- */
|
||||
- if (TraverseTree(pWin, bgNoneVisitWindow, NULL) == WT_NOMATCH)
|
||||
- return pPixmap;
|
||||
-
|
||||
- /*
|
||||
- * Copy bits from the parent into the new pixmap so that it will
|
||||
- * have "reasonable" contents in case for background None areas.
|
||||
- */
|
||||
if (pParent->drawable.depth == pWin->drawable.depth)
|
||||
{
|
||||
GCPtr pGC = GetScratchGC (pWin->drawable.depth, pScreen);
|
||||
--
|
||||
1.7.4.4
|
||||
|
@ -1,177 +0,0 @@
|
||||
From c8ba57820c6349e48e7de7d6c038a215caedca1c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B8ren=20Sandmann=20Pedersen?= <ssp@redhat.com>
|
||||
Date: Mon, 28 Mar 2011 13:30:52 -0400
|
||||
Subject: [PATCH] Fix trapezoid and triangle rendering to windows
|
||||
|
||||
For fbAdd{Traps,Triangles}() and fbRasterizeTrapezoid() this is just a
|
||||
matter of adding the image offsets to the trap offsets.
|
||||
|
||||
For fbShapes, the story is more complicated:
|
||||
|
||||
The recently added pixman API did not allow offsetting
|
||||
trapezoids. Instead, it would use x_dst and y_dst in such a way that
|
||||
the effect was to only offset the source image.
|
||||
|
||||
In pixman 0.21.8, this API has changed such that all the traps are
|
||||
conceptually rendered to an infinitely big image, and the source and
|
||||
destination coordinates are then aligned with (0, 0) of that
|
||||
image. This means offsetting dst_x and dst_y will now offset the
|
||||
entire drawing, which is similar to how other composite functions
|
||||
work.
|
||||
|
||||
This patch then changes fbComposite{Triangles,Traps} such that the
|
||||
source image is aligned with the shapes, and the destination
|
||||
coordinates offset according to drawable->{x, y}.
|
||||
|
||||
Signed-off-by: Soren Sandmann <ssp@redhat.com>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
fb/fbtrap.c | 56 +++++++++++++++++++++++++++-----------------------------
|
||||
2 files changed, 28 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9e04ff0..8714c93 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -795,7 +795,7 @@ LIBGLIB="glib-2.0 >= 2.16"
|
||||
LIBUDEV="libudev >= 143"
|
||||
LIBSELINUX="libselinux >= 2.0.86"
|
||||
LIBDBUS="dbus-1 >= 1.0"
|
||||
-LIBPIXMAN="pixman-1 >= 0.21.6"
|
||||
+LIBPIXMAN="pixman-1 >= 0.21.8"
|
||||
|
||||
dnl Pixman is always required, but we separate it out so we can link
|
||||
dnl specific modules against it
|
||||
diff --git a/fb/fbtrap.c b/fb/fbtrap.c
|
||||
index 2554fcc..dbd59ed 100644
|
||||
--- a/fb/fbtrap.c
|
||||
+++ b/fb/fbtrap.c
|
||||
@@ -37,13 +37,14 @@ fbAddTraps (PicturePtr pPicture,
|
||||
int ntrap,
|
||||
xTrap *traps)
|
||||
{
|
||||
- int image_xoff, image_yoff;
|
||||
- pixman_image_t *image = image_from_pict (pPicture, FALSE, &image_xoff, &image_yoff);
|
||||
+ pixman_image_t *image;
|
||||
+ int dst_xoff, dst_yoff;
|
||||
|
||||
- if (!image)
|
||||
+ if (!(image = image_from_pict (pPicture, FALSE, &dst_xoff, &dst_yoff)))
|
||||
return;
|
||||
|
||||
- pixman_add_traps (image, x_off, y_off, ntrap, (pixman_trap_t *)traps);
|
||||
+ pixman_add_traps (image, x_off + dst_xoff, y_off + dst_yoff,
|
||||
+ ntrap, (pixman_trap_t *)traps);
|
||||
|
||||
free_pixman_pict (pPicture, image);
|
||||
}
|
||||
@@ -54,13 +55,15 @@ fbRasterizeTrapezoid (PicturePtr pPicture,
|
||||
int x_off,
|
||||
int y_off)
|
||||
{
|
||||
- int mask_xoff, mask_yoff;
|
||||
- pixman_image_t *image = image_from_pict (pPicture, FALSE, &mask_xoff, &mask_yoff);
|
||||
+ pixman_image_t *image;
|
||||
+ int dst_xoff, dst_yoff;
|
||||
|
||||
- if (!image)
|
||||
+ if (!(image = image_from_pict (pPicture, FALSE, &dst_xoff, &dst_yoff)))
|
||||
return;
|
||||
|
||||
- pixman_rasterize_trapezoid (image, (pixman_trapezoid_t *)trap, x_off, y_off);
|
||||
+ pixman_rasterize_trapezoid (image, (pixman_trapezoid_t *)trap,
|
||||
+ x_off + dst_xoff,
|
||||
+ y_off + dst_yoff);
|
||||
|
||||
free_pixman_pict (pPicture, image);
|
||||
}
|
||||
@@ -72,14 +75,15 @@ fbAddTriangles (PicturePtr pPicture,
|
||||
int ntri,
|
||||
xTriangle *tris)
|
||||
{
|
||||
- int image_xoff, image_yoff;
|
||||
- pixman_image_t *image =
|
||||
- image_from_pict (pPicture, FALSE, &image_xoff, &image_yoff);
|
||||
+ pixman_image_t *image;
|
||||
+ int dst_xoff, dst_yoff;
|
||||
|
||||
- if (!image)
|
||||
+ if (!(image = image_from_pict (pPicture, FALSE, &dst_xoff, &dst_yoff)))
|
||||
return;
|
||||
|
||||
- pixman_add_triangles (image, x_off, y_off, ntri, (pixman_triangle_t *)tris);
|
||||
+ pixman_add_triangles (image,
|
||||
+ dst_xoff + x_off, dst_yoff + y_off,
|
||||
+ ntri, (pixman_triangle_t *)tris);
|
||||
|
||||
free_pixman_pict (pPicture, image);
|
||||
}
|
||||
@@ -100,8 +104,6 @@ fbShapes (CompositeShapesFunc composite,
|
||||
PictFormatPtr maskFormat,
|
||||
int16_t xSrc,
|
||||
int16_t ySrc,
|
||||
- int16_t xDst,
|
||||
- int16_t yDst,
|
||||
int nshapes,
|
||||
int shape_size,
|
||||
const uint8_t * shapes)
|
||||
@@ -131,8 +133,8 @@ fbShapes (CompositeShapesFunc composite,
|
||||
composite (op, src, dst, format,
|
||||
xSrc + src_xoff,
|
||||
ySrc + src_yoff,
|
||||
- xDst + dst_xoff,
|
||||
- yDst + dst_yoff,
|
||||
+ dst_xoff,
|
||||
+ dst_yoff,
|
||||
1, shapes + i * shape_size);
|
||||
}
|
||||
}
|
||||
@@ -157,8 +159,8 @@ fbShapes (CompositeShapesFunc composite,
|
||||
composite (op, src, dst, format,
|
||||
xSrc + src_xoff,
|
||||
ySrc + src_yoff,
|
||||
- xDst + dst_xoff,
|
||||
- yDst + dst_yoff,
|
||||
+ dst_xoff,
|
||||
+ dst_yoff,
|
||||
nshapes, shapes);
|
||||
}
|
||||
}
|
||||
@@ -177,14 +179,12 @@ fbTrapezoids (CARD8 op,
|
||||
int ntrap,
|
||||
xTrapezoid *traps)
|
||||
{
|
||||
- int xDst, yDst;
|
||||
-
|
||||
- xDst = traps[0].left.p1.x >> 16;
|
||||
- yDst = traps[0].left.p1.y >> 16;
|
||||
+ xSrc -= (traps[0].left.p1.x >> 16);
|
||||
+ ySrc -= (traps[0].left.p1.y >> 16);
|
||||
|
||||
fbShapes ((CompositeShapesFunc)pixman_composite_trapezoids,
|
||||
op, pSrc, pDst, maskFormat,
|
||||
- xSrc, ySrc, xDst, yDst,
|
||||
+ xSrc, ySrc,
|
||||
ntrap, sizeof (xTrapezoid), (const uint8_t *)traps);
|
||||
}
|
||||
|
||||
@@ -198,13 +198,11 @@ fbTriangles (CARD8 op,
|
||||
int ntris,
|
||||
xTriangle *tris)
|
||||
{
|
||||
- int xDst, yDst;
|
||||
-
|
||||
- xDst = tris[0].p1.x >> 16;
|
||||
- yDst = tris[0].p1.y >> 16;
|
||||
+ xSrc -= (tris[0].p1.x >> 16);
|
||||
+ ySrc -= (tris[0].p1.y >> 16);
|
||||
|
||||
fbShapes ((CompositeShapesFunc)pixman_composite_triangles,
|
||||
op, pSrc, pDst, maskFormat,
|
||||
- xSrc, ySrc, xDst, yDst,
|
||||
+ xSrc, ySrc,
|
||||
ntris, sizeof (xTriangle), (const uint8_t *)tris);
|
||||
}
|
||||
--
|
||||
1.7.4
|
||||
|
@ -1,93 +0,0 @@
|
||||
From 070319e6e49f762ccaba06c7241c00e4afcb7c05 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Wed, 30 Mar 2011 16:03:53 -0400
|
||||
Subject: [PATCH 8/9] glx: Fix lifetime tracking for pixmaps
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
GLX pixmaps take a reference on the underlying pixmap; X and GLX pixmap
|
||||
IDs can be destroyed in either order with no error. Only windows need
|
||||
to be tracked under both XIDs.
|
||||
|
||||
Fixes piglit/glx-pixmap-life.
|
||||
|
||||
Reviewed-by: Michel Dänzer <michel@daenzer.net>
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
glx/glxcmds.c | 11 +++++++----
|
||||
glx/glxext.c | 22 +++++++++++++---------
|
||||
2 files changed, 20 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
|
||||
index 66d4c7e..d5b764f 100644
|
||||
--- a/glx/glxcmds.c
|
||||
+++ b/glx/glxcmds.c
|
||||
@@ -1127,10 +1127,11 @@ DoCreateGLXDrawable(ClientPtr client, __GLXscreen *pGlxScreen,
|
||||
return BadAlloc;
|
||||
}
|
||||
|
||||
- /* Add the glx drawable under the XID of the underlying X drawable
|
||||
- * too. That way we'll get a callback in DrawableGone and can
|
||||
- * clean up properly when the drawable is destroyed. */
|
||||
- if (drawableId != glxDrawableId &&
|
||||
+ /*
|
||||
+ * Windows aren't refcounted, so track both the X and the GLX window
|
||||
+ * so we get called regardless of destruction order.
|
||||
+ */
|
||||
+ if (drawableId != glxDrawableId && type == GLX_DRAWABLE_WINDOW &&
|
||||
!AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) {
|
||||
pGlxDraw->destroy (pGlxDraw);
|
||||
return BadAlloc;
|
||||
@@ -1161,6 +1162,8 @@ DoCreateGLXPixmap(ClientPtr client, __GLXscreen *pGlxScreen, __GLXconfig *config
|
||||
err = DoCreateGLXDrawable(client, pGlxScreen, config, pDraw, drawableId,
|
||||
glxDrawableId, GLX_DRAWABLE_PIXMAP);
|
||||
|
||||
+ ((PixmapPtr)pDraw)->refcnt++;
|
||||
+
|
||||
return err;
|
||||
}
|
||||
|
||||
diff --git a/glx/glxext.c b/glx/glxext.c
|
||||
index 3f3dd79..9cfc096 100644
|
||||
--- a/glx/glxext.c
|
||||
+++ b/glx/glxext.c
|
||||
@@ -118,15 +118,15 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
|
||||
{
|
||||
__GLXcontext *c, *next;
|
||||
|
||||
- /* If this drawable was created using glx 1.3 drawable
|
||||
- * constructors, we added it as a glx drawable resource under both
|
||||
- * its glx drawable ID and it X drawable ID. Remove the other
|
||||
- * resource now so we don't a callback for freed memory. */
|
||||
- if (glxPriv->drawId != glxPriv->pDraw->id) {
|
||||
- if (xid == glxPriv->drawId)
|
||||
- FreeResourceByType(glxPriv->pDraw->id, __glXDrawableRes, TRUE);
|
||||
- else
|
||||
- FreeResourceByType(glxPriv->drawId, __glXDrawableRes, TRUE);
|
||||
+ if (glxPriv->type == GLX_DRAWABLE_WINDOW) {
|
||||
+ /* If this was created by glXCreateWindow, free the matching resource */
|
||||
+ if (glxPriv->drawId != glxPriv->pDraw->id) {
|
||||
+ if (xid == glxPriv->drawId)
|
||||
+ FreeResourceByType(glxPriv->pDraw->id, __glXDrawableRes, TRUE);
|
||||
+ else
|
||||
+ FreeResourceByType(glxPriv->drawId, __glXDrawableRes, TRUE);
|
||||
+ }
|
||||
+ /* otherwise this window was implicitly created by MakeCurrent */
|
||||
}
|
||||
|
||||
for (c = glxAllContexts; c; c = next) {
|
||||
@@ -143,6 +143,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
|
||||
c->readPriv = NULL;
|
||||
}
|
||||
|
||||
+ /* drop our reference to any backing pixmap */
|
||||
+ if (glxPriv->type == GLX_DRAWABLE_PIXMAP)
|
||||
+ glxPriv->pDraw->pScreen->DestroyPixmap((PixmapPtr)glxPriv->pDraw);
|
||||
+
|
||||
glxPriv->destroy(glxPriv);
|
||||
|
||||
return True;
|
||||
--
|
||||
1.7.4.4
|
||||
|
@ -1,11 +1,10 @@
|
||||
From fb72637557fa1d9135bb4028d8603c8f8b6dee58 Mon Sep 17 00:00:00 2001
|
||||
From ad2c48ab05d9415aa384eda6be52576525a3abcf Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 17 Mar 2011 13:56:17 -0400
|
||||
Subject: [PATCH 7/9] CRTC confine and pointer barriers
|
||||
Subject: [PATCH] CRTC confine and pointer barriers
|
||||
|
||||
---
|
||||
include/protocol-versions.h | 2 +-
|
||||
test/Makefile.am | 3 +-
|
||||
xfixes/cursor.c | 408 ++++++++++++++++++++++++++++++++++++++++++-
|
||||
xfixes/xfixes.c | 24 ++-
|
||||
xfixes/xfixes.h | 17 ++
|
||||
@ -25,27 +24,6 @@ index 8692ded..7b7a9f5 100644
|
||||
#define SERVER_XFIXES_MINOR_VERSION 0
|
||||
|
||||
/* X Input */
|
||||
diff --git a/test/Makefile.am b/test/Makefile.am
|
||||
index f3265b7..b60d319 100644
|
||||
--- a/test/Makefile.am
|
||||
+++ b/test/Makefile.am
|
||||
@@ -2,7 +2,7 @@ if ENABLE_UNIT_TESTS
|
||||
if HAVE_GLIB
|
||||
if HAVE_LD_WRAP
|
||||
SUBDIRS= . xi2
|
||||
-noinst_PROGRAMS = xkb input xtest list
|
||||
+noinst_PROGRAMS = xkb input xtest list fixes
|
||||
check_LTLIBRARIES = libxservertest.la
|
||||
|
||||
TESTS=$(noinst_PROGRAMS)
|
||||
@@ -19,6 +19,7 @@ xkb_LDADD=$(TEST_LDADD)
|
||||
input_LDADD=$(TEST_LDADD)
|
||||
xtest_LDADD=$(TEST_LDADD)
|
||||
list_LDADD=$(TEST_LDADD)
|
||||
+fixes_LDADD=$(TEST_LDADD)
|
||||
|
||||
libxservertest_la_LIBADD = \
|
||||
$(XSERVER_LIBS) \
|
||||
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
|
||||
index fb608f6..5c55c95 100644
|
||||
--- a/xfixes/cursor.c
|
||||
|
Loading…
Reference in New Issue
Block a user