[PATCH xf86-video-ati] Make selection between DRI2 and DRI3 consistent with other drivers.

Mario Kleiner mario.kleiner.de at gmail.com
Sun Aug 9 01:11:44 PDT 2015


Add Option "DRI" to allow selection of maximum DRI level.

This allows the user to select the maximum level of DRI
implementation to use, DRI2 or DRI3. It replaces the old
option "DRI3" which had exactly the same purpose, but
differs from the method used in both intel ddx and nouveau ddx.
Make this consistent before a new stable driver is released.

Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
Cc: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: Emil Velikov <emil.l.velikov at gmail.com>
---
 man/radeon.man   |  7 ++++---
 src/radeon.h     |  2 +-
 src/radeon_kms.c | 13 ++++++++-----
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/man/radeon.man b/man/radeon.man
index f0a6be1..fa55c6d 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -267,9 +267,10 @@ The default value is
 for R/RV6XX, R/RV7XX, RS780, RS880, EVERGREEN, CAYMAN, ARUBA, Southern Islands, and
 Sea Islands.
 .TP
-.BI "Option \*qDRI3\*q \*q" boolean \*q
-Enable the DRI3 extension. The default is
-.B off.
+.BI "Option \*qDRI\*q \*q" integer \*q
+Define the maximum level of DRI to enable. Valid values are 2 for DRI2 or 3 for DRI3.
+The default is
+.B 2 for DRI2.
 .TP
 .BI "Option \*qEnablePageFlip\*q \*q" boolean \*q
 Enable DRI2 page flipping.  The default is
diff --git a/src/radeon.h b/src/radeon.h
index 88df93f..e7195a9 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -150,7 +150,7 @@ typedef enum {
     OPTION_ZAPHOD_HEADS,
     OPTION_SWAPBUFFERS_WAIT,
     OPTION_DELETE_DP12,
-    OPTION_DRI3,
+    OPTION_DRI,
     OPTION_SHADOW_PRIMARY,
     OPTION_TEAR_FREE,
 } RADEONOpts;
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index c75aa97..2a2a0f2 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -77,7 +77,7 @@ const OptionInfoRec RADEONOptions_KMS[] = {
     { OPTION_ZAPHOD_HEADS,   "ZaphodHeads",      OPTV_STRING,  {0}, FALSE },
     { OPTION_SWAPBUFFERS_WAIT,"SwapbuffersWait", OPTV_BOOLEAN, {0}, FALSE },
     { OPTION_DELETE_DP12,    "DeleteUnusedDP12Displays", OPTV_BOOLEAN, {0}, FALSE},
-    { OPTION_DRI3,           "DRI3",             OPTV_BOOLEAN, {0}, FALSE },
+    { OPTION_DRI,            "DRI",              OPTV_INTEGER, {0}, FALSE },
     { OPTION_TEAR_FREE,      "TearFree",         OPTV_BOOLEAN, {0}, FALSE },
     { -1,                    NULL,               OPTV_NONE,    {0}, FALSE }
 };
@@ -1517,7 +1517,7 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
     RADEONInfoPtr  info  = RADEONPTR(pScrn);
     int            subPixelOrder = SubPixelUnknown;
     MessageType from;
-    Bool value;
+    int value;
     const char *s;
     void *front_ptr;
 
@@ -1628,13 +1628,13 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
     }
 #endif
 
-    value = FALSE;
-    if (xf86GetOptValBool(info->Options, OPTION_DRI3, &value))
+    value = 2;
+    if (xf86GetOptValInteger(info->Options, OPTION_DRI, &value))
 	from = X_CONFIG;
     else
 	from = X_DEFAULT;
 
-    if (value) {
+    if (value >= 3) {
 	value = radeon_sync_init(pScreen) &&
 	    radeon_present_screen_init(pScreen) &&
 	    radeon_dri3_screen_init(pScreen);
@@ -1642,6 +1642,9 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL)
 	if (!value)
 	    from = X_WARNING;
     }
+    else
+	value = 0;
+
     xf86DrvMsg(pScrn->scrnIndex, from, "DRI3 %sabled\n", value ? "en" : "dis");
 
     pScrn->vtSema = TRUE;
-- 
2.1.4



More information about the xorg-driver-ati mailing list