On Mon, Feb 17, 2014 at 03:00:37AM -0800, Kevin Mitchell wrote: > 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* > > Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=75086 > > Signed-off-by: Kevin Mitchell <[email protected]>
I sent and identical (probably) patch [1] maybe half a year ago. Either it just fell through the cracks or xrandr isn't maintained since one cared enough to apply it. I also sent another patch [2] to make the refresh rate for interlaced modes more accurate. [1] http://lists.x.org/archives/xorg-devel/2013-May/036354.html [2] http://lists.x.org/archives/xorg-devel/2013-May/036355.html > --- > xrandr.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/xrandr.c b/xrandr.c > index 0a182c3..b25da47 100644 > --- a/xrandr.c > +++ b/xrandr.c > @@ -1566,7 +1566,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 %7.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++) > @@ -3641,7 +3641,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) %7.2fMHz", > mode->name, (int)mode->id, > (double)mode->dotClock / 1000000.0); > for (f = 0; mode_flags[f].flag; f++) > @@ -3652,10 +3652,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 %7.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 %7.2fHz\n", > mode->height, mode->vSyncStart, mode->vSyncEnd, > mode->vTotal, > mode_refresh (mode)); > mode->modeFlags |= ModeShown; > @@ -3682,7 +3682,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 (" %7.2f", mode_refresh (kmode)); > if (kmode == output->mode_info) > printf ("*"); > else > @@ -3703,13 +3703,13 @@ main (int argc, char **argv) > > if (!(mode->modeFlags & ModeShown)) > { > - printf (" %s (0x%x) %6.1fMHz\n", > + printf (" %s (0x%x) %7.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 %7.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 %7.2fHz\n", > mode->height, mode->vSyncStart, mode->vSyncEnd, > mode->vTotal, > mode_refresh (mode)); > } > @@ -3799,7 +3799,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); > exit (1); > } > } > -- > 1.9.0.rc3 > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel -- Ville Syrjälä [email protected] http://www.sci.fi/~syrjala/ _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
