Blob Blame History Raw
From ed3b6e3013e5778e3f050e9e4dbe0ea4f77a279c Mon Sep 17 00:00:00 2001
From: Jerome Glisse <jglisse@redhat.com>
Date: Wed, 14 Nov 2012 12:15:47 -0500
Subject: [PATCH] radeon: avoid segfault when pixmap exceed GPU capabilities

We might get a request for a pixmap/drawable that is too big
for GPU capabilities in the dri2 get buffer path. In face of
such things just return NULL to dri2 get buffer request. The
GL driver should then use something like transparent black to
avoid something too ugly on the screen.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
---
 src/radeon_dri2.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index ebd813c..919f1f6 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -444,6 +444,10 @@ radeon_dri2_create_buffer2(ScreenPtr pScreen,
 	    info->exa_force_create = TRUE;
 	    exaMoveInPixmap(pixmap);
 	    info->exa_force_create = FALSE;
+	    if (exaGetPixmapDriverPrivate(pixmap) == NULL) {
+		/* this happen if pixmap is non accelerable */
+		goto error;
+	    }
 	}
 
 	if (is_glamor_pixmap)
-- 
1.8.0