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