I upgraded my desktop Linux system to Fedora 21 recently, and decided instead of trying to get the proprietary NVIDIA driver working, I’d just switch back to the open-source Nouveau driver. I uninstalled every RPM that had “nvidia” in the name (I use rpmfusion to keep the installation clean), restarted, and was dismayed to see that the system decided I could only run at 800×600. I didn’t have time to fix it immediately, so I shut down and went on with my day. That evening, I started it up again ready to fix it…and was surprised to see that the resolution had been detected correctly this time.
It wasn’t obvious at the login screen, but the picture extended just a little past the edge of the monitor. I could tell because the mouse cursor would actually move off the screen in all directions. Once I logged in, and I could look at things near the edge, it was more obvious. And if I looked closely, I could tell that a lot of things that should have been sharp pixel lines were actually antialiased.
TL;DR: It was actually a monitor setting, and apparently the proprietary driver had been overriding it.
Back in the day, on a CRT, I’d have just adjusted the monitor. But with an LCD, that shouldn’t even be an issue. (Shouldn’t.) If you’re running at native resolution, you’re running at native resolution. I checked the monitor anyway (a Hannspree), and of course there were no height/width settings anywhere, though I did see some position settings that were disabled.
I couldn’t find any discussions, howtos, or reports of other people dealing with the same issue. The closest I found was someone who was displaying their desktop on a TV, and the picture extended beyond the screen boundary. In retrospect, that should have been a clue.
So I decided to experiment with the monitor settings just to see what I could find. There was one called HDMI Mode, which was set to Video Mode. I changed it, figuring maybe it would enable those height/width settings. The other option was PC Mode…and the picture instantly snapped to the right size. I assume “video mode” was intended for TV input, to prevent any black bars from appearing around the edge. But it never made a difference when I was using NVIDIA’s drivers, so I assume they were overriding the setting.