diff options
author | Martin Peres <martin.peres@linux.intel.com> | 2018-09-19 16:22:08 +0300 |
---|---|---|
committer | Martin Peres <martin.peres@linux.intel.com> | 2018-09-21 18:28:02 +0300 |
commit | ccc754e4b40dd18af2fed09c15f86a74a78dd09e (patch) | |
tree | 9271acff89b8045f6997c038d54037377cc1460e | |
parent | d689570482f23bd7a95f29446d1c8033294ee8ab (diff) |
modesetting: add a NoAtomic option to ease testing of the legacy codepaths3x4k
Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
-rw-r--r-- | hw/xfree86/drivers/modesetting/driver.c | 14 | ||||
-rw-r--r-- | hw/xfree86/drivers/modesetting/driver.h | 1 | ||||
-rw-r--r-- | hw/xfree86/drivers/modesetting/modesetting.man | 5 |
3 files changed, 18 insertions, 2 deletions
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c index 4754e0138..76fc7b952 100644 --- a/hw/xfree86/drivers/modesetting/driver.c +++ b/hw/xfree86/drivers/modesetting/driver.c @@ -133,6 +133,7 @@ static const OptionInfoRec Options[] = { {OPTION_DOUBLE_SHADOW, "DoubleShadow", OPTV_BOOLEAN, {0}, FALSE}, {OPTION_SHADOW_PRIMARY, "ShadowPrimary", OPTV_BOOLEAN, {0}, FALSE}, {OPTION_TEARFREE, "TearFree", OPTV_BOOLEAN, {0}, FALSE}, + {OPTION_NO_ATOMIC, "NoAtomic", OPTV_BOOLEAN, {0}, FALSE}, {-1, NULL, OPTV_NONE, {0}, FALSE} }; @@ -1122,8 +1123,17 @@ PreInit(ScrnInfoPtr pScrn, int flags) #endif } - ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 1); - ms->atomic_modeset = (ret == 0); + if (!xf86ReturnOptValBool(ms->drmmode.Options, OPTION_NO_ATOMIC, FALSE)) { + ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 1); + ms->atomic_modeset = (ret == 0); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Atomic Mode Setting support: %s\n", + ms->atomic_modeset ? "True" : "False"); + } else { + ms->atomic_modeset = FALSE; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "The use Atomic Mode Setting has " + "been disabled\n"); + } + ms->kms_has_modifiers = FALSE; ret = drmGetCap(ms->fd, DRM_CAP_ADDFB2_MODIFIERS, &value); diff --git a/hw/xfree86/drivers/modesetting/driver.h b/hw/xfree86/drivers/modesetting/driver.h index 237c54f6a..cc3ba2744 100644 --- a/hw/xfree86/drivers/modesetting/driver.h +++ b/hw/xfree86/drivers/modesetting/driver.h @@ -53,6 +53,7 @@ typedef enum { OPTION_DOUBLE_SHADOW, OPTION_SHADOW_PRIMARY, OPTION_TEARFREE, + OPTION_NO_ATOMIC, } modesettingOpts; typedef struct diff --git a/hw/xfree86/drivers/modesetting/modesetting.man b/hw/xfree86/drivers/modesetting/modesetting.man index 73d00f352..1c5768fec 100644 --- a/hw/xfree86/drivers/modesetting/modesetting.man +++ b/hw/xfree86/drivers/modesetting/modesetting.man @@ -88,6 +88,11 @@ allocating two separate scanout buffers for each non-rotated CRTC. This feature may reduce performance, increase latency and introduce stuttering. The default is .B off. .TP +.BI "Option \*qNoAtomic\*q \*q" boolean \*q +Disable atomic mode setting usage. Useful during developement for validating +legacy codepaths. The default is +.B off. +.TP .SH "SEE ALSO" @xservername@(@appmansuffix@), @xconfigfile@(@filemansuffix@), Xserver(@appmansuffix@), X(@miscmansuffix@) |