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

Xorg tends to crash if the user tries to actually use the offload
capabilities with acceleration disabled.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57200
(ported from radeon commit c74de9fec13fac2c836bb2a07ae6f90e1d61e667)

Signed-off-by: Michel Dänzer <[email protected]>
---
 src/amdgpu_kms.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index 084f625..2efdbf5 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -668,14 +668,18 @@ static void AMDGPUSetupCapabilities(ScrnInfoPtr pScrn)
        pScrn->capabilities = 0;
        ret = drmGetCap(pAMDGPUEnt->fd, DRM_CAP_PRIME, &value);
        if (ret == 0) {
-               if (value & DRM_PRIME_CAP_EXPORT)
-                       pScrn->capabilities |=
-                           RR_Capability_SourceOutput |
-                           RR_Capability_SinkOffload;
-               if (value & DRM_PRIME_CAP_IMPORT)
-                       pScrn->capabilities |=
-                           RR_Capability_SourceOffload |
-                           RR_Capability_SinkOutput;
+               AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
+
+               if (value & DRM_PRIME_CAP_EXPORT) {
+                       pScrn->capabilities |= RR_Capability_SourceOutput;
+                       if (info->use_glamor && info->dri2.available)
+                               pScrn->capabilities |= 
RR_Capability_SinkOffload;
+               }
+               if (value & DRM_PRIME_CAP_IMPORT) {
+                       pScrn->capabilities |= RR_Capability_SinkOutput;
+                       if (info->use_glamor && info->dri2.available)
+                               pScrn->capabilities |= 
RR_Capability_SourceOffload;
+               }
        }
 #endif
 }
-- 
2.6.2

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

Reply via email to