From f123096877f0a0044f3d0315285441f2b5790c29 Mon Sep 17 00:00:00 2001 From: Mario Kleiner Date: Mon, 10 Aug 2015 23:34:39 +0200 Subject: Make selection between DRI2 and DRI3 consistent with other drivers. (v2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. v2: Retain handling of old Option "DRI3" for backwards compatibility, but Option "DRI" will take precedence over "DRI3" if both are provided. Signed-off-by: Mario Kleiner Reviewed-by: Michel Dänzer --- src/radeon_kms.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/radeon_kms.c') diff --git a/src/radeon_kms.c b/src/radeon_kms.c index c75aa97b..8aa76332 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -78,6 +78,7 @@ const OptionInfoRec RADEONOptions_KMS[] = { { 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 } }; @@ -1518,6 +1519,7 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL) int subPixelOrder = SubPixelUnknown; MessageType from; Bool value; + int driLevel; const char *s; void *front_ptr; @@ -1629,10 +1631,15 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL) #endif value = FALSE; + from = X_DEFAULT; if (xf86GetOptValBool(info->Options, OPTION_DRI3, &value)) from = X_CONFIG; - else - from = X_DEFAULT; + + if (xf86GetOptValInteger(info->Options, OPTION_DRI, &driLevel) && + (driLevel == 2 || driLevel == 3)) { + from = X_CONFIG; + value = driLevel == 3; + } if (value) { value = radeon_sync_init(pScreen) && @@ -1642,6 +1649,7 @@ Bool RADEONScreenInit_KMS(SCREEN_INIT_ARGS_DECL) if (!value) from = X_WARNING; } + xf86DrvMsg(pScrn->scrnIndex, from, "DRI3 %sabled\n", value ? "en" : "dis"); pScrn->vtSema = TRUE; -- cgit v1.2.3