[PATCH] Force-enable EXA UploadToScreen() and DownloadFromScreen()

Stephen Kitt steve at sk2.org
Sun Mar 6 03:52:14 PST 2011


The radeon drivers no longer support UploadToScreen() and
DownloadFromScreen(). If the exa module supports it, the driver
instructs it to prevent the user disabling them.

This version replaces the patch sent yesterday, which wasn't the right
one!

Signed-off-by: Stephen Kitt <steve at sk2.org>
---
 src/evergreen_exa.c    |    7 +++++++
 src/r600_exa.c         |    7 +++++++
 src/radeon_exa_funcs.c |    6 ++++++
 3 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index 553f05e..c1fbb81 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -1778,6 +1778,13 @@ EVERGREENDrawInit(ScreenPtr pScreen)
     info->accel_state->exa->flags |= EXA_MIXED_PIXMAPS;
 #endif
 #endif
+
+#ifdef EXA_REQUIRES_UPLOAD_DOWNLOAD
+    /* This driver causes segfaults if UploadToScreen() or
+       DownloadFromScreen() are disabled. */
+    info->accel_state->exa->flags |= EXA_REQUIRES_UPLOAD_DOWNLOAD;
+#endif
+
     info->accel_state->exa->pixmapOffsetAlign = 256;
     info->accel_state->exa->pixmapPitchAlign = 256;
 
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 57e5c0f..f86e390 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -2235,6 +2235,13 @@ R600DrawInit(ScreenPtr pScreen)
     }
 #endif
 #endif
+
+#ifdef EXA_REQUIRES_UPLOAD_DOWNLOAD
+    /* This driver causes segfaults if UploadToScreen() or
+       DownloadFromScreen() are disabled. */
+    info->accel_state->exa->flags |= EXA_REQUIRES_UPLOAD_DOWNLOAD;
+#endif
+
     info->accel_state->exa->pixmapOffsetAlign = 256;
     info->accel_state->exa->pixmapPitchAlign = 256;
 
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index e8c5571..c56aeac 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -848,6 +848,12 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
     }
 #endif
 
+#ifdef EXA_REQUIRES_UPLOAD_DOWNLOAD
+    /* This driver causes segfaults if UploadToScreen() or
+       DownloadFromScreen() are disabled. */
+    info->accel_state->exa->flags |= EXA_REQUIRES_UPLOAD_DOWNLOAD;
+#endif
+
 #ifdef RENDER
     if (info->RenderAccel) {
 	if (IS_R300_3D || IS_R500_3D) {
-- 
1.7.2.3



More information about the xorg-devel mailing list