bino icon indicating copy to clipboard operation
bino copied to clipboard

How to run bino in VR mode?

Open 1Maxnet1 opened this issue 1 year ago • 5 comments

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?

1Maxnet1 avatar Feb 01 '24 08:02 1Maxnet1

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 ;)

marlam avatar Mar 05 '24 16:03 marlam

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 avatar Mar 06 '24 10:03 1Maxnet1

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.

1Maxnet1 avatar Mar 06 '24 16:03 1Maxnet1

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...

  • Can you run any SteamVR application?
  • Or plain Bino without --vr?
  • Does it help if you use the --opengles option of Bino?
  • If none of the above helps: what's the output with --log-level=debug --qvr-log-level=debug?

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.

marlam avatar Mar 07 '24 19:03 marlam

* 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

1Maxnet1 avatar Mar 08 '24 06:03 1Maxnet1

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 avatar May 01 '24 11:05 marlam

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.

marlam avatar May 31 '24 18:05 marlam