[Bug 2552] New: Stretching the output to fill laptop LCD pannel should be optional.

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Feb 16 08:10:57 PST 2005


Please do not reply to this email: if you want to comment on the bug, go to    
       
the URL shown below and enter yourcomments there.     
   
https://bugs.freedesktop.org/show_bug.cgi?id=2552          
     
           Summary: Stretching the output to fill laptop LCD pannel should
                    be optional.
           Product: xorg
           Version: 6.8.1
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Driver/Radeon
        AssignedTo: xorg-bugzilla-noise at freedesktop.org
        ReportedBy: rsbrand at gmail.com


The default behavior of the Radeon driver (w/ 250 Lf; M9) is to use the
chipset's RMX facility to stretch the output to fill the LCD display. This
results in ugly/annoying smearing of fonts and other graphics when stretching
from 1280x1024 to 1400x1050.

The BIOS is set to not expand but the Radeon driver does it anyway.

The following patch (to the code from the Suse 9.2 update) turns off the
stretching if the ``NoStretch'' option is set to true.

Unfortunately the output is now in the upper lefthand corner instead of being
centered and I have no idea what needs to be modified to center the output.

I do not know if the registers are programmed correctly when this patch is used
but I do get a non stretched display on my laptop.

Also, it would be really nice if the stretching could be toggled (like windows
can) without restarting the xserver.


diff -wubr ORIG/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
BUILD/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
--- ORIG/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	2005-02-13
18:10:11.000000000 -0500
+++ BUILD/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	2005-02-16
06:54:02.531263544 -0500
@@ -164,7 +164,8 @@
     OPTION_SUBPIXEL_ORDER,
 #endif
     OPTION_SHOWCACHE,
-    OPTION_DYNAMIC_CLOCKS
+    OPTION_DYNAMIC_CLOCKS,
+    OPTION_NO_STRETCH
 } RADEONOpts;
 
 static const OptionInfoRec RADEONOptions[] = {
@@ -209,6 +210,7 @@
 #endif
     { OPTION_SHOWCACHE,      "ShowCache",        OPTV_BOOLEAN, {0}, FALSE },
     { OPTION_DYNAMIC_CLOCKS, "DynamicClocks",    OPTV_BOOLEAN, {0}, FALSE },
+    { OPTION_NO_STRETCH,     "NoStretch",        OPTV_BOOLEAN, {0}, FALSE },
     { -1,                    NULL,               OPTV_NONE,    {0}, FALSE }
 };
 
@@ -2881,8 +2883,11 @@
 		p->VSyncEnd   = p->VSyncStart + info->VSyncWidth;
 		p->Clock      = info->DotClock;
 
+		if (!xf86ReturnOptValBool(info->Options, OPTION_NO_STRETCH, FALSE))
+			{
 		p->Flags     |= RADEON_USE_RMX;
 	    }
+	    }
 
 	    maxVirtX = MAX(maxVirtX, p->HDisplay);
 	    maxVirtY = MAX(maxVirtY, p->VDisplay);
@@ -3099,7 +3104,11 @@
 	new->VSyncStart = info->PanelYRes + info->VOverPlus;
 	new->VSyncEnd   = new->VSyncStart + info->VSyncWidth;
 	new->Clock      = info->DotClock;
+
+	if (!xf86ReturnOptValBool(info->Options, OPTION_NO_STRETCH, FALSE))
+		{
 	new->Flags     |= RADEON_USE_RMX;
+		}
 
 	new->type      |= M_T_USERDEF;
 
@@ -3150,8 +3159,11 @@
 		new->VSyncStart = info->PanelYRes + info->VOverPlus;
 		new->VSyncEnd   = new->VSyncStart + info->VSyncWidth;
 		new->Clock      = info->DotClock;
-		new->Flags     |= RADEON_USE_RMX;
 
+		if (!xf86ReturnOptValBool(info->Options, OPTION_NO_STRETCH, FALSE))
+			{
+			new->Flags     |= RADEON_USE_RMX;
+			}
 		new->type      |= M_T_DEFAULT;          
     
     
--           
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email         
     
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


More information about the xorg-bugzilla-noise mailing list