Somewhere along the line, NVidia got a lot stricter in their monitor handling. If you used to be able to run X at high resolutions but all you can get after an upgrade is something like 1024x768 then it is likely that you have been caught by the clock check bug. You typically get lines like these in your Xorg log (/var/log/Xorg.0.log):
(WW) NVIDIA(0): No valid modes for "1920x1200"; removing. (WW) NVIDIA(0): No valid modes for "1600x1200"; removing.To get the X server to tell you exactly why it's removing those two modes, try starting X with -logverbose 6 as arguments, and it will log something like this instead:
(II) NVIDIA(0): Validating Mode "1600x1200": (II) NVIDIA(0): 1600 x 1200 @ 60 Hz (II) NVIDIA(0): For use as DFP backend. (II) NVIDIA(0): Mode Source: EDID (II) NVIDIA(0): Pixel Clock : 162.00 MHz (II) NVIDIA(0): HRes, HSyncStart : 1600, 1664 (II) NVIDIA(0): HSyncEnd, HTotal : 1856, 2160 (II) NVIDIA(0): VRes, VSyncStart : 1200, 1201 (II) NVIDIA(0): VSyncEnd, VTotal : 1204, 1250 (II) NVIDIA(0): H/V Polarity : +/+ (WW) NVIDIA(0): Mode is rejected: PixelClock (162.0 MHz) too high for (WW) NVIDIA(0): Display Device (Max: 150.0 MHz).If this used to work for you, and all you did was upgrade Ubuntu (or some other distro), then edit your /etc/X11/xorg.conf file and add the line
Option "ModeValidation" "NoMaxPClkCheck"inside either the Screen or the Device group. Restart X and it should start up in a higher mode again. For more interesting options to set, try looking at the NVidia X driver documentation. Leave a comment if you're lost and I'll try to guide you through the tricky parts.