cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus 0.5.0.1 RC4 Posted (Needs Feedback)

cybereality
Grand Champion
Hey guys,

Oculus 0.5.0.1 RC4 has been released to the private alpha group! It's very important that everyone here provide feedback over the weekend, as we would like to fix any critical bugs before the public release. Thanks.

Windows:
https://s3.amazonaws.com/static.oculus. ... in_RC4.exe
https://s3.amazonaws.com/static.oculus. ... .1_RC4.zip
https://s3.amazonaws.com/static.oculus. ... .1_RC4.zip

Mac:
https://s3.amazonaws.com/static.oculus. ... sx_RC4.dmg
https://s3.amazonaws.com/static.oculus. ... RC4.tar.gz

Linux:
https://s3.amazonaws.com/static.oculus. ... RC4.tar.xz
https://s3.amazonaws.com/static.oculus. ... tar.xz.sig

Unity:
https://s3.amazonaws.com/static.oculus. ... ib_RC4.zip
AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
40 REPLIES 40

Anticleric
Expert Protege



Bad timing with the gamejam and all. I'll give it a quick look though.

What's new in it?

cybereality
Grand Champion
There were a lot of architectural changes behind the hood, like a move to a DLL model.

See this post for some of the highlights: viewtopic.php?f=69&t=21302
AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV

genetransfer
Explorer
thanks, will check it out today.

2EyeGuy
Adventurer
Thanks, I'll have a look.

jherico
Adventurer
The source distribution layout is completely baffling. Why do you guys bother having so many source distributions anyway? 'all' and 'linux' both contain most of the files in LibOVR, but all fails to include the shim. Macos and Win source files contain the shim in LibOVR, but nothing else.

Additionally, the 'all' distribution doesn't contain any of the LibOVRKernel stuff, but the others do... except that the Linux version is missing a bunch of files.


deleted: LibOVRKernel/Src/Kernel/OVR_CRC32.cpp
deleted: LibOVRKernel/Src/Kernel/OVR_Rand.cpp
deleted: LibOVRKernel/Src/Kernel/OVR_ThreadCommandQueue.cpp
deleted: LibOVRKernel/Src/Kernel/OVR_ThreadsWinAPI.cpp
deleted: LibOVRKernel/Src/Kernel/OVR_Win32_IncludeWindows.h
deleted: LibOVRKernel/Src/Kernel/OVR_mach_exc_OSX.c
deleted: LibOVRKernel/Src/Kernel/OVR_mach_exc_OSX.h
deleted: LibOVRKernel/Src/Util/Util_Direct3D.cpp
deleted: LibOVRKernel/Src/Util/Util_ImageWindow.cpp
deleted: LibOVRKernel/Src/Util/Util_LongPollThread.cpp
deleted: LibOVRKernel/Src/Util/Util_SystemGUI_OSX.mm
deleted: LibOVRKernel/Src/Util/Util_SystemInfo.cpp
deleted: LibOVRKernel/Src/Util/Util_SystemInfo_OSX.mm
deleted: LibOVRKernel/Src/Util/Util_Watchdog.cpp
Brad Davis - Developer for High Fidelity Co-author of Oculus Rift in Action

genetransfer
Explorer
in the documentation is says to link against the project. I haven't done that before (any instruction on that?), usually when working with dll's i just include the .lib file that comes with them. For now I just linked against the "OculusSDK\LibOVR\Lib\Windows\Win32\Release\VS2010\libOVR.lib" file is there a problem doing this everything seems to be working fine? what about LibOVRKernel do I have to do anything with that, can't see anything mentioned in the docs? yes the new layout is confusing to me as typically I've only used dll's I drop into the folder with my exe and add the .lib to my project.

ovrDistortionCap_Chromatic seems to have been removed, don't think that's mentioned in the docs.
the config utility doesn't seem to show the firmware version anymore.
I noticed when I went to update firmware, but canceled out, it set display mode to dk1 legacy app to checked.

other than that it seems to be working with my engine ok. will keep testing though.

2EyeGuy
Adventurer
All the .txt files are broken, or rather, not broken (line breaks). They worked in RC2.

The folder structure now matches previous SDK releases, RC2 didn't have a top OculusSDK folder.

Desk demo works great in RC4, Oculus World Demo works well (~22 ms motion to photon latency) but I have to press F9 to make it show on the Rift, which is a bad design.

Haven't had time to test it in Dolphin yet.

"genetransfer" wrote:
in the documentation is says to link against the project. I haven't done that before (any instruction on that?), usually when working with dll's i just include the .lib file that comes with them. For now I just linked against the "OculusSDK\LibOVR\Lib\Windows\Win32\Release\VS2010\libOVR.lib" file is there a problem doing this everything seems to be working fine? what about LibOVRKernel do I have to do anything with that, can't see anything mentioned in the docs? yes the new layout is confusing to me as typically I've only used dll's I drop into the folder with my exe and add the .lib to my project.

What documentation?
It didn't work for me when I did what you did in RC2 (except VS2013 x64), I guess I'll try again in RC4.

cegli
Honored Guest
I have now integrated 0.5.0.1 RC4 into Dolphin. The important thing to do is make sure that #OVR_DLL_BUILD is defined.

Unfortunately, 0.5.0.1 RC4 seems to be a regression, at least for my particular setup. There are little tracking hiccups that exist that didn't in 0.4.4, features like "Synchronous Timewarp" start fine, but eventually start juddering. When I switch back to 0.4.4, this goes away. I'm also getting a bit of tracking jump on the desk demo (a little hiccup every 15 seconds), and it used to be pretty smooth. Pulsating judder in direct mode is still apparent on most games in Dolphin, unless I change the threading method to a deterministic one. Judder for 2 seconds, smooth for 2 seconds, judder for 2 seconds, smooth for 2 seconds. The Direct Mode judder happened in both 0.4.4 and 0.5.0.1. Here's the most interesting data point I have on the regressions:

------------
Background info: In Dolphin VR, games typically run at 60fps. To get the games running at 75fps, we have two options. One uses timewarp and injects a frame every 4 frames, which gets the frame rate to 75fps. The code looks like this whenever we inject a frame:

ovrFrameTiming frameTime = ovrHmd_BeginFrame(hmd, ++g_ovr_frameindex);
ovr_WaitTillTime(frameTime.NextFrameSeconds - g_ActiveConfig.fTimeWarpTweak);
ovrHmd_EndFrame(hmd, g_eye_poses, &g_eye_texture[0].Texture);


.fTimeWarpTweak can be set on the fly in the GUI by the user.

This test is done in extended mode by the way.

0.4.4 - In a sample game such as Mario Kart Wii, .fTimeWarpTweak can be set to somewhere around 0.0050 to 0.0015 and left there for 30 minutes of gameplay with no issue. Game feels glassy smooth, no noticeable judder.

0.5.0.1 - The game starts okay with this setting. There are no issues until about 3 minutes into the race, where it starts to judder severely. Moving fTimeWarpTweak to a higher range around .0090 to .0060 fixes the issue. This is good again for another 3-5 minutes, until it must be moved up an equivalent amount again. Repeat until .fTimeWarpTweak is set somewhere around ~0.0300 (IIRC) then it must be reset back to between 0.0050 and 0.0015 again. It keeps going like this is a circle.

I also noticed that our other way of generating extra frames (a type of reprojection) also starts fine but gets out of sync in some games now. I feel like something similar is happening, but I don't have a way to adjust the time until the frame is presented.
---------------

If you guys are interested, I think it would be of a lot of benefit for your team to populate Dolphin VR at some point and try to work out some of the judder issues. We have so many different kinds of timings and modes, some glassy smooth, and some juddery. We have both OpenGL and Direct3D, different threading methods (single core, dual core, dual core determinism, gpu determinism), synchronous timewarp, reprojection, direct mode, extended mode, etc. It could provide you with a ton of data points of how different timings and configurations effect the SDK. It's all open source and is fairly easy to get running. I'd totally be willing to help with this too, if you guys are interested. I feel like if the judder in all of Dolphin's modes were fixed, it'd be pretty likely that it'd work in almost any engine.

Display Driver Install: This seems to have gone perfectly for both RC2 and RC4, and still works great with the 0.4.4 games I tried. Good work there!

OpenGL 2D texture crawling bug is still there. I've been building my own modified versions of the SDK to fix this issue. The explanation and the code for the fix can be found here:
viewtopic.php?f=34&t=16910

Here's my specs so you don't have to search for them:

OS: Win7 64-bit
GPU: AMD HD7970
Video Drivers: Omega Drivers
CPU: i7-3570K @4.3GHz
Monitor(s): 1x 1080p HDTV + 1x1280x1024 monitor
Connection(s): DK2 plugged in via HD7970 GPU HDMI port, HDTV plugged in via HD7970 GPU HDMI port, monitor plugged in via Intel HD4000 port (lower GPU power usage this way).
Other: N/A

genetransfer
Explorer
"2EyeGuy" wrote:

"genetransfer" wrote:
in the documentation is says to link against the project. I haven't done that before (any instruction on that?), usually when working with dll's i just include the .lib file that comes with them. For now I just linked against the "OculusSDK\LibOVR\Lib\Windows\Win32\Release\VS2010\libOVR.lib" file is there a problem doing this everything seems to be working fine? what about LibOVRKernel do I have to do anything with that, can't see anything mentioned in the docs? yes the new layout is confusing to me as typically I've only used dll's I drop into the folder with my exe and add the .lib to my project.

What documentation?
It didn't work for me when I did what you did in RC2 (except VS2013 x64), I guess I'll try again in RC4.

in the above download "ovr_sdk_win_0.5.0.1_RC4" the docs have been updated to migrating from 0.4 to 0.5. but I am confused and not sure I did it right but it is working for me using the VS2010 win32 lib.