summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-05-25 18:17:15 -0400
committerAlex Deucher <alexdeucher@gmail.com>2010-08-05 17:36:55 -0400
commitcc0a167ff2db9b097891883ded147af1d67e4407 (patch)
treeb550611dd81a6812d533a99b0a19ec6dbd779732
parentb5bfdbd70d9671250957ccd41dfc8818850d257e (diff)
r6xx/r7xx: default to micro (1D) tiling for now
SW de-tiling used in the r600c 3D driver has issues with certain configurations. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
-rw-r--r--src/radeon_dri2.c32
1 files changed, 25 insertions, 7 deletions
diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index 9697bbc8..4cafbc65 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -99,21 +99,30 @@ radeon_dri2_create_buffers(DrawablePtr drawable,
} else {
/* tile the back buffer */
switch(attachments[i]) {
case DRI2BufferDepth:
case DRI2BufferDepthStencil:
if (info->ChipFamily >= CHIP_FAMILY_R600)
- flags = RADEON_CREATE_PIXMAP_TILING_MACRO;
+ /* macro is the preferred setting, but the 2D detiling for software
+ * fallbacks in mesa still has issues on some configurations
+ */
+ flags = RADEON_CREATE_PIXMAP_TILING_MICRO;
else
flags = RADEON_CREATE_PIXMAP_TILING_MACRO | RADEON_CREATE_PIXMAP_TILING_MICRO;
break;
case DRI2BufferBackLeft:
case DRI2BufferBackRight:
case DRI2BufferFakeFrontLeft:
case DRI2BufferFakeFrontRight:
- flags = RADEON_CREATE_PIXMAP_TILING_MACRO;
+ if (info->ChipFamily >= CHIP_FAMILY_R600)
+ /* macro is the preferred setting, but the 2D detiling for software
+ * fallbacks in mesa still has issues on some configurations
+ */
+ flags = RADEON_CREATE_PIXMAP_TILING_MICRO;
+ else
+ flags = RADEON_CREATE_PIXMAP_TILING_MACRO;
break;
default:
flags = 0;
}
pixmap = (*pScreen->CreatePixmap)(pScreen,
drawable->width,
@@ -183,22 +192,31 @@ radeon_dri2_create_buffer(DrawablePtr drawable,
pixmap->refcnt++;
} else {
/* tile the back buffer */
switch(attachment) {
case DRI2BufferDepth:
case DRI2BufferDepthStencil:
- if (info->ChipFamily >= CHIP_FAMILY_R600)
- flags = RADEON_CREATE_PIXMAP_TILING_MACRO;
- else
- flags = RADEON_CREATE_PIXMAP_TILING_MACRO | RADEON_CREATE_PIXMAP_TILING_MICRO;
+ /* macro is the preferred setting, but the 2D detiling for software
+ * fallbacks in mesa still has issues on some configurations
+ */
+ if (info->ChipFamily >= CHIP_FAMILY_R600)
+ flags = RADEON_CREATE_PIXMAP_TILING_MICRO;
+ else
+ flags = RADEON_CREATE_PIXMAP_TILING_MACRO | RADEON_CREATE_PIXMAP_TILING_MICRO;
break;
case DRI2BufferBackLeft:
case DRI2BufferBackRight:
case DRI2BufferFakeFrontLeft:
case DRI2BufferFakeFrontRight:
- flags = RADEON_CREATE_PIXMAP_TILING_MACRO;
+ if (info->ChipFamily >= CHIP_FAMILY_R600)
+ /* macro is the preferred setting, but the 2D detiling for software
+ * fallbacks in mesa still has issues on some configurations
+ */
+ flags = RADEON_CREATE_PIXMAP_TILING_MICRO;
+ else
+ flags = RADEON_CREATE_PIXMAP_TILING_MACRO;
break;
default:
flags = 0;
}
pixmap = (*pScreen->CreatePixmap)(pScreen,
drawable->width,