ALVR
ALVR copied to clipboard
Headset connected, black screen, but tracking data [Linux] [Oculus GO]
TL:DR:
- How can I enable more debug output, as right now I get no errors?
- How can I build static FFmpeg when using
cargo build
and notcargo xtask
? Maybe that will fix the problem
Bug reports:
I launch ALVR, headset says "stream will start soon", after Steam Home launches I see it on the monitor, while the headset's display turns black. When I turn off Steam VR, the headset goes back to waiting for connection screen.
Sometimes it will get stuck on "stream will start soon", while sometimes left eye will go black, while the right one will switch to "waiting for server restart".
And through all that the head tracking works perfectly, on Windows it works flawlessly too.
There is no error in alvr_session_log.txt
or when launching Steam through the command line.
I am trying to package it for Solus, here is my build script, based on the one from the AUR:
builddeps :
- pkgconfig(ImageMagick)
- pkgconfig(alsa)
- pkgconfig(gtk+-3.0)
- pkgconfig(libavformat)
- pkgconfig(libdrm_intel)
- pkgconfig(libunwind)
- pkgconfig(vulkan)
- pkgconfig(x264)
- pkgconfig(x265)
- cargo
- llvm-clang-devel
- llvm-devel
- nasm
- vulkan-headers
- vulkan-tools
- yasm
setup : |
#%patch -p1 < $pkgfiles/alvr.patch
sed -i 's:../../../lib64/libalvr_vulkan_layer.so:libalvr_vulkan_layer.so:' alvr/vulkan-layer/layer/alvr_x86_64.json
cargo fetch --locked --target "x86_64-unknown-linux-gnu"
build : |
export RUSTUP_TOOLCHAIN=stable
export CARGO_TARGET_DIR=target
export ALVR_ROOT_DIR=/usr
export ALVR_LIBRARIES_DIR=$ALVR_ROOT_DIR/lib64/
export ALVR_OPENVR_DRIVER_ROOT_DIR=$ALVR_LIBRARIES_DIR/alvr/
export ALVR_VRCOMPOSITOR_WRAPPER_DIR=$ALVR_LIBRARIES_DIR/alvr/
#cargo xtask build-server --release --bundle-ffmpeg
ls -ltra
cargo build --frozen --release -p alvr_server -p alvr_launcher -p alvr_vulkan-layer -p vrcompositor-wrapper
install : |
ls -ltra
install -Dm755 target/release/alvr_launcher -t "$installdir/usr/bin/"
# vrcompositor wrapper
#install -Dm755 target/release/vrcompositor-wrapper -t "$installdir/usr/libexec/alvr/"
install -Dm755 target/release/vrcompositor-wrapper -t "$installdir/usr/lib64/alvr/"
# OpenVR Driver
install -Dm644 target/release/libalvr_server.so "$installdir/usr/lib64/alvr/bin/linux64/driver_alvr_server.so"
install -Dm644 alvr/xtask/resources/driver.vrdrivermanifest -t "$installdir/usr/lib64/alvr/"
# Vulkan Layer
install -Dm644 target/release/libalvr_vulkan_layer.so -t "$installdir/usr/lib/"
install -Dm644 alvr/vulkan-layer/layer/alvr_x86_64.json -t "$installdir/usr/share/vulkan/explicit_layer.d/"
# resources (presets + dashboard)
install -d $installdir/usr/share/alvr/{dashboard,presets}
install -Dm644 alvr/xtask/resources/presets/* -t "$installdir/usr/share/alvr/presets/"
cp -ar alvr/dashboard $installdir/usr/share/alvr/
# Misc
install -Dm644 packaging/freedesktop/alvr.desktop -t "$installdir/usr/share/applications"
install -d $installdir/usr/share/icons/hicolor/{16x16,32x32,48x48,64x64,128x128,256x256}/apps/
# cp -r icons/* $installdir/usr/share/icons/
install -Dm644 packaging/firewall/alvr-firewalld.xml "$installdir/usr/lib/firewalld/services/alvr.xml"
install -Dm644 packaging/firewall/ufw-alvr -t "$installdir/etc/ufw/applications.d/"
install -Dm755 packaging/firewall/alvr_fw_config.sh -t "$installdir/usr/lib/alvr/"
I expect the problem might be the FFmpeg, or maybe even Vulkan in some way. But at this point I don't know anymore how to diagnose further. How can I enable more debugging output or build static FFmpeg? Any suggestions will be extremely welcomed!
Environement
Solus 4.3, Mesa 21.3.1, FFmpeg 4.4 (WITH vulkan support), vulkan-headers 1.2.189.1 AMD Ryzen PRO 4650G (Renoir, using its iGPU), RADV ALVR 16.0.0 and NIGHTLY 2021.12.14, both compiled from source SteamVR 1.12.04
I also got this issue when I run the Quest 2 ALVR app midway (due to crash). So SteamVR & ALVR on PC still running fine. Quest connects & get tracked, but no visual.
I am still struggling with this problem, spent a lot of hours on it. I got 2 more observations:
-
The command line process quits immediately after the headset connects, even though the settings screen in Chrome is still working and I have tracking. So that might be preventing me from seing some useful DEBUG output. Last 2 lines on the command line before it quits are:
DEBUG [ureq::unit] response 200 to GET http://127.0.0.1:8082/index.html DEBUG [ureq::stream] dropping stream: TcpStream { addr: 127.0.0.1:44830, peer: 127.0.0.1:8082, fd: 13 }
-
No matter if I select H264 or HEVC the headset's screen is black. So I presume there is something sent to the headset.
Does anybody have any idea how to get more debug output, what else I can check, or any tips?
Environement
(Linux) Solus 4.3, Mesa 21.3.6, FFmpeg 4.4.1 (WITH vulkan support), vulkan-headers 1.2.198.0 AMD Ryzen PRO 4650G (Renoir, using its iGPU), RADV ALVR 17.2.0 and NIGHTLY 2021.12.14, both compiled from source Latest SteamVR
Same problem here. I'm on manjaro and manually build and installed ffmpeg-vulkan for this. I also had to update to vmaf-git
. I downgreaded vulkan-headers. Is there something else needed to 'reset' the encoder or something?
@JacekJagosz have you tried building the client/apk yourself? maybe that's the key?
@TheJoeSchr I have not tried building the client myself, if nothing else helps I will try, good idea. What I am thinking is that maybe there are issues with hardware encoding. What GPU are you running? Because if also AMD as me, then maybe that could be the issue? Also I am on KDE, maybe some compositor issue?
@TheJoeSchr I have not tried building the client myself, if nothing else helps I will try, good idea. What I am thinking is that maybe there are issues with hardware encoding. What GPU are you running? Because if also AMD as me, then maybe that could be the issue? Also I am on KDE, maybe some compositor issue?
Sorry, I was really tired yesterday and didn't post my system spec. Will update that later.
I'm on KDE with kwin_xserver (using bismuth tiling manager) and have a Nvidia 2080
Now I am trying to find any clue by launching Steam via command line to get error log. This seems interesting:
Steam: An X Error occurred
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 40 (X_TranslateCoords)
Resource id in failed request: 0xc00870
Serial number of failed request: 36806
xerror_handler: X failed, continuing
This seems suspicious too:
libpng warning: iCCP: known incorrect sRGB profile
I still think our problem might be the fact that we use Plasma and Kwin.
Are you using a tiling manager? I had the same kind of error with trying to get eaplay games to run and disabling bismuth fixed it then
__
Typed on a mobile, please excuse any typing mistakes or short-spokeness.
No, I am just using vanilla Kwin.
And last clue I see is the fact that I am not using Direct Display mode. I don't know anymore.
Edit: Although reading how video capturing works it seems it must work this way.
@TheJoeSchr Are you using steam-runtime or steam-native? Looking at other bug reports, only the second one worked for people with alvr, just making sure.
I should be using steamhnative, that's my default. But maybe alvr starts it differently, will have to double check
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.