Meumeu / WiVRn

An OpenXR streaming application to a standalone headset
GNU General Public License v3.0
134 stars 22 forks source link

Black Screen in Vive XR Elite & Focus 3 #46

Closed ansuckynoob closed 3 months ago

ansuckynoob commented 3 months ago

A bug has been observed with Vive XR Elite and Vive Focus 3 headsets where, once the video stream starts, the HMD goes to a black screen. Nothing will show up in this black screen (except stats, if enabled) until the WiVRn streamer is stopped, at which point the HMD returns back to the WiVRn client lobby.

It seems that this is an issue on the WiVRn client's side, where the WiVRn client receives the stream but does not render it, as when the headset's view is streamed (mirrored) using the built-in cast feature and viewed in a browser on another device, everything that should be showing in the HMD is showing in the cast.

damaestro commented 3 months ago

This issue has been reproduced on https://github.com/Meumeu/WiVRn/commit/46d6d2181b62ecb976616a3b2396b9bd0ce345b4 and has existed since I've been testing WiVRn.

xytovl commented 3 months ago

https://github.com/Meumeu/WiVRn/commit/d479ae97866c8737ebdb071ad209a33d64572451 fixes black screen on Vive

https://github.com/Meumeu/WiVRn/commit/5dc5117441d000cda49a67ed5d873c46d62daa92 fixes tracking issues on Vive as well

Headsets should now fully work with WiVRn

ansuckynoob commented 3 months ago

Trying to build, I'm getting this error:

error: cannot decompose class type ‘std::_Tuple_impl<0, vk::PhysicalDeviceProperties2, vk::PhysicalDeviceDrmPropertiesEXT>’: its base classes ‘std::_Head_base<1, vk::PhysicalDeviceDrmPropertiesEXT, false>’ and ‘std::_Head_base<0, vk::PhysicalDeviceProperties2, false>’ have non-static data members
   81 |         auto [props, drm_props] = physical_device.getProperties2<vk::PhysicalDeviceProperties2, vk::PhysicalDeviceDrmPropertiesEXT>();
      |              ^~~~~~~~~~~~~~~~~~ 

C++ is not my forte, any idea what could be going wrong here?

ansuckynoob commented 3 months ago

Realized your changes only affected the client, so I ignored the server and just rebuilt the client and it works great! Thanks for your work on this!