Summary
On a machine with active supporter benefits (PRO), the virtual display falls back to 30 Hz after every cold boot of the host, even though the client requests 120 fps. Restarting the instance fixes it until the next reboot.
This looks like the same problem as #394 ("Stuck at 30hz even tho i have a paid acc"), which was reported fixed in 1.5.5 — but it still reproduces consistently on 1.5.9.
Environment
|
|
| Duo |
1.5.9.0 (Duo Manager shows the PRO badge, benefits confirmed unlocked) |
| Host OS |
Windows 11 Pro, 25H2, build 26200 |
| GPU |
NVIDIA GeForce RTX 4090 (HAGS enabled) |
| CPU / RAM |
Ryzen 9 7950X3D / 96 GB |
| Client |
ROG Ally Z1 Extreme, Moonlight, 1920x1080 @ 120 fps, AV1 |
| Encoder |
av1_nvenc, preset P6, two-pass full_res, spatial AQ |
Steps to reproduce
- Set up an instance whose virtual display runs at 120 Hz (working state, confirmed ~118 fps end to end).
- Reboot the host.
DuoService starts automatically (Start with Service enabled).
- Connect a client requesting 1920x1080 @ 120 fps.
Expected
The virtual display comes up at 120 Hz, as it does after a manual instance restart.
Actual
The virtual display stays at 30 Hz. Sunshine requests the mode change but it is never applied:
Info: Display refresh rate [30Hz]
Info: Requested frame rate [120fps]
Info: Requesting mode change to 1920x1080@120 using the SDR colorspace
Info: Creating encoder [av1_nvenc]
Info: NvEnc: created encoder AV1 P6 async two-pass rfi spatial-aq
Note that no Changing the display mode to ... line follows the request. In the working state, the very next connection logs:
Info: Display refresh rate [120Hz]
Info: Requested frame rate [120fps]
Additionally, the registry value is 30 after the reboot:
HKLM\SOFTWARE\Duo\Instances\<instance>\RefreshRate = 30
Workaround
Setting the registry value back and restarting the service restores 120 Hz reliably:
Set-ItemProperty 'HKLM:\SOFTWARE\Duo\Instances\<instance>' -Name RefreshRate -Value 120 -Type DWord
Restart-Service DuoService -Force
After this, the log shows Display refresh rate [120Hz] and the stream runs at ~118 fps. The value survives until the next host reboot, at which point it is 30 again. I now run this from a scheduled task at startup.
Note: Duo Manager exposes no UI field for the refresh rate, so the registry is the only way to correct it.
Side effect worth flagging
The 30 Hz cap silently collapses throughput: with an 80 Mbps client setting, the host only sent ~9 Mbps (measured on the host NIC), because only 30 frames per second were being encoded. This is very easy to misdiagnose as a network or client-bitrate problem — it cost me several hours before I looked at Display refresh rate in the log. It might be worth surfacing a warning when the achieved refresh rate is below the requested frame rate.
Minor: log truncation
duo.log appears to be truncated on every instance restart, which makes it hard to investigate after the fact — the evidence disappears exactly when applying the workaround. An option to retain or rotate logs would help when reporting issues like this.
Summary
On a machine with active supporter benefits (PRO), the virtual display falls back to 30 Hz after every cold boot of the host, even though the client requests 120 fps. Restarting the instance fixes it until the next reboot.
This looks like the same problem as #394 ("Stuck at 30hz even tho i have a paid acc"), which was reported fixed in 1.5.5 — but it still reproduces consistently on 1.5.9.
Environment
av1_nvenc, preset P6, two-pass full_res, spatial AQSteps to reproduce
DuoServicestarts automatically (Start with Serviceenabled).Expected
The virtual display comes up at 120 Hz, as it does after a manual instance restart.
Actual
The virtual display stays at 30 Hz. Sunshine requests the mode change but it is never applied:
Note that no
Changing the display mode to ...line follows the request. In the working state, the very next connection logs:Additionally, the registry value is 30 after the reboot:
Workaround
Setting the registry value back and restarting the service restores 120 Hz reliably:
After this, the log shows
Display refresh rate [120Hz]and the stream runs at ~118 fps. The value survives until the next host reboot, at which point it is 30 again. I now run this from a scheduled task at startup.Note: Duo Manager exposes no UI field for the refresh rate, so the registry is the only way to correct it.
Side effect worth flagging
The 30 Hz cap silently collapses throughput: with an 80 Mbps client setting, the host only sent ~9 Mbps (measured on the host NIC), because only 30 frames per second were being encoded. This is very easy to misdiagnose as a network or client-bitrate problem — it cost me several hours before I looked at
Display refresh ratein the log. It might be worth surfacing a warning when the achieved refresh rate is below the requested frame rate.Minor: log truncation
duo.logappears to be truncated on every instance restart, which makes it hard to investigate after the fact — the evidence disappears exactly when applying the workaround. An option to retain or rotate logs would help when reporting issues like this.