1

This guide shows how to apply the timings, but it doesn't explain how to tune those timings. Adjusting monitor timings on Linux is different than with CRU on Windows.

1 Answer 1

2

Getting your current timings

gtf and cvt's timings won't neccessarily work (they don't for me). To get your current timings, run xvidtune -show.

Understanding the modeline syntax

PCLK HDISP HSYNCSTART HSYNCEND HTOTAL VDISP VSYNCSTART VSYNCEND VTOTAL Flags
148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
  • PCLK: Pixel clock in MHz. This is how fast the pixels are being sent to your display.
  • *DISP: Active pixels. This is the resolution.
  • *SYNCSTART: *DISP + front porch
  • *SYNCEND: *SYNCSTART + sync width
  • *TOTAL: *SYNCEND + back porch. This is the total amount of pixels in a line.

The flags aren't applicable to modern monitors; leave them as is.

If this all seems Greek to you, check out Chief Blur Buster's post.

Loosening up the timings

This is to find the maximum PCLK. Increase *TOTAL to large values -- not too large, or your refresh rate would be too low.

I suggest using this script:

#!/bin/bash
modeName=tmp1

xrandr --output HDMI-0 --mode 1920x1080

xrandr --delmode HDMI-0 "$modeName"  &&
   xrandr --rmmode "$modeName" 

sleep 1 && 
   xrandr --newmode "$modeName"  165.00 1920 1920 1921 1988 1080 1081 1082 1092 +hsync +vsync &&
   xrandr --addmode HDMI-0 "$modeName"  &&
   xrandr --output HDMI-0 --mode "$modeName" 

Replace the resolution on the line 4 with a resolution that works for you.

Replace the timings on line 10 with your timings, then run the script. If the timings don't work, run it again and immediately press ctrl+C.

If xrandr keeps spitting out errors and refuses to apply the mode even when the timings should work, either change modeName to something else or restart the X server.

This is what I end up with: 148.50 1920 2008 2052 2300 1080 1084 1089 1300. My refresh rate is now 50 Hz.

Finding the maximum PCLK

Increase PCLK until your monitor stops working or starts getting unstable (artifacts, periodic black screen). Mine stops working at 165.99, but since it may fluctuate, it's best to add some leeway. I choose 165.90. Now my refresh rate is 56 Hz.

Tightening up the timings

This is the part where you actually start gaining frames. Since your display is now running at its max frequency, we should decrease the amount of time it takes to draw one frame in order to increase the amount of frames being drawn.

First, you should decrease *DISP, *SYNCSTART, and *SYNCEND as much as possible through trial and error. I now have 165.90 1920 1920 1921 2300 1080 1081 1082 1300.

Next, you should consult your monitor's manual for the max horizontal frequency (HFREQ). Set HTOTAL to ceil(PCLK/HFREQ). My manual claims that my monitor's max HFREQ is 83 kHz. 165 900 000 / 83 000 is 1998.795... . Rounding that up yields 1999. Do the same for the vertical frequency. Alternatively, find the lowest *TOTAL through trial and error.

Now your monitor is overclocked! If it seems a little unstable, try lowering PCLK and repeating the above steps. Here's the timings I end up with: 165.50 1920 1920 1921 1994 1080 1081 1082 1092. My refresh rate is 76 Hz.

Tip:

PCLK = HTOTAL * VTOTAL * VFREQ (where VFREQ is refresh rate).

For example, if HTOTAL = 1994, VTOTAL = 1092, and you want a VFREQ of 76 Hz, your PCLK should be 1994 * 1092 * 76 = 165486048.

If PCLK = 165.90, HTOTAL = 1994, and VTOTAL = 1092, VFREQ will be 165900000/(1994*1092) = 76.190 Hz.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .