Blob Blame Raw
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index d5bb24d..7992646 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -2935,32 +2935,41 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
 	    if (crtc_max_Y > 8192)
 		crtc_max_Y = 8192;
 	} else {
+
 	    /*
-	     * note that these aren't really the CRTC limits, they're just
-	     * heuristics until we have a better memory manager.
+	     * <ssp> In radeon_driver.c it says:
+	     *        *
+	     *        * note that these aren't really the CRTC limits, they're just
+	     *        * heuristics until we have a better memory manager.
+	     *	      *
+	     *	  then it goes on to heuristically assign numbers to crtc_max_X/Y
+	     *        I think that's wrong because xf86InitialConfiguration will already pick a
+	     *	  reasonable value for xf86CrtcSetSizeRange() - there is no need for driver
+	     *	  heuristics. So I think it should just set the size range to whatever the crtc
+	     *	  limits are. Does anyone know the actual values?
+	     * <ajax> depends on whether your front buffer is tiled
+	     * <ssp>  Ah, so info->MaxSurfaceWidth would be a resonable setting
+	     * <ajax> 3968 if it is.  otherwise i think it's 8k for r500+ and 4k for previous
+	     * <ssp>  Cool, I'll patch it to do something like that in Fedora then
+	     * <ajax> ta
+	     *
 	     */
-	    if (pScrn->videoRam <= 16384) {
-		crtc_max_X = 1600;
-		crtc_max_Y = 1200;
-	    } else if (IS_R300_VARIANT) {
-		crtc_max_X = 2560;
-		crtc_max_Y = 1200;
-	    } else if (IS_AVIVO_VARIANT) {
-		crtc_max_X = 2560;
-		crtc_max_Y = 1600;
-	    } else {
-		crtc_max_X = 2048;
-		crtc_max_Y = 1200;
-	}
+	    if (info->allowColorTiling) {
+		crtc_max_X = info->MaxSurfaceWidth;
+		crtc_max_Y = info->MaxLines;
+	    }
+	    else {
+               if (IS_AVIVO_VARIANT) {
+		    crtc_max_X = 8192;
+		    crtc_max_Y = 8192;
+		}
+		else {
+		    crtc_max_X = 4096;
+		    crtc_max_Y = 4096;
+		}
+	    }
 	}
-	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Max desktop size set to %dx%d\n",
-		   crtc_max_X, crtc_max_Y);
-	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-		   "For a larger or smaller max desktop size, add a Virtual line to your xorg.conf\n");
-	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-		   "If you are having trouble with 3D, "
-		   "reduce the desktop size by adjusting the Virtual line to your xorg.conf\n");
-	
+
     /*xf86CrtcSetSizeRange (pScrn, 320, 200, info->MaxSurfaceWidth, info->MaxLines);*/
 	xf86CrtcSetSizeRange (pScrn, 320, 200, crtc_max_X, crtc_max_Y);