Jj's web stream

Configuring Samsung 4K U28D590 with Nvidia GTX650 on Ubuntu 14.10

I'm writing this because I wish I had found some of these tips before making this purchase.

Last night I got myself a new 28" monitor. The Samsung U28D580. This is a 4K monitor for an extremely good price. Seemed like a great buy.

Before rushing into it. I searched for information on my particular configuration and if it was supported. The very few reviews (more like comments) I found said that it was a great monitor and that it worked perfectly. They weren't lying.

I found a video review that indicated that it was a great monitor, and I don't have very particular needs since I will just be looking at text and images most of the time. I'm no gamer nor do I watch much video other than Youtube. I did fail to catch the bit at the beginning where Linus goes a bit fast on the type of connections needed, after a bit of set up I came to this again and realized what happened.

Prior of buying this monitor I had a dual screen setup with a 24" and 21" monitors running independent X sessions both with Fluxbox running at 1680x1050 and 1440x900 with equal DPI. I've used this setup for the last few years and I made myself at home with it. But these monitors were already several years old and both have failed on me once in the past that required them to have some internal changed at some point to keep them running, and today they're still going very damn well. Still, I felt that it was a good time to indulge in a new monitor. My friends recommended against this monitor because it was not an IPS panel and it did not have VESA mounting support. Both reasons were not very strong for my particular usage so I went with it.

To my luck, my Asus GTX650 had 3 output ports, VGA, DVI and HDMI so I could plug in the new monitor to the free HDMI port allowing me to have a 3 head set up, great!

Configuration

In order to ensure that I had the latest drivers I took the opportunity to update my Ubuntu's version to something recent, I went with 14.10.

After that, I installed the Nvidia drivers 319 that were recent to support my card fully. I configured the screens as I wanted using nvidia-settings and manual tweaking on my xorg.conf file.

I hadn't messed with my Xorg.conf file in years and I was caught by surprise when I didn't find it in its expected location under /etc/X11/ . Turns out that Ubuntu will now place your configuration under /usr/share/X11 and will split your conf file in many number prefixed files in the same style as your rc-d startup scripts. Thankfully you can still put your good old /etc/X11/xorg.conf back in place and it will be used instead of Ubuntu's directory.

After a reboot, all screens turned on, but the new fancy monitor was not on the resolution I paid for and it looked very blurry. I checked xrandr and it was using 1920x1080, 1/4th of my 4K and there was no 4K mode available.

I found the following commands to enable the desired resolution:

$ cvt 3840 2160 <Keia>
# 3840x2160 59.98 Hz (CVT 8.29M9) hsync: 134.18 kHz; pclk: 712.75 MHz
Modeline "3840x2160_60.00" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync
$ xrandr --newmode "3840x2160_60.00" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync
$ xrandr --addmode HDMI-0 3840x2160_60.00 <Keia>
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 21
Current serial number in output stream: 22

Which, as you can see, didn't succeed. This was because my current configuration simply did not have support for such mode.

I decided to look for 4K solutions in general, not anymore for my particular configuration and I ran into this ubuntuforums thread that had the solution, I needed to add this configuration to my Screen section:

Option "ModeValidation" "AllowNon60hzmodesDFPModes, NoEDIDDFPMaxSizeCheck, NoVertRefreshCheck, NoHorizSyncCheck, NoDFPNativeResolutionCheck, NoMaxSizeCheck, NoMaxPClkCheck,  AllowNonEdidModes, NoEdidMaxPClkCheck"

After doing so, I could get my full 4K resolution working, but something was not quite right. I only had 30hz and not the promised 60hz. Then I went to that Youtube video I mentioned above and realized that now I was blocked by hardware, my Asus GTX 650 does not have a Displayport output, and Displayport 1.2 is needed to get the full 60hz.

I proceeded to continue with my configuration since there wasn't much I could do about the frequency until I get a new video card (which might be happening soon). And I could tell by looking at Vim that the colors were not quite the same as in my other screens. I tried playing with white balance on the monitor but no configuration would get colors right. And not only that, I didn't get crisp color definitions.

I found that this monitor has a setting "Game mode" that was off. I switched it to "Always on" and voila! I had the right colors! So now it was all almost in place.

Now, to start getting comfortable with this I needed start running apps, and here's when I ran with this nobody told me:

Stuff nobody told me

Problems with having monitors with highly different DPI side by side

Naturally, running 4K on 28" will make your pixels be tiny! So you need to crank up your terminal and GTK font size, sure! no problem. Until you start opening apps on the old monitors and they are all huge.

I will now need to run separate gtkrc configurations per app and there will be apps that I open on each monitor so they look about right.

The "pixel" is gone

All content needs to be zoomed in, with that I mean websites, so I tweaked Firefox's about:config to have all pages zoomed in, and Google Chrome as well, so now each site and browser has a comfortable zoom level. But now they don't render at 1:1 pixel ratio, so I don't have more concept of "pixels", it is just now "what reads comfortably" which really should be a step forward, but not when as a web developer it is still needed to adjust and align items to pixel dimensions. The lost of the pixel in browser is critical since now screen captures will not be able to be measured in pixels and the size of things between pages cannot be compared as they may be using different zoom options. This is serious shit.

Cursor voyage requires a bigger table

Mouse movement. Given that the new workspace is more than 2x the size horizontally than what my 24" offered, now I need to lift my mouse and do another pass to get across all workspace real state and it feels very slow on the 4K screen. Incrementing the speed makes it now too fast for the older monitors.

The stand is crap (yes I was told) combined with poor vertical viewing angle

This monitor's stand is fixed. Absolutely 0 adjustment, so you will need a base or books to get it on the right height. Specially since its vertical viewing angle is not very good and light grays completely fade out if you got your eye level on the higher end of the monitor and you got such image on the lower part, you won't notice.

Pixels are still present to be computed

You now have many more millions of pixels to deal with, so 1GB will not cut it to get the best redraw performance, this will get addressed with my new video card.

Current thoughts

All in all, I am still not thrilled about my new purchase. The monitor is pretty good quality for the price. But the paradigm change is not small, at least not for me. If I could return the monitor would I? I wish I had a trial and had someone tell me about this before.

It is still too soon though, it's been not even one day of full use. I am finding more tweaking options. Using xrandr --scale looks a bit blurry and I can't get crisp text from it. So far just increasing font sizes and zoom levels for apps is working fine, and I feel that having no pixels is a good thing going forward but it plays pretty bad when your have "old" normal DPI monitors next that need particular tweaking.

DSC09469