summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-02-27 17:05:01 +0100
committerMichel Dänzer <daenzer@vmware.com>2009-02-27 17:05:01 +0100
commitc7d344f0ad255761d5ae30da59cf0a8b532dfc68 (patch)
tree38fb4dc8a4a54c69f4db530b222a625de1952aff
parentf4d57105fc869e9318f447a1514f1b284a0a4ec0 (diff)
EXA: Make sure Prepare/FinishAccess hooks can handle EXA_PREPARE_AUX* indices.
And signal this to the EXA core using the new EXA_SUPPORTS_PREPARE_AUX flag.
-rw-r--r--src/r600_exa.c3
-rw-r--r--src/radeon_exa.c2
-rw-r--r--src/radeon_exa_funcs.c3
3 files changed, 7 insertions, 1 deletions
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 17c5567e..de91111d 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -4395,6 +4395,9 @@ R600DrawInit(ScreenPtr pScreen)
info->accel_state->exa->DownloadFromScreen = R600DownloadFromScreen;
info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
+#ifdef EXA_SUPPORTS_PREPARE_AUX
+ info->accel_state->exa->flags |= EXA_SUPPORTS_PREPARE_AUX;
+#endif
info->accel_state->exa->pixmapOffsetAlign = 256;
info->accel_state->exa->pixmapPitchAlign = 256;
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index c5943de1..ae681462 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -222,7 +222,7 @@ int RADEONBiggerCrtcArea(PixmapPtr pPix)
#if X_BYTE_ORDER == X_BIG_ENDIAN
-static unsigned long swapper_surfaces[3];
+static unsigned long swapper_surfaces[6];
static Bool RADEONPrepareAccess(PixmapPtr pPix, int index)
{
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index eb16036c..59cb46fc 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -479,6 +479,9 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
#endif /* X_BYTE_ORDER == X_BIG_ENDIAN */
info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
+#ifdef EXA_SUPPORTS_PREPARE_AUX
+ info->accel_state->exa->flags |= EXA_SUPPORTS_PREPARE_AUX;
+#endif
info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;
info->accel_state->exa->pixmapPitchAlign = 64;