[PATCH xf86-video-amdgpu] Set the RandR primary output on startup if Xorg hasn't
Michel Dänzer
michel at daenzer.net
Tue Jan 19 00:50:42 PST 2016
From: Michel Dänzer <michel.daenzer at amd.com>
Fixes xrandr (XRRGetOutputPrimary) not reporting any output as primary
after startup.
(Ported from radeon commit b16856b25086ffb27365ac2249b8da921066ce62)
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
src/amdgpu_kms.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index 30bce08..e090c25 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -167,6 +167,7 @@ static Bool AMDGPUCreateScreenResources_KMS(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
+ rrScrPrivPtr rrScrPriv = rrGetScrPriv(pScreen);
PixmapPtr pixmap;
pScreen->CreateScreenResources = info->CreateScreenResources;
@@ -174,6 +175,20 @@ static Bool AMDGPUCreateScreenResources_KMS(ScreenPtr pScreen)
return FALSE;
pScreen->CreateScreenResources = AMDGPUCreateScreenResources_KMS;
+ /* Set the RandR primary output if Xorg hasn't */
+ if (
+#ifdef AMDGPU_PIXMAP_SHARING
+ !pScreen->isGPU &&
+#endif
+ !rrScrPriv->primaryOutput)
+ {
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+
+ rrScrPriv->primaryOutput = xf86_config->output[0]->randr_output;
+ RROutputChanged(rrScrPriv->primaryOutput, FALSE);
+ rrScrPriv->layoutChanged = TRUE;
+ }
+
if (!drmmode_set_desired_modes(pScrn, &info->drmmode, pScrn->is_gpu))
return FALSE;
--
2.7.0.rc3
More information about the xorg-driver-ati
mailing list