You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Oct 1, 2021. It is now read-only.
There seems to be a problem when selecting a mode with a specific refresh rate. No matter what refresh rate I choose, the last entry of the "Available modes" list returned by swaymsg -t get_outputs where the resolution itself is the same will be chosen. If you set the mode via sway config, it works without problems.
If I try select any entry of 1920x1080, It'll set the mode to 1920x1080 @ 143.841995 Hz. If 2560x1440, it'll choose 2560x1440 @ 59.951000 Hz etc.
I've noticed this as I was using kanshi and tried to set a specific refresh rate. The refresh rate matching problem described in emersion/kanshi#40 can be fixed by converting the parsed value from Hz to mHz before storing it to output->mode.refresh in parser.c:195. I'd create a pull request for the small fix, however the same problem as described above happens there as well. No matter what rate you choose, the last "refresh" rate on the list is selected.
I've noticed that you pass the wlr_mode struct to the zwlr_output_configuration_head_v1_set_mode function to actually set the mode. The mode->wlr_mode pointer points to different locations for each resolution. I did however ran out of time figuring out what this struct actually represents / contains to debug further.
Any idea how to fix this?
The text was updated successfully, but these errors were encountered:
mode->refresh is not passed to this function. I stepped through tho and mode->refresh has the correct value. The mode struct looks like this for [email protected]:
I then tried to set the correct mode using the set_custom_mode function and the values above but that didn't work either.
The working version as implemented in sway probably uses the set_mode function in output.c here. Sway uses wlr_output_set_mode from wlr_output.h to set the mode. wlr-randr/kanshi uses the zwlr_output_configuration_head_v1_set_mode function passes the data to the wl_proxy_marshal function. Maybe the data is handled incorrectly on the other end? Any ideas? 😕
Hi,
There seems to be a problem when selecting a mode with a specific refresh rate. No matter what refresh rate I choose, the last entry of the "Available modes" list returned by
swaymsg -t get_outputs
where the resolution itself is the same will be chosen. If you set the mode via sway config, it works without problems.For example:
If I try select any entry of 1920x1080, It'll set the mode to 1920x1080 @ 143.841995 Hz. If 2560x1440, it'll choose 2560x1440 @ 59.951000 Hz etc.
I've noticed this as I was using kanshi and tried to set a specific refresh rate. The refresh rate matching problem described in emersion/kanshi#40 can be fixed by converting the parsed value from Hz to mHz before storing it to output->mode.refresh in parser.c:195. I'd create a pull request for the small fix, however the same problem as described above happens there as well. No matter what rate you choose, the last "refresh" rate on the list is selected.
I've noticed that you pass the
wlr_mode
struct to thezwlr_output_configuration_head_v1_set_mode
function to actually set the mode. Themode->wlr_mode
pointer points to different locations for each resolution. I did however ran out of time figuring out what this struct actually represents / contains to debug further.Any idea how to fix this?
The text was updated successfully, but these errors were encountered: