[PATCH 1/2] xrandr: Use more decimal places when printing various rates

Aaron Plattner aplattner at nvidia.com
Wed Feb 19 16:22:19 PST 2014


On 05/31/2013 07:01 AM, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Using just one decimal place for dotclock and refresh rates loses quite
> a bit of information. When dealing with 60Hz vs. 59.94Hz refresh rate
> modes for example, it's useful to see at least two decimal places. For
> the dotclock in similar cases, three decimal places seems quite a bit
> better than just one.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>   xrandr.c | 18 +++++++++---------
>   1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/xrandr.c b/xrandr.c
> index 94e5c2e..9467c29 100644
> --- a/xrandr.c
> +++ b/xrandr.c
> @@ -1564,7 +1564,7 @@ crtc_apply (crtc_t *crtc)
>   	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++)
> @@ -3589,7 +3589,7 @@ main (int argc, char **argv)
>   		    XRRModeInfo	*mode = find_mode_by_xid (output_info->modes[j]);
>   		    int		f;
>   		
> -		    printf ("  %s (0x%x) %6.1fMHz",
> +		    printf ("  %s (0x%x) %6.3fMHz",
>   			    mode->name, (int)mode->id,
>   			    (double)mode->dotClock / 1000000.0);
>   		    for (f = 0; mode_flags[f].flag; f++)
> @@ -3600,10 +3600,10 @@ main (int argc, char **argv)
>   		    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;
> @@ -3630,7 +3630,7 @@ main (int argc, char **argv)
>   			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
> @@ -3651,13 +3651,13 @@ main (int argc, char **argv)
>
>   	    if (!(mode->modeFlags & ModeShown))
>   	    {
> -		printf ("  %s (0x%x) %6.1fMHz\n",
> +		printf ("  %s (0x%x) %6.3fMHz\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));
>   	    }
> @@ -3747,7 +3747,7 @@ main (int argc, char **argv)
>   	    if (rate == rates[i])
>   		break;
>   	if (i == nrate) {
> -	    fprintf (stderr, "Rate %.1f Hz not available for this size\n", rate);
> +	    fprintf (stderr, "Rate %.2f Hz not available for this size\n", rate);

This is referring to an RandR 1.1 rate, which is returned by the server 
as a signed short.  It'll never match if the user specifies anything 
other than an even decimal, so it doesn't really make sense to print 
more digits here.

>   	    exit (1);
>   	}
>       }
>

-- 
Aaron


More information about the xorg-devel mailing list