Saturday, July 8, 2017

Driving Me Loopy: Custom Water Loop Upgrade

Following on from my last post, I decided to do something about the (albeit minor) performance issues with my VR setup. I had seriously considered a BIOS mod for my 970, going so far as to download the necessary tools to dump out the BIOS image and fiddle with the voltage settings. However, in the end, I went with what could be considered an even crazier option: I bought a load of new hardware! Specifically, I bought the following (affiliate links ahoy):

MSI Geforce GTX 1070 Seahawk EK

The 1070 was the lesser card to the 1080 in Nvidia's Pascal launch lineup, I managed to pick up the MSI Geforce GTX 1070 Seahawk EK edition for a very reasonable price from Overclockers.co.uk after Nvidia announced the 1080Ti. It comes with a factory installed waterblock manufactured by EK Water Blocks, which meant I also needed to purchase...

XSPC Raystorm Pro Ion AX360 Watercooling Kit

A water-cooling kit. As this would be my first custom cooling loop, I tried to make things as simple as I could for myself and bought this starter kit, which includes:

2x XSPC Black Chrome Compression Fittings

I ordered two more compression fittings in addition to the six supplied in the kit, as I'd be incorporating the 1070 into the loop.

2x XSPC G1/4" Plug Fitting Black Chrome

I bought two of these, but this turned out to be unnecessary, as the 1070 ships with it's own plugs. However, I opted to install these two anyway as they're black chrome, which matched my other fittings, whereas the pair shipped with the Seahawk are just chrome. A small detail, but it matters!

XSPC HighFlex Hose 7/16" ID 5/8" OD 15.9/11.1mm 2m Clear

Some additional tubing in case I needed it and/or made any mistakes when cutting.

XSPC Heavy Duty Hose Cutter

Maybe unnecessary, but I wanted to make sure I had nice, clean cuts in my tubing to help mitigate against leaks.

2x Mayhems Pastel White Premixed Watercooling Fluid 1L

I had originally thought about using white tubing in place of white coolant, as I'd read reports of coloured liquids clogging up loop components over time. However, once I started looking into what additional components I might need to prevent the build up of organic materials in the loop (e.g. kill coils, biocides, etc.), I just decided to go with a pre-mixed coolant. As the kit I was using provided clear tubing, I went with pastel white to give me the desired look. I ended up ordering two bottles of this, and I think I may have used around half of one when filling my loop!

Distilled Water - 20 Litre (20L) - Pure Steam Distilled - 0ppm

Definitely overkill here, but I bought this distilled water to aid in flushing through the radiator after I'd used hot water to remove any metallic remnants inside before I began the install.

FWIW, I ordered the graphics card, cooling kit, 1/4" plugs and additional host from Overclockers.co.uk, but they didn't respond to my request to sign up to their affiliate program (I probably don't get nearly enough visitors to qualify), hence all the Amazon links!

So, onto the build, which I handily took pictures throughout to document the process.

The Parts

MSI Geforce GTX 1070 Seahawk EK and XSPC Raystorm Pro Ion AX360 Watercooling Kit

The MSI Geforce GTX 1070 Seahawk EK - check out that water block!

All the parts laid out

Distilled water and coolant

The Process

The Corsair H80i and MSI Geforce GTX 970 Gaming 4GB to be removed

H80i and 970 removed

The XSPC RayStorm Pro WaterBlock parts - socket 1150/1151/1155/1156 backplate, socket 1366 backplate, fittings, twin LED, thermal paste and water block itself

CPU block installed

The entire loop fitted - it took a long time to reach this point!

Filling the loop - after this, I did a 24 hour leak test!

Final Result

First time I powered the system on - side panel still removed

Side panel back on

Close up of CPU block

Close up of graphics card

Close up of entire system

Shot across the keyboard

Another close up inside

Shot across the desk in the dark

Entire battlestation

After an entire weekend of work, I am totally enamoured with the final aesthetic I've achieved. It's been a few years since I started "Project Icarus", with various different upgrades along the way, but this upgrade really makes for a "wow" system IMHO. The upshot of this is I'm unlikely to do any major upgrades for a year, because it'll likely result in me having to drain, clean and refill the loop! Instead I'll be focusing on peripherals for my Vive (TPCast or other wireless solution and the deluxe audio strap are high on my list of priorities), but I'm also keen to completely remove spinning magnetic media from the system and go completely solid state.

Thursday, May 4, 2017

VR Experiences: Performance Concerns

Despite the overclocking I undertook to prepare my system for VR, I wasn't surprise to find that certain titles couldn't maintain the solid 90 FPS recommended for VR. Check out the following graphs from MSI Afterburner, generated from a couple of sessions in Elite: Dangerous.

If you can make out the "Framerate, FPS" graphs in those two images (they're the 3rd from the top in both cases), you can see them fluctuating wildly, when ideally they should be a nice constant 90fps (you might find it difficult to make out, and in that case, you'll just have to trust me!):

As I mentioned in a previous post, I had already reached a bit of a ceiling WRT overclocking my system: my GPU was limited by power and/or voltage, while my CPU seemed to be restricted by voltage and temperature. It might have been possible to push my CPU further, but it would take a lot more time and effort, for very little return (maybe an extra 100MHz or so). The GPU is where the biggest improvement would be seen, but that would require a voltage mod... You'll have to wait for my next post to see what route I took though (and if you follow me on Twitter, you probably already know)!

Saturday, March 25, 2017

VR Experiences: Room-Scale

Getting the Vive set up in a larger room was not only necessary, but inevitable. Fortunately, my wife not only accepts my geekery, but actively encourages it! I wasn't initially sure how it would work in the lounge space (apart from the coffee table having to move temporarily!), so I ordered some items from Amazon to test out the theory:

To test the placement of the lighthouses in the lounge, I set up the poles in opposite corners of the room and attached the camera mounts, which had compatible 1/4" threaded heads I could screw the lighthouses to (see the picture on the right). The cables allowed me to have a longer run from the back of my PC, through the office into the lounge and plug into the Vive's link box. As an aside, the Vive supports the use of both USB 2 and 3 and ideally I would have chosen a USB 3 cable, but I couldn't find a 5m one that had been confirmed as working on the Vive subreddit. I think the only downside to using USB 2 is there's less bandwidth available for using the built in camera and any other peripherals you might connect to the Vive's secondary port.

After I ran the SteamVR room setup, I was delighted to find I had a play space of 2 x 2.4 metres, which meant I could finally enjoy room-scale experiences. This was amazing; I could finally walk around in VR space and try out titles previously considered unplayable! It only took me a few moments to get used to the play space boundaries that are presented by the Chaperone system, which appear when you approach them. Soon I could move around with confidence, which made the games so much more immersive!

Anyway, after a couple of days, I was happy enough with the results that I decided to make the installation permanent: I ordered a couple of wall-mount speaker brackets (again, with 1/4" threaded heads) and some conduit and installed the two lighthouses in a more discreet fashion.

Now, I just have to move the coffee table out of the way whenever I want to enjoy a room-scale experience.

Tuesday, March 14, 2017

Virtual Reality Experiences - Standing Room Only

After the first amazing evening with the Vive, I made the effort to properly mount the lighthouses in the office. This is a pretty simple affair as the supplied brackets just need two screws to fasten them to the wall. In fact, I found it more difficult to run power to them, as I had to run an extension cable around one wall of the room and up onto the bookcases!

Once the two lighthouses were in place, I re-ran the room setup, hoping that I might be able to tease a room-scale play area out of the space available, but alas, it was not to be. While I was still in the office, I'd be restricted to standing and seated experiences, which was disappointing to say the least; especially as how two of the titles I'd received with the Vive were designed for room scale, and there were countless more on Steam (including the Trials on Tatooine experience from Lucasfilm)!

On top of this restriction, I found that while playing standing experiences I would occasionally knock into our glass-fronted bookcases! As I was just getting to grips with being in VR, I had a tendency to be rather timid with my movements. However, even at this early juncture, I could see this becoming more of an issue, especially given the nature of some of the more intensive games/experiences. I'd also seen a lot of posts on the r/Vive subreddit where people have damaged TVs, lamp shades, etc. and it would be all too easy for me to punch right through the glass! I would need to move the setup to a larger play-space eventually for my own safety.

Despite this setback, I thought I'd have a crack at playing Elite: Dangerous, which is a seated experience that I had been aching to try ever since I found out the game had native VR support (back during the Oculus Rift DK1 era)! Once again I had my mind blown. Even after the approximate 120 hours I'd sunk into the the game by this point I wasn't prepared for how amazing it felt when I found myself actually sitting in the cockpit of my Asp. The large open glass canopy surrounded me, allowing me to stare around the hanger interior and the ships consoles curved around me and the holographic displays activating as I glanced at them.

Launching the ship gave me my first brief feeling of nausea, as I was propelled forward by the loading ramp, but this swiftly subsided as my ship rose up into the expansive hanger. Now, I'd been playing Elite with a cheap head-tracking solution up until this point and this had been invaluable in helping me to check clearance before I leave the landing pad and tracking targets during combat. VR allowed me to actually lean forward and check directly above my ship when taking off (invaluable when I switched to a Viper); the improvement over simple head-tracking was breathtaking. I could go-on, but suffice to say I still get goosebumps when I launch from a Coriolis station, or fly through planetary rings.

Sunday, October 16, 2016

Virtual Reality Experiences - The Arrival and Setup

I finally did it! I bought myself a HTC Vive! On the 4th of August 2016, I became the proud owner of my very own virtual reality kit...

I was so excited when it arrived during the middle of the day, which was problematic because I still had work to do. However, I soldiered on and once the end of the day rolled around I quickly opened the box... First thing that hit me was the odour; that wonderful new consumer electronics smell, but this was different somehow. Almost like I was smelling the future!

I have to apologise for not providing any photos of the un-boxing process; I was pretty damn excited about the new arrival and I didn't want to waste any time getting the the thing set up! As it turns out, I really needed it... But I'll get onto that in a moment, first here's what's in the box:

  • The head-mounted display (HMD).
  • A pair of controllers, complete with USB cables and chargers.
  • Two base-stations/lighthouses, with wall-mounts, power supplies and a link cable.
  • Link box and a power supply.
  • HDMI and USB cables.
  • In-ear headphones.
  • Two cloths for lens cleaning.

I may have missed something, but I think that's the majority of it! Now, onto the details of getting the Vive working!

Initial Setup

So, essentially, the Vive is pretty easy to set up:

  1. Set up base stations.
  2. Connect the link box to your PC.
  3. Connect the HMD to the link box./li>
  4. Run the room setup routine.

Because I wasn't sure how the lighthouses would work in my office, I came up with a novel technique for testing their placement: I carefully positioned one on top of the bookcases, the other balanced on a stack of boxes on top of my PC... I'm not usually as precarious as this, and I was extremely paranoid about knocking the base stations over, but I wanted to be sure the whole system worked before I went ahead and drilled holes in the wall!

The next step was to connect the link box to my PC. Fortunately for me, my 970 has just enough ports for me to connect the HDMI cable; the two DVI ports and single DisplayPort are each connected to a monitor already. With the display connected, I plugged in the USB cable, powered up the box and connected the HMD and watched all the various drivers install.

Error 108

So, at this point, I'm practically sick with excitement. I fire up SteamVR to set up my play space and...

Error 108: Headset not found

Huh. No matter, I thought, I'll just try to fire up SteamVR again. Error 108. Shit. This wasn't good. So, I started Googling around and I found out that error 108 could be related to driver problems or worse, a DOA headset. However, I was fairly certain I didn't have a broken HMD as the PC had recognised the new device; all the drivers installed when I first connected it, and I could also see an "HTC Vive" entry in my device list:

So, after some further research, I found a few tips that might help:

  • Rebooting the headset.
  • Completely disconnecting everything and reconnecting.
  • Trying another USB port.
  • Removing all the USB drivers related to the Vive and starting the whole installation process again.

I tried all of the above suggestions, none of which worked, but the troubleshooting process introduced me to a sweet little application called USBDeview. This allowed me to see was all the USB devices that had ever been connected to my PC and I used this application to forcibly remove all the USB drivers that had been installed recently.

A quick aside: have you ever noticed how Windows will see a new device each time you connect it to a different USB port? Over the years, I've ended up with a Razer Megalodon, Razer Megalodon-2, Razer Megalodon-3, Razer Megalodon-4 and even a Razer-Megalodon-5 listed as my audio device... Using USBDeview, I was able to see all the instances of this device and remove them all; this was a completely unnecessary step in fixing my Vive, but it allowed me to fix this particular bugbear of mine!

After several hours of tearing my hair out and it drawing late in the evening, I was ready to throw in the towel and (shudder), raise a support ticket, until I found one last suggestion... Executing Steam with the "Run as administrator" option. Now, I had tried running Steam in my admin account, as opposed to using my regular "limited" account, but I hadn't tried this. Sure enough, when I used this option and launched SteamVR, my headset was detected! I can't tell you how elated I was to see the SteamVR application finish loading and show all the connected devices:

Room-Scale?

With the Vive finally working I quickly got to setting up my space. There are two options here:

  • Room-Scale - this is the ideal option. You have the ability to literally walk about in the play space and certain titles require it (e.g. Job Simulator and Fantastic Contraption). In order for this to work, you need a minimum of 1.5m x 2m of space available.
  • Standing Only - if you have less than the minimum space, you can configure the Vive in this mode. Some titles will work fine with this setup (e.g. The Lab), especially if they're seated experiences (e.g. Elite: Dangerous).

I thought I'd be able to get away with a room-scale setup in our office, but it turned out I was wrong... It was standing room only for me, which was frustrating because two of the games I'd received as part of the Vive bundle required a room-scale setup; Fantastic Contraption and Job Simulator. However, despite the disappointment, I kicked off the tutorial to get myself acquainted with the system.

I had heard how accurately the Vive's controllers were tracked, but I almost couldn't believe how easily I was able to pick up the pair of them as they hung suspended in the air of the Aperture Science testing chamber (they were on the office desk)! After being introduced to the system by a helpful Core I spent a good few minutes messing with the different mechanics available to me. To be honest, I was blown away by even this "simple" demonstration. The sense of scale in the testing chamber was amazing, and I found myself giggling like a school-child at my ability to inflate different colour balloons, bat them away and zap them with a laser! I had to share the experience with my wife immediately, and she too was soon enjoying herself by creating colourful balloons and sending them drifting away from herself.

The thing we both agreed on was how impressive the sense of scale was "inside" the Vive... After both of us took the HMD off, we experienced a powerful feeling of disorientation; similar to the sensation of waking from a particularly vivid dream. What I've found interesting, is that over the past month or so since I've been using the Vive, I think this sensation has lessened. After particularly long sessions, there's a slight feeling of detachment, but I think my brain has become more used to being transported "between worlds". After the successful test run with the tutorial software, I fired up Valve's The Lab and tried out a couple of the activities available there; the archery scenario was particularly fun! However, by this time, it had gotten very late, so I packed up for the evening, with a plan to return to the world of VR as soon as possible!

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!