Problem
output.lua server_new_output sets enabled/mode/scale/transform but never adaptive_sync, and output_request_state commits state as-is.
Why it matters
Variable-refresh (FreeSync/G-Sync) displays stay locked to fixed refresh, causing tearing/judder in games and video despite hardware support.
Where
compositor/services/output.lua server_new_output (~line 119) and per-monitor config resolution.
Approach
When config.adaptive_sync is set and the output supports it, call wlr_output_state_set_adaptive_sync_enabled(state, true) before commit; verify the commit succeeded and fall back if rejected; expose it as a monitor config option.
Effort
S
Problem
output.luaserver_new_outputsets enabled/mode/scale/transform but never adaptive_sync, andoutput_request_statecommits state as-is.Why it matters
Variable-refresh (FreeSync/G-Sync) displays stay locked to fixed refresh, causing tearing/judder in games and video despite hardware support.
Where
compositor/services/output.luaserver_new_output(~line 119) and per-monitor config resolution.Approach
When
config.adaptive_syncis set and the output supports it, callwlr_output_state_set_adaptive_sync_enabled(state, true)before commit; verify the commit succeeded and fall back if rejected; expose it as a monitor config option.Effort
S