Skip to content
This repository has been archived by the owner on Nov 8, 2021. It is now read-only.

OCULUS QUEST working with sTEAM VR¿? #287

Closed
chapeka opened this issue Apr 29, 2019 · 128 comments
Closed

OCULUS QUEST working with sTEAM VR¿? #287

chapeka opened this issue Apr 29, 2019 · 128 comments

Comments

@chapeka
Copy link

chapeka commented Apr 29, 2019

May be possible a new ALVR releasse fro the Oculus quest¿??¿

@polygraphene
Copy link
Owner

I'm sorry that I have not respond to GitHub issues for a long time.

I have a plan to support Quest. But, don't expect too much.

@AltoRetrato
Copy link

I don't know how ALVR currently does video compression, but I wonder if something similar to fixed foveated rendering (as seen on Oculus Go) could be implemented - i.e., reducing resolution and/or quality at the edges of the frame. It would add complexity to the code, but could (in theory) reduce latency and/or improve image quality at the center.

@polygraphene
Copy link
Owner

polygraphene commented May 10, 2019

@AltoRetrato ALVR uses H.264/H.265 compression provided by GPU manufacturer. I don't think FFR can reduce latency on video compression, because the processing time does not depend on rendered image.
And you need RTX GPU to use FFR on PC.

@AltoRetrato
Copy link

AltoRetrato commented May 10, 2019

@polygraphene I don't mean to render the game image on the PC using FFR.

The idea is to reduce image size by 30% (or more) after it is rendered on the PC by discarding pixels in the periphery before it is compressed and sent to the headset.

@polygraphene
Copy link
Owner

Do you mean split image to multiple part according to density of FFR?
I can't predict the performance when splitting image and feeding it into encoder...
Splitting image also takes a time and encoder have limitation on how many images can be processed at the same time.

@AltoRetrato
Copy link

Splitting the original images into smaller ones and processing each one individually could be one way to do it, but it would be expensive.

Another way would be to "remap" the original image instead of splitting into multiple images. Think about making something like a texture atlas: it is a single image, with different regions being mapped to different portions of the screen at different densities.

@polygraphene
Copy link
Owner

FFR+"remap" is an interesting idea. That has low processing cost and moderate programming cost.
I want to try it when I have a time. But I'm busy at Daydream(and Quest) support on ALVR now. So I can't estimate when I can start it.

Thank you for providing good idea.

@polygraphene
Copy link
Owner

On GearVR and Go, I have published client by key distribution. So the users didn't need to enable developer mode to install client.

But unfortunately, Oculus said key distribution won't be available on Quest.
So all users have to install client by enabling developer mode.

@jc-langevin
Copy link

any ETA on your work for the oculus quest?

@peterthrees
Copy link

I really hope you get it done for quest, it would be amazing.
If i can help you with something, let me know. I'm a software developer for years, don't have any experience in hardware but I'm a fast learner :)

@MarcusSjolin
Copy link

I more than happily get involved as well, will have a quest by next week I presume, so will check the code out till then.

@polygraphene
Copy link
Owner

@jc-langevin
My order has been postponed by Amazon JP. I can't believe it.
There is no ETA for my Quest.

@peterthrees
I will publish pre-release version once it is done. I would appreciate if you can test and provide log information for debug.

@peterthrees
Copy link

@polygraphene: Np, I can do that for sure , I'll keep eye on it when the pre-release is out.

@polygraphene
Copy link
Owner

@MarcusSjolin
Thank you! Feel free to ask any question about my codes.

I heard ALVR has following issues on Quest now. (#288)

  1. side-by-side was incorrect. (Resolution issue?)
  2. Only one controller is usable.

I'm working on first issue now.

@FedericoRuiz1
Copy link

Hey! Thanks for doing this. Will it support 6dof?

@jc-langevin
Copy link

@FedericoRuiz1 look at #288

@XDRitz
Copy link

XDRitz commented May 22, 2019

@polygraphene how can I help test your builda?

@DannyDan
Copy link

@polygraphene I also want to support here with beta testing.

@polygraphene
Copy link
Owner

polygraphene commented May 23, 2019

@XDRitz @DannyDan Please try it. https://github.com/polygraphene/ALVR/releases/tag/v2.4.0-alpha1
I don't know whether controller really works.
I want to know the resolution shown in ALVR.exe when client is connected.

@spookybear0
Copy link

@polygraphene I tested it out, everything works perfect except for that there are two screens (for vr) do you have any way to fix this?

PS: Both controllers work

@polygraphene
Copy link
Owner

polygraphene commented May 23, 2019 via email

@spookybear0
Copy link

@polygraphene I will check (I cant check the controllers bc of the "two screen" but I will send screenshot and stuff)

@spookybear0
Copy link

@polygraphene 72Hz and 2432x1344, I can't get a picture bc its not working rn and other reasons but its like when you use a phone vr and the picture doubles. (example shown)
br

@AnalogMan151
Copy link

I have tested it out as well. I also get double images. Like, it's doing stereoscopic correctly but the distance between the images is too far so it's double-vision.
As for the controllers, only the right controller works for me and it shows in-game as a Vive controller. Only the trigger and grip buttons have function.

@spookybear0
Copy link

spookybear0 commented May 23, 2019

@polygraphene Yeah thats what I have too (video here to get an idea) https://drive.google.com/file/d/1E7T8p03kxQbyaaYIaekwpvKTlqx_X6Yu/view?usp=sharing

@AnalogMan151
Copy link

Resolution reported by ALVR is 2432x1344 @ 72 Hz

Official res is 2560x1440@72.
Also just found the controller settings, that should fix the buttons. Will report back.

@AnalogMan151
Copy link

@polygraphene Yeah thats what I have too (video here to get an idea) https://drive.google.com/file/d/1E7T8p03kxQbyaaYIaekwpvKTlqx_X6Yu/view

File is not public.

@polygraphene
Copy link
Owner

polygraphene commented May 23, 2019 via email

@spookybear0
Copy link

Thanks for making this program @polygraphene

@Irastris
Copy link
Contributor

Irastris commented May 26, 2019

Can I put your model data into the ALVR repository?

@polygraphene Go right ahead! I already renamed them to the oculus_quest_controller_[left|right] naming scheme for you, as well as did some cleanup (removed duplicate MTL files). Let me know if there's any issues.

https://files.catbox.moe/1zbqvu.zip

As soon as the joystick is functioning on the CV1 model, I'll make that reactive on my Quest model and make a pull request for those changes.

@SweViver
Copy link

SweViver commented May 26, 2019

Hi @polygraphene I would like to thank you so much for making this software. You are doing an amazing job. I spent this weekend testing ALVR and Im seriously shocked how great it works. Really impressive!

Keep up your great job man, this could get huge!
By the way, I made a video on my channel about ALVR testing it with Projeft Cars2, Onward, DCS, X Plane 11 and others. I hope it will help bringing some more attention to your great project!
https://youtu.be/gtmJInS7RxU

Cheers and thanks again!
/Martin

@YeetSkillet
Copy link

Idk if its my connection or not but my quest has really high latency rates and constant stuttering whenever i use alvr (around 60ms) if i lower the bitrate the latency is better but my resolution drops. I have a 2.4Ghz router

@rathugo
Copy link

rathugo commented May 26, 2019

I have a 2.4Ghz router

@YeetSkillet ALVR will benefit a lot from a 5Ghz connection.

@machenmusik
Copy link

re: #287 (comment)

see #313 - for me, that commit did not resolve the issue

@polygraphene
Copy link
Owner

New alpha.
https://github.com/polygraphene/ALVR/releases/tag/v2.4.0-alpha4

@polygraphene
Copy link
Owner

@YeetSkillet
60ms latency is not bad. I have same latency.
What's the stuttering problem? Do you experience stutter animation? Or head tracking?

@d4nielrx
Copy link

Will usb c tethering ever work? Surely itd be faster? Ivry says its possible dunno how true that is

@Irastris
Copy link
Contributor

iVRy also hasn't released even a demo video at the least, so I'd take that with a grain of salt for now.

@ephemerist
Copy link

@polygraphene, this is the build I’ve been waiting for! I’ve tried the previous alphas, and this is the first that (so far) works perfectly with Google Earth VR. Before my quest arrived, I was obsessively refreshing the Amazon delivery status, but over the last few days I’ve been refreshing the ALVR commits page waiting for new builds. Thanks so much for your work, and the frequent release builds since the quest was released; I’ve sent a small paypal donation in thanks.

@peterthrees
Copy link

@polygraphene I tried to start the app in windows, but i'm getting an error:
https://www.screencast.com/t/hiFCluux3I (i used the EXE to install)

"The system cannot find the file specified"

This is are the details:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at ALVR.Utils.ExecuteProcess(String path, String args)
at ALVR.DriverInstaller.GetDriverList()
at ALVR.DriverInstaller.RemoveOtherDriverInstallations()
at ALVR.Launcher.Launcher_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at MetroFramework.Forms.MetroForm.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at MetroFramework.Forms.MetroForm.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3130.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

ALVR
Assembly Version: 1.1.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Program%20Files/ALVR/ALVR.exe

System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

MetroFramework
Assembly Version: 1.2.0.3
Win32 Version: 1.2.0.3
CodeBase: file:///C:/Program%20Files/ALVR/MetroFramework.DLL

System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3081.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

MetroFramework.Fonts
Assembly Version: 1.2.0.3
Win32 Version: 1.2.0.3
CodeBase: file:///C:/Program%20Files/ALVR/MetroFramework.Fonts.DLL

Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

Microsoft.CSharp
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll

System.Runtime.Serialization
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3130.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll

System.Xml.Linq
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0 built by: NET472REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll

SMDiagnostics
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3130.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/SMDiagnostics/v4.0_4.0.0.0__b77a5c561934e089/SMDiagnostics.dll

System.ServiceModel.Internals
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3130.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel.Internals/v4.0_4.0.0.0__31bf3856ad364e35/System.ServiceModel.Internals.dll

System.Dynamic
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3062.0
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll

Anonymously Hosted DynamicMethods Assembly
Assembly Version: 0.0.0.0
Win32 Version: 4.7.3130.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

@polygraphene
Copy link
Owner

@peterthrees
Please check the installation of SteamVR.
You need to install SteamVR on C:\ drive.

@peterthrees
Copy link

@polygraphene, thanks I've fixed that, next I've allowed port 9944 in my firewall. I get connection with my quest, but when i want to start the server, i'm receiving the following error:

Failed to initialize CEncoder. All VideoEncoder are not available. VCE: AMF Error 1. g_AMFFactory.Init(), NVENC: NvEnc NvEncoderD3D11 failed. Code=1 NvEncoder::LoadNvEncApi : NVENC library file is not found. Please ensure NV driver is installed at c:\src\alvr\alvr_server\nvencoder.cpp:70

Any idea how to solve this?

@polygraphene
Copy link
Owner

@peterthrees
Please upgrade graphic driver.

@peterthrees
Copy link

@polygraphene Thanks, i was trying to do this on my work notebook. Maybe not a good idea for steam :)
I've tried it on my more powerfull pc. I bought it to run oculus dk2 games. I have AMD Radeon R9 200 gfx card, when I run the vr game from steam without my quest, it starts. When I use ALVR to run it on my quest, I get the same error issue again. The drivers are the latest ones. Used riftcat on my notebook before and thjat one worked but not that good.

Is ALVR maybe using something like what the app moonlight does? I know it only support gforce gfx cards. Thats why i used parsec instead.

@Irastris
Copy link
Contributor

@peterthrees ALVR is currently 100% reliant on NVENC for encoding, which is unavailable on AMD cards. Apologies.

@peterthrees
Copy link

Ok thanks, ill try to find a second hand gforce card that support nvenc

@polygraphene
Copy link
Owner

Though ALVR supports Radeon GPU, R9 200 series may be a bit old for ALVR.
I tested only on RX 400 and 500 series.

@YeetSkillet
Copy link

@polygraphene

Stuttering in the headset tracking, the controllers for the most part work fine but the headset stuttering gives me nausea

@jarodhanko
Copy link

Stuttering in the headset tracking, the controllers for the most part work fine but the headset stuttering gives me nausea

@YeetSkillet

You will have to give more info than that. Likely that is a problem with your network setup or the settings chosen in ALVR are too high for your network to handle.

Latency will depend on network setup (2.4 ghz, 5ghz, network speed, distance from access point) and application specific settings (resolution, bitrate). You may need to adjust your settings in order to get low enough latency. If you believe it is an issue with ALVR itself, you need to provide details on how you have things setup or how it can be reproduced.

  1. Distance from route/access point
  2. 2.4 ghz vs 5 ghz
  3. how many other wifi networks are you competing with (how congested is the wifi channel that you are using)
  4. Is there other traffic that may be using up bandwidth
  5. What are your computer specs
  6. What application(s) are you attempting to use

This is just an example, but no one will be easily able to help you without supporting information.

@peterthrees
Copy link

Who wants to know, there is a topic on resetera on ALVR and others:

https://www.resetera.com/threads/oculus-quest-steamvr-thread-what-can-5ghz-buy-you.119494/

@polygraphene
Copy link
Owner

@polygraphene

Stuttering in the headset tracking, the controllers for the most part work fine but the headset stuttering gives me nausea

Please create new issue. And tell me your OS and GPU.

@crazysword1
Copy link

Thank you for your hard work. Just want to confirm one thing.

With all other factors being equal, does a higher bitrate translate to higher latency? What about if the router is sufficient to handle the higher bitrate? Does it take longer to encode and decode a higher bitrate stream?

Also for anyone using H.265, are you using the Pascal (Nvidia 1000 series) or Turing (2000 series) cards?

@FingrMastr
Copy link

Here is my config:
Intel i5 8400
16Gb ram 2666mhz
Nvidia GeForce 2070 8Gb hheavily overclocked
PC on 100Mbit Ethernet cabled connection to router
Oculus Go on cabled rj45 connection to router using an adapter Ethernet/microusb
ALVR stable (not alpha nor beta)
Maxed resolution on ALVR
50mbit bitrate
300kb buffer
Max latency: 70ms
Totally playable on Project Cars 2, stable 72 fps, no artifacts, on ultra settings.
SIMPLY FANTASTIC

@Cumulus7
Copy link

Cumulus7 commented Jun 18, 2019

Though ALVR supports Radeon GPU, R9 200 series may be a bit old for ALVR.
I tested only on RX 400 and 500 series.

Just for your information:
I got GoogleEarth VR running yesterday using an AMD HD 7970 - (first generation GCN, same as the R9 280X). Works just fine.
Only problem here: resolution has to be set to 75% or lower :-(
Don't know why that may be.....

THX for your work - i think i might have to upgrade the gfx card after the summer.

@Thijzer
Copy link

Thijzer commented Jun 23, 2019

Just had a successful install. Was up and running in minutes. I started with sideQuest. I would recommend every beginner to do this route. Follow the setup on sideQuest instructions and don't rush. It helps you enabling developer mode, install and drivers, install ALVR on the headset. Remaining things are the ALVR server setup and steam vr setup.

So in order to make those work install steam vr in steam make sure to play as well.
Make a connection with the headset going to ALVR app in the headset and connect the headset on the server.
Last when everything is installed restart all mentioned apps or the computer.
Start ALVR server up again make the connection and start the server.
You should be good to go.

I have RX580 and streaming works just like steam link works.

Steam vr was never on my computer but it found my devices.

My WiFi connection is not optimal and it works well enough to make it work during setup. For playing I will make a guard zls close as possible to the WiFi router.

I also have a rental router from my provider so nothing custom or expensive.

@gtrak
Copy link

gtrak commented Jul 28, 2019

Got up and running with sidequest, oculus quest, GTX 1070. I ran Dirt Rally with Revive. The hand controllers were a complete mess (maybe button mapping?), so I disabled them and used a 3rd party bluetooth gamepad. Streaming was smooth, tracking was stuttery. Going to try setting TrackingFrameOffset to -1 if you 'experience jerky head-tracking' once I stop feeling motion sickness, probably the fault of my choice of game :-).

@gtrak
Copy link

gtrak commented Jul 28, 2019

TrackingFrameOffset didn't help. Forcing 60hz didn't help. I noticed occasionally the tracking would be smooth for a second or two, but it was very rare. I also noticed in the graphics settings of dirt rally, the refresh rate says 59, though I ran a benchmark and it didn't go higher than 72.40 FPS, which is suspicious.

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

No branches or pull requests