Closed jl91569 closed 3 years ago
@jl91569 - thanks for catching this! I've been able to reproduce it as well, so will fix ASAP. Sorry about that :(
@jl91569 - as a quick workaround to avoid the condition that is leading to the crash, you can set the encoder resolution to 1472x1472 per eye and render resolution to a higher number like 1600x1600 (doesn't really matter what it is as long as they're not the same) - either by editing the settings.json file or by using the Web UI. Leave the codec at "default" in settings.json or at Auto in Web UI. These numbers will work best on Polaris cards (RX470/480/580/590). For Navi (RX5600/RX5700 and up) encoder resolution can be set to 1600x1600 or higher, but render resolution must be greater than that.
As I said, we will fix it as soon as possible, but please understand that we're bound by the driver release schedule, so it might not happen immdiately. Thanks again for catching this bug and sorry for the inconvenience!
This workaround fixes this to:
6900 XT - Driver 21.4.1 If I set H.265 as codec I get a Steam-VR crash and video driver timeout/crash. If I adjust Render res to 2020x2020 and Encoder res to 1920x1920 - no crash.
Over all I have to say I get a pretty nice experience with your Driver and .apk solution on my Quest 2. I tried other ways, including Oculus new Air Link. I think your solution offers the best latency (with a AMD GPU) of all tools I know and tried. I hope you develop this further. I think with web Interface and config files editing many Quest users won't give it a try. Do you have plans on integrating all settings (and maybe some more ^^) directly into the driver UI? A Quest 1/2 "one click solution" would be a feature that many users will give a try on their hunt for the best wireless latency possible. Quest will be the most used VR in the upcoming years. At least this is what the numbers look like...
With other tools I have a render latency in the 50s and 60s. Is this faster? (It feels like) Is there any way to monitor that?
I try to find the best settings for my system and the Quest 2. Any suggestions on a "nice quality & low latency" setting? Are there more things I could tweak to archive that (I don't mind crashes and config files)? I'm using a dedicated AX router for testing so I get somewhat comparable results.
Btw.: Is there a way to set Steam-VR to 90Hz or even 120hz? Mine shows 75Hz (I selected Rift S emulation)
Thanks you for this!
@drzett - can I ask you to try to delete the c;\Program Files\AMD\WVR folder and then reinstall the latest driver? This was supposed to be fixed in 21.4.1 and I can no longer reproduce it myself, so I'm wondering if you're seeing a different issue? Thanks a lot in advance. Do you also get a crash if you leave the codec at "default" or "avc"?
90Hz - Quest2 is running at 90Hz, it's just that Steam doesn't show this in Settings. But if you enable "Display Performance Graph" from the pull-down menu, it shows the real-time FPS and you will see something very close to 90Hz there.
Latency - everyone measures it differently, so comparing latency between different solutions is not an apples-to-apples comparison. You can see the numbers we measure in c:\Program Files (x86)\Steam\logs\AMDWirelessVR.log and I expect you'd see numbers below 50ms there, but please refrain from comparing these two the numbers you get in other solutions as we don't know how they measure it. But it's useful when you're tweaking parameters like resolution. There's no such thing as "one-click best latency" - with everything else constant better latency vs higher resolution is the main trade-off, as encode/decode time is directly proportional to the number of pixels. Another way to gain maybe 1-2ms is to lower the bitrate as this would decrease transmission time. But these are all trade-offs that depend on your personal preference of lower latency vs higher visual quality and everyone is different when it comes to that. For you, setting the bitrate to 100Mbps if your router can handle it. You could go a little lower on the resolution, like 1600x1600, could buy you a bit of extra latency without much of a noticeable change, but it really depends on how good your vision is.
Hi @GennadiyAMD. Before deleting the folder an reinstalling I did some testing.
1.) Render res. : 1440 x1400 Encoder res: 0 x 0 Non linear scaling HEVC FOV: 100 x100 FPS: 40 - 10000 TCP = SteamVR unexpected error | driver: driver timeout popup
2.) Same settings but: AVC =working, no errors (I can enter my VR Home in Steam)
3.) Same settings as 1.) but: Codec: Auto =working, no errors (I can enter my VR Home in Steam) So I guess Auto means AVC. (Would not be my first recommendation, but maybe there is a reason I don't know.
4.) Same settings as 1.) but: Endoder res = 1430 x1430 =Steam VR crash
5.) Same settings as 1.) but: Render res : 2020 x 2020 Endoder res: 1920 x 1920 = Vr screen stays black after connection. (That not my result from the last try of this settings, maybe i haveto reboot my system after the driver timeouts)
6.) retry of settings from 5.) after rebooting my PC (and quest 2) = Again: screen stays black after connecting. Steam VRs status windows shows 120Hz / fps - by the way.
7.) Same settings with AVC: first screen stays black, thensteam VR crash after a minute. ... strage.
8.) reverting to settings from 2.) just for validation. = still working...
... pretty strage. I will test further after deleting the folder content and reinstalling the driver as you recommended. There a more scenarios I would love to try, but i can't spend more time.
I had to kill redeon host application to delete \WVR.
I reinstalled 21.4.1 via radeon-software-adrenalin-2020-21.4.1-minimalsetup-210419_web.exe as "Full install".
Next step: reboot PC & Quest 2
Then using the exact settings from 1.) again.
= Steam VR Crash & driver timeout popup.
Here a full paste of my new AMDWirelessVR.log after this try.
---------paste--------- 2021-05-01 19:18:07.552 4250 [EncodeCoreHelper] Info: *Found regpath, but key not found using default=0 2021-05-01 19:18:07.552 4250 [AMFEncoderCoreH264] Warning: ***Encode core is disabled! 2021-05-01 19:18:07.561 4250 [UVEEncoderTrace] Info: Terminate()! 2021-05-01 19:18:07.561 4250 [EncodeCoreHelper] Info: *Found regpath, but key not found using default=0 2021-05-01 19:18:07.561 4250 [AMFEncoderCoreHevc] Warning: ***Encode core is disabled! 2021-05-01 19:18:08.174 4250 [AWVRServerImpl] Info: StartService() Network services started. url=TCP://:1235 2021-05-01 19:18:08.174 4250 [NetworkServer] Info: Server started, listening for incoming connections on TCP://:1235 2021-05-01 19:18:08.174 5510 [Comm::Server] Info: Starting server... 2021-05-01 19:18:08.174 5514 [Comm::Server] Info: Starting server... 2021-05-01 19:18:08.174 4250 [IServerTrackedDeviceProviderImpl] Info: Init() - OpenVR setting set 2021-05-01 19:18:08.174 4250 [IServerTrackedDeviceProviderImpl] Info: CreateDeviceDriver(): Device '/hmd' initialized. 2021-05-01 19:18:08.174 4250 [DisplayDriver] Info: Display '/hmd' connected. 2021-05-01 19:18:08.175 4250 [DeviceDriver] Info: Activate(1), DeviceID=/hmd 2021-05-01 19:18:08.175 4250 [DeviceDriver] Info: Activate(1), DeviceID=/hmd, resource root set to C:/Program Files/AMD/WVR/OpenVR/bin/win64/../../resources 2021-05-01 19:18:08.178 4250 [DeviceDriver] Info: ReadCorrectionFromChaperoneSetup() id=10 found 2021-05-01 19:18:08.178 4250 [DisplayDriver] Info: DeviceID = /hmd 2021-05-01 19:18:08.180 4250 [DeviceDriver] Info: Activate(0), DeviceID=/hmd 2021-05-01 19:18:08.180 4250 [DeviceDriver] Info: Activate(0), DeviceID=/hmd, resource root set to C:/Program Files/AMD/WVR/OpenVR/bin/win64/../../resources 2021-05-01 19:18:08.181 4250 [DeviceDriver] Info: ReadCorrectionFromChaperoneSetup() id=10 found 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: DeviceID = /hmd 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: GetWindowBounds(0, 0, 2880, 1440) 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: IsDisplayOnDesktop() = false 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: IsDisplayRealDisplay() = false 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: GetRecommendedRenderTargetSize(1440, 1440) 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: GetProjectionRaw(0, -1.191754, 1.191754, -1.191754, 1.191754) 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: GetEyeOutputViewport(0, 0, 0, 1440, 1440) 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: GetProjectionRaw(1, -1.191754, 1.191754, -1.191754, 1.191754) 2021-05-01 19:18:08.181 4250 [DisplayDriver] Info: GetEyeOutputViewport(1, 1440, 0, 1440, 1440) 2021-05-01 19:18:11.486 5554 [DisplayDriver] Info: CreateSwapTextureSet() succeded process=21824 size=1764x1764 format=29 sampleCount=1 id=1 2021-05-01 19:18:11.488 5554 [DisplayDriver] Info: CreateSwapTextureSet() succeded process=21824 size=1764x1764 format=29 sampleCount=1 id=2 2021-05-01 19:18:12.603 4250 [DisplayDriver] Info: DestroyAllSwapTextureSets() succeded process=1948 2021-05-01 19:18:17.824 5260 [DeviceDriver] Info: EnterStandby() 2021-05-01 19:18:23.973 5684 [DisplayDriver] Info: CreateSwapTextureSet() succeded process=21996 size=2345x2345 format=29 sampleCount=1 id=3 2021-05-01 19:18:23.977 5684 [DisplayDriver] Info: CreateSwapTextureSet() succeded process=21996 size=2345x2345 format=29 sampleCount=1 id=4 2021-05-01 19:19:53.869 5510 [AWVRServerImpl] Info: UDPServer::OnCreateSession: Discovery session created 2021-05-01 19:19:53.869 5510 [Comm::DatagramServer] Info: New session created 2021-05-01 19:19:53.869 5510 [WVRServerSession] Info: (Discovery) HelloRequest command received from 192.168.178.60:59748 2021-05-01 19:19:53.899 5514 [NetworkServer] Info: Client connection request received 2021-05-01 19:19:53.899 5514 [NetworkServer] Info: Client connection request accepted 2021-05-01 19:19:53.899 5514 [AWVRServerImpl] Info: TCPServer::OnCreateSession: TCP session created 2021-05-01 19:19:53.900 40E4 [WVRServerSession] Info: HelloRequest command received from 192.168.178.60:60264 2021-05-01 19:19:53.900 40E4 [VirtualAudioImpl] Info: Symbolic links is \?\ROOT#AMDSAFD&FUN_01&REV_01#0000#{cd8a9566-650e-4dad-a63d-a8b4a5e4a552}\SAFD_Interface 2021-05-01 19:19:54.977 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{008eebd5-7147-4a1a-bc88-4e516909c982} name = 6 - Digital Display Audio (2- AMD High Definition Audio Device) 2021-05-01 19:19:54.977 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{1a90c69d-ee79-4995-8546-91d5c13e5b25} name = 1 - XF270HU (2- AMD High Definition Audio Device) 2021-05-01 19:19:54.980 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{7b0acba1-eb67-4438-9ffc-7cc37a231778} name = Kopfhörer (Mann’s AirPods Pro Stereo) 2021-05-01 19:19:54.984 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{7bda47d1-5435-427f-a2c5-7b9a0f43854d} name = 5 - Digital Display Audio (2- AMD High Definition Audio Device) 2021-05-01 19:19:54.988 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{8f824cb8-92b6-407c-8eb5-e921e32b7ad1} name = 2 - Digital Display Audio (2- AMD High Definition Audio Device) 2021-05-01 19:19:54.989 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{9b36b102-4308-4af1-a831-cdff19803a4a} name = Lautsprecher (Sonarworks Virtual Audio Device) 2021-05-01 19:19:54.989 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{a1f39609-99b4-4e53-9fdd-3421554078c6} name = 3 - XF270HU (2- AMD High Definition Audio Device) 2021-05-01 19:19:54.989 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{d49f2501-0082-4633-8f30-4032e2531f5f} name = 4 - ASUS VG278HE (2- AMD High Definition Audio Device) 2021-05-01 19:19:54.989 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{dd369f49-f1db-48e8-8cf6-8ec726fddd66} name = Kopfhörer (Oculus Virtual Audio Device) 2021-05-01 19:19:54.989 40E4 [VirtualAudioImpl] Info: Device: Out id={0.0.0.00000000}.{e217bb1e-a0b1-4630-be1a-122b0d6dde2a} name = Lautsprecher (Audient iD4) 2021-05-01 19:19:54.989 40E4 [VirtualAudioImpl] Info: Device: In id={0.0.1.00000000}.{18003b34-b4a1-4e60-be3c-da487492d326} name = Headset Microphone (Oculus Virtual Audio Device) 2021-05-01 19:19:54.993 40E4 [VirtualAudioImpl] Info: Device: In id={0.0.1.00000000}.{9475cb98-32b4-4c78-b461-115c3247c240} name = Mikrofon (AMD Streaming Audio Device) 2021-05-01 19:19:54.994 40E4 [VirtualAudioImpl] Error: ..........\runtime\src\components\VirtualAudio\VirtualAudioImpl.cpp(644):Assertion failed:pDataFormat == nullptr 2021-05-01 19:19:54.994 40E4 [VirtualAudioImpl] Error: ..........\runtime\src\components\VirtualAudio\VirtualAudioImpl.cpp(644):Assertion failed:pDataFormat == nullptr 2021-05-01 19:19:54.994 40E4 [VirtualAudioImpl] Info: Device Format: sampleRate=44100, channelCount=1 sampleSize=2 2021-05-01 19:19:55.995 40E4 [VirtualAudioImpl] Info: Capture buffer allocation request is success bufferlength = 3592 No of packets = 4 BufferOffset = 64 2021-05-01 19:19:56.208 40E4 [IServerTrackedDeviceProviderImpl] Info: CreateDeviceDriver(): Device '/hmd' already exists. 2021-05-01 19:19:56.208 40E4 [DisplayDriver] Info: Display '/hmd' connected. 2021-05-01 19:19:56.208 40E4 [NetworkServer] Info: OnServiceMessage - SERVICE_OP_CODE_START 2021-05-01 19:19:56.208 40E4 [VideoPipeline] Info: Video bitrate (overall) changed to 50.00 Mbps 2021-05-01 19:19:56.208 40E4 [VideoPipeline] Info: InitializeEncoder() start 2021-05-01 19:19:56.208 40E4 [EncodeCoreHelper] Info: *Found regpath, but key not found using default=0 2021-05-01 19:19:56.208 40E4 [AMFEncoderCoreHevc] Warning: ***Encode core is disabled! 2021-05-01 19:19:56.211 40E4 [AMFEncoderHEVC] Warning: SetProperty HevcColorConversion not found 2021-05-01 19:19:56.216 40E4 [VideoPipeline] Info: InitializeEncoder(HEVC) succeeded 2021-05-01 19:19:56.216 40E4 [VideoPipeline] Info: Video bitrate (overall) changed to 50.00 Mbps 2021-05-01 19:19:56.216 40E4 [VideoPipeline] Info: HEVC Video bitrate changed to 25.00 Mbps for left eye 2021-05-01 19:19:56.216 40E4 [NetworkServer] Info: Sent message CHANNEL_VIDEO_OUT::VIDEO_OP_CODE_INIT 2021-05-01 19:19:56.216 40E4 [NetworkServer] Info: Sent CHANNEL_SERVICE::AWVR_START_SENSOR 2021-05-01 19:19:56.216 40E4 [VideoPipeline] Info: InitializeEncoder() start 2021-05-01 19:19:56.216 40E4 [EncodeCoreHelper] Info: *Found regpath, but key not found using default=0 2021-05-01 19:19:56.216 40E4 [AMFEncoderCoreHevc] Warning: ***Encode core is disabled! 2021-05-01 19:19:56.219 40E4 [AMFEncoderHEVC] Warning: SetProperty HevcColorConversion not found 2021-05-01 19:19:56.222 40E4 [VideoPipeline] Info: InitializeEncoder(HEVC) succeeded 2021-05-01 19:19:56.222 40E4 [VideoPipeline] Info: Video bitrate (overall) changed to 50.00 Mbps 2021-05-01 19:19:56.222 40E4 [VideoPipeline] Info: HEVC Video bitrate changed to 25.00 Mbps for left eye 2021-05-01 19:19:56.222 40E4 [VideoPipeline] Info: HEVC Video bitrate changed to 25.00 Mbps for right eye 2021-05-01 19:19:56.222 40E4 [VideoPipeline] Info: InitializeConverter() 2021-05-01 19:19:56.278 40E4 [VideoPipeline] Info: Initialize(): Codec: HEVC Render Resolution: 1440x1440 Encode Resolution: 1440x1440@120fps EFC: false Format: RGBA Bitrate: 50000000 bps Stereo: yes SeparateEyeProcessing: yes Non Linear Scale Supported : yes
Thank you, keep up the good work. I really love the AMD Drivers and what they offer to me. Best in class.
@drzett - thank you so much for the logs. It does confirm that this is a different issue, so we'll need to look into this.
@drzett - the issue you've hit was also reported here, along with a workaround. Fixes are coming in 21.6.1, but in the meantime please use AVC or default for codec, ensure that render resolution and encode resolutions are the same (opposite to the workaround mentioned earlier) if you enable non-linear scaling.
Thanks again for the detailed logs and the investigation you did - these were really helpful!
Thanks for investigating @GennadiyAMD .
Nice, I'll wait for 21.6.1. :-) In the meantime I'll try streaming with AVC, too.
I also have the other solutions (I think all of them) to stream games to the Quest 2, because I like to try a lot of software and hardware (more than playing, I'm afraid ... lol). In the well-known paid solution for streaming to the Quest 2, when streaming with HVEC, I get a crash about once an hour (the game freezes) and the video driver timeout pops up. The streaming client and SteamVR is still up. Are there possibly connections? After looking at the GPU-Z statistics, I put it on the boost algorithm and also sent corresponding error reports to AMD. (High fluctuation of clockspeed and voltage, although I really demand a lot from the GPU in terms of frame rate and supersampling... ) I reinstalled, factory reseted, underclocked etc but it keeps on crashing. It is not easy to find the cause of such specific problems... I'm active in the relevant communities, but they are pretty small an nobody I asked got this HW/SW combination to reproduce.
I am aware that it does not belong here, but if there can be a connection - maybe let me know. ;-) If I can do / try something for you guys, please write to me as well. :-)
I will check this git out regularly. Many greetings, keep it up!
I'm getting "critical error" crashes from SteamVR as soon as my Quest 2 tries to connect to the ReLive VR server.
Here's the output from Event Viewer: Faulting application name: vrserver.exe, version: 1.16.10.0, time stamp: 0x604ab81c Faulting module name: driver_amdwvr.dll, version: 1.4.19.0, time stamp: 0x60491c2c Exception code: 0xc0000005 Fault offset: 0x000000000007b195 Faulting process ID: 0x15e4 Faulting application start time: 0x01d7223c48d0e23b Faulting application path: D:\Program Files (x86)\Steam\steamapps\common\SteamVR\bin\win64\vrserver.exe Faulting module path: C:\Program Files\AMD\WVR\OpenVR\bin\win64\driver_amdwvr.dll Report ID: 28270446-fcd2-4bad-a516-79b5f7719564 Faulting package full name: Faulting package-relative application ID:
System details: Intel Core i5-6600K, 16GB RAM, AMD Radeon RX 580 (8GB) Radeon Software 21.3.1, Windows 10 20H2 19042.867, SteamVR 1.16.10 (stable) Radeon Go OpenVR Driver 1.4.19.0 (1;3;19;0;20.50.03.01;202103101421;CL#2273499) OpenVR Driver SHA256 hash: A0BEAA6B727A27CAB23F32220C1119A4351F7479C98EFE3D2AF1474C8FF5A289
Edit: This is a regression from the v1.4.18.0 of the Radeon Go OpenVR Drivers - I tried using 1.4.19.0 with Radeon Software 21.2.3 and it also crashed (installing 21.2.3 didn't replace the OpenVR driver with the older version), but restoring the older Radeon Go drivers by copying the "bin" folder from a backup fixed the issue.
I'm using a Quest 2 with ReLiveVR for Oculus 1.0.25.