diff options
Diffstat (limited to 'src/radeon_exa.c')
-rw-r--r-- | src/radeon_exa.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/radeon_exa.c b/src/radeon_exa.c index 9c40da79..9df7251e 100644 --- a/src/radeon_exa.c +++ b/src/radeon_exa.c @@ -318,6 +318,17 @@ Bool RADEONPrepareAccess_CS(PixmapPtr pPix, int index) if (!driver_priv) return FALSE; + if (info->ChipFamily >= CHIP_FAMILY_R600) { + uint32_t tiling_flags = 0, pitch = 0; + + ret = radeon_bo_get_tiling(driver_priv->bo, &tiling_flags, &pitch); + if (ret) + return FALSE; + /* untile in DFS/UTS */ + if (tiling_flags & (RADEON_TILING_MACRO | RADEON_TILING_MICRO)) + return FALSE; + } + /* if we have more refs than just the BO then flush */ if (radeon_bo_is_referenced_by_cs(driver_priv->bo, info->cs)) { flush = TRUE; |