diff -up xf86-video-ati-6.9.0/src/radeon_driver.c.orig xf86-video-ati-6.9.0/src/radeon_driver.c
--- xf86-video-ati-6.9.0/src/radeon_driver.c.orig 2008-09-11 09:58:15.000000000 -0400
+++ xf86-video-ati-6.9.0/src/radeon_driver.c 2008-09-11 09:58:40.000000000 -0400
@@ -2932,32 +2932,41 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, in
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);