Upgrade Smithay to pinned upstream Git
Pin 8a270232f1bfc416c781273c98a3f52a812a0bba and adapt protocol dispatch, input timestamps, configure state and rendering APIs. Preserve custom lock and toplevel validation, compositor-owned key repeats, and valid layer remapping sequences. Add native icon-buffer lifecycle regressions for the GoLand and Spotify launch failure.
This commit is contained in:
1 parent
17df20089b
commit
90879145b2
44 files changed
+1069
-634
No files matched your search
@@ -474,18 +474,18 @@ fn configure_libinput_device(state: &Ferese, device: &mut LibinputDevice) {
|
||||
if device.config_tap_finger_count() > 0
|
||||
&& let Err(error) = device.config_tap_set_enabled(settings.tap)
|
||||
{
|
||||
tracing::warn!(device = device.name(), ?error, "failed to configure tap-to-click");
|
||||
tracing::warn!(device = %device.name(), ?error, "failed to configure tap-to-click");
|
||||
}
|
||||
if device.config_scroll_has_natural_scroll()
|
||||
&& let Err(error) = device.config_scroll_set_natural_scroll_enabled(settings.natural_scroll)
|
||||
{
|
||||
tracing::warn!(device = device.name(), ?error, "failed to configure natural scrolling");
|
||||
tracing::warn!(device = %device.name(), ?error, "failed to configure natural scrolling");
|
||||
}
|
||||
if device.config_dwt_is_available()
|
||||
&& let Err(error) = device.config_dwt_set_enabled(settings.disable_while_typing)
|
||||
{
|
||||
tracing::warn!(
|
||||
device = device.name(),
|
||||
device = %device.name(),
|
||||
?error,
|
||||
"failed to configure disable-while-typing"
|
||||
);
|
||||
@@ -2264,7 +2264,7 @@ fn create_direct_output(
|
||||
drm_surface,
|
||||
None,
|
||||
allocator,
|
||||
GbmFramebufferExporter::new(gbm.clone(), Some(render_node)),
|
||||
GbmFramebufferExporter::new(gbm.clone(), Some(render_node).into()),
|
||||
[Fourcc::Argb8888, Fourcc::Abgr8888],
|
||||
renderer.dmabuf_formats(),
|
||||
drm.cursor_size(),
|
||||
@@ -2341,6 +2341,7 @@ fn create_output(
|
||||
let output = Output::new(
|
||||
name,
|
||||
PhysicalProperties {
|
||||
serial_number: String::new(),
|
||||
size: (physical_size.0 as i32, physical_size.1 as i32).into(),
|
||||
subpixel: Subpixel::from(connector.subpixel()),
|
||||
make: edid_identity
|
||||
|
||||
@@ -175,6 +175,7 @@ mod tests {
|
||||
let output = Output::new(
|
||||
"capture".into(),
|
||||
PhysicalProperties {
|
||||
serial_number: String::new(),
|
||||
size: (0, 0).into(),
|
||||
subpixel: Subpixel::Unknown,
|
||||
make: "test".into(),
|
||||
@@ -273,6 +274,7 @@ mod failure_tests {
|
||||
let output = Output::new(
|
||||
"capture-failure".into(),
|
||||
smithay::output::PhysicalProperties {
|
||||
serial_number: String::new(),
|
||||
size: (0, 0).into(),
|
||||
subpixel: smithay::output::Subpixel::Unknown,
|
||||
make: "test".into(),
|
||||
@@ -292,6 +294,7 @@ mod failure_tests {
|
||||
let other_output = Output::new(
|
||||
"other-capture".into(),
|
||||
smithay::output::PhysicalProperties {
|
||||
serial_number: String::new(),
|
||||
size: (0, 0).into(),
|
||||
subpixel: smithay::output::Subpixel::Unknown,
|
||||
make: "test".into(),
|
||||
|
||||
@@ -73,7 +73,7 @@ impl OutputFeedback {
|
||||
// without ALLOW_PRIMARY_PLANE_SCANOUT_ANY Smithay compares the full
|
||||
// format with the swapchain. Renderer-only formats remain in fallback.
|
||||
match DmabufFeedbackBuilder::new(self.render_device, self.render_formats.iter().copied())
|
||||
.add_preference_tranche(self.scanout_device, Some(TrancheFlags::Scanout), [format])
|
||||
.add_preference_tranche(self.scanout_device, TrancheFlags::Scanout, [format], 4..=6)
|
||||
.build()
|
||||
{
|
||||
Ok(feedback) => self.preferred = Some(feedback),
|
||||
@@ -260,6 +260,7 @@ mod tests {
|
||||
states.states.insert(
|
||||
id.clone(),
|
||||
RenderElementState {
|
||||
needs_capture: false,
|
||||
visible_area: 100,
|
||||
presentation_state: RenderElementPresentationState::Rendering { reason: None },
|
||||
},
|
||||
@@ -287,7 +288,7 @@ mod tests {
|
||||
assert!(o.preferred.is_none());
|
||||
o.observe_format(Some(linear));
|
||||
let expected = DmabufFeedbackBuilder::new(10, [linear, other])
|
||||
.add_preference_tranche(20, Some(TrancheFlags::Scanout), [linear])
|
||||
.add_preference_tranche(20, TrancheFlags::Scanout, [linear], 4..=6)
|
||||
.build()
|
||||
.unwrap();
|
||||
assert_eq!(o.preferred.as_ref(), Some(&expected));
|
||||
@@ -413,6 +414,7 @@ mod tests {
|
||||
for (state, expected) in [
|
||||
(
|
||||
RenderElementState {
|
||||
needs_capture: false,
|
||||
visible_area: 100,
|
||||
presentation_state: RenderElementPresentationState::Rendering {
|
||||
reason: Some(RenderingReason::FormatUnsupported),
|
||||
@@ -422,6 +424,7 @@ mod tests {
|
||||
),
|
||||
(
|
||||
RenderElementState {
|
||||
needs_capture: false,
|
||||
visible_area: 100,
|
||||
presentation_state: RenderElementPresentationState::Rendering {
|
||||
reason: Some(RenderingReason::ScanoutFailed),
|
||||
@@ -431,6 +434,7 @@ mod tests {
|
||||
),
|
||||
(
|
||||
RenderElementState {
|
||||
needs_capture: false,
|
||||
visible_area: 0,
|
||||
presentation_state: RenderElementPresentationState::Skipped,
|
||||
},
|
||||
@@ -438,6 +442,7 @@ mod tests {
|
||||
),
|
||||
(
|
||||
RenderElementState {
|
||||
needs_capture: false,
|
||||
visible_area: 100,
|
||||
presentation_state: RenderElementPresentationState::ZeroCopy,
|
||||
},
|
||||
|
||||
@@ -28,6 +28,7 @@ pub(super) fn elements(
|
||||
Output::new(
|
||||
"mirror-canvas".into(),
|
||||
PhysicalProperties {
|
||||
serial_number: String::new(),
|
||||
size: (0, 0).into(),
|
||||
subpixel: Subpixel::Unknown,
|
||||
make: "Ferese".into(),
|
||||
@@ -121,6 +122,7 @@ mod tests {
|
||||
Output::new(
|
||||
name.into(),
|
||||
PhysicalProperties {
|
||||
serial_number: String::new(),
|
||||
size: (0, 0).into(),
|
||||
subpixel: Subpixel::Unknown,
|
||||
make: "test".into(),
|
||||
|
||||
@@ -279,6 +279,7 @@ mod tests {
|
||||
let output = Output::new(
|
||||
format!("cursor-test-{index}"),
|
||||
PhysicalProperties {
|
||||
serial_number: String::new(),
|
||||
size: (0, 0).into(),
|
||||
subpixel: Subpixel::Unknown,
|
||||
make: "test".into(),
|
||||
@@ -313,7 +314,7 @@ mod tests {
|
||||
&MotionEvent {
|
||||
location: (x, 500.0).into(),
|
||||
serial: SERIAL_COUNTER.next_serial(),
|
||||
time: 0,
|
||||
time: smithay::backend::input::InputTime::from_millis(0),
|
||||
},
|
||||
);
|
||||
let current = [
|
||||
@@ -337,7 +338,7 @@ mod tests {
|
||||
&MotionEvent {
|
||||
location: (1919.0, 500.0).into(),
|
||||
serial: SERIAL_COUNTER.next_serial(),
|
||||
time: 0,
|
||||
time: smithay::backend::input::InputTime::from_millis(0),
|
||||
},
|
||||
);
|
||||
assert!(cursor_on_output(&state, &outputs[0]));
|
||||
@@ -351,7 +352,7 @@ mod tests {
|
||||
&MotionEvent {
|
||||
location: (x, 500.0).into(),
|
||||
serial: SERIAL_COUNTER.next_serial(),
|
||||
time: 0,
|
||||
time: smithay::backend::input::InputTime::from_millis(0),
|
||||
},
|
||||
);
|
||||
assert!(
|
||||
|
||||
@@ -83,7 +83,7 @@ pub(super) fn validate_device(device: &DirectDevice, scan: &OutputScan) -> Resul
|
||||
let mut buffers = Vec::new();
|
||||
let mut framebuffers = Vec::new();
|
||||
let mut allocator = GbmAllocator::new(device.gbm.clone(), GbmBufferFlags::RENDERING | GbmBufferFlags::SCANOUT);
|
||||
let exporter = GbmFramebufferExporter::new(device.gbm.clone(), Some(device.render_node));
|
||||
let exporter = GbmFramebufferExporter::new(device.gbm.clone(), Some(device.render_node).into());
|
||||
let mut used_planes = HashSet::new();
|
||||
let desired_crtcs = scan
|
||||
.selections
|
||||
|
||||
Reference in new issue
Block a user