[Xquartz-changes] xserver: Branch 'master' - 3 commits

Jeremy Huddleston jeremyhu at freedesktop.org
Mon Apr 12 21:59:09 PDT 2010


 glx/glxdri.c                   |    7 +++----
 glx/glxdri2.c                  |    5 ++++-
 glx/glxdricommon.c             |   13 ++++++++-----
 glx/glxdricommon.h             |    3 ++-
 glx/glxdriswrast.c             |    5 ++++-
 hw/xfree86/common/xf86Xinput.c |   19 ++++++++++++-------
 6 files changed, 33 insertions(+), 19 deletions(-)

New commits:
commit 1760d2bef9f5b248cb2332f6ebf0220eb02bab42
Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Fri Apr 9 10:58:48 2010 -0400

    glx: Set the pbuffer bit for dri2 fbconfigs
    
    They've been implemented for a while, but we never advertised them.  All we
    need to do is set the GLX_PBUFFER_BIT in the drawable type fbconfig
    field when we're using DRI2.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=26581
    
    Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/glx/glxdri.c b/glx/glxdri.c
index 21e44d1..9810a73 100644
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
@@ -35,6 +35,7 @@
 #include <drm.h>
 #include <GL/gl.h>
 #include <GL/internal/dri_interface.h>
+#include <GL/glxtokens.h>
 
 #include <windowstr.h>
 #include <os.h>
@@ -939,9 +940,6 @@ initializeExtensions(__GLXDRIscreen *screen)
     }
 }
     
-extern __GLXconfig *
-glxConvertConfigs(const __DRIcoreExtension *core, const __DRIconfig **configs);
-
 static __GLXscreen *
 __glXDRIscreenProbe(ScreenPtr pScreen)
 {
@@ -1131,7 +1129,8 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
 	goto handle_error;
     }
 
-    screen->base.fbconfigs = glxConvertConfigs(screen->core, driConfigs);
+    screen->base.fbconfigs = glxConvertConfigs(screen->core,
+					       driConfigs, GLX_WINDOW_BIT);
 
     initializeExtensions(screen);
 
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index e791bf6..4c9f381 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -748,7 +748,10 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
 
     initializeExtensions(screen);
 
-    screen->base.fbconfigs = glxConvertConfigs(screen->core, driConfigs);
+    screen->base.fbconfigs = glxConvertConfigs(screen->core, driConfigs,
+					       GLX_WINDOW_BIT |
+					       GLX_PIXMAP_BIT |
+					       GLX_PBUFFER_BIT);
 
     __glXScreenInit(&screen->base, pScreen);
 
diff --git a/glx/glxdricommon.c b/glx/glxdricommon.c
index faaa3b7..454aa55 100644
--- a/glx/glxdricommon.c
+++ b/glx/glxdricommon.c
@@ -121,7 +121,7 @@ setScalar(__GLXconfig *config, unsigned int attrib, unsigned int value)
 static __GLXconfig *
 createModeFromConfig(const __DRIcoreExtension *core,
 		     const __DRIconfig *driConfig,
-		     unsigned int visualType)
+		     unsigned int visualType, unsigned int drawableType)
 {
     __GLXDRIconfig *config;
     unsigned int attrib, value;
@@ -167,13 +167,14 @@ createModeFromConfig(const __DRIcoreExtension *core,
     config->config.next = NULL;
     config->config.xRenderable = GL_TRUE;
     config->config.visualType = visualType;
-    config->config.drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT;
+    config->config.drawableType = drawableType;
 
     return &config->config;
 }
 
 __GLXconfig *
-glxConvertConfigs(const __DRIcoreExtension *core, const __DRIconfig **configs)
+glxConvertConfigs(const __DRIcoreExtension *core,
+		  const __DRIconfig **configs, unsigned int drawableType)
 {
     __GLXconfig head, *tail;
     int i;
@@ -183,7 +184,8 @@ glxConvertConfigs(const __DRIcoreExtension *core, const __DRIconfig **configs)
 
     for (i = 0; configs[i]; i++) {
 	tail->next = createModeFromConfig(core,
-					  configs[i], GLX_TRUE_COLOR);
+					  configs[i], GLX_TRUE_COLOR,
+					  drawableType);
 	if (tail->next == NULL)
 	    break;
 
@@ -192,7 +194,8 @@ glxConvertConfigs(const __DRIcoreExtension *core, const __DRIconfig **configs)
 
     for (i = 0; configs[i]; i++) {
 	tail->next = createModeFromConfig(core,
-					  configs[i], GLX_DIRECT_COLOR);
+					  configs[i], GLX_DIRECT_COLOR,
+					  drawableType);
 	if (tail->next == NULL)
 	    break;
 
diff --git a/glx/glxdricommon.h b/glx/glxdricommon.h
index f88964b..41e2d27 100644
--- a/glx/glxdricommon.h
+++ b/glx/glxdricommon.h
@@ -33,7 +33,8 @@ struct __GLXDRIconfig {
 };
 
 __GLXconfig *
-glxConvertConfigs(const __DRIcoreExtension *core, const __DRIconfig **configs);
+glxConvertConfigs(const __DRIcoreExtension *core,
+		  const __DRIconfig **configs, unsigned int drawableType);
 
 extern const __DRIsystemTimeExtension systemTimeExtension;
 
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
index c647d83..918383c 100644
--- a/glx/glxdriswrast.c
+++ b/glx/glxdriswrast.c
@@ -506,7 +506,10 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
 
     initializeExtensions(screen);
 
-    screen->base.fbconfigs = glxConvertConfigs(screen->core, driConfigs);
+    screen->base.fbconfigs = glxConvertConfigs(screen->core, driConfigs,
+					       GLX_WINDOW_BIT |
+					       GLX_PIXMAP_BIT |
+					       GLX_PBUFFER_BIT);
 
     __glXScreenInit(&screen->base, pScreen);
 
commit ab60975fe28cb135b4183c57b7f50d3615921c1f
Merge: adbbc66... 59edde7...
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Apr 12 21:40:41 2010 -0700

    Merge remote branch 'jeremyhu/master'

commit adbbc661080ba4efdb764c154d40c4d2fe718e16
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Tue Feb 16 08:11:41 2010 -0800

    xfree86: Fix priority ordering for ignoring input classes
    
    Commit 8736d112afb0dd61dfdaadd6378eafd200b2ef5f changed the priority
    ordering of the InputClass option merging to be "last match wins". This
    fixes the handling of Option "Ignore" to follow that logic.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 8229227..7723ba6 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -625,25 +625,30 @@ MergeInputClasses(IDevPtr idev, InputAttributes *attrs)
     return Success;
 }
 
+/*
+ * Iterate the list of classes and look for Option "Ignore". Return the
+ * value of the last matching class and holler when returning TRUE.
+ */
 static Bool
 IgnoreInputClass(IDevPtr idev, InputAttributes *attrs)
 {
     XF86ConfInputClassPtr cl;
-    Bool ignore;
+    Bool ignore = FALSE;
+    const char *ignore_class;
 
     for (cl = xf86configptr->conf_inputclass_lst; cl; cl = cl->list.next) {
         if (!InputClassMatches(cl, attrs))
             continue;
         if (xf86findOption(cl->option_lst, "Ignore")) {
             ignore = xf86CheckBoolOption(cl->option_lst, "Ignore", FALSE);
-            if (ignore)
-                xf86Msg(X_CONFIG,
-                        "%s: Ignoring device from InputClass \"%s\"\n",
-                        idev->identifier, cl->identifier);
-            return ignore;
+            ignore_class = cl->identifier;
         }
     }
-    return FALSE;
+
+    if (ignore)
+        xf86Msg(X_CONFIG, "%s: Ignoring device from InputClass \"%s\"\n",
+                idev->identifier, ignore_class);
+    return ignore;
 }
 
 /**


More information about the Xquartz-changes mailing list