xf86-video-ati: Branch 'master' - 2 commits

Michel Dänzer daenzer at kemper.freedesktop.org
Mon Apr 14 02:01:35 PDT 2014


 src/radeon.h        |   19 +++++++++++++------
 src/radeon_glamor.c |   14 ++++++++------
 2 files changed, 21 insertions(+), 12 deletions(-)

New commits:
commit 409786a8f780d78a83bf0bddea5d37117ff6fa39
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Apr 10 11:43:04 2014 +0900

    glamor: Fix test for creating shared pixmaps
    
    The pixmap usage hint is not a bitmask in general. The test for
    CREATE_PIXMAP_USAGE_SHARED was incorrectly triggering for a glamor internal
    usage hint being added in the xserver tree.
    
    Tested-by: Ed Tomlinson <edtoml at gmail.com>

diff --git a/src/radeon.h b/src/radeon.h
index f364b67..136a430 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -794,6 +794,13 @@ enum {
     RADEON_CREATE_PIXMAP_SZBUFFER		= 0x80000000, /* for eg */
 };
 
+#define RADEON_CREATE_PIXMAP_TILING_FLAGS	\
+    (RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE |	\
+     RADEON_CREATE_PIXMAP_TILING_MACRO |	\
+     RADEON_CREATE_PIXMAP_TILING_MICRO |	\
+     RADEON_CREATE_PIXMAP_DEPTH |		\
+     RADEON_CREATE_PIXMAP_SZBUFFER)
+
 
 /* Compute log base 2 of val. */
 static __inline__ int
diff --git a/src/radeon_glamor.c b/src/radeon_glamor.c
index 7f1247c..4aea51d 100644
--- a/src/radeon_glamor.c
+++ b/src/radeon_glamor.c
@@ -172,12 +172,14 @@ Bool radeon_glamor_pixmap_is_offscreen(PixmapPtr pixmap)
 	return priv && priv->bo;
 }
 
-#ifdef CREATE_PIXMAP_USAGE_SHARED
-#define RADEON_CREATE_PIXMAP_SHARED (CREATE_PIXMAP_USAGE_SHARED | RADEON_CREATE_PIXMAP_DRI2)
-#else
-#define RADEON_CREATE_PIXMAP_SHARED RADEON_CREATE_PIXMAP_DRI2
+#ifndef CREATE_PIXMAP_USAGE_SHARED
+#define CREATE_PIXMAP_USAGE_SHARED RADEON_CREATE_PIXMAP_DRI2
 #endif
 
+#define RADEON_CREATE_PIXMAP_SHARED(usage) \
+	(((usage) & ~RADEON_CREATE_PIXMAP_TILING_FLAGS) == RADEON_CREATE_PIXMAP_DRI2 || \
+	 (usage) == CREATE_PIXMAP_USAGE_SHARED)
+
 static PixmapPtr
 radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
 			unsigned usage)
@@ -186,7 +188,7 @@ radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
 	struct radeon_pixmap *priv;
 	PixmapPtr pixmap, new_pixmap = NULL;
 
-	if (!(usage & RADEON_CREATE_PIXMAP_SHARED)) {
+	if (!RADEON_CREATE_PIXMAP_SHARED(usage)) {
 		pixmap = glamor_create_pixmap(screen, w, h, depth, usage);
 		if (pixmap)
 			return pixmap;
@@ -229,7 +231,7 @@ radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
 	return pixmap;
 
 fallback_glamor:
-	if (usage & RADEON_CREATE_PIXMAP_SHARED) {
+	if (RADEON_CREATE_PIXMAP_SHARED(usage)) {
 	/* XXX need further work to handle the DRI2 failure case.
 	 * Glamor don't know how to handle a BO only pixmap. Put
 	 * a warning indicator here.
commit aecf1c4e5f4718adcfb85836830d065d3f4f97a5
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Apr 10 15:10:56 2014 +0900

    dri2: Fix conflicting CreatePixmap usage flag definitions
    
    RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE was the same as
    RADEON_CREATE_PIXMAP_DRI2.
    
    Disambiguate the definitions and rearrange them to try and prevent this
    from happening again.
    
    Tested-by: Ed Tomlinson <edtoml at gmail.com>

diff --git a/src/radeon.h b/src/radeon.h
index f1817e7..f364b67 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -786,12 +786,12 @@ static __inline__ void RADEON_SYNC(RADEONInfoPtr info, ScrnInfoPtr pScrn)
 }
 
 enum {
-    RADEON_CREATE_PIXMAP_DRI2 = 0x08000000,
-    RADEON_CREATE_PIXMAP_TILING_MACRO = 0x10000000,
-    RADEON_CREATE_PIXMAP_TILING_MICRO = 0x20000000,
-    RADEON_CREATE_PIXMAP_DEPTH = 0x40000000, /* for r200 */
-    RADEON_CREATE_PIXMAP_SZBUFFER = 0x80000000, /* for eg */
-    RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE = 0x8000000,
+    RADEON_CREATE_PIXMAP_DRI2			= 0x04000000,
+    RADEON_CREATE_PIXMAP_TILING_MICRO_SQUARE	= 0x08000000,
+    RADEON_CREATE_PIXMAP_TILING_MACRO		= 0x10000000,
+    RADEON_CREATE_PIXMAP_TILING_MICRO		= 0x20000000,
+    RADEON_CREATE_PIXMAP_DEPTH			= 0x40000000, /* for r200 */
+    RADEON_CREATE_PIXMAP_SZBUFFER		= 0x80000000, /* for eg */
 };
 
 


More information about the xorg-commit mailing list