mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-24 02:01:18 +07:00
Add vrr_supported/enabled to output IPC
This commit is contained in:
@@ -252,6 +252,10 @@ pub struct Output {
|
||||
///
|
||||
/// `None` if the output is disabled.
|
||||
pub current_mode: Option<usize>,
|
||||
/// Whether the output supports variable refresh rate.
|
||||
pub vrr_supported: bool,
|
||||
/// Whether variable refresh rate is enabled on the output.
|
||||
pub vrr_enabled: bool,
|
||||
/// Logical output information.
|
||||
///
|
||||
/// `None` if the output is not mapped to any logical output (for example, if it is disabled).
|
||||
|
||||
@@ -1451,6 +1451,9 @@ impl Tty {
|
||||
}
|
||||
}
|
||||
|
||||
let vrr_supported = is_vrr_capable(&device.drm, connector.handle()) == Some(true);
|
||||
let vrr_enabled = surface.map_or(false, |surface| surface.vrr_enabled);
|
||||
|
||||
let logical = niri
|
||||
.global_space
|
||||
.outputs()
|
||||
@@ -1467,6 +1470,8 @@ impl Tty {
|
||||
physical_size,
|
||||
modes,
|
||||
current_mode,
|
||||
vrr_supported,
|
||||
vrr_enabled,
|
||||
logical,
|
||||
};
|
||||
|
||||
|
||||
@@ -73,6 +73,8 @@ impl Winit {
|
||||
is_preferred: true,
|
||||
}],
|
||||
current_mode: Some(0),
|
||||
vrr_supported: false,
|
||||
vrr_enabled: false,
|
||||
logical: Some(logical_output(&output)),
|
||||
},
|
||||
)])));
|
||||
|
||||
@@ -72,6 +72,8 @@ pub fn handle_msg(msg: Msg, json: bool) -> anyhow::Result<()> {
|
||||
physical_size,
|
||||
modes,
|
||||
current_mode,
|
||||
vrr_supported,
|
||||
vrr_enabled,
|
||||
logical,
|
||||
} = output;
|
||||
|
||||
@@ -94,6 +96,13 @@ pub fn handle_msg(msg: Msg, json: bool) -> anyhow::Result<()> {
|
||||
println!(" Disabled");
|
||||
}
|
||||
|
||||
if vrr_supported {
|
||||
let enabled = if vrr_enabled { "enabled" } else { "disabled" };
|
||||
println!(" Variable refresh rate: supported, {enabled}");
|
||||
} else {
|
||||
println!(" Variable refresh rate: not supported");
|
||||
}
|
||||
|
||||
if let Some((width, height)) = physical_size {
|
||||
println!(" Physical size: {width}x{height} mm");
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user