4K Programming – Is It Worth It?

For the last few months I have been wanting to switch to 4K for my development. I have been using three screens for the longest time, and I definitely find my personal productivity gets a sizable boost when using >1 screens. I figured if I could replace my main screen with a 4K screen, productivity could only increase further.

And I have thankfully been proven correct. But it has been far from plain sailing.

I opted for the Dell P2715Q. I’ve had Dell monitors for as long back as I can remember.

I’ve since mentioned this to a few people (techies), and all of them slated Dell…

As a quick tl;dr, if all you care about is some pictures, there are some desktop shots of PHPStorm at 4K at the end of this post.

Pre 4k

My first purchase was my trusty old 2408WFP, a 24″ display that could pump out a great-for-it’s-time 1920×1200. It’s built like an Challenger tank, and has been incredibly reliable over the years – whether for coding or for playing hours of Battlefield, it served, and continues to serve admirably.

For the longest while, that 24″ Dell screen was my daily driver. A real workhorse. But technology moves on, and about 3 years ago I replaced it with another Dell screen – a 27″ U2713HMt. The extra pixels were what convinced me to upgrade, bumping my main display up to 2560×1440.

Sadly though, the quality of the U2713HMt always felt lesser than the old 24″. Rather than being solid like a tank, it felt flimsy and dare I say, “cheap”, from the moment I took it out of the box. Unsurprisingly, it has suffered from a small cluster of dead pixels – thankfully down in the bottom left where I rarely see them, but still, disappointing.

All the same, the increased resolution had kept me going for a good long while, and overall I have been pleased with the U2713HMt, but never delighted.

However, the pull of extra pixels is stronger than a star destroyer’s tractor beam. And sure enough, I ended up dead set on upgrading to 4K. Mmmmm 3840×2160. All that extra desktop.

Who Needs a Fancy Graphics Card?

I did a small amount of research – mistake #1. I wanted to know if my current graphics card would be sufficient to power the P2715Q up to 3840×2160 @ 60hz. My graphics card being an aging ATI Radeon HD6950, I was dubious.

I specifically asked the Dell sales support guy whether I could get 3840×2160 @ 60hz, and he assured me that yes, a HDMI cable would get my up to this resolution at 60hz.

Sadly, that is not true. HDMI will get you 3840×2160 but only at 30hz. Trust me when I say, 30hz at that resolution is unusable. The mouse cursor jerks around the screen like no ones business. It sucks.

It should have been pretty telling that HDMI was a no-go as Dell don’t bother to include a HDMI cable. They instead send a mini displayport to displayport cable which, unfortunately, my old HD6950 card couldn’t even use. Awesome.

Think: Linux First, Then Install Windows

Ubuntu has been my day-to-day OS now for at least a year. ATI cards and Linux are notoriously unhappy bed fellows, so I figured I’d keep the screen and treat myself to a new PC with an NVidia card instead.

A quick look at the NVidia website revealed that of course, only their top end GTX series would support 4K. So I plumped for an Asus Strix 970 GTX.

Everything arrived from Amazon, and after a few false starts (faulty mobo, faulty PSU) I was up and running.

The motherboard could accept a single m.2 SSD hard drive, so I opted for one of those, and a second regular old Kingston SSD Now drive to dual boot with Windows – hey, a GTX 970 should get to do a little gaming to flex it’s muscles, right?

Alas, I’d ordered an mSATA instead of an m.2 drive (schoolboy error), so had to wait a little while longer to get my drives in and configured. I already knew I’d be using the Kingston drive for Windows, so went ahead and installed Windows first rather than Linux. Coding could continue on the macbook in the mean time.

m.2 Excursion

As a side note, it’s worth pointing out that an m.2 drive – on the Asus z97 k at least – will consume two of the available SATA ports on your motherboard.

This means that whilst the board comes with 6 SATA ports, if you use the m.2 slot, you will lose ports 5 and 6. You can still plug drives into them, but it’s an either / or situation.

If you have SATA ports 5, 6, or both 5 and 6 in use, and you plug in the m.2 drive, drives on both SATA ports 5 and 6 will ‘disappear’. You can switch this in the bios, but you cannot have both the m.2 socked and SATA 5&6 available concurrently. This sucks. I have had to buy yet more hardware to get around this problem.

Thankfully the m.2 drive arrived and after a bit of cursing (the screw size was tiny, and I didn’t have a tiny screwdriver handy), I got Ubuntu installed on the drive and we was a-rockin’.

Gaming First

I booted without networking (important, as you will see shortly), and sure enough, Windows loaded up nicely after about 15 minutes in glorious 3840×2160 @ 60hz. Momentarily I panicked as everything was absolutely tiny. Still, it all looked great, and an hour later I had Far Cry 4 installed and running at Ultra quality in 4K. Amazing.

There have been a few moments of stuttering – after all, this is only a GTX970, not the more powerful GTX980 or Titan models. These moments have been few and far between (maybe 2 or 3 times in 16+ hours of gaming), and were only visible when flying about the map and looking behind me.

Overall, gaming has been fantastic. However, I have only played one game 🙂

P2715Q Stuck in Power Save Mode

As I mentioned, I had originally ordered an mSATA drive instead of the required m.2 drive.

My replacement m.2 SSD would only be delivered in 4-5 working days. In the mean time, two days went by and gaming was glorious.

Then, on the third day, I went for a cheeky late night play on Far Cry and wtf, no output was displaying on the P2715Q. Whatever I tried, it would think about it for a second, then go in to Power Save Mode, and that was that.

Amazing.

After a long back and forth with Dell technical support, they agreed to send me out a replacement screen. The guy on the phone kept telling me to try HDMI – as that gives better connectivity. I explained about the 30hz / 60hz issue and this was apparently news to him.

One of his tips was to do a factory reset on the screen. This is likely good advice, but herein lies a hardware level bug. You can’t get to any other options than ‘input select’ if you don’t have a working input. Seems a bit daft.

Thankfully I had a spare HDMI cable. I tried this and could get to Windows in 30hz. All ‘good’. I tried Bios updates, Video card firmware updates, even tried a Windows update – but apparently Windows 10 updates don’t work like the good old days.

I even went and bought a ‘hi speed’ HDMI cable, which still only worked at 30hz. I dun’ got suckered in.

I’d figured it was just the screen playing up. But the replacement display arrives and lo-and-behold, exact same issue. What?

By now this PC had had a replaced PSU, Mobo, and monitor. The number of potential faulty parts was growing shorter.

As it transpires, this is a very well known issue with the NVidia GTX 9xx range. Maybe it’s a driver issue, maybe it’s firmware. Either way, the bugger will not boot on display port. It just reverts to that damn power save mode message. But thankfully, I have a ‘fix’.

My P2715Q Power Save Mode Fix

Now, this isn’t a true fix. It’s a workaround. But it does work reliably.

First, the likely culprit is your NVidia card. Boo, hiss. Should have bought ATI… etc.

Here’s what I did.

First, plug in a HDMI cable, and your Display Port cable. Plug the HDMI cable into both the monitor and your graphics card.

Next, be sure to update your motherboard bios, and your video card firmware. I followed Google instructions for this, it wasn’t that hard at all.

Then, reboot and go to the bios in HDMI mode.

Once in the bios, figure out which key combination exits the bios and starts the reboot process. Remember this process. On mine it is F10, and return.

Whilst the PC is still powered on, pull out the HDMI cable from your gfx card, leaving only the display port cable plugged in.

Then switch the monitor to display port mode from the buttons on the screen itself.

Finally, do the reboot key press sequence (F10, return).

The monitor should now be working in display port mode – giving 3840×2160 @ 60hz.

I mean, this is exactly the sort of thing I expect to have to do after spending a combined £700+ on two pieces of cutting edge hardware. Being a paid beta tester is my cup of tea.

This should work now until you have to power down. After you power down, unfortunately, the procedure will need repeating the next time you want to use your expensive new computer. Awesome.

Continued Problems

If you still have problems with getting your mini display port to work, as best as I can tell, the problem is with the NVidia GTX range as a whole. There are threads of 40+ pages on the official NVidia forums of owners complaining about this very issue going back to early 2014.

Linus makes his feelings known
Linus makes his feelings known

It seems NVidia really couldn’t care less about solving this problem, at this current point in time.

Fortunately I had my old Dell 2408WFP which has come to my rescue, again… somewhat.

I decided to make like a stockbroker and flip the 2408WFP into portrait mode. I opted to remain with the old DVI cable, which the GTX970 will automatically assume is the main display, if the port is in use.

This forces the P2715Q into second place.

Amazingly, this actually helps the display port issue, as now I seem to have hit some sort of reliable setup. I still have to power on, hit the bios, then exit the bios and only then start up ‘normally’. But 9 out of 10 times, the display port issue is resolved.

For that remaining time, the best solution is to simply boot into the OS, log in, then pull the power out of the P2715Q, wait 10 seconds, then plug the power cable back in and it suddenly starts working.

I mean, talk about a garbage solution, but at least it is reliable.

There’s a certain degree of neck strain involved, as most of the time I miss the bios prompt and end up booting into the OS with the 2408WFP in landscape mode, but physically tiled into portrait mode :/

Early Adoption

So, here we are. Ubuntu, 3840×2160 @ 60hz, it is marvellous.

In terms of development real estate, as best I can tell, the only way this could get better is if you were on a 5K iMac. But then you’d have a bastardised mobile GPU and no potential to play games 🙂

Would I recommend it? Yes!

Are there lots of bugs? Oh heck, yes! Thankfully the software side of the equation seems up to date. The hardware, not so much.

NVidia’s driver works well in Ubuntu.

The text size is really small, but much like when I got my retina macbook, the initial change over is not so much fun, but after a few days of use, my eyes have adjusted to the smaller text size and I can appreciate it.

If I really need the extra big text, I simply drag the document / browser window / whatever on to the second screen which is at more readable resolution.

If you have poor eye sight, or easily get eye strain, then you may want to head to a local PC store and see it for yourself before taking the plunge.

Whether you’re gaming, making music / doing audio or video production, or coding, 4k really is nice, but be warned, it’s not a bug free ride. Not yet, anyway.

PHPStorm at 4K Desktop Pictures

I have only just got my dev environment back up and running – so haven’t had time yet to download all the vendor files (hence the missing dependencies in the screenshots below).

PHPStorm running full screen on Ubuntu 15.04 at 4k
PHPStorm running full screen on Ubuntu 15.04 at 4k

This gives some idea of the vastness of the screen size at 4k.

I don’t use the IDE like this – but I wanted to see this picture for myself before purchasing, and even went into the “local” (read: 45 miles away) Mac store to demo PHPStorm on their retina screen. Alas, I failed on that excursion. So here it is, in 4k glory.

I do prefer the default OSX font for code…

PHPStorm at 4k with other apps - plenty of screen real estate
PHPStorm at 4k with other apps – plenty of screen real estate

This is a little more real world.

I actually don’t work like this though. I keep my browser open on my 2408 in portrait mode. It works really well – I’m typing this on there right now.

Still, there’s plenty of room to have two full size code panes open, and the file tree without needing to scroll on the left.

If you’re thinking the text is tiny, you are right. It really is, and takes a bit of adjusting – much like with a retina Macbook at full resolution.

Ubuntu unity desktop at 4k
Ubuntu unity desktop at 4k

Lastly, a picture of the default Ubuntu 15.04 desktop with nothing on it, at 4k.

Update: 10th June 2016

This one kinda blew me away:

win-7-in-virtual-machine-1600-1200-at-4k