/ Forums
New To The Forum? Click Here To Read The How To Guide. -- Developers Click Here.

Oculus PC SDK 0.5.0.1 Beta (March 26, 2015)

cyberealitycybereality Posts: 21,760 Oculus Staff
edited April 2015 in General
The Oculus SDK 0.5 has moved from static linking to a dynamic link library (DLL) model in which the DLL is installed by the Oculus runtime. Using a DLL offers several advantages:

- It allows us to fix bugs and update implementation for new headset features after applications have been compiled and shipped.
- It allows us to evolve the API without breaking applications through the use of side-by-side versioned DLLs.[/list]

While in development kit mode, we plan to support old side-by-side DLLs for at least two months, giving developers time to update applications. After the consumer release, we will update the SDK to version 1.0 and, going forward, will support released API versions for longer periods of time.

New Features

Oculus SDK

Updated LibOVR to rely on a runtime-installed DLL for better forward compatibility and delivery of bug fixes.
Introduced a four-digit runtime versioning scheme: PRODUCT#.MAJOR.MINOR.PATCH (e.g. 0.5.0.1). The last three digits of the scheme map philosophically to Semantic Versioning.
Added OpenGL support to OculusRoomTiny.
Introduced OculusRoomTiny_Advanced, which supports more SDK features and toggles.
Improved DK2 headset USB sleep management on Windows 8.1.
Updated the Oculus Configuration Utility to display headset status and diagnostic messages. Users can now view firmware version and serial numbers by hovering over the device image.

Unity
Added OVRManager.eyeTextureAntiAliasing to control scene antialiasing separately from distortion antialiasing.
Exposed left and right eye Cameras as properties in OVRCameraRig.
Fixed virtualTextureScale for dynamic resolution scaling.
Added OVRCameraRig.UpdatedAnchors event to allow immediate handling and post-processing of tracking updates.
Added TrackingSpace GameObject between OVRCameraRig and eye anchors to allow custom reset and rig movement behavior.
Fixed Xbox 360/Xbox One gamepad support on Mac.
Replaced the Tuscany demo with a simple scene called Room to simplify the core integration download.
Removed the dead OVRVisionGuide script.
Made minor API cleanups to prevent invalid configurations.
Made various stability improvements.

API Changes

Moved and renamed LibOVR/Src/OVR_CAPI.h to LibOVR/Include/OVR_CAPI_0_5_0.h.
Some additional public headers such as OVR_Version.h have been moved to LibOVR/Include/.
Added ovrHmdCap_DebugDevice flag to indicate that device was created with ovrHmd_CreateDebug.
Renamed ovrDistortionCaps::ovrDistortionCap_ProfileNoTimewarpSpinWaits to ovrDistortionCap_ProfileNoSpinWaits.
Removed ovrDistortionCap_NoTimewarpJit as Timewarp delay is disabled by default. Use ovrDistortionCap_TimewarpJitDelay to enable it.
Removed ovrTrackingState::LastVisionProcessingTime and LastVisionFrameLatency.
ovr_Initialize now takes a params argument that provides log callback and other arguments. See the in-code documentation for details.
Added ovrQuatf playerTorsoMotion argument to ovrHmd_GetEyeTimewarpMatricesDebug.
Added ovr_TraceMessage, which can be used to send a message to the log.
Removed support for DX10.
Deprecated DX9 support, which will be removed in a future version of the SDK.
ovr_Initialize now can return false for additional reasons than previously.
No API functions may be called after ovr_Shutdown except ovr_Initialize.

Bug Fixes

Oculus SDK

Fixed a bug in which full persistence was inadvertently enabled due to device initialization races.
Fixed uncommon deadlocks in the runtime service.

Known Issues

Unity

The editor Game View goes black unless you set the aspect ratio to "Free Aspect".
Rapidly starting and stopping Play Mode in the editor may cause a crash.
The editor preview does not render to the Rift in Direct Display mode; be sure to use Extended Mode.

Mac
Rotating the display through System Preferences requires a restart of the service
AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i
PowerColor RX 480 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
«134

Comments

  • mtbikergt78mtbikergt78 Posts: 32
    Lawnmower Man (or Woman)
    So I'll be checking this out later, has anybody any experience with this and dcs world?
  • MikeFMikeF Posts: 282
    Art3mis
    Just updated my unity projects, got a couple problems already
    -heavy judder in editor
    -no low persistence in builds. Well above 75fps and the motion blur is ridiculous, it seems worse than the dk1

    running Unity 5

    Is there any way to disable the notifications from the configuration utility? I really dont need to know that i've turned my rift on or off every time i go to test something.
  • pittsburghjoepittsburghjoe Posts: 514
    Art3mis
    edited March 2015
    Is any of this in there? http://youtu.be/fmu6rzYDt1w?t=1h4m34s
      Optimised scheduling Improved CPU/GPU parallelism Multi-view rendering Asynchronous TimeWarp Late Latching
    i7 skylake, EVGA Classified, 2 EVGA 980 sc's, Thermaltake TR2 RX(1000W), 32GB DDR4, Win 10 on an SSD
  • MikeFMikeF Posts: 282
    Art3mis
    I dont see any of it in the unity integration thats for sure. Performance is down at least 15fps, i'm rolling back.
  • cyberealitycybereality Posts: 21,760 Oculus Staff
    There was a minor issue with the upload. If you are experiencing issues, please download again and see if it's better.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i
    PowerColor RX 480 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
  • cyberealitycybereality Posts: 21,760 Oculus Staff
    You may see errors in the Unity editor when using deferred rendering. To fix them, edit the function OVRCameraRig.ConfigureTrackerAnchor(..) in OVRCameraRig.cs and replace:
    OVRManager.instance.eyeTextureAntiAliasing = 0;
    
    with:
    OVRManager.instance.eyeTextureAntiAliasing = OVRManager.RenderTextureAntiAliasing._1;
    
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i
    PowerColor RX 480 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
  • DarrenMDarrenM Posts: 236
    Hiro Protagonist
    Anything to help reduce the frame rate hit in direct mode or is that a lost cause with Win7/8?
  • PeteoPeteo Posts: 262
    edited March 2015
    Installed, rebooted. launched config tool. went into demo scene. Looking around get TONS OF JUDDER
    This has Never happened in the demo scene.
    Press escape. Exits but not config tool will not work. Had to use task manager to kill it and reboot
    Launch config tool. Cant see rift. Turn off rift, then turn on. Now can see rift
    Go into demo scene. Still mega lag...


    Just tried New retro arcade and smooth as butter!

    Elite Dangerous seems to be running the same
  • If the Config Demo Scene is any indication, the new runtime fixes the constant juttering in OSX! Finally! I can VR without getting sick all the time!

    That is, as soon as any apps or games begin supporting this. :D
  • guygodinguygodin Posts: 607
    Art3mis
    Extended mode appears to be broken with the new Runtime/SDK. It worked correctly initially but after I've launched my application in extended mode using the latest runtime, the DK2 is no longer detected even by the Oculus Configuration Utility.

    TXns4N9.png

    Trying to re-install the runtime to see if this fixes the problem.
    EDIT: Re-installing the runtime didn't fix the issue, my DK2 is not detected in extended mode.

    Windows 8.1 Pro, GTX 770.
    Virtual Desktop Developer
  • kojackkojack Posts: 3,399 Volunteer Moderator
    So I'll be checking this out later, has anybody any experience with this and dcs world?
    I just tried, dcs world is running fine (although they still don't support direct mode, which is damn annoying).
  • uKERuKER Posts: 80
    Hiro Protagonist
    Well, the new runtime appears to fix the issue in Windows 10 build 10041 where uTorrent and the services control panel would hang on startup.
    I can now use the Rift again!
  • pixelminerpixelminer Posts: 171
    Hiro Protagonist
    One more API change that is not on the above list:

    API Changes
    Removed ovrDistortionCaps::ovrDistortionCap_Chromatic - now enabled permanently
  • ralfalralfal Posts: 191
    Quick question about the versioning scheme: the full version string in the registry is "0.5.0.1-Release-49138". Has the "-Release-XXXXXX" suffix to be considered for checking version numbers? If so, how exactly does it work?
  • haagchhaagch Posts: 95
    edited March 2015
    Did you remove the Linux plugin from the unity integration?

    edit: Apparently palmer said they have an alpha with oculus rift support integrated into unity and the open beta will launch "later this month": https://youtu.be/fmu6rzYDt1w?t=3795

    So this will then work on linux?
  • WollanWollan Posts: 27
    Hopefully this will work with Radeon 295X on my 5K iMac (Win 7 Bootcamp). 0.4.4 crashes constantly (even with latest AMD bootcamp drivers: viewtopic.php?f=20&t=18130&p=229989&hilit=imac+5k+crash#p229989).
  • WirelineWireline Posts: 1,203
    OK I am going to hate myself for this.

    "While in development kit mode, we plan to support old side-by-side DLLs for at least two months, giving developers time to update applications. After the consumer release, we will update the SDK to version 1.0 and, going forward, will support released API versions for longer periods of time."

    So, consumer version in two months time ...? :?

    Its OK. I have begun the self flagellation already.
  • bilagobilago Posts: 402
    Wireline wrote:
    OK I am going to hate myself for this.

    "While in development kit mode, we plan to support old side-by-side DLLs for at least two months, giving developers time to update applications. After the consumer release, we will update the SDK to version 1.0 and, going forward, will support released API versions for longer periods of time."

    So, consumer version in two months time ...? :?

    Its OK. I have begun the self flagellation already.


    This basically means, if they release 0.5.0.2 tomorrow, they will not remove 0.5.0.1 support for at least 2 months, to give devs time to update to the lastest version.
    [Obsolete] Oculus Service Manager - https://developer.oculusvr.com/forums/viewtopic.php?f=26&t=11395
    [Unofficial] VR Game Manager - viewtopic.php?f=26&t=12754
  • WirelineWireline Posts: 1,203
    bilago wrote:
    Wireline wrote:
    OK I am going to hate myself for this.

    "While in development kit mode, we plan to support old side-by-side DLLs for at least two months, giving developers time to update applications. After the consumer release, we will update the SDK to version 1.0 and, going forward, will support released API versions for longer periods of time."

    So, consumer version in two months time ...? :?

    Its OK. I have begun the self flagellation already.


    This basically means, if they release 0.5.0.2 tomorrow, they will not remove 0.5.0.1 support for at least 2 months, to give devs time to update to the lastest version.

    Ah :?

    Thank you, brother Bilago.

    If you need me, I will be in the penitence room. With the leeches.
  • my3dscenemy3dscene Posts: 148
    has anyone had a succesful upgrade in unity 5?
    please let us now.
  • mrcrispmrcrisp Posts: 255
    Art3mis
    Finally direct mode works for me and not only that but performance is much much improved. I have a GTX 980 when not used heavily, I underclock it by about 40% and I just tested a project in Unreal 4 using VR preview, not only did it work perfectly and mirrored what I saw in the Rift on the monitor but managed an easy 75fps, smooth as silk- whilst in an underclocked state whereas before I would have to bring the clock speed back to normal and still suffered some judder.

    Nice job Oculus.
    PC Specs: i7-5820k, 16gb DDR4 2400mhz, MSI gaming mainboard, MSI GTX 980 4gb, Samsung Pro SSD, 2x1tb WD Black HDD, 700w Certified PSU, 3xAcer 27" monitor, 47" TV, Xbox360 Controller, CH Pro HOTAS, Fanatec Wheel+Pedals, Windows 7 64bit.
  • benplacebenplace Posts: 758 Poster of the Week
    So this is improving performance even on apps not compiled with it?
  • Shannonb1Shannonb1 Posts: 210
    Hiro Protagonist
    mrcrisp wrote:
    Finally direct mode works for me and not only that but performance is much much improved. I have a GTX 980 when not used heavily, I underclock it by about 40% and I just tested a project in Unreal 4 using VR preview, not only did it work perfectly and mirrored what I saw in the Rift on the monitor but managed an easy 75fps, smooth as silk- whilst in an underclocked state whereas before I would have to bring the clock speed back to normal and still suffered some judder.

    Nice job Oculus.

    Direct mode works for you in what?
  • David6479David6479 Posts: 93
    Lawnmower Man (or Woman)
    Installed the new Runtimes in Windows 8.1 but the problem is still there with G-sync monitors pushing the picture to the right in Direct mode.
    In Windows 10 Build 10041 it says there is a conflict with the Oculus drivers but seems to start up and run in Extended mode fine from what I could see so far in the Demo scene, Direct mode is grayed out in config utility.
    Will do some more testing.
    i7 4770k @ 4.6GHz Custom W/Loop --- EVGA GTX 780ti SLI x3 --- Asus Maximus VI Extreme-Z87 --- Corsair Vengeance Pro 1866MHz 16GB --- EVGA SuperNova 1300 PSU --- Asus Swift G-Sync --- Windows 10 Pro Insider Build 11082
  • TUFOMTUFOM Posts: 7
    Fixed all problems with ATi drivers for me in Windows 10. 15.3 Beta drivers. Allthough configuration utility and demo scene wont work anymore. Luckily stock settings are pretty good for me but I can imagine this to be huge problem for some.
  • ThoemseThoemse Posts: 171
    guygodin wrote:
    Extended mode appears to be broken with the new Runtime/SDK. It worked correctly initially but after I've launched my application in extended mode using the latest runtime, the DK2 is no longer detected even by the Oculus Configuration Utility.

    TXns4N9.png

    Trying to re-install the runtime to see if this fixes the problem.
    EDIT: Re-installing the runtime didn't fix the issue, my DK2 is not detected in extended mode.

    Windows 8.1 Pro, GTX 770.

    Check if the rift is set to 60hz in your gpu driver. I had that after upgrading the SDK. Setting the rift to 75hz in catalyst control panel fixed it.
  • guygodinguygodin Posts: 607
    Art3mis
    Thoemse wrote:
    Check if the rift is set to 60hz in your gpu driver. I had that after upgrading the SDK. Setting the rift to 75hz in catalyst control panel fixed it.
    Turned out to be an incompatibility with the headless ghost. Unplugging it solved the issue.
    Virtual Desktop Developer
  • I have exactly the same issue with the device not being detected, cant solve it at all. :|
  • mrcrispmrcrisp Posts: 255
    Art3mis
    Shannonb1 wrote:
    mrcrisp wrote:
    Finally direct mode works for me and not only that but performance is much much improved. I have a GTX 980 when not used heavily, I underclock it by about 40% and I just tested a project in Unreal 4 using VR preview, not only did it work perfectly and mirrored what I saw in the Rift on the monitor but managed an easy 75fps, smooth as silk- whilst in an underclocked state whereas before I would have to bring the clock speed back to normal and still suffered some judder.

    Nice job Oculus.

    Direct mode works for you in what?

    In the desk demo, Unity demos/games and Unreal games/demos. Everything tried so far, except those which require extended mode such as Assetto Corsa.
    PC Specs: i7-5820k, 16gb DDR4 2400mhz, MSI gaming mainboard, MSI GTX 980 4gb, Samsung Pro SSD, 2x1tb WD Black HDD, 700w Certified PSU, 3xAcer 27" monitor, 47" TV, Xbox360 Controller, CH Pro HOTAS, Fanatec Wheel+Pedals, Windows 7 64bit.
  • CarandiruCarandiru Posts: 238
    Lawnmower Man (or Woman)
    edited March 2015
    Thank you for implementing:
    void DistortionRenderer::EndFrame(uint32_t frameIndex, bool swapBuffers)
    

    The option to "swapBuffers" is great! However can you expose it to ovrHmd_EndFrame
    with this change (default parameter needed to maintain code comptability)
    OVR_PUBLIC_FUNCTION(void) ovrHmd_EndFrame(ovrHmd hmd,
                                        const ovrPosef renderPose[2],
                                        const ovrTexture eyeTexture[2], 
                                        bool const swapBuffers = true);
    

    It's currently hardcoded in OVR_Capi.cpp to always call DistortionRenderer::EndFrame(uint32_t frameIndex, bool swapBuffers) with swapBuffers as true

    It still works, as you have implemented the checks for a nullptr inside DistortionRenderer::EndFrame, which will cause the present to not be called, and the else statement "// TBD: Generate error - swapbuffer option used with null swapchain."

    To clarify why/what using nullptr for pSwapChain is for :
    d3d11cfg.D3D11.pDeviceContext = cMaxVRSingleton::getDirectX()->getD3DContextForOculus(); // Deferred Context
    d3d11cfg.D3D11.pSwapChain = nullptr; // Moved Present into cDirectX EndFrame with Request for Bug Fix from Oculus, Minimize Critical Section Hold Time
    
    void cDirectX::EndFrame()
    {
    	ID3D11DeviceContext1* const __restrict d3dContext(m_pcDC->getDC());
    	ID3D11CommandList* __restrict pd3dCommandList(nullptr);
    
    	cMaxVRSingleton::getOculus()->EndFrame(d3dContext);
    
    	d3dContext->FinishCommandList(FALSE, &pd3dCommandList);
    
    	AcquireSRWLockShared(&m_SRWLockForIC);
    
    
    	m_d3dContextIC->ExecuteCommandList(pd3dCommandList, FALSE);
    
    	m_swapChain->Present(m_uiSyncInterval, 0);
    
    
    	ReleaseSRWLockShared(&m_SRWLockForIC);
    
    	pd3dCommandList->Release();
    
    	// State Reset for Next Frame Begins //
    	m_pcDC->Invalidate();
    }
    

    Great news, as the critical section would have had to encapsulate the Oculus Endframe, which added uneccessary time to the critical section lock - distortion rendering.

    Thanks devs @ Oculus!
    http://www.supersinfulsilicon.com/ supersinfulsilicon - software
    Home of the MaxVR Oculus Rift Video Player

    https://twitter.com/Carandiru
«134
Sign In or Register to comment.