diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-08-20 16:55:21 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2010-08-20 16:55:21 -0400 |
commit | 6930d2c981221757b1e11ef194809f085753a611 (patch) | |
tree | bc0315f106229488603ba9ef009581772fb9bdcc /src/radeon_kms.c | |
parent | bdd41fecdb19c83c6c7b793016b61d38065dcd13 (diff) |
Add initial EXA and Xv support for evergreen
Based on the r6xx/r7xx code updated for evergreen.
Still causes GPU hangs in some cases. We haven't
tracked down why yet. Might be related to constant
buffer persistence.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Diffstat (limited to 'src/radeon_kms.c')
-rw-r--r-- | src/radeon_kms.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c index ba13071f..b7626483 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -202,8 +202,18 @@ static Bool RADEONIsAccelWorking(ScrnInfoPtr pScrn) int r; uint32_t tmp; +#ifndef RADEON_INFO_ACCEL_WORKING +#define RADEON_INFO_ACCEL_WORKING 0x03 +#endif +#ifndef RADEON_INFO_ACCEL_WORKING2 +#define RADEON_INFO_ACCEL_WORKING2 0x05 +#endif + memset(&ginfo, 0, sizeof(ginfo)); - ginfo.request = 0x3; + if (info->dri->pKernelDRMVersion->version_minor >= 5) + ginfo.request = RADEON_INFO_ACCEL_WORKING2; + else + ginfo.request = RADEON_INFO_ACCEL_WORKING; ginfo.value = (uintptr_t)&tmp; r = drmCommandWriteRead(info->dri->drmFD, DRM_RADEON_INFO, &ginfo, sizeof(ginfo)); if (r) { @@ -230,7 +240,6 @@ static Bool RADEONPreInitAccel_KMS(ScrnInfoPtr pScrn) } if (xf86ReturnOptValBool(info->Options, OPTION_NOACCEL, FALSE) || - (info->ChipFamily >= CHIP_FAMILY_CEDAR) || (!RADEONIsAccelWorking(pScrn))) { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "GPU accel disabled or not working, using shadowfb for KMS\n"); |