marlam / bino

3D video player with support for 180°/360° video and Virtual Reality
https://bino3d.org
GNU General Public License v3.0
45 stars 14 forks source link

How to run bino in VR mode? #24

Closed 1Maxnet1 closed 6 months ago

1Maxnet1 commented 10 months ago

Hi there,

I found bino and wanted to give it a try on my VR Setup (SteamVR + ALVR + PhoneVR). I added bino to the Steam library and added the --vr option but it does only start a black screen, with no user interface elements. Now I do not know, how I am supposed to open a 3D video or image. I consulted the manual, but it has no detailed information on how to start bino in VR mode, other then the command line option. Anything I can do here?

marlam commented 9 months ago

Since you cannot open a video from inside the VR mode yet (sorry, this takes time to implement), you can try to start with bino --vr myvideo.mp4 or bino --vr image.jpg and then you should be able to see where the video screen is in VR.

The plan for Bino is to first port to Qt 6.6 including support for HDR video, and then improve VR mode. Help is always welcome ;)

1Maxnet1 commented 8 months ago

Since you cannot open a video from inside the VR mode yet (sorry, this takes time to implement), you can try to start with bino --vr myvideo.mp4 or bino --vr image.jpg and then you should be able to see where the video screen is in VR.

The plan for Bino is to first port to Qt 6.6 including support for HDR video, and then improve VR mode. Help is always welcome ;)

Thanks for the heads-up, I will give it a try. I would be pleased to help porting to Qt 6.6. As this repository is only a mirror, how would you want to get contributions?

1Maxnet1 commented 8 months ago

Since you cannot open a video from inside the VR mode yet (sorry, this takes time to implement), you can try to start with bino --vr myvideo.mp4 or bino --vr image.jpg and then you should be able to see where the video screen is in VR.

When running the application I get the following issue, but nothing opens:

Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
QVR: Cannot get a valid OpenGL context
Bino: Kann QVR Manager nicht initialisieren

Any suggestions what might be wrong?

I'm running it on Manjaro Linux KDE Wayland session with an NVIDIA GTX 970 newest drivers installed.

marlam commented 8 months ago

Thanks for the heads-up, I will give it a try. I would be pleased to help porting to Qt 6.6. As this repository is only a mirror, how would you want to get contributions?

Any way you like :) Plain old patches via mail work fine, but you can also do it the Github way with pull requests etc.

When running the application I get the following issue, but nothing opens:

Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
QVR: Cannot get a valid OpenGL context
Bino: Kann QVR Manager nicht initialisieren

Any suggestions what might be wrong?

I'm running it on Manjaro Linux KDE Wayland session with an NVIDIA GTX 970 newest drivers installed.

Hmm, I never saw that particular OpenGL error. And I thought I knew them all...

I only tested VR mode on X11 because that's all I have right now. But there's nothing system specific or windowing system specific in either Bino or QVR.

1Maxnet1 commented 8 months ago
* Can you run _any_ SteamVR application?

Yes, e.g. Gaiasky works in VR mode.

* Or plain Bino without `--vr`?

No. When I run Bino under wayland, no window appears. This is the command line output:

Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
Bino: Qt warning: QRhiGles2: Failed to create temporary context
Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
Bino: Qt warning: QRhiGles2: Failed to create context
Bino: Qt warning: Failed to create QRhi for QBackingStoreRhiSupport
Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
Bino: Qt warning: QOpenGLWidget: Failed to create context
Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
Bino: Qt warning: QOpenGLWidget: Failed to create context

I will check whether it works for me under X11, as I have both sessions installed. If so I will look into fixing the normal mode under wayland first and then will have a look into it for the VR mode. I'll keep you updated in that thread.

* Does it help if you use the `--opengles` option of Bino?

Not really. For the normal mode still no window shows up. (Note in both cases there is a task bar icon that shows up) Output slightly changes.


Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations
Bino: Qt warning: Cannot find EGLConfig, returning null config
Bino: Qt warning: Could not create EGL surface (EGL error 0x3005)

Bino: Qt warning: Cannot find EGLConfig, returning null config Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations Bino: Qt warning: Cannot find EGLConfig, returning null config Bino: Qt warning: Could not create EGL surface (EGL error 0x3005)

Bino: Qt warning: eglSwapBuffers failed with 0x300d, surface: 0x0

For VR mode it doesn't help either, printing this message in a endless loop:

Bino: Qt warning: Cannot find EGLConfig, returning null config Bino: Qt warning: Could not create EGL surface (EGL error 0x3005)

>     * If none of the above helps: what's the output with `--log-level=debug --qvr-log-level=debug`?
For normal mode:

Bino: updating Gui menu state Bino: Qt warning: Cannot find EGLConfig, returning null config Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009 Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations Bino: Qt warning: QRhiGles2: Failed to create temporary context Bino: Qt warning: Cannot find EGLConfig, returning null config Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009 Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations Bino: Qt warning: QRhiGles2: Failed to create context Bino: Qt warning: Failed to create QRhi for QBackingStoreRhiSupport Bino: Qt warning: Cannot find EGLConfig, returning null config Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009 Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations Bino: Qt warning: QOpenGLWidget: Failed to create context Bino: Qt warning: Cannot find EGLConfig, returning null config Bino: Qt warning: QEGLPlatformContext: Failed to create context: 3009 Bino: Qt warning: Non-blocking swap buffers not supported. Subsurface rendering can be affected. It may also cause the event loop to freeze in some situations Bino: Qt warning: QOpenGLWidget: Failed to create context

marlam commented 7 months ago

Unfortunately I did not succeed in replicating the problem. It works for me on X11 SteamVR. I have to postpone this until I have a working Wayland setup.

marlam commented 6 months ago

I just tested Bino with Wayland and in VR mode (but not SteamVR since that does not yet work for me with Wayland). I was not able to reproduce the problems mentioned here, it worked as expected. So this might be a case of missing, incomplete or misconfigured drivers.