summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKai-Heng Feng <kai.heng.feng@canonical.com>2022-08-08 10:49:11 +0800
committerKai-Heng Feng <kai.heng.feng@canonical.com>2022-08-08 10:49:11 +0800
commita3a012b649eb9b3066abefe163a72854514792fa (patch)
treedc5a1a625d2ffa099493ecbc4d9bf256e6fda6a9 /src
parentf3f57a58342c286808220bdbe6dc6bb7098763b9 (diff)
Initialize present extension for GPU screen
Some laptops have the external outputs routed to dGPU, when the external output over dGPU is the only display in reverse prime mode, we need present extension so fake CRTC won't be used.
Diffstat (limited to 'src')
-rw-r--r--src/amdgpu_kms.c44
1 files changed, 21 insertions, 23 deletions
diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index 6d65c81..9364d17 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -2046,36 +2046,34 @@ Bool AMDGPUScreenInit_KMS(ScreenPtr pScreen, int argc, char **argv)
}
#endif
- if (!pScreen->isGPU) {
- if (xorgGetVersion() >= XORG_VERSION_NUMERIC(1,18,3,0,0))
- value = info->use_glamor;
- else
- value = FALSE;
- from = X_DEFAULT;
+ if (xorgGetVersion() >= XORG_VERSION_NUMERIC(1,18,3,0,0))
+ value = info->use_glamor;
+ else
+ value = FALSE;
+ from = X_DEFAULT;
- if (info->use_glamor) {
- if (xf86GetOptValBool(info->Options, OPTION_DRI3, &value))
- from = X_CONFIG;
+ if (info->use_glamor) {
+ if (xf86GetOptValBool(info->Options, OPTION_DRI3, &value))
+ from = X_CONFIG;
- if (xf86GetOptValInteger(info->Options, OPTION_DRI, &driLevel) &&
- (driLevel == 2 || driLevel == 3)) {
- from = X_CONFIG;
- value = driLevel == 3;
- }
+ if (xf86GetOptValInteger(info->Options, OPTION_DRI, &driLevel) &&
+ (driLevel == 2 || driLevel == 3)) {
+ from = X_CONFIG;
+ value = driLevel == 3;
}
+ }
- if (value) {
- value = amdgpu_sync_init(pScreen) &&
- amdgpu_present_screen_init(pScreen) &&
- amdgpu_dri3_screen_init(pScreen);
-
- if (!value)
- from = X_WARNING;
- }
+ if (value) {
+ value = amdgpu_sync_init(pScreen) &&
+ amdgpu_present_screen_init(pScreen) &&
+ amdgpu_dri3_screen_init(pScreen);
- xf86DrvMsg(pScrn->scrnIndex, from, "DRI3 %sabled\n", value ? "en" : "dis");
+ if (!value)
+ from = X_WARNING;
}
+ xf86DrvMsg(pScrn->scrnIndex, from, "DRI3 %sabled\n", value ? "en" : "dis");
+
pScrn->vtSema = TRUE;
xf86SetBackingStore(pScreen);