Blob Blame Raw
diff -up xf86-video-ati-6.11.0/src/drmmode_display.c.jx xf86-video-ati-6.11.0/src/drmmode_display.c
--- xf86-video-ati-6.11.0/src/drmmode_display.c.jx	2009-03-12 16:00:29.000000000 -0400
+++ xf86-video-ati-6.11.0/src/drmmode_display.c	2009-03-12 16:04:43.497426645 -0400
@@ -153,6 +153,9 @@ copy_fb_contents (drmmode_ptr drmmode,
 	PixmapPtr src_pixmap, dest_pixmap;
 	ScreenPtr pScreen = pScrn->pScreen;
 
+	if (info->ChipFamily >= CHIP_FAMILY_R600)
+		return;
+
 	dest_fb = drmModeGetFB(drmmode->fd, dest_id);
 	src_fb = drmModeGetFB(drmmode->fd, src_id);
 	if (src_fb == NULL || dest_fb == NULL) {
diff -up xf86-video-ati-6.11.0/src/radeon_driver.c.jx xf86-video-ati-6.11.0/src/radeon_driver.c
--- xf86-video-ati-6.11.0/src/radeon_driver.c.jx	2009-03-12 16:00:29.317422095 -0400
+++ xf86-video-ati-6.11.0/src/radeon_driver.c	2009-03-12 16:00:29.340421256 -0400
@@ -1991,6 +1991,15 @@ static Bool RADEONPreInitAccel(ScrnInfoP
     }
     info->accel_state->fifo_slots                 = 0;
 
+    if (info->drm_mode_setting && info->ChipFamily >= CHIP_FAMILY_R600) {
+	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+		   "Using shadowfb for KMS on R600+\n");
+	info->r600_shadow_fb = TRUE;
+	if (!xf86LoadSubModule(pScrn, "shadow"))
+	    info->r600_shadow_fb = FALSE;
+	return TRUE;
+    }
+
     if ((info->ChipFamily == CHIP_FAMILY_RS100) ||
 	(info->ChipFamily == CHIP_FAMILY_RS200) ||
 	(info->ChipFamily == CHIP_FAMILY_RS300) ||
diff -up xf86-video-ati-6.11.0/src/radeon_video.c.jx xf86-video-ati-6.11.0/src/radeon_video.c
--- xf86-video-ati-6.11.0/src/radeon_video.c.jx	2009-03-12 16:00:29.309397119 -0400
+++ xf86-video-ati-6.11.0/src/radeon_video.c	2009-03-12 16:00:29.344420788 -0400
@@ -297,7 +297,10 @@ void RADEONInitVideo(ScreenPtr pScreen)
 	RADEONInitOffscreenImages(pScreen);
     }
 
-    if (info->ChipFamily != CHIP_FAMILY_RV250) {
+    if (info->ChipFamily >= CHIP_FAMILY_R600 && info->drm_mode_setting) {
+	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+		   "Disabling textured video for KMS On R600+\n");
+    } else if (info->ChipFamily != CHIP_FAMILY_RV250) {
 	if ((info->ChipFamily < CHIP_FAMILY_RS400)
 #ifdef XF86DRI
 	    || (info->directRenderingEnabled || info->drm_mode_setting)