xserver: Branch 'server-1.10-branch' - 3 commits

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Fri Feb 10 15:52:01 PST 2012


 configure.ac                      |   13 -------
 doc/xml/dtrace/Xserver-DTrace.xml |   14 ++++----
 fb/fbpict.c                       |    4 +-
 os/Makefile.am                    |   17 +++-------
 render/mipict.c                   |   62 +++++++++-----------------------------
 render/mipict.h                   |    7 +---
 6 files changed, 31 insertions(+), 86 deletions(-)

New commits:
commit c632a678b804ff29cfca20a3d7388d65504445c9
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date:   Thu Sep 1 16:48:37 2011 -0700

    Assign ids to more tags in Xserver-Dtrace.xml
    
    Keeps xsltproc from adding random-number id tags to html output so that
    it's easier to see real changes vs. different random numbers.
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
    Reviewed-by: Matt Dew <marcoz at osource.org>
    (cherry picked from commit 58d3d46d6cc0d7a81db6bad61d158f3b9af8af71)

diff --git a/doc/xml/dtrace/Xserver-DTrace.xml b/doc/xml/dtrace/Xserver-DTrace.xml
index 290f0d3..34368d5 100644
--- a/doc/xml/dtrace/Xserver-DTrace.xml
+++ b/doc/xml/dtrace/Xserver-DTrace.xml
@@ -15,7 +15,7 @@
       </affiliation>
     </author>
     <releaseinfo>X.Org Xserver version &xserver.version;</releaseinfo>
-    <legalnotice>
+    <legalnotice id="copyright">
       <para>
 Copyright (c) 2005, 2006, 2007, 2010, Oracle and/or its affiliates.
 All rights reserved.
@@ -79,7 +79,7 @@ DEALINGS IN THE SOFTWARE.
       <parameter>arg2</parameter>, etc.  These tables should help you
       determine what the real data is for each of the probe arguments.
 
-    <table>
+    <table id="Probes_and_their_arguments">
       <title>Probes and their arguments</title>
       <tgroup cols='7'>
 	<colspec colname="probe" colwidth="2*"/>
@@ -195,7 +195,7 @@ DEALINGS IN THE SOFTWARE.
       To access data buffers referenced via <type>uintptr_t</type>'s, you will
       need to use <ulink url="http://wikis.sun.com/display/DTrace/Actions+and+Subroutines#ActionsandSubroutines-{{copyin}}"><function>copyin()</function></ulink>.
 
-    <table>
+    <table id="Probe_Arguments">
       <title>Probe Arguments</title>
       <tgroup cols='3'>
 	<colspec colname="arg" colwidth="2*"/>
@@ -313,7 +313,7 @@ DEALINGS IN THE SOFTWARE.
   <sect1 id="examples">
     <title>Examples</title>
 
-    <example>
+    <example id="Counting_requests_by_request_name">
       <title>Counting requests by request name</title>
 
       <para>
@@ -370,7 +370,7 @@ Xserver*:::request-start
       </para>
     </example>
 
-    <example>
+    <example id="Get_average_CPU_time_per_request">
       <title>Get average CPU time per request</title>
 
       <para>This script records the CPU time used between the probes at
@@ -419,7 +419,7 @@ Xserver*:::request-done
       </para>
     </example>
 
-    <example>
+    <example id="Monitoring_clients_that_connect_and_disconnect">
       <title>Monitoring clients that connect and disconnect</title>
 
       <para>
@@ -476,7 +476,7 @@ CPU     ID                    FUNCTION:NAME
       </para>
     </example>
 
-    <example>
+    <example id="Monitoring_clients_creating_Pixmaps">
       <title>Monitoring clients creating Pixmaps</title>
 
       <para>
commit 8e19cee3c16ed739380e4b79896a7d756d98c050
Author: Rami Ylimäki <rami.ylimaki at vincit.fi>
Date:   Tue Jun 15 14:44:38 2010 +0200

    Revert "os: Prevent backtrace from being stopped in noreturn functions."
    
    This reverts commit 579715f830fbbca9e1ecb17dc18176132f5969e7.
    
    The patch is not needed anymore. I haven't encountered backtrace
    problems with GCC 4.3.3. Even if the problems still persisted, this
    commit should be removed and instead the definition of _X_NORETURN
    should be modified to be empty if GCC/ARM is used. However, currently
    it seems that ARM backtraces are OK even if _X_NORETURN is used and
    -mapcs-frame is not defined in CFLAGS.
    
    Signed-off-by: Rami Ylimäki <rami.ylimaki at vincit.fi>
    Reviewed-by: Jamey Sharp <jamey at minilop.net>
    (cherry picked from commit 2b364bf970b2ce6829af656990c33afd0d365f3c)

diff --git a/configure.ac b/configure.ac
index 455c3db..d098bff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -312,19 +312,6 @@ AC_CHECK_HEADER([execinfo.h],[
     ])]
 )
 
-dnl ARM needs additional compiler flags for proper backtraces if GCC is
-dnl used. Compile a dummy program with the -mapcs-frame option. If it
-dnl succeeds, we know that we are building for ARM with GCC.
-old_CFLAGS="$CFLAGS"
-CFLAGS="-mapcs-frame"
-AC_COMPILE_IFELSE(
-        AC_LANG_PROGRAM([[ ]]),
-        ARM_BACKTRACE_CFLAGS="$CFLAGS",
-        ARM_BACKTRACE_CFLAGS=""
-)
-CFLAGS="$old_CFLAGS"
-AC_SUBST(ARM_BACKTRACE_CFLAGS)
-
 dnl ---------------------------------------------------------------------------
 dnl Bus options and CPU capabilities.  Replaces logic in
 dnl hw/xfree86/os-support/bus/Makefile.am, among others.
diff --git a/os/Makefile.am b/os/Makefile.am
index 3e4f2c5..66a4a0f 100644
--- a/os/Makefile.am
+++ b/os/Makefile.am
@@ -1,19 +1,11 @@
-noinst_LTLIBRARIES = libos.la liblog.la
+noinst_LTLIBRARIES = libos.la
 
 AM_CFLAGS = $(DIX_CFLAGS) $(SHA1_CFLAGS)
 
 SECURERPC_SRCS = rpcauth.c
 XDMCP_SRCS = xdmcp.c
 STRLCAT_SRCS = strlcat.c strlcpy.c
-
-# Build a convenience library liblog.la that will be added into
-# libos.la. The split is done so that log.c can be built with
-# different compiler options.
-liblog_la_SOURCES = log.c
-# Add flags needed for proper backtraces of functions marked with GCC
-# __attribute__((noreturn)). Currently those flags are needed for
-# FatalError and AbortServer in log.c.
-liblog_la_CFLAGS = $(AM_CFLAGS) $(ARM_BACKTRACE_CFLAGS)
+XORG_SRCS = log.c
 
 libos_la_SOURCES = 	\
 	WaitFor.c	\
@@ -32,8 +24,9 @@ libos_la_SOURCES = 	\
 	xdmauth.c	\
 	xsha1.c		\
 	xstrans.c	\
-	xprintf.c
-libos_la_LIBADD = @SHA1_LIBS@ $(DLOPEN_LIBS) liblog.la
+	xprintf.c	\
+	$(XORG_SRCS)
+libos_la_LIBADD = @SHA1_LIBS@ $(DLOPEN_LIBS)
 
 if SECURE_RPC
 libos_la_SOURCES += $(SECURERPC_SRCS)
commit 4975887a30a2c8f1bbba9127eee17f7099c3ecd1
Author: Søren Sandmann Pedersen <ssp at redhat.com>
Date:   Wed Mar 9 13:57:25 2011 -0500

    Remove geometry arguments from miSourceValidate()
    
    The only user of the geometry coordinates is the software sprite code,
    which uses them to remove the pointer whenever the window beneath is
    being used as a source. However, using Window pictures as a source is
    extremely rare (let alone *partial* windows), so there is no harm done
    in just validating all of the drawable.
    
    Additionally, the miSourceValidate() function was buggy in at least
    three respects:
    
    (a) It added drawable->{x,y} before calling down, which is wrong since
        the misprite code already adds them in its check. (Alternatively,
        the misprite code is wrong, but there are actual users who would
        notice if that code was broken).
    
    (b) It didn't account for the width of the interpolation filter, so if
        the Picture had a bilinear or convolution filter, the edges
        surrounding the source area would not be validated.
    
    (c) It didn't validate alpha maps.
    
    Finally, computing the bounding box of the transform on every
    composite request was a real performance issue in pixman, so
    presumably it could be one here as well.
    
    This patch changes miSourceValidate() to simply validate all of the
    underlying drawable.
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Soren Sandmann <ssp at redhat.com>
    (cherry picked from commit 57b35adaed112520c3b3b2fbad13cf5a91cd6652)

diff --git a/fb/fbpict.c b/fb/fbpict.c
index d438cdc..471f7e3 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -54,9 +54,9 @@ fbComposite (CARD8      op,
     int msk_xoff, msk_yoff;
     int dst_xoff, dst_yoff;
     
-    miCompositeSourceValidate (pSrc, xSrc - xDst, ySrc - yDst, width, height);
+    miCompositeSourceValidate (pSrc);
     if (pMask)
-	miCompositeSourceValidate (pMask, xMask - xDst, yMask - yDst, width, height);
+	miCompositeSourceValidate (pMask);
     
     src = image_from_pict (pSrc, FALSE, &src_xoff, &src_yoff);
     mask = image_from_pict (pMask, FALSE, &msk_xoff, &msk_yoff);
diff --git a/render/mipict.c b/render/mipict.c
index de5eea6..2159ebe 100644
--- a/render/mipict.c
+++ b/render/mipict.c
@@ -333,12 +333,8 @@ miClipPictureSrc (RegionPtr	pRegion,
     return TRUE;
 }
 
-void
-miCompositeSourceValidate (PicturePtr	pPicture,
-			   INT16	x,
-			   INT16	y,
-			   CARD16	width,
-			   CARD16	height)
+static void
+SourceValidateOnePicture (PicturePtr pPicture)
 {
     DrawablePtr	pDrawable = pPicture->pDrawable;
     ScreenPtr	pScreen;
@@ -347,50 +343,22 @@ miCompositeSourceValidate (PicturePtr	pPicture,
         return;
 
     pScreen = pDrawable->pScreen;
-    
+
     if (pScreen->SourceValidate)
     {
-	if (pPicture->transform)
-	{
-	    xPoint	    points[4];
-	    int		    i;
-	    int		    xmin, ymin, xmax, ymax;
-
-#define VectorSet(i,_x,_y) { points[i].x = _x; points[i].y = _y; }
-	    VectorSet (0, x, y);
-	    VectorSet (1, x + width, y);
-	    VectorSet (2, x, y + height);
-	    VectorSet (3, x + width, y + height);
-	    xmin = ymin = 32767;
-	    xmax = ymax = -32737;
-	    for (i = 0; i < 4; i++)
-	    {
-		PictVector  t;
-		t.vector[0] = IntToxFixed (points[i].x);
-		t.vector[1] = IntToxFixed (points[i].y);
-		t.vector[2] = xFixed1;
-		if (pixman_transform_point (pPicture->transform, &t))
-		{
-		    int	tx = xFixedToInt (t.vector[0]);
-		    int ty = xFixedToInt (t.vector[1]);
-		    if (tx < xmin) xmin = tx;
-		    if (tx > xmax) xmax = tx;
-		    if (ty < ymin) ymin = ty;
-		    if (ty > ymax) ymax = ty;
-		}
-	    }
-	    x = xmin;
-	    y = ymin;
-	    width = xmax - xmin;
-	    height = ymax - ymin;
-	}
-        x += pPicture->pDrawable->x;
-        y += pPicture->pDrawable->y;
-	(*pScreen->SourceValidate) (pDrawable, x, y, width, height,
-				    pPicture->subWindowMode);
+	pScreen->SourceValidate (
+	    pDrawable, 0, 0, pDrawable->width, pDrawable->height, pPicture->subWindowMode);
     }
 }
 
+void
+miCompositeSourceValidate (PicturePtr pPicture)
+{
+    SourceValidateOnePicture (pPicture);
+    if (pPicture->alphaMap)
+	SourceValidateOnePicture (pPicture->alphaMap);
+}
+
 /*
  * returns FALSE if the final region is empty.  Indistinguishable from
  * an allocation failure, but rendering ignores those anyways.
@@ -480,9 +448,9 @@ miComputeCompositeRegion (RegionPtr	pRegion,
     }
 
     
-    miCompositeSourceValidate (pSrc, xSrc, ySrc, width, height);
+    miCompositeSourceValidate (pSrc);
     if (pMask)
-	miCompositeSourceValidate (pMask, xMask, yMask, width, height);
+	miCompositeSourceValidate (pMask);
 
     return TRUE;
 }
diff --git a/render/mipict.h b/render/mipict.h
index eb6b664..4f5b3ba 100644
--- a/render/mipict.h
+++ b/render/mipict.h
@@ -81,11 +81,8 @@ miChangePictureFilter (PicturePtr pPicture,
 		       int	  nparams);
 
 extern _X_EXPORT void
-miCompositeSourceValidate (PicturePtr	pPicture,
-			   INT16	x,
-			   INT16	y,
-			   CARD16	width,
-			   CARD16	height);
+miCompositeSourceValidate (PicturePtr pPicture);
+
 extern _X_EXPORT Bool
 miComputeCompositeRegion (RegionPtr	pRegion,
 			  PicturePtr	pSrc,


More information about the xorg-commit mailing list