[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#736224: xrandr:an additional decimal place is required to distinguish different refresh rates in query



Package: x11-xserver-utils
Version: 7.7+2
Severity: normal
Tags: upstream patch

I have an Samsung eh5000 HDTV that I connect to my Intel Mobile Ivy
Bridge chipset via HDMI1 as reported by xrandr. Without modification
xrandr reports the display's native resolution as

1920x1080      60.0 +   59.9     30.0     24.0     30.0     24.0*

This is confusing because it lists 30.0 and 24.0 twice each. I
discovered that I could switch to either one by specifying --rate
30/--rate 29.97 or --rate 24/--rate 23.98.

With the attached patch, I have added one more decimal everywhere a
frequency is reported so that now it's clearer what the supported
refresh rates are and how to switch to them:

1920x1080     60.00 +  59.94    30.00    24.00    29.97    23.98* 

Kevin


-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (600, 'unstable'), (500, 'testing'), (400, 'stable'), (300, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.13.0.00 (SMP w/4 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages x11-xserver-utils depends on:
ii  cpp          4:4.8.2-2
ii  libc6        2.17-97
ii  libice6      2:1.0.8-2
ii  libx11-6     2:1.6.2-1
ii  libxaw7      2:1.0.11-1
ii  libxcursor1  1:1.1.14-1
ii  libxext6     2:1.3.2-1
ii  libxi6       2:1.7.2-1
ii  libxmu6      2:1.1.1-1
ii  libxmuu1     2:1.1.1-1
ii  libxrandr2   2:1.4.1-1
ii  libxrender1  1:0.9.8-1
ii  libxt6       1:1.1.4-1
ii  libxxf86vm1  1:1.1.3-1

x11-xserver-utils recommends no packages.

Versions of packages x11-xserver-utils suggests:
pn  cairo-5c        <none>
pn  nickle          <none>
pn  xorg-docs-core  <none>

-- no debconf information
--- a/xrandr/xrandr.c
+++ b/xrandr/xrandr.c
@@ -1566,7 +1566,7 @@
 	rr_outputs[o] = crtc->outputs[o]->output.xid;
     mode = crtc->mode_info->id;
     if (verbose) {
-	printf ("crtc %d: %12s %6.1f +%d+%d", crtc->crtc.index,
+	printf ("crtc %d: %12s %6.2f +%d+%d", crtc->crtc.index,
 		crtc->mode_info->name, mode_refresh (crtc->mode_info),
 		crtc->x, crtc->y);
 	for (o = 0; o < crtc->noutput; o++)
@@ -3592,7 +3592,7 @@
 		    XRRModeInfo	*mode = find_mode_by_xid (output_info->modes[j]);
 		    int		f;
 		    
-		    printf ("  %s (0x%x) %6.1fMHz",
+		    printf ("  %s (0x%x) %6.2fMHz",
 			    mode->name, (int)mode->id,
 			    (double)mode->dotClock / 1000000.0);
 		    for (f = 0; mode_flags[f].flag; f++)
@@ -3603,10 +3603,10 @@
 		    if (j < output_info->npreferred)
 			printf (" +preferred");
 		    printf ("\n");
-		    printf ("        h: width  %4d start %4d end %4d total %4d skew %4d clock %6.1fKHz\n",
+		    printf ("        h: width  %4d start %4d end %4d total %4d skew %4d clock %6.2fKHz\n",
 			    mode->width, mode->hSyncStart, mode->hSyncEnd,
 			    mode->hTotal, mode->hSkew, mode_hsync (mode) / 1000);
-		    printf ("        v: height %4d start %4d end %4d total %4d           clock %6.1fHz\n",
+		    printf ("        v: height %4d start %4d end %4d total %4d           clock %6.2fHz\n",
 			    mode->height, mode->vSyncStart, mode->vSyncEnd, mode->vTotal,
 			    mode_refresh (mode));
 		    mode->modeFlags |= ModeShown;
@@ -3633,7 +3633,7 @@
 			if (strcmp (jmode->name, kmode->name) != 0) continue;
 			mode_shown[k] = True;
 			kmode->modeFlags |= ModeShown;
-			printf (" %6.1f", mode_refresh (kmode));
+			printf (" %6.2f", mode_refresh (kmode));
 			if (kmode == output->mode_info)
 			    printf ("*");
 			else
@@ -3654,13 +3654,13 @@
 
 	    if (!(mode->modeFlags & ModeShown))
 	    {
-		printf ("  %s (0x%x) %6.1fMHz\n",
+		printf ("  %s (0x%x) %6.2fMHz\n",
 			mode->name, (int)mode->id,
 			(double)mode->dotClock / 1000000.0);
-		printf ("        h: width  %4d start %4d end %4d total %4d skew %4d clock %6.1fKHz\n",
+		printf ("        h: width  %4d start %4d end %4d total %4d skew %4d clock %6.2fKHz\n",
 			mode->width, mode->hSyncStart, mode->hSyncEnd,
 			mode->hTotal, mode->hSkew, mode_hsync (mode) / 1000);
-		printf ("        v: height %4d start %4d end %4d total %4d           clock %6.1fHz\n",
+		printf ("        v: height %4d start %4d end %4d total %4d           clock %6.2fHz\n",
 			mode->height, mode->vSyncStart, mode->vSyncEnd, mode->vTotal,
 			mode_refresh (mode));
 	    }

Reply to: