Windows VR apps using two overlay panels may fail on Linux, a Proton bug report says

Windows VR apps using two overlay panels may fail on Linux, a Proton bug report says

Windows VR apps that show two or more overlay panels at once, such as a menu and a wrist display, can fail completely when they run on Linux through Proton, according to a bug report filed on Valve's Proton tracker on 17 October. In the reporter's tests, SteamVR rejected every frame that contained two such panels. Apps that show one panel, or none, were unaffected.

A person in a tethered PC VR headset facing a whale in an underwater scene

The reported failures came from SteamVR, which rejected the affected frames with a pose error. Image: Valve

Nobody else has publicly reproduced the problem yet, and Valve has not said whether it has. A Valve maintainer moved the report into an existing compatibility thread, and no fix has been released.

What the reporter found

VR apps built on the OpenXR standard send each frame to the headset as a list of layers. Usually the first layer is the 3D view of the game world, and any flat panels, such as menus, follow it. The two kinds of layer are described by data structures of different sizes, and Proton has to convert those structures from their Windows form into the form the Linux side expects.

The reporter traced the failure to that conversion step. According to the report, Proton reserves the same amount of memory for every layer in the list, based on the size of the first layer. A world layer needs less memory than a panel, so when it comes first, each panel is copied into a space that is too small for it. With two panels, the second one's data overwrites part of the first one's in memory, including its position. SteamVR then receives a panel with an invalid position and throws the frame away with the error XR_ERROR_POSE_INVALID.

A single panel happens to survive, because its overflow spills into memory nothing else is using. That would explain why simpler apps run normally.

The reporter backed the diagnosis with a small test app run for 45 seconds in three configurations. A world layer followed by one panel produced 1,348 good frames and no failures. A world layer followed by two panels produced 1,347 failures and no good frames. Placing a tiny panel in front of the world layer, so that the first and largest structure set the size for the list, brought it back to 1,345 good frames and no failures.

Grand Theft Auto: Vice City as shown on its own Steam store page

The bug surfaced in reVC, a fan-made VR mod for Grand Theft Auto: Vice City. Image: Rockstar Games

Valve moved the report into a game thread

The reporter first ran into the problem in reVC, a fan-made VR mod for Grand Theft Auto: Vice City. Their original report was moved by Valve into the existing compatibility thread for Vice City, in line with its practice of tracking mods under the game they modify and keeping one report per unofficially supported title.

The reporter then filed the standalone report, with a test that did not involve the mod and the argument that the bug affects any Windows OpenXR app. Valve closed it as a duplicate the same day. In a reply, the maintainer questioned whether the test case had been generated with an AI tool, and also told the reporter that the original feedback "isn't less valid because it was put on the game's compatibility report".

So the report has not been dismissed. It now sits in a thread named after a single game, though the reporter argues the cause is in Proton's general OpenXR support.

A second screenshot from Grand Theft Auto: Vice City's own Steam store page

Valve keeps reports about mods in the compatibility thread for the game being modified. Image: Rockstar Games

Who could be affected, and the developer workaround

The tests ran on Proton Experimental 11.0-20261014 and SteamVR 2.17.10 under CachyOS, with a PS VR2 connected as a PC VR headset and an RTX 3090. The code the reporter cites belongs to Proton Experimental, and the report does not test the stable branch, so whether the current stable Proton release is affected is not established.

The report also does not name any commercial game that fails this way. If the diagnosis is right, the apps at risk are Windows OpenXR titles played on Linux that show at least two overlay panels at the same time.

Players have no setting to change. The workaround is for developers: an app that sends a small panel ahead of the world layer avoids the failure, as the third test shows. The fix the reporter proposes for Proton is to size each layer by its own type, or to reserve space for the largest possible layer every time.

Leave a Comment

Your email address will not be published. Required fields are marked *