Skip to content

Force-enabled virtual connector won't bring up FRL — capped at 4K60 despite EDID Max_FRL_Rate=6 (blocks headless 4K120 Sunshine/Moonlight) #1184

@HarryAnkers

Description

@HarryAnkers

Hey I've been relentlessly trying to get 4k 120hz to work on sunshine / moonlight with the latest version of cachyos. I've tried overything but buying a 4k120hz monitor to stub the monitor. All virtual monitor solutions seem borked on the nvidia side sadly. Please may someone look at this. Heres my 3 hours of clauding summary:

Setup: RTX 3060 Ti on nvidia-open 610.43.02, CachyOS, KDE Plasma 6.6 on Wayland, kernel 7.x. The goal is a headless virtual display so I can stream 4K120 HDR to a Mac over Moonlight with nothing physically plugged into the GPU.

What works: I can force a virtual display with drm.edid_firmware + video=HDMI-A-1:e and a custom EDID, and SDR up to 4K60 is fine. I even got HDR working, but only on the HDMI connector and only with a real, well-formed EDID (a dumped AOC monitor EDID). HDR enable gets rejected on DisplayPort, and it's also rejected with a hand-built EDID even on HDMI. So the driver does honor HDR signaling as long as the sink descriptor looks real enough.

What doesn't work: 4K120. No matter what I do the forced connector caps at 4K60. The reason seems to be that 4K120 needs FRL (HDMI 2.1) or DSC, and the driver won't bring either up unless there's a real sink doing the SCDC/DPCD handshake.

The bit that makes me think this is a driver policy rather than a real limit: I fed it an EDID that declares Max_FRL_Rate=6 (48 Gbps) with VIC 118 (3840x2160@120) in the normal RGB video data block. edid-decode validates it as clean, and the kernel reads it back fine:

cat /sys/class/drm/card1-HDMI-A-1/edid | edid-decode
...
Max Fixed Rate Link: 3 and 6 Gbps per lane on 3 lanes, 6, 8, 10 and 12 Gbps on 4 lanes

Despite that, the driver only ever offers 3840x2160@50/59/60 and prunes 4K120. So it isn't the EDID being malformed; the driver is reading the FRL declaration and still refusing to bring up the high-bandwidth link because nothing is physically attached.

For comparison, gamescope --backend headless renders 4K120 (and HDR) totally fine with no connector involved at all, so the GPU and encoder can clearly do it. And amdgpu doesn't have this restriction for virtual displays. So it really looks specific to NVIDIA's connector mode validation.

The ask: for headless / virtual-display streaming, could the driver honor an EDID-declared FRL/DSC capability on a force-enabled connector, or expose some way to set the virtual connector's max link rate? Right now the only route to 4K120 (HDR or SDR) is to physically plug a display in, which defeats the whole point of a headless streaming box.

Happy to share the EDIDs, full logs, or run any test that would help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions