cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus PC SDK 0.6.0.0 Beta (May 15, 2015)

cybereality
Grand Champion
The Oculus SDK 0.6 introduces the compositor, a separate process for applying distortion and displaying scenes and other major changes.

There are four major changes to Oculus SDK 0.6:

  • The addition of the compositor service and texture sets.

  • The addition of layer support.

  • Removal of client-based rendering.

  • Simplification of the API.

The compositor service moves distortion rendering from the application process to the OVRServer process using texture sets that are shared between the two processes. A texture set is basically a swap chain, with buffers rotated to allow game rendering to proceed while the current frame is distorted and displayed.

Layer support allows multiple independent application render targets to be independently sent to the HMD. For example, you might render a heads-up display, background, and game space each in their own separate render target. Each render target is a layer, and the layers are combined by the compositor (rather than the application) right before distortion and display. Each layer may have a different size, resolution, and update rate.

The API simplification is a move towards the final API, which primarily removes support for application-based distortion rendering.

New Features
The following are major new features for the Oculus SDK and runtime:

  • Added the compositor service, which improves compatibility and support for simultaneous applications.

  • Added layer support, which increases flexibility and enables developers to tune settings based on the characteristics and requirements of each layer.

  • Significantly improved error handling and reporting.

  • Added a suite of new sample projects which demonstrate techniques and the new SDK features.

  • Removed application-side DirectX and OpenGL API shims, which results in improved runtime compatibility and reliability.

  • Simplified the API, as described below.

  • Changed Extended mode to use the compositor process. Rendering setup is now identical for extended and direct modes. The application no longer needs to know which mode is being used.

  • Extended mode can now support mirroring, which was previously only supported by Direct mode.

  • Simplified the timing interface and made it more robust by moving to a single function: ovrHmd_GetFrameTiming.

  • Fixed a number of bugs and reliability problems.


The following are major new features for Unity:

  • Disabled eye texture anti-aliasing when using deferred rendering. This fixes the blackscreen issue.

  • Eliminated the need for the DirectToRift.exe in Unity 4.6.3p2 and later.

  • Removed the hard dependency from the Oculus runtime. Apps now render in mono without tracking when VR isn't present.


API Changes
This release represents a major revision of the API. These changes significantly simplify the API while retaining essential functionality. Changes to the API include:

  • Removed support for application-based distortion rendering. Removed functions include ovrHmd_CreateDistortionMesh, ovrHmd_GetRenderScaleAndOffset, and so on. If you feel that you require application-based distortion rendering, please contact Oculus Developer Relations.

  • Introduced ovrSwapTextureSets, which are textures shared between the OVRServer process and the application process. Instead of using your own back buffers, applications must render VR scenes and layers to ovrSwapTextureSet textures. Texture sets are created with ovrHmd_CreateSwapTextureSetD3D11/

  • OpenGL and destroyed with ovrHmd_DestroySwapTextureSet.

  • ovrHmd_BeginFrame was removed and ovrHmd_EndFrame was replaced with ovrHmd_SubmitFrame.

  • Added a new layer API. A list of layer pointers is passed into ovrHmd_SubmitFrame.

  • Improved error reporting, including adding the ovrResult type. Some API functions were changed to return ovrResult. ovrHmd_GetLastError was replaced with ovr_GetLastErrorInfo.

  • Removed ovr_InitializeRenderingShim, as it is no longer necessary with the service-based compositor.

  • Removed some ovrHmdCaps flags, including ovrHmdCap_Present, ovrHmdCap_Available, ovrHmdCap_Captured, ovrHmdCap_ExtendDesktop, ovrHmdCap_NoMirrorToWindow, and ovrHmdCap_DisplayOff.

  • Removed ovrDistortionCaps. Some of this functionality is present in ovrLayerFlags. ovrHmdDesc no longer contains display device information, as the service-based compositor now handles the display device.

  • Simplified ovrFrameTiming to only return the DisplayMidpointSeconds prediction timing value. All other timing information is now available though the thread-safe ovrHmd_GetFrameTiming. The ovrHmd_BeginFrameTiming and EndFrameTiming functions were removed.

  • Removed the LatencyTest functions (e.g. ovrHmd_GetLatencyTestResult).

  • Removed the PerfLog functions (e.g. ovrHmd_StartPerfLog), as these are effectively replaced by ovrLogCallback (introduced in SDK 0.5).

  • Removed the health-and-safety-warning related functions (e.g. ovrHmd_GetHSWDisplayState). The HSW functionality is now handled automatically.

  • Removed support for automatic HMD mirroring. Applications can now create a mirror texture (e.g. with ovrHmd_CreateMirrorTextureD3D11 / ovrHmd_DestroyMirrorTexture) and manually display it in a desktop window instead. This gives developers flexibility to use the application window in a manner that best suits their needs, and removes the OpenGL problem with previous SDKs in which the application back-buffer limited the HMD render size.

  • Added ovrInitParams::ConnectionTimeoutMS, which allows the specification of a timeout for ovr_Initialize to successfully complete.

  • Removed ovrHmd_GetHmdPosePerEye and added ovr_CalcEyePoses.


Bug Fixes
The following are bugs fixed since 0.5:

  • HmdToEyeViewOffset provided the opposite of the expected result; it now properly returns a vector to each eye's position from the center.

  • If both the left and right views are rendered to the same texture, there is less "bleeding" between the two. Apps still need to keep a buffer zone between the two regions to prevent texture filtering from picking up data from the adjacent eye, but the buffer zone is much smaller than before. We recommend about 8 pixels, rather than the previously recommended 100 pixels. Because systems vary, feedback on this matter is appreciated.

  • Fixed a crash when switching between Direct and Extended Modes.

  • Fixed performance and judder issues in Extended Mode.


Known Issues
The following are known issues:

  • Switching from Extended Mode to Direct Mode while running Oculus World Demo causes sideways rendering.

  • Judder with Oculus Room Tiny Open GL examples in Windows 7.

  • The Oculus Configuration Utility can crash when the Demo Scene is repeatedly run.

  • Application usage of CreateDXGIFactory can result in reduced performance; applications should use CreateDXGIFactory1 instead. Support for CreateDXGIFactory is deprecated in this release and will be removed in a future release.

  • For Windows 7 in Extended Mode, any monitors connected to the computer go black when the headset is on and return to normal operation when the headset is removed.

  • For Windows 7 in Extended Mode, if the headset is placed above the monitor(s), all displays might go black. The workaround is to place the headset to the right or left of the monitor(s).

  • PC SDK applications will crash if the OVR service is not running.


https://developer.oculus.com/downloads/
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
94 REPLIES 94

David6479
Honored Guest
Had a bit of trouble installing but got there eventually. Extended mode doesn't work now as all I get is a black screen on the Rift and since I have a G-Sync monitor I rely on extended. Strangely enough though on testing Direct Mode I found that some games give the G-Sync problem of a corrupted left side and some games don't.
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

YoLolo69
Trustee
"cybereality" wrote:

...
  • For Windows 7 in Extended Mode, any monitors connected to the computer go black when the headset is on and return to normal operation when the headset is removed.
  • For Windows 7 in Extended Mode, if the headset is placed above the monitor(s), all displays might go black. The workaround is to place the headset to the right or left of the monitor(s).
    ...


  • Sorry to only quote/retain this part, but it sound important in my opinion, and both lines seems kind of contradictory.
    First line say all other monitors goes black anytime Rift in on extend mode
    Second line say monitor goes black only if Rift is set above other monitors...

    I'm lost, does it mean sometimes all other monitors goes black when Rift is in extended mod, and you can fix this by settings the Rift on left or right side instead of aboce, and sometimes this fix don't work?

    In any case, lot of changes, seems a great and giant step, and I'm happy the needed specs are published ! 🙂 congratulations to the team!

    “Dreams feel real while we are in them, it's only when we wake up that we realize something was strange.” - Dom Cobb

    "Be careful, if you are killed in real life you die in VR too." - TD_4242

    I7 10700K,  RTX 3070, 32GB DDR4 3200Mhz, Oculus Rift CV1

    cybereality
    Grand Champion
    The G-Sync issue was not fixed, so this is not surprising.

    In terms of Extended Mode, it may display a black screen on the DK2 until you run a Rift compatible game under some configurations. If you change where the Rift is on the extended desktop (i.e. to the left or right of the monitor, or flush with the top of the bottom) then it may allow an image to appear (though the desktop will still be split in half like before).
    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

    Mazhurg
    Honored Guest
    "cybereality" wrote:
    The G-Sync issue was not fixed, so this is not surprising.

    In terms of Extended Mode, it now displays a black screen on the DK2 until you run a Rift compatible game. The monitor will then turn black while the VR game is running.


    Just to let you know that it broke Elite Dangerous. Hopefully you and the FD team discussed this beforehand and they will be able to get a patch out soonest. :cry:

    TomSD
    Honored Guest
    Think it's a coincidence that Frontier announced today that they're pushing their next big release (previously scheduled for beta release on May 19th) back by a week? 🙂
    i7-4770K, 2x GTX 780 SLI, Windows 7 64-bit, Oculus runtime 0.6.0.0

    cybereality
    Grand Champion
    Make sure you are on the latest version of Elite.

    Also, can you describe your problem (assuming you are on the latest version)?
    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

    Mazhurg
    Honored Guest
    "cybereality" wrote:
    Make sure you are on the latest version of Elite.

    Also, can you describe your problem (assuming you are on the latest version)?


    Latest Elite version -> current 1.2

    Some of the issues are described in this thread: https://forums.frontier.co.uk/showthread.php?t=145023

    Essentially issues go from monitor flickering between primary and Rift to very poor performance extreme stuttering.

    My personal experience is the monitor constantly flickering between primary and the rift when the rift is set in extended mode.

    When set to direct, I lose the option to set 75Hz (Primary monitor can only do 60@1080p) in the rift so experience a fair amount of lag and stuttering.

    I suspect the Flickering is due to the deprecation of the extended mode. Unsure where the limitation of being unable to set the rift to 75Hz in direct mode (because the main monitor is unable 75Hz at the res) is due to.

    Rift is connected on the DVI->HDMI adapter and the monitor is on DP (DP -> HDMI) (AMD R9-290 / 14.5b)

    Venturai
    Honored Guest
    "cybereality" wrote:
  • For Windows 7 in Extended Mode, any monitors connected to the computer go black when the headset is on and return to normal operation when the headset is removed.


  • Ouch.

    I don't know about you guys, but you'll not catch me upgrading any time soon. Assetto Corsa and Project Cars were just about impossible to use without glancing over at your monitor to navigate menus etc.

    tozz3r
    Explorer
    The ovr_sdk_all_src_0.6.0.0 solution wont open.

    LibOVRRT Error:
    Unable to read the project file "LibOVRRT.vcxproj".

    OculusSDK_0.6.0.0\LibOVR\Projects\Windows\VS2013\LibOVRRT.vcxproj(269,5): The imported project "OculusSDK_0.6.0.0\LibOVR\Projects\Windows\LibOVR.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

    LibOVRKernel Error:
    The project file 'OculusSDK_0.6.0.0\LibOVRKernel\Projects\Windows\VS2013\LibOVRKernel.vcxproj' has been moved, renamed or is not on your computer.