Thursday, August 25, 2016

Dev update #21 - Legacy GPU support

Update on Gear VR (1 September):
We managed to fix known bugs but we still need to shuffle some code and run some tests after. We will try to finish all the release prep work before Monday so we can submit the app to Sideload VR early next week.


This is a small update, not the one with Gear VR support. Minor bug fixes and a new software encoder for some older GPUs. Desktop app version is 1.1.2 and it's available in beta channel.

Software encoding

Many people kept asking us to introduce support for video cards other than modern GeForces and Radeons. We added Intel HD Graphics support (starting with Intel Core 4000+ processors) but it wasn't enough.

Today we bring full software encoding capability for all systems running Windows 8.1+. This will allow you to run VRidge on any system that can launch your games in VR. There will be of course limitations and game / SteamVR / Oculus hardware requirements still apply but no extra hardware will be required by VRidge.

This mode is last resort option and is automatically pre-selected only if no modern video card is detected on the system. This puts high load on your CPU (depending on video resolution but good CPUs can encode 1080-1440p in real time). It may also add some latency depending on your CPU performance. It's the worst decoder out of all the options but it's the best one where none of the other options work. 

New software encoding option


  • Sometimes SteamVR wasn't launching VRidge server properly. An extra option was added to desktop app settings. If you check it, it will run some extra checks during launch process to make sure VRidge server starts properly.
  • AMD "Not enough storage" or "Signature verification error" error will now ask if users wants to open troubleshooting page for this error.
  • Old NVIDIAs (pre-Kepler chipset) will no longer default to NVENC encoder. It will now offer new software encoder.
  • Changed MF's default encoding profile to 100. It shouldn't cause any problems but if it does, go to Riftcat\Config, open vridgeQuality.cfg with notepad and change UseLegacyProfile to true. Setting it to legacy profile may affect Android device compatibility.
  • Minor text fixes.

GearVR news

We contacted SideloadVR to make sure we have some platform to launch on. If they don't agree to host VRidge we'll have to create our own repackaging service to bundle user signatures. This shouldn't be too hard but may delay release for few days if SideloadVR crew refuses to host VRidge.
There is one major bug to fix and we're good to go. Expect more news and, if everything goes well, an apk file next week.

Thursday, August 18, 2016

Dev update #20

It's been a while since our last updates. Some of us took few days off to enjoy some of the summer sun but we're now back in full force and ready to code some VR!

Gear VR edition progress update

Last week we managed to put together core components of GearVR version. We already have working internal version which benefits from fast and stable sensors. Latency is a bit better because of more frequent updates of head rotation. The whole experience is noticeably smoother and has no drift.

Because of similar concepts in both Android and GearVR versions we decided to spend some time to extract as much as we could into shared library to make further developement faster. There is still some work to be done in terms of stability and user experience but things are really looking good and we are satisfied with progress. There is no release date at present but some test version should become available this month. It's now a matter of weeks, not months.

There's a really nice thing about Gear VR native API. We can set CPU frequency to lower (reducing battery drain and heat generation). We hope that it allows to run long Gear VR sessions without overheating.


Phone compatibility

We spent a lot of time trying to fix some of the problems experienced by specific phone models (Zenfone 2, Galaxy S4, Redmi Note 2/3, Huawei Honor 4C/P8 Lite). This process takes a lot of time because those problems happen only in very specific configurations that we cannot reproduce with our hardware. There will be beta mobile update tomorrow that will include some extra fixes for Zenfones 2 running Android OS 5.0 (Zenfones 2 updated to 6.0 should work already in beta channel).

If you still experience problems after tomorrow's update (mobile app ver. 1.1.1b) use the Diagnostics mode available in settings and send us logs again. We only received several reports this month and percentage of users reporting problems went down significantly so it means that some fixes in fact worked. 

We'll try to get more phones at the office but since those problems are caused by undefined set of conditions it's not easy because the same model (Samsung S4 for example) can use different hardware for European and American variants. That's why this takes so long. We create a potential solution -> send it to testers -> receive reports -> figure out what went wrong this time. Add some delays for each of the steps above (timezone differences, work schedule, people leaving for a weekend) and it turns out that testing simple fix can take few days.

What's next?

We're gonna refocus more on feature development now because fixing some of the phones (paragraph 2) only affects a very small subset of our users. There are few devices that absolutely dominate the Android market - Galaxies, LGs, OnePluses, Nexuses (or is it Nexi?) - and we want to add some new stuff for people using those phones too. At this point it's probably easier to add Android 4.x support or older GPU support than to fix the mysteries of some of the phone models listed in paragraph 2. There are quality improvements possible, latency optimization, overheating prevention, SteamVR features - a lot of things that are very important to us.

Currently we're aiming to release GearVR edition for public testing (through SideloadVR or similar solution) in the next 14 days. We don't expect to hit any major roadblocks.

P.S. Someone add VR support to No Man's Sky, please!