summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/r600_exa.c7
-rw-r--r--src/radeon_driver.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/src/r600_exa.c b/src/r600_exa.c
index 22e554da..40f02e1e 100644
--- a/src/r600_exa.c
+++ b/src/r600_exa.c
@@ -2084,8 +2084,11 @@ R600DrawInit(ScreenPtr pScreen)
info->accel_state->exa->PrepareAccess = R600PrepareAccess;
info->accel_state->exa->FinishAccess = R600FinishAccess;
- info->accel_state->exa->UploadToScreen = R600UploadToScreen;
- info->accel_state->exa->DownloadFromScreen = R600DownloadFromScreen;
+ /* AGP seems to have problems with gart transfers */
+ if (info->accelDFS) {
+ info->accel_state->exa->UploadToScreen = R600UploadToScreen;
+ info->accel_state->exa->DownloadFromScreen = R600DownloadFromScreen;
+ }
info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
#ifdef EXA_SUPPORTS_PREPARE_AUX
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index d1b2f540..5a15c70d 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -2375,7 +2375,11 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
xf86DrvMsg(pScrn->scrnIndex, from, "Page Flipping %sabled%s\n",
info->dri->allowPageFlip ? "en" : "dis", reason);
- info->DMAForXv = TRUE;
+ /* AGP seems to have problems with gart transfers */
+ if ((info->ChipFamily >= CHIP_FAMILY_R600) && (info->cardType == CARD_AGP))
+ info->DMAForXv = FALSE;
+ else
+ info->DMAForXv = TRUE;
from = xf86GetOptValBool(info->Options, OPTION_XV_DMA, &info->DMAForXv)
? X_CONFIG : X_INFO;
xf86DrvMsg(pScrn->scrnIndex, from,