summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-10-04 12:34:47 -0400
committerAlex Deucher <alexdeucher@gmail.com>2010-10-04 12:38:41 -0400
commit0921ecc1c751df0dd56e0b1d0b78ab53d7164904 (patch)
treeaf46f93ea14420ebeb9d9cd9b4da7e029fc30572
parent5bdb6434975584eef90eb9e5955b9c2a14b7f327 (diff)
evergreen: use EXACreatePixmap2 if available
-rw-r--r--src/evergreen_exa.c3
-rw-r--r--src/evergreen_state.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/evergreen_exa.c b/src/evergreen_exa.c
index 7b6b7ea9..f9d3b48a 100644
--- a/src/evergreen_exa.c
+++ b/src/evergreen_exa.c
@@ -1873,6 +1873,9 @@ EVERGREENDrawInit(ScreenPtr pScreen)
info->accel_state->exa->FinishAccess = RADEONFinishAccess_CS;
info->accel_state->exa->UploadToScreen = EVERGREENUploadToScreen;
info->accel_state->exa->DownloadFromScreen = EVERGREENDownloadFromScreen;
+#if (EXA_VERSION_MAJOR == 2 && EXA_VERSION_MINOR >= 5)
+ info->accel_state->exa->CreatePixmap2 = RADEONEXACreatePixmap2;
+#endif
info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
#ifdef EXA_SUPPORTS_PREPARE_AUX
diff --git a/src/evergreen_state.h b/src/evergreen_state.h
index 5869256e..7e49164b 100644
--- a/src/evergreen_state.h
+++ b/src/evergreen_state.h
@@ -331,6 +331,9 @@ EVERGREENSetAccelState(ScrnInfoPtr pScrn,
extern Bool RADEONPrepareAccess_CS(PixmapPtr pPix, int index);
extern void RADEONFinishAccess_CS(PixmapPtr pPix, int index);
extern void *RADEONEXACreatePixmap(ScreenPtr pScreen, int size, int align);
+extern void *RADEONEXACreatePixmap2(ScreenPtr pScreen, int width, int height,
+ int depth, int usage_hint, int bitsPerPixel,
+ int *new_pitch);
extern void RADEONEXADestroyPixmap(ScreenPtr pScreen, void *driverPriv);
extern struct radeon_bo *radeon_get_pixmap_bo(PixmapPtr pPix);
extern Bool RADEONEXAPixmapIsOffscreen(PixmapPtr pPix);