xf86-video-modesetting: 2 commits - src/driver.c src/drmmode_display.c

Dave Airlie airlied at kemper.freedesktop.org
Fri Feb 17 07:57:00 PST 2012


 src/driver.c          |   14 +++++++++++++-
 src/drmmode_display.c |   12 +++++-------
 2 files changed, 18 insertions(+), 8 deletions(-)

New commits:
commit 2fb4879ffd4e78f69ad628bb7dd6b6e678a63181
Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Feb 16 19:41:40 2012 +0000

    use a cap to decide if shadow is preferred or not.

diff --git a/src/driver.c b/src/driver.c
index 7ce1ac1..8af9a9f 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -59,6 +59,10 @@
 
 #include "driver.h"
 
+#ifndef DRM_CAP_DUMB_PREFER_SHADOW
+#define DRM_CAP_DUMB_PREFER_SHADOW 4
+#endif
+
 static void AdjustFrame(int scrnIndex, int x, int y, int flags);
 static Bool CloseScreen(int scrnIndex, ScreenPtr pScreen);
 static Bool EnterVT(int scrnIndex, int flags);
@@ -380,6 +384,9 @@ PreInit(ScrnInfoPtr pScrn, int flags)
     EntityInfoPtr pEnt;
     EntPtr msEnt = NULL;
     char *BusID, *devicename;
+    Bool prefer_shadow = TRUE;
+    uint64_t value = 0;
+    int ret;
 
     if (pScrn->numEntities != 1)
 	return FALSE;
@@ -480,7 +487,12 @@ PreInit(ScrnInfoPtr pScrn, int flags)
 	ms->drmmode.sw_cursor = TRUE;
     }
 
-    ms->shadow_enable = xf86ReturnOptValBool(ms->Options, OPTION_SHADOW_FB, TRUE);
+    ret = drmGetCap(ms->fd, DRM_CAP_DUMB_PREFER_SHADOW, &value);
+    if (!ret) {
+	prefer_shadow = !!value;
+    }
+
+    ms->shadow_enable = xf86ReturnOptValBool(ms->Options, OPTION_SHADOW_FB, prefer_shadow);
 
     ms->drmmode.fd = ms->fd;
     if (drmmode_pre_init(pScrn, &ms->drmmode, pScrn->bitsPerPixel / 8) == FALSE) {
commit 2777730a1d2fb5282732986d39b80ff862ff7b64
Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Feb 16 19:41:30 2012 +0000

    cleanup dumb cap fetch

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index ec39967..57ac521 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1028,15 +1028,13 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int cpp)
 {
 	int i, num_dvi = 0, num_hdmi = 0;
 	int ret;
+	uint64_t value = 0;
 
 	/* check for dumb capability */
-	{
-		uint64_t value = 0;
-		ret = drmGetCap(drmmode->fd, DRM_CAP_DUMB_BUFFER, &value);
-		if (ret > 0 || value != 1) {
-			xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "KMS doesn't support dumb interface\n");
-			return FALSE;
-		}
+	ret = drmGetCap(drmmode->fd, DRM_CAP_DUMB_BUFFER, &value);
+	if (ret > 0 || value != 1) {
+		xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "KMS doesn't support dumb interface\n");
+		return FALSE;
 	}
 
 	xf86CrtcConfigInit(pScrn, &drmmode_xf86crtc_config_funcs);


More information about the xorg-commit mailing list