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

Stephen Kitt steve at sk2.org
Sat Mar 5 14:13:27 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.

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..196c95d 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..b4eca00 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..d7b0700 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