diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2011-02-28 11:20:44 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2011-02-28 11:20:44 -0500 |
commit | 99141761e947e2153ed1a3bc485dc5716a22acb1 (patch) | |
tree | 6161d2d7ee849e190c171a5cdd386a0384a51e05 | |
parent | 7928c120fb629a782846bcd5734d9fa14cbb099d (diff) |
kms: don't enable tiling if accel is off
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
-rw-r--r-- | src/radeon_kms.c | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 158dc57c..4f6f1200 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -625,25 +625,31 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) goto fail; } - colorTilingDefault = info->ChipFamily >= CHIP_FAMILY_R300 && - info->ChipFamily <= CHIP_FAMILY_RS740; - - if (info->ChipFamily >= CHIP_FAMILY_R600) { - /* set default group bytes, overridden by kernel info below */ - info->group_bytes = 256; - info->have_tiling_info = FALSE; - if (info->dri->pKernelDRMVersion->version_minor >= 6) { - if (r600_get_tile_config(pScrn)) - info->allowColorTiling = xf86ReturnOptValBool(info->Options, - OPTION_COLOR_TILING, colorTilingDefault); - else - info->allowColorTiling = FALSE; + if (!RADEONPreInitAccel_KMS(pScrn)) goto fail; + + /* don't enable tiling if accel is not enabled */ + if (!info->r600_shadow_fb) { + colorTilingDefault = info->ChipFamily >= CHIP_FAMILY_R300 && + info->ChipFamily <= CHIP_FAMILY_RS740; + + if (info->ChipFamily >= CHIP_FAMILY_R600) { + /* set default group bytes, overridden by kernel info below */ + info->group_bytes = 256; + info->have_tiling_info = FALSE; + if (info->dri->pKernelDRMVersion->version_minor >= 6) { + if (r600_get_tile_config(pScrn)) + info->allowColorTiling = xf86ReturnOptValBool(info->Options, + OPTION_COLOR_TILING, colorTilingDefault); + else + info->allowColorTiling = FALSE; + } else + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "R6xx+ KMS Color Tiling requires radeon drm 2.6.0 or newer\n"); } else - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "R6xx+ KMS Color Tiling requires radeon drm 2.6.0 or newer\n"); + info->allowColorTiling = xf86ReturnOptValBool(info->Options, + OPTION_COLOR_TILING, colorTilingDefault); } else - info->allowColorTiling = xf86ReturnOptValBool(info->Options, - OPTION_COLOR_TILING, colorTilingDefault); + info->allowColorTiling = FALSE; xf86DrvMsg(pScrn->scrnIndex, X_INFO, "KMS Color Tiling: %sabled\n", info->allowColorTiling ? "en" : "dis"); @@ -740,8 +746,6 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags) if (!xf86LoadSubModule(pScrn, "ramdac")) return FALSE; } - if (!RADEONPreInitAccel_KMS(pScrn)) goto fail; - if (pScrn->modes == NULL) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No modes.\n"); goto fail; |