From: Michel Dänzer <[email protected]>

Fixes xrandr (XRRGetOutputPrimary) not reporting any output as primary
after startup.

(Ported from radeon commit b16856b25086ffb27365ac2249b8da921066ce62)

Signed-off-by: Michel Dänzer <[email protected]>
---
 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

_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati

Reply via email to