cancel
Showing results for 
Search instead for 
Did you mean: 

OpenGL (+ OS X) SDK Issues?

mindabuse
Explorer
I found a couple of issues with the OS X / OpenGL SDK rendering that I wanted to bring up to the Oculus SDK Developers:

1. As you might be aware, ovrDistortionCap_Overdrive doesn't appear to be implemented at all for OpenGL. I've started to stub in some bare bones functionality, primarily aimed at eliminating the black smearing for OpenGL apps (on OS X).

https://github.com/jeremiah-sypult/LibOVR/commit/3856449820c23c61327a0a9d2cd55dec15f34c99

2. There were some missing calls for the Apple-specific OpenGL 2.1 Vertex Array functions (gl*VertexArraysAPPLE) (fixed in the commit below).

3. I was seeing a crash within glDrawElements() with the OS X OpenGL 2.1 context/driver. I was able to work around/fix the issue by always saving and restoring the state of GL_ELEMENT_ARRAY_BUFFER_BINDING and GL_ARRAY_BUFFER_BINDING, irregardless of VAO support.

https://github.com/jeremiah-sypult/LibOVR/commit/857b75d368130301fdc06bc32febf036d35043ea

4. The Mac/OS X SDK really need to use UNIX-style (LF) line endings. The "Mac" style (CR) line endings were used for the legacy, "classic" MacOS (previous to the UNIX-based OS X).

I just want to say that I really wish there was a unified LibOVR SDK for all platforms. It would be amazing if Oculus could maintain a current snapshot of LibOVR for all platforms on Github to aid in developer collaboration. There are already other Oculus projects on Github (https://github.com/OculusVR), but LibOVR is sadly not one of them.

As far as the modifications portion of the Oculus license is concerned:

Modifications to the Oculus VR SDK in source or binary form must be shared with Oculus VR.


I've successfully unified the current LibOVR Windows/OS X SDK's myself on Github (https://github.com/jeremiah-sypult/LibOVR). The other specific fixes/workaround commits are linked above. Is there any other way that modifications should be shared with Oculus VR?
3 REPLIES 3

Anonymous
Not applicable
I'll second the need for the Pixel Overdrive in OpenGL. I definitely notice some color ghosting in my Duke3D port (similar to what you see in OculusWorldDemo with the Overdrive feature disabled).

Hopefully it's just a matter of not getting to implement it yet, vs a technical reason that it'll only work in Direct3D.

mindabuse
Explorer
Now that Oculus Connect is over, thought I would resurrect this in case anyone else could comment on these issues/questions. Specifically:

1. Is there any issue with saving the states of GL_ELEMENT_ARRAY_BUFFER_BINDING and GL_ARRAY_BUFFER_BINDING even if VAO support is enabled? I was seeing a crash in calls to glDrawElements() with the OS X OpenGL 2.1 context/driver.

2. Is there a reason Oculus is using "Classic Mac" style (CR) line endings as opposed to UNIX-style (LF) line endings?

3. What is the best way to share modifications to the Oculus SDK as the license mentions? The license doesn't specify how to go about doing this.

Any insight would be most appreciated. Thanks!

jherico
Adventurer
"mindabuse" wrote:
I just want to say that I really wish there was a unified LibOVR SDK for all platforms. It would be amazing if Oculus could maintain a current snapshot of LibOVR for all platforms on Github to aid in developer collaboration.


Oculus doesn't do this, but I do: https://github.com/jherico/OculusSDK

The 'official' branch tracks the latest SDK from Oculus. The 'Stable' branch is currently on the 0.3.x series, but there is a 0.4.x branch that includes tracks the official 0.4.x SDK, plus my modifications.

My modifications mostly consist of the following:


  • CMake files for the SDK so that project files can be generated for Unix Make, Visual Studio, XCode, Eclipse CDT4, whatever...

  • Breaking the C API functionality out of the SDK static library and into it's own project, which is set up to build as a DLL (.so on Linux, .dylib on OSX). This simplifies the static library by removing the need to depend on OpenGL or Direct3D.

  • Minor bug fixes, like the inversion of the Y axis for offset for OpenGL
Brad Davis - Developer for High Fidelity Co-author of Oculus Rift in Action
Still need help?

Did this answer your question? If it didn’t, use our search to find other topics or create your own and other members of the community will help out.

If you need an agent to help with your Meta device, please contact our store support team here.

Having trouble with a Facebook or Instagram account? The best place to go for help with those accounts is the Facebook Help Center or the Instagram Help Center. This community can't help with those accounts.

Check out some popular posts here:

Getting Help from the Meta Quest Community

Tips and Tricks: Charging your Meta Quest Headset

Tips and Tricks: Help with Pairing your Meta Quest

Trouble With Facebook/Instagram Accounts?