-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux support #123
base: master
Are you sure you want to change the base?
Linux support #123
Conversation
This *must* be modified to the real path where the code is shipped with UE4, please change this!
I have attempted to make the rendering support work as well. It compiles and tries to start in the VR preview mode, but then there is this crash on the display initialization: Fatal error: [File:/media/u/build/unreal/UnrealEngine/Engine/Source/Runtime/OpenGLDrv/Private/OpenGLDevice.cpp] [Line: 315] It seems it doesn't like something that the RenderManager does. However, the standalone (not Unreal) RenderManager examples work on my machine without issues. ---- Stack trace ----
|
OK, it seems that the crash above is apparently a known problem with GLEW and Core profile (which Unreal seems to be using): nigels-com/glew#3 This thread has some alternatives: |
We work around an issue with Glew issuing spurious errors here: https://github.com/sensics/OSVR-RenderManager/blob/master/osvr/RenderKit/RenderManagerOpenGL.cpp#L650 Does this solve the problem? |
Hello Russell, No that doesn't actually solve the issue. That thread I have linked to actually speaks about that too. What the glewExperimental = true does is that it only let's GLEW try to fill function pointers for all extensions that are present in the platform header files. It doesn't do anything about GLEW attempting to use a function not allowed in Core profile. The RenderManager examples are likely not affected because they are using Compatibility profile by default, where the function is only deprecated.
Edit: Just noticed that the crash actually happens before the glGetError() even gets called, directly in glewInit(). It seems that UE installs an error handler (using this: https://www.opengl.org/registry/specs/ARB/debug_output.txt , see stack frame 6) which gets triggered right away, before the error has a chance to get cleared by glGetError(). So the workaround has no chance to work. |
Hello,
Here is an initial attempt at a native (not cross-compiled) Linux support for UE4. It does work to the point that the plugin actually loads and lets me move a cube on the screen using my Razer Hydra in the editor. I have not tested the HMD/RenderManager stuff - it compiles and loads, but I don't have a working HMD set up in Linux at the moment and I have never used it before, so I would prefer someone more knowledgeable about it to test that.
There are a few things that need modifying: