Ubuntu – HDMI/VGA connection cuts borders of screen or creates blurry text

hdminvidiavga

Ok this is an extension of another problem I had with a VGA connection and an Nvidia Geforce GT 440 card. The question has been updated to include other problems related to HDMI Video and also since I have confirmed that it also affects ATI video cards. The explanation is the following:

I have a Soneview 32' TV. This TV has many connections including VGA (First reason I bought it), HDMI (Second reason but did not have a HDMI cable at that time) and DVI.

I have had this TV for little over a month now, actually I had it to celebrate the release of Ubuntu 11.10 and started using it exactly on that date (I know too much fan there but hey, I like geek stuff). I started using it with the VGA cable. After 2 weeks I bought an Nvidia GT440 card. The previous 9500GT which was using the VGA connection was working correctly with no problems whatsoever.

I installed the GT440 and the first problem that I encountered using this latest card is mentioned here: Black screen on latest Nvidia/Ati Cards when starting LightDM/Ubuntu. The solution to this problem was to actually disconnect then connect again the VGA cable. This would result in the screen showing me the lightdm screen for my login. If I did not disconnect then connect the cable I could be there forever thinking that there is no video signal. The black screen problem was solved in a later update for 12.04 and already solved using the default 12.10. So using 12.04 and updating or using 12.10 solved the black screen with HDMI problem.

I got tired of looking for answers that did not work and for solutions that made me literally have to install Ubuntu again. I just went and bought an HDMI cable and changed the VGA one for that one. It worked and I did not have to disconnect/connect the cable but now I have this problem when using any resolution. My normal resolution is 1920×1080 (This TV is 1080HD) so in VGA I could use this resolution with no problem, but on HDMI am getting the borders cut out. Here is a pic:

enter image description here

As you can see from the image, the Launcher icons only show less than 50% of their width. Forget about the top and bottom parts, I can access them with the mouse but I can not visualize them in the screen. It is like it's outside of the TVs view. Basically there is like 20 to 30 pixels gone from all sides.

I searched around and came to running xrand --verbose to see what it could detect from the TV. I got this:

cyrex@cyrex:~$ xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 320 x 175, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 (0x164) normal (normal) 0mm x 0mm
    Identifier: 0x163
    Timestamp:  465485
    Subpixel:   unknown
    Clones:    
    CRTC:       0
    CRTCs:      0
    Transform:  1.000000 0.000000 0.000000
                0.000000 1.000000 0.000000
                0.000000 0.000000 1.000000
               filter: 
  1920x1080 (0x164)  103.7MHz *current
        h: width  1920 start    0 end    0 total 1920 skew    0 clock   54.0KHz
        v: height 1080 start    0 end    0 total 1080           clock   50.0Hz
  1920x1080 (0x165)  105.8MHz
        h: width  1920 start    0 end    0 total 1920 skew    0 clock   55.1KHz
        v: height 1080 start    0 end    0 total 1080           clock   51.0Hz
  1920x1080 (0x166)  107.8MHz
        h: width  1920 start    0 end    0 total 1920 skew    0 clock   56.2KHz
        v: height 1080 start    0 end    0 total 1080           clock   52.0Hz
  1920x1080 (0x167)  109.9MHz
        h: width  1920 start    0 end    0 total 1920 skew    0 clock   57.2KHz
        v: height 1080 start    0 end    0 total 1080           clock   53.0Hz
  1920x1080 (0x168)  112.0MHz
        h: width  1920 start    0 end    0 total 1920 skew    0 clock   58.3KHz
        v: height 1080 start    0 end    0 total 1080           clock   54.0Hz
  1920x1080 (0x169)  114.0MHz
        h: width  1920 start    0 end    0 total 1920 skew    0 clock   59.4KHz
        v: height 1080 start    0 end    0 total 1080           clock   55.0Hz
  1680x1050 (0x16a)   98.8MHz
        h: width  1680 start    0 end    0 total 1680 skew    0 clock   58.8KHz
        v: height 1050 start    0 end    0 total 1050           clock   56.0Hz
  1680x1050 (0x16b)  100.5MHz
        h: width  1680 start    0 end    0 total 1680 skew    0 clock   59.9KHz
        v: height 1050 start    0 end    0 total 1050           clock   57.0Hz
  1600x1024 (0x16c)   95.0MHz
        h: width  1600 start    0 end    0 total 1600 skew    0 clock   59.4KHz
        v: height 1024 start    0 end    0 total 1024           clock   58.0Hz
  1440x900 (0x16d)   76.5MHz
        h: width  1440 start    0 end    0 total 1440 skew    0 clock   53.1KHz
        v: height  900 start    0 end    0 total  900           clock   59.0Hz
  1360x768 (0x171)   65.8MHz
        h: width  1360 start    0 end    0 total 1360 skew    0 clock   48.4KHz
        v: height  768 start    0 end    0 total  768           clock   63.0Hz
  1360x768 (0x172)   66.8MHz
        h: width  1360 start    0 end    0 total 1360 skew    0 clock   49.2KHz
        v: height  768 start    0 end    0 total  768           clock   64.0Hz
  1280x1024 (0x173)   85.2MHz
        h: width  1280 start    0 end    0 total 1280 skew    0 clock   66.6KHz
        v: height 1024 start    0 end    0 total 1024           clock   65.0Hz
  1280x960 (0x176)   83.6MHz
        h: width  1280 start    0 end    0 total 1280 skew    0 clock   65.3KHz
        v: height  960 start    0 end    0 total  960           clock   68.0Hz
  1280x960 (0x177)   84.8MHz
        h: width  1280 start    0 end    0 total 1280 skew    0 clock   66.2KHz
        v: height  960 start    0 end    0 total  960           clock   69.0Hz
  1280x720 (0x178)   64.5MHz
        h: width  1280 start    0 end    0 total 1280 skew    0 clock   50.4KHz
        v: height  720 start    0 end    0 total  720           clock   70.0Hz
  1280x720 (0x179)   65.4MHz
        h: width  1280 start    0 end    0 total 1280 skew    0 clock   51.1KHz
        v: height  720 start    0 end    0 total  720           clock   71.0Hz
  1280x720 (0x17a)   66.4MHz
        h: width  1280 start    0 end    0 total 1280 skew    0 clock   51.8KHz
        v: height  720 start    0 end    0 total  720           clock   72.0Hz
  1152x864 (0x17b)   72.7MHz
        h: width  1152 start    0 end    0 total 1152 skew    0 clock   63.1KHz
        v: height  864 start    0 end    0 total  864           clock   73.0Hz
  1152x864 (0x17c)   73.7MHz
        h: width  1152 start    0 end    0 total 1152 skew    0 clock   63.9KHz
        v: height  864 start    0 end    0 total  864           clock   74.0Hz

....Many Resolutions later...

  320x200 (0x1d1)   10.2MHz
        h: width   320 start    0 end    0 total  320 skew    0 clock   31.8KHz
        v: height  200 start    0 end    0 total  200           clock  159.0Hz
  320x175 (0x1d2)    9.0MHz
        h: width   320 start    0 end    0 total  320 skew    0 clock   28.0KHz
        v: height  175 start    0 end    0 total  175           clock  160.0Hz
  1920x1080 (0x1dd)  333.8MHz
        h: width  1920 start    0 end    0 total 1920 skew    0 clock  173.9KHz
        v: height 1080 start    0 end    0 total 1080           clock  161.0Hz

If it helps, the Refresh Rate at 1920×1080 is 60. There is a flickering effect at this resolution using HDMI but not VGA which I imagine is related to the borders cut off issue am asking here.

Best Answer

The following solves the problem on lower resolutions than 1920x1080 or on other TVs (My father has a Sony TV where this problem is also solved) because the problem lies in the TVs themselves. Some TVs that are used for Computers offer 1920x1080 for VGA only but not for HDMI. Others need configuration in the TV monitor and lastly in some rare cases some have incompatible resolutions between the video card (what the video card can do) and the TV (What the TV resolution can show). The following solutions try to fix problems like black borders, space left in the sides or top and bottom and graphic corruption when using 1920 on a TV and letters look weird:

NVIDIA WAY

  1. Go to Nvidia-Settings and there will be an option that will have more features if a HDMI cable is connected. In the next pic the option is DFP-1 (CNDLCD) but this name changes depending on what device the PC is connected to:

enter image description here

  1. Uncheck Force Full GPU Scaling

What this will do for resolutions LOWER than 1920x1080 (At least in my case) is solve the flickering problem and fix the borders cut by the monitor.

  1. Save to Xorg.conf file the changes made after changing to a resolution acceptable to your eyes.

TV WAY

  1. If your TV has OSD Menu and this menu has options for scanning the screen resolution or auto adjusting to it, disable them. Specifically the option about SCAN.

  2. If you have an option for AV Mode disable it.

  3. Basically disable any option that needs to scan and scale the resolution. Test one by one. In the case of my father's TV this did it. In my case, the Nvidia solved it for lower resolutions.

NOTE (Comment made by User James - https://askubuntu.com/users/39762/james): For some Samsung LCD TVs. Using the TV Remote Control go to Options -> Picture Options and set the Picture Option to "Fit to Screen".

VIDEO QUALITY

If you happen to have a 1080p TV and have lower quality on 1920x1080 like the following 2 images then it is recommended that you actually lower the resolution to 1680x1050 to still have enough space for everything but avoid the lower quality that appears on the highest resolution (I have tested and this affects 16:9 and 16:10 resolutions with 50 or 60 refresh rate in the max resolution. It depends in some part with the TV and if it supports 16:9, 16:10 or both. The other part responsible is the driver.):

The following image is from a 1680x1050 resolution:
enter image description here

The following image is from a 1920x1080 resolution:
enter image description here

As you can see from both images, 1920 cuts the sides and the text looks blurry and something that came from a over compress JPG file. In the case of 1680, the quality is excellent and everything can be read without going blind.

In VGA or HDMI my text looks blurry (While browsing with Firefox/Chrome, Using Nautilus, etc..)

One reason might be that the FXAA option was activated, this is only available on later Nvidia drivers and cards that support the Antialiasing FXAA feature:

enter image description here

Do NOT activate this feature if the result is a blurry text that appears to stay blurry for a couple of seconds every time an window is moved or changed, making vision tough when trying to read anything. Just deactivate the feature and logout or reboot.

MANUALLY ADJUSTING THE RESOLUTION

If you happen to have one of the newest Nvidia Drivers, then some of the above points will not work. For this cases, Open the nvidia-settings app and go to X Server Display Configuration. Click on Advanced... and change the following options to a resolution slightly lower than the one you are using:

  • Video Port In
  • Video Port Out
  • Panning

enter image description here

Note that the TV I am using does not support 1680x1040. Instead I selected 1920x1080 ad then edited the 3 mentioned options to a slightly lower resolution so I could "move" the X/Y coordinates to see the Launcher Icons and Top Pane. In the Video Port Out option, The 2 values after the resolution are the X and Y coordinates. They will normally appear like 1680x1040+0+0 but after you edit the values and Save the changes you will see the Launcher and Top panel appear. In my case I put 48 for X and 30 for Y. This made the panel and Launcher correctly show in TV (Viewport).