Friday, September 16, 2016

Virtual Reality Experiences - PC Prep

When the consumer versions of both the Oculus Rift and HTC Vive were announced, I was pleasantly surprised to find they had similar minimum requirements:

So, it seemed as though I'd be set if I decided to splash out on a head mounted display (HMD)... Until Frontier Studios made a rather disconcerting announcement regarding their own requirements for playing Elite Dangerous in VR. The minimum specs they described were:

Oof, an i7 and a 980?!? I wonder if there's any leeway there?

"We are passionate about VR and Elite Dangerous is leading the way in cutting edge VR software development. This is what we consider to be a minimum spec to have a good experience on forthcoming consumer VR headsets."

OK, well maybe not.

This placed me in a bit of a dilemma: I really wanted to be able to play Elite in VR, but I wouldn't be able to afford to upgrade my GPU as well as buying a VR kit. After a brief period of personal crisis, I realised I would be able to squeeze some more performance out of my current system by attempting to overclock it. I never managed to get around to this when I originally built my main rig, Icarus, because of perceived thermal issues (something I have since resolved, and the potential subject of another blog post).

Overclocking and Benchmarking

I won't go into detail of my overclocking adventures, but suffice to say I spent a lot of time attempting trying to get my CPU to 4.3Ghz, but I couldn't quite achieve that, so I ended up with a 4.2Ghz overclock that seems stable. That's still a decent jump up from the stock 3.8GHz of the 4760K. The GPU was a tad easier; I managed to get the GPU clock of my MSI GTX 970 Gaming 4G from the stock 1253MHz boost clock to 1504MHz without too much trouble, while the memory clock I managed to get to 3.5GHz.

I actually think my 970 could clock much higher; the temperature of the GPU was still within acceptable limits (the maximum it reached during load tests was 75°C), but I appeared to be hitting voltage and power limits. This was despite me already having set the over-voltage as high as I can in MSI Afterburner. Check out this screen cap of the Afterburner profiling utility:

If you look at the power, volt and OV max limits, you can see them flapping between 0 and 1. The power limit is reached when the TDP of the card is hit and the GPU has to throttle, while the voltage and OV max limits are for when the voltage limit is reached. Now, I can't increase the voltage limit any further with Afterburner, nor is it possible to tweak the power limit through utilities like this. Instead, I'll need to consider the use of vBIOS modding... Something for the future maybe?

So, I'd achieved a stable overclock for both my CPU and graphics card, but what would I use to test how much performance I'd rung out of my hardware. In the past, I've used a combination of synthetic and real world tests to benchmark, but being in a bit of a hurry, I decided to keep it simple this time. I decided to use Unigine Valley, which is successor to the Unigine Heaven benchmark, but I also just become aware of a utility that Valve had released that I thought would be perfect to use as well: the SteamVR Performance Test. This runs a small section of Valve's own VR title, The Lab, and provides a score out of 11, based on how well your system can render the VR content at 90 frames-per-second (the current optimum frame-rate for consuming VR). It's also able to provide feedback based on the results, suggesting possible upgrades to your system.

As usual, I ran each benchmark 5 times at stock and again when the system was overclocked. Then I took the median of each set of results and used that to compare the before and after configurations.

Performance Comparison

So, as you can see from the below graphs, I managed to get an increase in performance of at least 10% in the two tests, which isn't bad for a few hours work. I'd love to see what I could achieve with a vBIOS mod increasing the power and voltage limits.

The most encouraging factor here is that even at stock settings, my system hardly had any frames rendered at less than the optimum 90fps, and once overclocked it never missed this target at all. However, the real question was how this would translate to VR performance in Elite: Dangerous. Something I couldn't really achieve without a VR headset... But that's another story!

Saturday, September 10, 2016

The Blog is Back!

I am resurrecting this blog after an absence of a couple of years! Back when I founded my own company, AzTek Native Ltd., I migrated all the content from here over to the new blog. Since then, I had written a few consumer-tech related posts on the company blog, but mostly I had been focusing on DevOps, infrastructure automation, etc. A few months back I realised that I was diluting the company message, but I still wanted to be able to write about the stuff I enjoy tinkering with in my spare time, hence the decision to bring this site back online. Even with the occasional consumer-related posts being made, I still have some updates that I probably should mention here. I may get around to writing individual posts for each of them, but for now, I'll just list 'em off:
  • I bought an MSI Geforce GTX 970 Gaming 4GB to replace my Sapphire Radeon 6950.


  • I managed to finally overclock my i5-4670K after isolating the heat dissipation issue.

  • My wife and I had our disused garage converted into a new home office, where we can both work and play side-by-side.

  • I bought myself an HTC Vive...

Oh, and there's one other, pretty important thing... My wife and I are expecting (hence the new office construction)!!

Sunday, July 12, 2015

Noise Pollution: Replacing Fans on a Sapphire Radeon HD 6950 2GB

A few years back, I bought a Sapphire Radeon HD 6950 2GB for my main gaming PC, which I've since replaced with an MSI GTX 970 Gaming 4GB card. However, towards the end of it's service, one or both of the fans on the card started to make a lot of noise; especially when they spun at faster speeds needed to keep the thing cool while I played games! I've wanted to put the card back into service in my wife's PC, but not before I'd done something about that racket, so I found some compatible fans on Ebay and went about replacing them. Here's my check list of items I used, in case you fancy giving this a go yourself
My trusty Sapphire Radeon HD 6950

Four screws holding the heat sink in place.

Heat sink removed

Removing the plastic shroud meant unscrewing these little fellas

Bleaurgh... Dust build up in the heat sink

The plastic shroud and noisy fan(s)

Shroud with fans removed

Replacement fans

New fans fitted to the shroud

GPU covered in thermal paste - this needs to go!

All clean - this was so reflective, taking a photo was almost impossible!

"Job's a good-un", as they say...

The procedure took me just under two hours to complete and so far seems to have been a complete success; the card has returned to normal noise levels when under load. Something interesting that I noticed when I had the heat sink off is that it doesn't appear to make direct contact with the video memory chips on the board, but the clearance between the two doesn't facilitate the installation of after-market heat sinks. This is a bit disappointing as video memory can get quite hot as well as the GPU itself!

Wednesday, June 10, 2015

Head Tracking with FaceTrackNoIR

I've been aware of head tracking solutions since I started playing Arma 2; the game (and it's sequel, Arma 3) has the ability to "freelook", meaning you can continue to walk or point your weapon in a certain direction, while you scan your surrounding environment. This is extremely useful from a tactical standpoint, but it's also particularly helpful when piloting vehicles (especially helicopters). Probably the most well-known commercial solution is TrackIR; this kit comes with everything you need to start using head tracking in games that support it, but it's a little on the expensive side (around £175). Despite some serious consideration, I never actually bought the kit myself; I didn't think it was worth it considering the relatively small number of games I play that would benefit from it, especially when consumer versions of both the Oculus Rift and HTC Vive are not far off. So I was extremely excited when I happened across a post discussing head tracking on the Elite: Dangerous subreddit that mentioned a free alternative: FaceTrackNoIR. As it's name suggests, this little bit of software can use a webcam attached to your machine to track your actual face; when you hit "start", it identifies the basic shape of your face, then translates your movements into the desired protocol for the game to understand.
Tracking my FACE!

The application has quite a few configuration options and it took me a fair amount of time tinkering with them to achieve the desired results, but to say I was impressed is an understatement: being able to simply move my head and look down at the spot where I was trying to land my heli was not only super cool, but useful too! Once I started using it, I didn't want to stop, however it does have a couple of drawbacks:
  • It's sensitive to poor lighting - I actually found if it was particularly bright outside, the software would often lose or simply not be able to recognise my face.
  • The CPU usage is fairly high - it seemed to fluctuate between roughly 5-10% when in use; that's a fair amount of precious CPU cycles that could be put to use by a game engine (Arma 3 being particularly CPU hungry)!
After having a play around with the different settings in the application and reading the FaceTrackNoIR wiki, I discovered that there are a few different tracking sources available, one of which works in a similar fashion to TrackIR. This helps to improve accuracy and/or reduce the CPU load, but unfortunately is still susceptible to poor lighting and also requires an IR clip providing three points to track. However, on the same Reddit post I mentioned earlier, somebody commented that they had bought a "relatively cheap" IR clip to use with this particular mode of operation: the DelanClip. Given the low cost, I thought I'd give it a go myself. The kit I bought is the most basic model and comes with a USB powered IR clip, two cable ties and a couple of sections of coloured film that can be used to create a light filter for your webcam:
Attached DelanClip

Webcam with filters attached.

After I'd finished setting up, I downloaded the latest version of the PointTracker plugin (overwriting the version that ships with FaceTrackNoIR), tweaked my config and fired it up. I found that I only really had to tweak the curves that define the translation between your actual head and your in-game character to my liking (here's my config file if you're interested) and make sure there were no direct light sources in the webcam's field of view.
3x IR point tracking

I've definitely had more luck using the PointTrack plugin than the FaceAPI; there has been much fewer incidents of the software "losing" me. If there's anybody reading this wondering just how beneficial free-look in games can be, let me just show off a couple of Elite: Dangerous screen caps I took while using FaceTrackNoIR:
Checking my flight path is clear before leaving the landing pad.

Tracking an enemy ship that would have otherwise flown out of my line of sight.

Of course, these actions could be achieve using regular input (mouse, keyboard or even a hat-switch on a joystick), but I honestly feel that head tracking provides a more natural and (sigh) immersive experience. The only thing that will surpass this (in my opinion) will be a full VR headset, which I'll definitely be wanting to get my hands on once consumer devices are available!

Wednesday, September 24, 2014

Nvidia Game24

I was very disappointed to not be able to attend the Game24 event in London last week; an unfortunate combination of poor connectivity and memory on my part! However, I was determined to take part in the 24 hour celebration of PC gaming (oh, and the launch of a couple of little products by Nvidia), so my wife and I set up a mini-LAN party in our lounge:
ALL THE SCREENS

The Two Towers: Icarus (white) and Daedalus (blue).

I watched a fair bit of the Nvidia Twitch streams; it was nice to see such a wide range of topics discussed and different interviews. However, we mostly just played a lot of Guild Wars 2!

Cleanin' Out My Closet: MacBook Pro SSD Upgrade and Clean Up

Despite my dislike for all things Apple, I do actually own a MacBook Pro 6,2 (Mid 2010) that I've been using as a work machine for the last 4 years. This system has helped me understand a great deal about multibooting operating systems, GPT vs. MBR and (U)EFI booting, so it's not all bad! For a while now, the system has been showing it's age, with the mechanical hard disk the primary bottleneck. It's also been in desperate need of both a physical clean out of all the dust that's gradually built up over time and a re-installation of the three operating systems I have on the machine. I finally made the decision to actually try and carry out this much needed maintenance after the recent release of Corsair's MX100 SSD:

It's not the fastest SATA SSD you can buy currently, but it certainly has the lowest price per GB (at the time of writing): I ended up buying the 512GB model from Amazon, costing just under £150, to replace the HDD in my Mac. To facilitate the transfer of my data back onto my laptop, I picked up a cheap USB 3.0 HDD caddy as well. As I was going to have to open the system up, I decided to not only clean out the dust from the system, but to completely strip the laptop down and replace the thermal paste under the heat sink. I already have a couple of tubes of Arctic Silver 5 thermal paste, so I simply added some ArctiClean and some compressed air to my order. Later, after commencing the disassembly of the system, I was unable to find my Torx screwdrivers necessary to complete the process, so I ended up buying a replacement set:

I have replaced many storage devices in Apple laptops over the past few years, so I was comfortable with the SSD upgrade, however, the cleanout and thermal paste replacement seemed like it would be a far more complex task. Thankfully, iFixIt have some excellent guides on the maintenance of Apple products and I found a specific guide for removing the heat sink assembly; it's worth noting that iFixIt have flagged this process as "difficult", confirming my initial fears! Still, I was determined to take on the challenge, as I'll demonstrate with pictures I took throughout the process:
Removing the bottom of the laptop's chassis; this step is necessary for pretty much all the hardware maintenance you'll need to perform on this particular model.

Eww.

Double eww.

WTF!?! After removing the heat sink, I was greeted with this sight: this seems to be far too much thermal paste.

The CPU and GPU ready for fresh thermal paste. I stopped short of scraping the remnants from around the chip edges as I was afraid I'd break something - I'm used to chips with integrated heat spreaders!

After putting the system back together,  I made a small prayer and offering to the Machine Spirit within and powered it on: success! It booted without issue and I was pleased to find that during the arduous process of installing/updating the three operating system, it not only performed a lot better (thanks to the SSD), but it was a lot quieter. However, since I've been working with the machine for a few days, I've noticed that the fans still spin up fairly regularly while I'm working in Linux; but there seems to be rather high CPU utilisation, even after switching to the proprietary Nvidia driver. Something for me to investigate further; at least I know it's able to actually dissipate the heat after I've cleaned out the heat sink!