diff options
-rw-r--r-- | src/r600_exa.c | 7 | ||||
-rw-r--r-- | src/radeon_driver.c | 6 |
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, |