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

v2: Add bugzilla tag

 src/radeon_kms.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 4666988..b6d11e8 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -778,10 +778,16 @@ static void RADEONSetupCapabilities(ScrnInfoPtr pScrn)
     pScrn->capabilities = 0;
     ret = drmGetCap(info->dri2.drm_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;
+       if (value & DRM_PRIME_CAP_EXPORT) {
+           pScrn->capabilities |= RR_Capability_SourceOutput;
+           if (!info->r600_shadow_fb && info->dri2.available)
+               pScrn->capabilities |= RR_Capability_SinkOffload;
+       }
+       if (value & DRM_PRIME_CAP_IMPORT) {
+           pScrn->capabilities |= RR_Capability_SinkOutput;
+           if (!info->r600_shadow_fb && info->dri2.available)
+               pScrn->capabilities |= RR_Capability_SourceOffload;
+       }
     }
 #endif
 }
-- 
2.1.1

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

Reply via email to