Skip to content

[BUG] vrlink drops video packets: "FAULT: Packet too big!!! Can't send!!! Dropping" causes periodic hitches (SteamOS 3.8.16 / RADV / Quest 3S) #929

Description

@codegax

Description

During wireless VR streaming to a Quest 3S via Steam Link, vrlink periodically fails to
send video packets, logging FAULT: Packet too big!!! Can't send!!! Dropping followed in
many cases by HandleUnrecoverableError( -22 ) (-EINVAL). Each occurrence is perceived
in-headset as a brief hitch.

This is not GPU-bound: over the same session the compositor reported 0 reprojected
frames
and only 0.37% dropped presents.

Frequency

Over a single 2h49m Half-Life: Alyx session (20:48:3523:37:40):

  • FAULT: Packet too big!!! Can't send!!! Dropping47 occurrences
  • HandleUnrecoverableError(...)43 occurrences
  • Compositor: Timed out. 1617 total

Roughly one fault every 3.6 minutes, sometimes in bursts.

Log excerpts (vrserver.txt)

21:46:58.016156 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping
21:47:26.816261 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping
21:48:06.955338 [Info] - vrlink: HandleUnrecoverableError( 19 )
21:49:26.250685 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping
21:49:26.250728 [Info] - vrlink: HandleUnrecoverableError( -22 )
21:50:45.206871 [Info] - vrlink: HandleUnrecoverableError( 21 )
21:50:45.623188 [Info] - vrlink: HandleUnrecoverableError( 22 )
21:50:46.039822 [Info] - vrlink: HandleUnrecoverableError( 23 )
21:50:46.673596 [Info] - vrlink: HandleUnrecoverableError( 24 )
21:51:29.277365 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping
22:18:51.843291 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping
22:26:33.838873 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping
22:39:35.612888 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping
22:48:47.972482 [Info] - vrlink: FAULT: Packet too big!!! Can't send!!! Dropping

Compositor frame stats for the same session:

Total..................639583 presents. 2368 dropped.    0 reprojected
Loading... 13 total.... 88342 presents.  205 dropped.    0 reprojected
Timed out.1617 total....  1154 presents.    6 dropped.    0 reprojected

Observations

  • The oversized packet appears to be discarded outright rather than fragmented or
    re-encoded at a smaller size, so a frame chunk is simply lost.
  • -22 / EINVAL suggests the datagram exceeds what the socket will accept.
  • Host NIC MTU is the standard 1500, wired; the headset is on 5 GHz Wi-Fi (–28 dBm,
    ~2400 Mbit link rate). No MTU customisation anywhere on the path.
  • vrserver.txt does not log the negotiated bitrate or encoder configuration, which makes
    it hard to tell whether an over-aggressive bitrate is being selected on a fast link.

System

OS SteamOS 3.8.16 (BUILD_ID 20260716.1)
Kernel 6.16.12-valve24.5-1-neptune-616
SteamVR 2.17.6 (beta branch)
GPU AMD Radeon RX 6700 XT (RADV NAVI22), 12 GB
Mesa 26.0.0-devel (git-9cc9241790), package mesa 25.3.0.213835.radeonsi
Headset Meta Quest 3S via Steam Link (vrlink)
Network Host wired 1 GbE; headset 5 GHz Wi-Fi 6, same subnet, no AP isolation

Expected

Oversized encoder output should be fragmented or the encoder asked for a smaller payload,
rather than the packet being dropped and a frame chunk lost.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions