Skip to content
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

HTC Vive Focus 3 on PC has general WebXR Browser/OpenXR issues (not related to WebXR Export) #254

Open
learning-github-zgy opened this issue Feb 14, 2023 · 19 comments

Comments

@learning-github-zgy
Copy link

When I try to run 'VR button' in this scenario in a browser wearing a VR device, the console prompts this error “WebGL context must be marked as XR compatible in order to use with an immersive XRSession”. the VR device rendeing the edge109 waiting/firefox waiting etc.
but when l use the VR device browser to try the scenario, it works well, Can't webXR scenes be streamed to devices via steamVR?
please help me, thanks!

Unity 2019.4.31
steamVR 1.24.7

@De-Panther
Copy link
Owner

Lot's of data is missing, please try to explain the issue better and add more details on the devices, browsers and frameworks you are trying to use.
As you yourself mentioned, when using this with a browser that supports WebXR and a device that supports WebXR it works as it should...

@learning-github-zgy
Copy link
Author

Lot's of data is missing, please try to explain the issue better and add more details on the devices, browsers and frameworks you are trying to use. As you yourself mentioned, when using this with a browser that supports WebXR and a device that supports WebXR it works as it should...

sorry, I am currently connected to a VR device to browse webxr content on the PC side, the browser is Firefox/edge/chrome, when I enter the webxr scene in the PC browser, there is no content in the VR device, and the browser will report an error. But if I use the browser that comes with the VR device and browse webXR content, everything works well. The WebXR scenario is an example in GitHub.

@De-Panther
Copy link
Owner

Firefox never had full WebXR support, it supported the old WebVR API, and used Polyfill for WebXR, I think that lately they moved the support to a flag that you need to enable.
So better use Chromium based browser, like Chrome/Edge/Brave.

You still missing some details - like which VR device?
I guess Quest, as lately there was an error with the Oculus OpenXR runtime on version 49 of their desktop app. The issue was fixed in version 50. I think that version 50 is still on the beta channel, so you need to enable it in the Oculus desktop app settings. Alternatively, you can use SteamVR OpenXR runtime.

@learning-github-zgy
Copy link
Author

Firefox never had full WebXR support, it supported the old WebVR API, and used Polyfill for WebXR, I think that lately they moved the support to a flag that you need to enable. So better use Chromium based browser, like Chrome/Edge/Brave.

You still missing some details - like which VR device? I guess Quest, as lately there was an error with the Oculus OpenXR runtime on version 49 of their desktop app. The issue was fixed in version 50. I think that version 50 is still on the beta channel, so you need to enable it in the Oculus desktop app settings. Alternatively, you can use SteamVR OpenXR runtime.

I'm really sorry about the details. The device I use is htc vive. I stream webxr content in the browser by connecting to SteamVR desktop app. I have also tried edge/chrome browser, but the same errors will be reported. The device side cannot render webxr content in the desktop browser.

@De-Panther
Copy link
Owner

You mentioned "the browser that comes with the VR device", that let me to assume that it's a Standalone headset that doesn't need to connect to a PC to run.
Which browser comes with HTC Vive?
I'm confused.

@learning-github-zgy
Copy link
Author

You mentioned "the browser that comes with the VR device", that let me to assume that it's a Standalone headset that doesn't need to connect to a PC to run. Which browser comes with HTC Vive? I'm confused.

During development, I need to test the content of the scene, and I don't want to publish the scene online every time I test it, which is very troublesome. I want to connect the VR device to the PC, and then when testing locally on the PC, the VR device can view the WEBXR content on the PC. I understand that publishing the designed scenes online and using a VR device to independently browse WEBXR content is possible, but it is inconvenient for development testing.

@learning-github-zgy
Copy link
Author

You mentioned "the browser that comes with the VR device", that let me to assume that it's a Standalone headset that doesn't need to connect to a PC to run. Which browser comes with HTC Vive? I'm confused.

During development, I need to test the content of the scene, and I don't want to publish the scene online every time I test it, which is very troublesome. I want to connect the VR device to the PC, and then when testing locally on the PC, the VR device can view the WEBXR content on the PC. I understand that publishing the designed scenes online and using a VR device to independently browse WEBXR content is possible, but it is inconvenient for development testing.

Although there are webxr plugins provided by browsers for quickly browsing webxr content, it is still controlled with a mouse to simulate a virtual VR device, which is not as convenient as directly using a VR device for browsing.

@De-Panther
Copy link
Owner

It doesn't answer my question.
Which browser comes with HTC Vive?
And as far as I know HTC Vive is always connected to the PC, and from your comments you are using a standalone device that can be connected to the PC, not must.
So what is your VR device?

@learning-github-zgy
Copy link
Author

It doesn't answer my question. Which browser comes with HTC Vive? And as far as I know HTC Vive is always connected to the PC, and from your comments you are using a standalone device that can be connected to the PC, not must. So what is your VR device?

The built-in browser in HTC Vive is the one I mentioned as "browser comes with HTC Vive". Currently, there are two ways to browse webxr content. One is to use a standalone VR device and input the relevant webxr URL in the browser that comes with the VR device. The other way is to use a webxr extension provided by the PC to simulate the VR device.

@De-Panther
Copy link
Owner

A. There more than the 2 ways you mentioned.
B. You still didn't answer my questions, and I can't help you without that info.

What is your standalone device?
What browser does HTC Vive use? Answering "HTC Vive uses the browser it uses" tells nothing.
If you don't know how to check the details, please provide screenshots.

@learning-github-zgy
Copy link
Author

A. There more than the 2 ways you mentioned. B. You still didn't answer my questions, and I can't help you without that info.

What is your standalone device? What browser does HTC Vive use? Answering "HTC Vive uses the browser it uses" tells nothing. If you don't know how to check the details, please provide screenshots.

I can browse webxr content using the htc vive alone, which is the standalone device I mentioned.
The browser used in htc devices is Firefox, which is the built-in browser of htc and can be used to browse webxr content.
Sorry for the confusion caused by my description.

@De-Panther
Copy link
Owner

This is HTC Vive
image
It's not a standalone headset, and it's requires to be connected to a PC with SteamVR to run. It's not standalone.
HTC has other headsets that are standalone, but the HTC Vive is not one of them.

I really want to help you, but if you can't provide details on your device I just can't do it.

@learning-github-zgy
Copy link
Author

sorry, The device I use is htc vive focus3, I thought htc vive could represent htc vive focus3, sorry.
image
This is an all-in-one machine that can operate independently.

@De-Panther
Copy link
Owner

HTC Vive is a device or family of devices, so if asking for a device and the answer is HTC Vive, it means the first device called HTC Vive...

Regarding the Focus 3, it's different from other devices in the HTC Vive line...
I'm not familiar with it, but it seems like HTC Vive has it's own OpenXR Runtime separate from the SteamVR OpenXR Runtime.

So first, check if this demo https://immersive-web.github.io/webxr-samples/controller-state.html works on desktop and Focus 3 with Chrome/Edge. It shouldn't work on Firefox desktop, as Firefox dropped WebXR support.
If it doesn't work, it means that there's an issue with the OpenXR Runtime you are using.
If you have SteamVR installed on your desktop, you can go to the SteamVR settings, and in one of the tabs, you can set it as the OpenXR Runtime.

Also on standalone devices, Wolvic should replace the Firefox Reality browser, but I'm not sure if there's a version for the Focus 3.

@learning-github-zgy
Copy link
Author

HTC Vive is a device or family of devices, so if asking for a device and the answer is HTC Vive, it means the first device called HTC Vive...

Regarding the Focus 3, it's different from other devices in the HTC Vive line... I'm not familiar with it, but it seems like HTC Vive has it's own OpenXR Runtime separate from the SteamVR OpenXR Runtime.

So first, check if this demo https://immersive-web.github.io/webxr-samples/controller-state.html works on desktop and Focus 3 with Chrome/Edge. It shouldn't work on Firefox desktop, as Firefox dropped WebXR support. If it doesn't work, it means that there's an issue with the OpenXR Runtime you are using. If you have SteamVR installed on your desktop, you can go to the SteamVR settings, and in one of the tabs, you can set it as the OpenXR Runtime.

Also on standalone devices, Wolvic should replace the Firefox Reality browser, but I'm not sure if there's a version for the Focus 3.

Thanks, I'll keep an eye out for this device name issue in the future.
I tried running the example url you mentioned, but it didn't work, here is the error message output from the console as shown in the first image. I also looked at the openxr runtime in steamVR and set the status to "steamVR" as shown in the second picture.
When I try to run the webxr example on the PC side (the PC and HTC VIVE Focus3 are wirelessly connected through steamVR at this time), neither edge/chrome can work normally, as shown in the third and fourth pictures.
There is a built-in browser in htc vive focus3. On this browser, webxr content can be browsed normally, but at this time it is not connected to the PC through steamVR, just on this independent device.
正在进入chrome111检查控制器状态控制台
image
正在进入chrome111控制台

正在进入chrome111
正在进入edge109

@De-Panther
Copy link
Owner

Sorry, I tried to do some research on HTC OpenXR Runtime for your specific device, but couldn't find good enough resources to verify my assumptions.

As I see from the screenshot in your comments, you use SteamVR OpenXR Runtime, at least for one of your tests.
The error in the first screenshot looks like a bug in Chrome/Chromium that expected a known profile, instead of defaulting to a default one.
The error in the 3rd screenshot looks like a bug related to the OpenXR Runtime.

It seems like it's an issue related to your device in combination with WebXR on PC browsers, and not something specific to a WebXR framework(e.g. WebXR Export).
Better open issue to HTC and to Chromium related to this.

@De-Panther De-Panther changed the title WebGL context must be marked as XR compatible in order to use with an immersive XRSession HTC Vive Focus 3 on PC has general WebXR Browser/OpenXR issues (not related to WebXR Export) Apr 15, 2023
@learning-github-zgy
Copy link
Author

Sorry, I tried to do some research on HTC OpenXR Runtime for your specific device, but couldn't find good enough resources to verify my assumptions.

As I see from the screenshot in your comments, you use SteamVR OpenXR Runtime, at least for one of your tests. The error in the first screenshot looks like a bug in Chrome/Chromium that expected a known profile, instead of defaulting to a default one. The error in the 3rd screenshot looks like a bug related to the OpenXR Runtime.

It seems like it's an issue related to your device in combination with WebXR on PC browsers, and not something specific to a WebXR framework(e.g. WebXR Export). Better open issue to HTC and to Chromium related to this.

First of all thank you very much for your research. I have tried to ask HTC forum before, but I didn't get any effective solution.
Can you tell me how you use the VR device combined with webxr on the PC browser? Is it possible for me to use your method to also work in my case?

@De-Panther
Copy link
Owner

I'm using Quest1 + Link/Air Link.
And it just works.

Sometime there's a bug in Chrome or Oculus OpenXR runtime, and then I get similar errors to what you got, and needs to wait for Google/Oculus to resolve the issue.

So in your case, maybe HTC has a form to report bugs in their OpenXR runtime, or maybe there's a bug on Chrome when using devices that are not in it's internal list.

@learning-github-zgy
Copy link
Author

I'm using Quest1 + Link/Air Link. And it just works.

Sometime there's a bug in Chrome or Oculus OpenXR runtime, and then I get similar errors to what you got, and needs to wait for Google/Oculus to resolve the issue.

So in your case, maybe HTC has a form to report bugs in their OpenXR runtime, or maybe there's a bug on Chrome when using devices that are not in it's internal list.

Okay, thank you very much for your answer.
I will look for the solution in the htc forum next. After all, if the device can't connect to the browser on the PC, it will be troublesome when doing tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants