Skip to content

DelusionalLogic/winevrlink

Repository files navigation

VRLink for Linux
================

An attempt to get the windows version of wireless steam vrlink to work on
linux.

So far this is a prototype and a horrible hackjob, utilizing multiple
unsupported and un-upstreamable patches in dxvk and wine. It's also
unoptimized, and weird. What it does have going for it is that it works. Using
this you can wirelessly open the SteamVR home from the official SteamVR app for
Oculus, at a glorious 2 frames per second.

As mentioned, this is a major hackjob, involving close to 200 hours of
reversing internal Steam components and quite a bit of guesswork. The
difficulty of running the thing will reflect that. If that catches your
interest though, it's all here.

Besides the hacks to existing libraries contained in `lib/`, this repository
contains 3 new components. `dllhost` holds a wrapper for Valve's driver_vrlink
designed to run inside wine where it connect to a unix domain socket. The other
half of that domain socket is `native/` which is an openvr driver that creates
the domain socket on startup and exchanges data with `dllhost` as a cross-wine
RPC. Finally, `amf/` holds a shim for AMD's AMF to emulate it by using the host
implementation and dxvk.

Current limits
--------------

The linux version of vrclient (the library used by games to interface with
openvr) doesn't _correctly_ allocate framebuffer textures. The steam vrlink
driver doesn't like that. The problem [has been
reported](ValveSoftware/openvr#1884) on the openvr
bugtracker, but it's probably not a high priority for Valve.

There is stuff we can maybe do to work around it, but it would require some
fairly intense reversing to find the texture metadata in the vrcompositor.

Getting steam to advertise support
----------------------------------

Valve has kindly exposed a commandline option to make steam advertise remote vr
capabilities on linux, even though they don't currently support it themselves.

`steam -vrlinkforceenable`

Thanks Valve :)

About

A wonderful hackjob to get vrlink working on linux

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published