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

2EyeGuy
Adventurer
What happens if I submit frames at less than 75 Hz? For example, if I submit frames at 30 Hz?
Is there asynchronous timewarp? Is there synchronous timewarp?
Does the compositor take care of this for me, or should I submit every frame 2 and a half times to get it to timewarp at 75 Hz?

Thug
Heroic Explorer
Cant set the DK2 as the primary monitor, so cant play Assetto Corsa...

CPU: Intel i9-10990k.
Graphics Card: Nvidia Geforce GTX3080,
RAM: 32GB DDR5,
Viewed on: Oculus Quest 2 or 28" BenQ monitor (x2),
Hard Drive: 2TB Samsung SSD (games), 512GB Samsung SSD (OS), 512GB SSD (3d),
OS: Win 11 64 bit

Zandil
Rising Star
Extended Mode no longer working, Rift is just black even when on Desktop

Direct mode - only thing i got to work in direct was elite and now if i start elite in direct rift is blank and it just plays on monitor as per normal.

Might have to roll back till this is corrected.

mtbikergt78
Honored Guest
Works great for dcs world still run it in extended mode. Hopefully dcs 2.0 will incorporate direct to rift and the new layering system. Sounds very promising.

VegasGh0st
Honored Guest
Same issues with a slew of new ones...
    {
"Time": "2015-05-15_20:29:20",
"SDK Version": "0.6.0.0",
"Service Protocol": {
"Major": 1,
"Minor": 5,
"Patch": 0
},
"RemoteProtocolVersion": {
"Major": 1,
"Minor": 5,
"Patch": 0
},
"Service Running Time": {
"Hours": 0,
"Minutes": 51,
"Seconds": 38
},
"System Specifications": {
"Operating System": "Microsoft Windows 8.1",
"Processor": "AMD A8-5550M APU with Radeon(tm) HD Graphics ",
"Graphics Adapters": [{
"Name": "AMD Radeon HD 8550G",
"Video Controller RAM (MB)": 768,
"Driver Version": "14.501.1003.0",
"Video Mode": "1360 x 768 x 4294967296 colors"
}],
"Total RAM (GB)": 4,
"USB Tree": [{
"name": "Standard OpenHCD USB Host Controller",
"deviceid": "PCI\\VEN_1022&DEV_7807&SUBSYS_1984103C&REV_11\\3&2411E6FE&0&90",
"caption": "Standard OpenHCD USB Host Controller",
"manufacturer": "(Standard USB Host Controller)",
"Devices": [{
"manufacturer": "(Standard USB Host Controller)",
"name": "USB Root Hub"
}, {
"manufacturer": "(Standard system devices)",
"name": "USB Input Device"
}, {
"manufacturer": "Microsoft",
"name": "HID-compliant mouse"
}]
}, {
"name": "Standard OpenHCD USB Host Controller",
"deviceid": "PCI\\VEN_1022&DEV_7807&SUBSYS_1984103C&REV_11\\3&2411E6FE&0&98",
"caption": "Standard OpenHCD USB Host Controller",
"manufacturer": "(Standard USB Host Controller)",
"Devices": [{
"manufacturer": "(Standard USB Host Controller)",
"name": "USB Root Hub"
}]
}, {
"name": "Standard Enhanced PCI to USB Host Controller",
"deviceid": "PCI\\VEN_1022&DEV_7808&SUBSYS_1984103C&REV_11\\3&2411E6FE&0&92",
"caption": "Standard Enhanced PCI to USB Host Controller",
"manufacturer": "(Standard USB Host Controller)",
"Devices": [{
"manufacturer": "(Standard USB Host Controller)",
"name": "USB Root Hub"
}]
}, {
"name": "Standard Enhanced PCI to USB Host Controller",
"deviceid": "PCI\\VEN_1022&DEV_7808&SUBSYS_1984103C&REV_11\\3&2411E6FE&0&9A",
"caption": "Standard Enhanced PCI to USB Host Controller",
"manufacturer": "(Standard USB Host Controller)",
"Devices": [{
"manufacturer": "(Standard USB Host Controller)",
"name": "USB Root Hub"
}, {
"manufacturer": "(Standard USB Host Controller)",
"name": "USB Composite Device"
}, {
"manufacturer": "Microsoft",
"name": "HP Truevision HD"
}]
}, {
"name": "AMD USB 3.0 eXtensible Host Controller - 0100 (Microsoft)",
"deviceid": "PCI\\VEN_1022&DEV_7814&SUBSYS_1984103C&REV_09\\3&2411E6FE&0&80",
"caption": "AMD USB 3.0 eXtensible Host Controller - 0100 (Microsoft)",
"manufacturer": "Generic USB xHCI Host Controller",
"Devices": [{
"manufacturer": "(Standard USB HUBs)",
"name": "USB Root Hub (xHCI)"
}, {
"manufacturer": "(Standard USB Host Controller)",
"name": "USB Composite Device"
}, {
"manufacturer": "(Standard system devices)",
"name": "USB Input Device"
}, {
"manufacturer": "(Standard keyboards)",
"name": "HID Keyboard Device"
}, {
"manufacturer": "(Standard system devices)",
"name": "USB Input Device"
}, {
"manufacturer": "Microsoft",
"name": "HID-compliant consumer control device"
}, {
"manufacturer": "(Standard system devices)",
"name": "HID-compliant system controller"
}, {
"manufacturer": "(Standard system devices)",
"name": "USB Input Device"
}, {
"manufacturer": "(Standard system devices)",
"name": "HID-compliant device"
}]
}]
},
"Drivers": [{
"Path": "\\system32\\OVRDisplay64.dll",
"Version": "1.2.5.0"
}, {
"Path": "\\system32\\OVRDisplayRT64.dll",
"Version": "1.2.5.0"
}, {
"Path": "\\syswow64\\OVRDisplay32.dll",
"Version": "1.2.5.0"
}, {
"Path": "\\syswow64\\OVRDisplayRT32.dll",
"Version": "1.2.5.0"
}, {
"Path": "\\system32\\drivers\\RiftEnabler.sys",
"Version": "1.2.5.0"
}, {
"Path": "\\system32\\OVRDisplay32.dll",
"Version": "1.2.5.0"
}, {
"Path": "\\system32\\OVRDisplayRT32.dll",
"Version": "1.2.5.0"
}, {
"Path": "\\system32\\drivers\\OCUSBVID.sys",
"Version": "C:\\WINDOWS\\system32\\drivers\\OCUSBVID.sys not found"
}],
"Video Device Tree": [{
"Name": "AMD Radeon HD 8550G",
"VRAM (MB)": 753,
"Monitors": [{
"Name": "\\\\.\\DISPLAY1",
"Width": 1360,
"Height": 768,
"Refresh Rate": 60
}]
}, {
"Name": "Microsoft Basic Render Driver",
"VRAM (MB)": 0,
"Monitors": []
}],
"Devices": [],
"Profile": {
"Player Name": "TeSt - Generic",
"IPD": 0.064000,
"Eye height": 1.675000,
"Eye Cup": "",
"Eye Relief": 3,
"Gender": "Male",
"Eye To Neck": 0.075000,
"Player Height": 1.778000
}
}
Nothing is impossible, just time consuming.

SuperDre
Honored Guest
Why is there still a different mode? Consumers don't want to have to fuzz with extended or direct mode, it just has to work.. It's one of the things I hate about getting VR-games to work, one needs direct the other needs extended..
Just make it that the user doesn't have to choose, there shouldn't be 2 different modes...
DK2 CPU: i7 4770K Mem: 16GB GPU: GTX760 2GB OS: Windows 8.1 pro x64 Controllers: Wireless xbox360 controller, Logitec Extreme 3D Pro, Logitec Momo steeringwheel, LeapMotion

ejz6837
Explorer
The 0.6.0.0 Beta introduces slight skipping (judder) on all demos when looking left and right. This happens even on the Oculus desk demo. Reverting to 0.5.0.1 solves the problem. Anyone else have this?

Anonymous
Not applicable
"SuperDre" wrote:
Why is there still a different mode? Consumers don't want to have to fuzz with extended or direct mode, it just has to work.. It's one of the things I hate about getting VR-games to work, one needs direct the other needs extended..
Just make it that the user doesn't have to choose, there shouldn't be 2 different modes...

You say "it just has to work". When you think about it, an unlimited combination of software on hardware, "it just has to work" is being able to choose between direct and extended mode. I just reverted back to 0.5.0.1 from trying out 0.6.0.0 because direct mode didn't work at all for me.

matte
Honored Guest
What's the story with the Mac version...? :?

Edit: Saw the news in another post. Disappointing...

Sylas
Protege
"jcollins" wrote:
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.

I had these types of errors before, and I'm willing to bet that it happens with many different installers, like Direct X or perhaps one of the many Windows DOT NET packages. The reason it happened to me is because I used a deprecated Microsoft Tool to clean old DOT NET and Visual C packages in my Windows\INSTALLER and WINSXS folders...all in the name of trying to create more space on my SSD. The tool is not provided by Microsoft anymore not because it doesn't work...but because it causes massive problems with your whole OS install. If you are finding that random things will not install, then you are suffering what I already went through. You may have better luck finding a fix. Or perhaps, you just downloaded a corrupt file. But if it continually fails to install, and other things will not install either, then you know what you're up against, and unless you find some magic fix, you will have to reinstall Windows. Some people will say that those old installers in those directories are worthless, and just taking up space. I firmly disagree with that stance, and once I did remove those old installers....I couldn't really install anything else. Even unrelated programs.