I'm just going to throw this out there for those of you who have an Acer Aspire Revo or similar computer with an HDMI output that you are connecting to your TV, and your TV does NOT have the pixel-to-pixel setting or some variation thereof (I have a Sharp LC-42SB45U TV that doesn't have anything like this), and you are tired of having the top and bottom menu bars either fully or partially cut off. Oh, and the NVIDIA graphics driver either doesn't show an Overscan Compensation slider, or if it does, the slider doesn't actually do anything (I only found ONE early version of the 190 series driver, specifically 190.42, that showed the slider, and although I could move it around, it didn't change the screen size one bit).
The main thing I must emphasize is that this is experimental and if you try it, you do so at your own risk
. There are spurious reports of TV's being damaged by improper settings and while I've never read any first-person accounts of that happening, I'm telling you right now that there's always that possibility. So don't do this unless you understand what's happening at each step of the way and are willing to assume any risk.
So, the first thing is to create a new xorg.conf. To do that, see this thread:
Basically you want to follow the instructions in the first post of that thread. The important part of this is that when you are finished, you will have a ModeLine that is correct for YOUR TV. Do NOT use a generic ModeLine - follow the instructions there and find the ModeLine that is right for your particular TV. There are other guides out there on how to do this but the important thing is that you get the ModeLine and other xorg.conf settings correct, and that you don't get flicker, etc. when watching fast-moving videos.
Another thing to note is that you MIGHT have to use Synaptic to remove the following packages, if they have been installed. I don't know if you have to remove all of these but I do know that when they were installed in a recent upgrade, suddenly the settings in xorg.conf were ignored. So if you make changes in xorg.conf and nothing seems to happen, remove the following (you can always reinstall them again if need be):
Be sure to reboot after removing those packages. After that your xorg.conf should be recognized. One other thread about xorg.conf that might prove helpful is this one:
In particular, if you just can't seem to get rid of flicker, backup your xorg.conf file, then download and run the nvidia.sh file from the above link as instructed, then try copying your xorg.conf (that you made using the instructions in the link a few paragraphs above) back. It's important to get rid of any flicker in video playback before proceeding.
Once you have a ModeLine that works, go into XBMC or Boxee (in XBMC you may have to switch to something other than the default skin to see the information you need - I know the Xperience skin shows it) and adjust the overscan compensation. But the important thing is, as you do, note how many pixels you are moving in on each side, and on the top and bottom. In my case, when I adjusted it so the corners match the corners of my physical display, I had moved in 50 pixels on each side (total 100) and 27 pixels top and bottom (total 54). Subtract those totals from your display size (probably 1920 x 1080, so in my case I had 1820 x 1026). You don't HAVE to do this, but it takes the guesswork out of finding the right size (otherwise you'll probably have to use good old trial-and-error).
Next, go to the Calculator for video timings v. 1.9 at http://www.epanorama.net/faq/vga2rgb/calc.html
and do the following: First, copy your current, working ModeLine (that you know produces flicker-free video) into the box in Section 1 labeled "Or give Xfree86 modeline to import" - be sure to copy and paste the entire ModeLine, including the actual word "ModeLine" at the start. Then click the "Import ModeLine" button. That should fill in the blanks in Section 2. Then go to Section 3 and click the "Calculate" button. In section 4, in the box labeled "Xfree86 modeline (to be included to XConfig file):", you should see a ModeLine that is exactly the same as the one you put into it, except possibly for whitespace between values. If you don't, then something's wrong with the ModeLine you're feeding into it, so get that issue resolved before you go any further.
Next, go back to Section three and change ONLY the values in the two "Resolution" boxes. These should be changed to the width and height, in pixels, of the VISIBLE portion of your display (in my case, the values "1820" and "1026" mentioned two paragraphs above). Click on the "calculate" button again. This will give you a new ModeLine, but don't just cut and paste it into xorg.conf verbatim. For example, I got a ModeLine that read like this:
Modeline "1820x1026" 148.50 1820 1908 1952 2100 1026 1030 1035 1071 +hsync +vsync
BUT my xorg.conf wasn't looking for a ModeLine named "1820x1026", so I changed just that part back to "1920x1080". The part in quotes is just a name for that mode, and since the line is referenced elsewhere in xorg.conf (and possibly in other software) it's easier just to name the new ModeLine as "1920x1080", or whatever your original ModeLine was named. Once you have made that adjustment, replace the existing ModeLine (or comment it out and add the new one) in xorg.conf.
EDIT: I have since read on several sites that the horizontal setting must be evenly divisible by 8. Well, I don't know about that, but the above worked for me. 1820 is divisible by 4, but not 8, so I'd either have to round up to 1824 or down to 1816 to meet this requirement (and some online ModeLine calculators will enforce this). Rounding down to 1816 would give me this (again, remember to rename it):
Modeline "1816x1026" 148.50 1816 1904 1948 2096 1026 1030 1035 1071 +hsync +vsync
This gave me hardly noticeable black bands at the sides of the screen. Had I chosen round up to 1824, the generated ModeLine would have been this:
Modeline "1824x1026" 148.50 1824 1912 1956 2104 1026 1030 1035 1071 +hsync +vsync
Note that the calculator page does have buttons that allow you to move the display left, right, up, or down in case it's not centered properly.
If you have multiple ModeLines in your xorg.conf, you can do the same procedure with each, although it's highly likely that only one of them will ever be used when the desktop is displayed. I will note that I tried keeping both my modified and original ModeLines in the file, with the thought that I could select between the two, but that caused weird things to happen (in particular, Ubuntu sent its menu bars sort of north by northwest). I also note that after modifying the ModeLine as shown above, the resulting Vertical Sync Frequency and Field Rate values are no longer an even 60 Hz, but nevertheless it worked, whereas when I attempted to adjust the Pixel clock frequency (by trial and error) to give me an even 60 Hz, that worked for the desktop BUT then I had flicker in my video playback in XBMC (some days it seems you just can't win).
Now, having said all this, I would love NVIDIA to death if they would just put the Overscan Compensation slider back into the "NVIDIA X Server Settings" utility, and make it actually work. But the above procedure worked for me, and if you are brave enough to try it, it might work for you. And if anyone knows a better way to do this (other than replace the TV with one that has a 1:1 pixel setting), please let me know. Or if you know how to get into any hidden service menu on the Sharp LC-42SB45U that might have this setting, I'd love to know about that, too!
Edit: If anyone tries this, please pay attention to the quality of the displayed video in XBMC and Boxee before and after. After using this fix for a while, I began to notice that colors seemed a bit washed out… not by a huge amount, but it just seemed that some videos didn't have the nice bright colors that they'd had. It MIGHT have been just my imagination, so I'd appreciate any feedback on that if anyone else tries this (or if you know why that might happen, please comment).
Edit: This is my final xorg.conf, so you can see the options I used, in case you're having trouble making this work - but remember, unless YOU have a Sharp LC-42SB45U TV, these numbers will not be right for you. For that matter, I'm not even sure they are right for me, I just know that this seems to have solved the overscan problem (for now, anyway).
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 1.0 (buildmeister@builder75) Tue Dec 8 21:04:28 PST 2009
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
# generated from default
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
# generated from default
HorizSync 15.0 - 75.0
VertRefresh 55.0 - 76.0
ModeLine "1920x1080" 148.50 1816 1904 1948 2096 1026 1030 1035 1071 +hsync +vsync
# # # For comparison purposes, here is my original ModeLine:
# ModeLine "1920x1080" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Option "ExactModeTimingsDVI" "TRUE"
VendorName "NVIDIA Corporation"
Option "ModeValidation" "NoEdidModes"
Option "HWCursor" "false"
Option "DynamicTwinView" "false"
Option "Composite" "Disable"