1
0
Fork 0
forked from wry/wry

all: use let chains

This commit is contained in:
Julian Orth 2025-07-01 11:20:48 +02:00
parent 3d5d146d65
commit 286857971a
89 changed files with 1516 additions and 1574 deletions

View file

@ -247,13 +247,13 @@ impl Backend for MetalBackend {
for device in devices.values() {
let mut change = device.dev.master.change();
for connector in device.connectors.lock().values() {
if let Some(crtc) = connector.crtc.get() {
if idle == crtc.active.value.get() {
crtc.active.value.set(!idle);
change.change_object(crtc.id, |c| {
c.change(crtc.active.id, (!idle) as _);
});
}
if let Some(crtc) = connector.crtc.get()
&& idle == crtc.active.value.get()
{
crtc.active.value.set(!idle);
change.change_object(crtc.id, |c| {
c.change(crtc.active.id, (!idle) as _);
});
}
}
if let Err(e) = change.commit(DRM_MODE_ATOMIC_ALLOW_MODESET, 0) {
@ -283,10 +283,10 @@ impl Backend for MetalBackend {
fn get_input_fds(&self) -> Vec<Rc<OwnedFd>> {
let mut res = vec![];
for dev in &*self.device_holder.input_devices.borrow() {
if let Some(dev) = dev {
if let Some(fd) = dev.fd.get() {
res.push(fd);
}
if let Some(dev) = dev
&& let Some(fd) = dev.fd.get()
{
res.push(fd);
}
}
res
@ -428,11 +428,11 @@ impl LibInputAdapter for DeviceHolder {
Ok(s) => s,
Err(e) => return Err(LibInputError::Stat(e.into())),
};
if let Some(MetalDevice::Input(d)) = self.devices.get(&stat.st_rdev) {
if let Some(fd) = d.fd.get() {
return uapi::fcntl_dupfd_cloexec(fd.raw(), 0)
.map_err(|e| LibInputError::DupFd(e.into()));
}
if let Some(MetalDevice::Input(d)) = self.devices.get(&stat.st_rdev)
&& let Some(fd) = d.fd.get()
{
return uapi::fcntl_dupfd_cloexec(fd.raw(), 0)
.map_err(|e| LibInputError::DupFd(e.into()));
}
Err(LibInputError::DeviceUnavailable)
}
@ -537,25 +537,25 @@ impl MetalInputDevice {
fn set_accel_profile_(&self, profile: AccelProfile) {
self.desired.accel_profile.set(Some(profile));
if let Some(dev) = self.inputdev.get() {
if dev.device().accel_available() {
dev.device().set_accel_profile(profile);
self.effective
.accel_profile
.set(Some(dev.device().accel_profile()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().accel_available()
{
dev.device().set_accel_profile(profile);
self.effective
.accel_profile
.set(Some(dev.device().accel_profile()));
}
}
fn set_click_method_(&self, method: ConfigClickMethod) {
self.desired.click_method.set(Some(method));
if let Some(dev) = self.inputdev.get() {
if dev.device().has_click_methods() {
dev.device().set_click_method(method);
self.effective
.click_method
.set(Some(dev.device().click_method()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().has_click_methods()
{
dev.device().set_click_method(method);
self.effective
.click_method
.set(Some(dev.device().click_method()));
}
}
}
@ -595,13 +595,13 @@ impl InputDevice for MetalInputDevice {
fn set_left_handed(&self, left_handed: bool) {
self.desired.left_handed.set(Some(left_handed));
if let Some(dev) = self.inputdev.get() {
if dev.device().left_handed_available() {
dev.device().set_left_handed(left_handed);
self.effective
.left_handed
.set(Some(dev.device().left_handed()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().left_handed_available()
{
dev.device().set_left_handed(left_handed);
self.effective
.left_handed
.set(Some(dev.device().left_handed()));
}
}
@ -629,13 +629,13 @@ impl InputDevice for MetalInputDevice {
fn set_accel_speed(&self, speed: f64) {
self.desired.accel_speed.set(Some(speed));
if let Some(dev) = self.inputdev.get() {
if dev.device().accel_available() {
dev.device().set_accel_speed(speed);
self.effective
.accel_speed
.set(Some(dev.device().accel_speed()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().accel_available()
{
dev.device().set_accel_speed(speed);
self.effective
.accel_speed
.set(Some(dev.device().accel_speed()));
}
}
@ -653,13 +653,13 @@ impl InputDevice for MetalInputDevice {
fn set_calibration_matrix(&self, m: [[f32; 3]; 2]) {
self.desired.calibration_matrix.set(Some(m));
if let Some(dev) = self.inputdev.get() {
if dev.device().has_calibration_matrix() {
dev.device().set_calibration_matrix(m);
self.effective
.calibration_matrix
.set(Some(dev.device().get_calibration_matrix()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().has_calibration_matrix()
{
dev.device().set_calibration_matrix(m);
self.effective
.calibration_matrix
.set(Some(dev.device().get_calibration_matrix()));
}
}
@ -677,13 +677,13 @@ impl InputDevice for MetalInputDevice {
fn set_tap_enabled(&self, enabled: bool) {
self.desired.tap_enabled.set(Some(enabled));
if let Some(dev) = self.inputdev.get() {
if dev.device().tap_available() {
dev.device().set_tap_enabled(enabled);
self.effective
.tap_enabled
.set(Some(dev.device().tap_enabled()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().tap_available()
{
dev.device().set_tap_enabled(enabled);
self.effective
.tap_enabled
.set(Some(dev.device().tap_enabled()));
}
}
@ -693,13 +693,13 @@ impl InputDevice for MetalInputDevice {
fn set_drag_enabled(&self, enabled: bool) {
self.desired.drag_enabled.set(Some(enabled));
if let Some(dev) = self.inputdev.get() {
if dev.device().tap_available() {
dev.device().set_drag_enabled(enabled);
self.effective
.drag_enabled
.set(Some(dev.device().drag_enabled()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().tap_available()
{
dev.device().set_drag_enabled(enabled);
self.effective
.drag_enabled
.set(Some(dev.device().drag_enabled()));
}
}
@ -709,13 +709,13 @@ impl InputDevice for MetalInputDevice {
fn set_drag_lock_enabled(&self, enabled: bool) {
self.desired.drag_lock_enabled.set(Some(enabled));
if let Some(dev) = self.inputdev.get() {
if dev.device().tap_available() {
dev.device().set_drag_lock_enabled(enabled);
self.effective
.drag_lock_enabled
.set(Some(dev.device().drag_lock_enabled()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().tap_available()
{
dev.device().set_drag_lock_enabled(enabled);
self.effective
.drag_lock_enabled
.set(Some(dev.device().drag_lock_enabled()));
}
}
@ -725,13 +725,13 @@ impl InputDevice for MetalInputDevice {
fn set_natural_scrolling_enabled(&self, enabled: bool) {
self.desired.natural_scrolling_enabled.set(Some(enabled));
if let Some(dev) = self.inputdev.get() {
if dev.device().has_natural_scrolling() {
dev.device().set_natural_scrolling_enabled(enabled);
self.effective
.natural_scrolling_enabled
.set(Some(dev.device().natural_scrolling_enabled()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().has_natural_scrolling()
{
dev.device().set_natural_scrolling_enabled(enabled);
self.effective
.natural_scrolling_enabled
.set(Some(dev.device().natural_scrolling_enabled()));
}
}
@ -763,13 +763,13 @@ impl InputDevice for MetalInputDevice {
self.desired
.middle_button_emulation_enabled
.set(Some(enabled));
if let Some(dev) = self.inputdev.get() {
if dev.device().middle_button_emulation_available() {
dev.device().set_middle_button_emulation_enabled(enabled);
self.effective
.middle_button_emulation_enabled
.set(Some(dev.device().middle_button_emulation_enabled()));
}
if let Some(dev) = self.inputdev.get()
&& dev.device().middle_button_emulation_available()
{
dev.device().set_middle_button_emulation_enabled(enabled);
self.effective
.middle_button_emulation_enabled
.set(Some(dev.device().middle_button_emulation_enabled()));
}
}

View file

@ -345,10 +345,10 @@ impl MetalBackend {
let id = &slf.device_holder.devices;
let mut slots = slf.device_holder.input_devices.borrow_mut();
let dev = 'dev: {
if let Some(dev) = slots[slot].clone() {
if dev.id == device_id {
break 'dev dev;
}
if let Some(dev) = slots[slot].clone()
&& dev.id == device_id
{
break 'dev dev;
}
return;
};

View file

@ -200,13 +200,13 @@ impl MetalConnector {
present_fb = Some(fb);
}
self.perform_screencopies(&present_fb, &node, &cd);
if let Some(sync_file) = self.cursor_sync_file.take() {
if let Err(e) = self.state.ring.readable(&sync_file).await {
log::error!(
"Could not wait for cursor sync file to complete: {}",
ErrorFmt(e)
);
}
if let Some(sync_file) = self.cursor_sync_file.take()
&& let Err(e) = self.state.ring.readable(&sync_file).await
{
log::error!(
"Could not wait for cursor sync file to complete: {}",
ErrorFmt(e)
);
}
self.await_present_fb(present_fb.as_mut()).await;
let mut res = self.program_connector(
@ -216,36 +216,36 @@ impl MetalConnector {
cursor_programming.as_ref(),
present_fb.as_ref(),
);
if res.is_err() {
if let Some(dsd_id) = direct_scanout_id {
let fb = self.prepare_present_fb(
&cd,
&linear_cd,
buffer,
&plane,
latched.as_ref().unwrap(),
false,
)?;
present_fb = Some(fb);
self.await_present_fb(present_fb.as_mut()).await;
res = self.program_connector(
version,
&crtc,
&plane,
cursor_programming.as_ref(),
present_fb.as_ref(),
);
if res.is_ok() {
let mut cache = self.scanout_buffers.borrow_mut();
if let Some(buffer) = cache.remove(&dsd_id) {
cache.insert(
dsd_id,
DirectScanoutCache {
tex: buffer.tex,
fb: None,
},
);
}
if res.is_err()
&& let Some(dsd_id) = direct_scanout_id
{
let fb = self.prepare_present_fb(
&cd,
&linear_cd,
buffer,
&plane,
latched.as_ref().unwrap(),
false,
)?;
present_fb = Some(fb);
self.await_present_fb(present_fb.as_mut()).await;
res = self.program_connector(
version,
&crtc,
&plane,
cursor_programming.as_ref(),
present_fb.as_ref(),
);
if res.is_ok() {
let mut cache = self.scanout_buffers.borrow_mut();
if let Some(buffer) = cache.remove(&dsd_id) {
cache.insert(
dsd_id,
DirectScanoutCache {
tex: buffer.tex,
fb: None,
},
);
}
}
}
@ -369,20 +369,22 @@ impl MetalConnector {
change!(c, plane.crtc_y, crtc_y);
change!(c, plane.crtc_w, crtc_w);
change!(c, plane.crtc_h, crtc_h);
if !try_async_flip && !self.dev.is_nvidia {
if let Some(sf) = self.backend.signaled_sync_file.get() {
c.change(plane.in_fence_fd, sf.0.raw() as u64);
}
if !try_async_flip
&& !self.dev.is_nvidia
&& let Some(sf) = self.backend.signaled_sync_file.get()
{
c.change(plane.in_fence_fd, sf.0.raw() as u64);
}
});
} else {
if self.dev.is_amd && crtc.vrr_enabled.value.get() {
// Work around https://gitlab.freedesktop.org/drm/amd/-/issues/2186
if let Some(fb) = &*self.active_framebuffer.borrow() {
changes.change_object(plane.id, |c| {
c.change(plane.fb_id, fb.fb.id().0 as _);
});
}
// Work around https://gitlab.freedesktop.org/drm/amd/-/issues/2186
if self.dev.is_amd
&& crtc.vrr_enabled.value.get()
&& let Some(fb) = &*self.active_framebuffer.borrow()
{
changes.change_object(plane.id, |c| {
c.change(plane.fb_id, fb.fb.id().0 as _);
});
}
}
if let Some(cursor) = cursor {
@ -408,10 +410,10 @@ impl MetalConnector {
c.change(plane.src_y.id, 0);
c.change(plane.src_w.id, (*width as u64) << 16);
c.change(plane.src_h.id, (*height as u64) << 16);
if !self.dev.is_nvidia {
if let Some(sf) = self.backend.signaled_sync_file.get() {
c.change(plane.in_fence_fd, sf.0.raw() as u64);
}
if !self.dev.is_nvidia
&& let Some(sf) = self.backend.signaled_sync_file.get()
{
c.change(plane.in_fence_fd, sf.0.raw() as u64);
}
});
}
@ -606,11 +608,11 @@ impl MetalConnector {
}
}
}
if let Some(clear) = pass.clear {
if clear != Color::SOLID_BLACK {
// Background could be visible.
return None;
}
if let Some(clear) = pass.clear
&& clear != Color::SOLID_BLACK
{
// Background could be visible.
return None;
}
ct
};
@ -683,10 +685,10 @@ impl MetalConnector {
break 'format f;
}
// Try opaque format if possible.
if let Some(opaque) = dmabuf.format.opaque {
if let Some(f) = plane.formats.get(&opaque.drm) {
break 'format f;
}
if let Some(opaque) = dmabuf.format.opaque
&& let Some(f) = plane.formats.get(&opaque.drm)
{
break 'format f;
}
return None;
};

View file

@ -759,13 +759,13 @@ impl MetalConnector {
}
if let Err(e) = self.master.queue_sequence(crtc.id) {
log::error!("Could not queue a CRTC sequence: {}", ErrorFmt(&e));
if let DrmError::QueueSequence(OsError(c::EOPNOTSUPP)) = e {
if let Some(node) = self.state.root.outputs.get(&self.connector_id) {
log::warn!("{}: Switching to vblank emulation", self.kernel_id());
crtc.needs_vblank_emulation.set(true);
node.global.connector.needs_vblank_emulation.set(true);
node.vblank();
}
if let DrmError::QueueSequence(OsError(c::EOPNOTSUPP)) = e
&& let Some(node) = self.state.root.outputs.get(&self.connector_id)
{
log::warn!("{}: Switching to vblank emulation", self.kernel_id());
crtc.needs_vblank_emulation.set(true);
node.global.connector.needs_vblank_emulation.set(true);
node.vblank();
}
} else {
crtc.have_queued_sequence.set(true);
@ -856,15 +856,13 @@ impl Connector for MetalConnector {
}
fn set_enabled(&self, enabled: bool) {
if self.enabled.replace(enabled) != enabled {
if self.display.borrow_mut().connection == ConnectorStatus::Connected {
if let Some(dev) = self.backend.device_holder.drm_devices.get(&self.dev.devnum) {
if let Err(e) = self.backend.handle_drm_change_(&dev, true) {
dev.unprocessed_change.set(true);
log::error!("Could not dis/enable connector: {}", ErrorFmt(e));
}
}
}
if self.enabled.replace(enabled) != enabled
&& self.display.borrow_mut().connection == ConnectorStatus::Connected
&& let Some(dev) = self.backend.device_holder.drm_devices.get(&self.dev.devnum)
&& let Err(e) = self.backend.handle_drm_change_(&dev, true)
{
dev.unprocessed_change.set(true);
log::error!("Could not dis/enable connector: {}", ErrorFmt(e));
}
}
@ -930,11 +928,11 @@ impl Connector for MetalConnector {
}
dd.non_desktop_effective = non_desktop_effective;
drop(dd);
if let Some(dev) = self.backend.device_holder.drm_devices.get(&self.dev.devnum) {
if let Err(e) = self.backend.handle_drm_change_(&dev, true) {
dev.unprocessed_change.set(true);
log::error!("Could not override non-desktop setting: {}", ErrorFmt(e));
}
if let Some(dev) = self.backend.device_holder.drm_devices.get(&self.dev.devnum)
&& let Err(e) = self.backend.handle_drm_change_(&dev, true)
{
dev.unprocessed_change.set(true);
log::error!("Could not override non-desktop setting: {}", ErrorFmt(e));
}
}
@ -991,11 +989,11 @@ impl Connector for MetalConnector {
}
self.try_switch_format.set(true);
}
if let Some(dev) = self.backend.device_holder.drm_devices.get(&self.dev.devnum) {
if let Err(e) = self.backend.handle_drm_change_(&dev, true) {
dev.unprocessed_change.set(true);
log::error!("Could not change format: {}", ErrorFmt(e));
}
if let Some(dev) = self.backend.device_holder.drm_devices.get(&self.dev.devnum)
&& let Err(e) = self.backend.handle_drm_change_(&dev, true)
{
dev.unprocessed_change.set(true);
log::error!("Could not change format: {}", ErrorFmt(e));
}
}
@ -1376,10 +1374,10 @@ fn create_connector_display_data(
}
}
for desc in &edid.base_block.descriptors {
if let Some(desc) = desc {
if let Descriptor::DisplayRangeLimitsAndAdditionalTiming(timings) = desc {
break 'fetch_min_hz timings.vertical_field_rate_min as u64;
}
if let Some(desc) = desc
&& let Descriptor::DisplayRangeLimitsAndAdditionalTiming(timings) = desc
{
break 'fetch_min_hz timings.vertical_field_rate_min as u64;
}
}
0
@ -1450,11 +1448,11 @@ fn create_connector_display_data(
}
};
let mut mode_opt = desired_state.mode.borrow_mut();
if let Some(mode) = &*mode_opt {
if !info.modes.contains(mode) {
log::warn!("Discarding previously desired mode");
*mode_opt = None;
}
if let Some(mode) = &*mode_opt
&& !info.modes.contains(mode)
{
log::warn!("Discarding previously desired mode");
*mode_opt = None;
}
if mode_opt.is_none() {
*mode_opt = info.modes.first().cloned();
@ -1854,12 +1852,11 @@ impl MetalBackend {
for c in removed_connectors {
dev.futures.remove(&c);
if let Some(c) = dev.connectors.remove(&c) {
if let Some(lease_id) = c.lease.get() {
if let Some(lease) = dev.dev.leases.remove(&lease_id) {
if !lease.try_revoke() {
dev.dev.leases_to_break.set(lease_id, lease);
}
}
if let Some(lease_id) = c.lease.get()
&& let Some(lease) = dev.dev.leases.remove(&lease_id)
&& !lease.try_revoke()
{
dev.dev.leases_to_break.set(lease_id, lease);
}
match c.frontend_state.get() {
FrontState::Removed | FrontState::Disconnected => {}
@ -1908,12 +1905,11 @@ impl MetalBackend {
}
if disconnect {
c.tearing_requested.set(false);
if let Some(lease_id) = c.lease.get() {
if let Some(lease) = dev.dev.leases.remove(&lease_id) {
if !lease.try_revoke() {
dev.dev.leases_to_break.set(lease_id, lease);
}
}
if let Some(lease_id) = c.lease.get()
&& let Some(lease) = dev.dev.leases.remove(&lease_id)
&& !lease.try_revoke()
{
dev.dev.leases_to_break.set(lease_id, lease);
}
c.send_event(ConnectorEvent::Disconnected);
} else if preserve_any {
@ -2493,13 +2489,13 @@ impl MetalBackend {
log::warn!("Cannot preserve connector whose crtc is inactive");
fail!(c.id);
}
if let Some(plane) = c.primary_plane.get() {
if plane.crtc_id.value.get() != crtc.id {
log::warn!(
"Cannot preserve connector whose primary plane is attached to a different crtc"
);
fail!(c.id);
}
if let Some(plane) = c.primary_plane.get()
&& plane.crtc_id.value.get() != crtc.id
{
log::warn!(
"Cannot preserve connector whose primary plane is attached to a different crtc"
);
fail!(c.id);
}
if let Some(plane) = c.cursor_plane.get() {
let crtc_id = plane.crtc_id.value.get();
@ -2510,11 +2506,11 @@ impl MetalBackend {
fail!(c.id);
}
}
if let Some(m) = &dd.colorspace {
if m.value.get() != dd.persistent.color_space.get().to_drm() {
log::debug!("Connector has wrong colorspace");
fail!(c.id);
}
if let Some(m) = &dd.colorspace
&& m.value.get() != dd.persistent.color_space.get().to_drm()
{
log::debug!("Connector has wrong colorspace");
fail!(c.id);
}
if let Some(diff) = self.compare_hdr_metadata(&dev.dev, &dd) {
log::debug!("{}", diff);
@ -2541,23 +2537,22 @@ impl MetalBackend {
}
fn make_render_device(&self, dev: &MetalDrmDevice, force: bool) {
if !force {
if let Some(ctx) = self.ctx.get() {
if ctx.dev_id == dev.id {
return;
}
}
if !force
&& let Some(ctx) = self.ctx.get()
&& ctx.dev_id == dev.id
{
return;
}
let ctx = dev.ctx.get();
if self.signaled_sync_file.is_none() {
if let Some(sync) = ctx.gfx.sync_obj_ctx() {
match sync.create_signaled_sync_file() {
Ok(sf) => {
self.signaled_sync_file.set(Some(sf));
}
Err(e) => {
log::warn!("Could not create signaled sync file: {}", ErrorFmt(e));
}
if self.signaled_sync_file.is_none()
&& let Some(sync) = ctx.gfx.sync_obj_ctx()
{
match sync.create_signaled_sync_file() {
Ok(sf) => {
self.signaled_sync_file.set(Some(sf));
}
Err(e) => {
log::warn!("Could not create signaled sync file: {}", ErrorFmt(e));
}
}
}
@ -2675,32 +2670,31 @@ impl MetalBackend {
flags = DRM_MODE_ATOMIC_ALLOW_MODESET;
self.reset_connectors_and_crtcs(dev, &mut changes, preserve);
for connector in dev.connectors.lock().values() {
if !preserve.connectors.contains(&connector.id) {
if let Err(e) = self.assign_connector_crtc(connector, &mut changes) {
log::error!("Could not assign a crtc: {}", ErrorFmt(e));
}
if !preserve.connectors.contains(&connector.id)
&& let Err(e) = self.assign_connector_crtc(connector, &mut changes)
{
log::error!("Could not assign a crtc: {}", ErrorFmt(e));
}
}
}
self.reset_planes(dev, &mut changes, preserve);
let mut old_buffers = vec![];
for connector in dev.connectors.lock().values() {
if !preserve.connectors.contains(&connector.id) {
if let Err(e) =
if !preserve.connectors.contains(&connector.id)
&& let Err(e) =
self.assign_connector_planes(connector, &mut changes, &ctx, &mut old_buffers)
{
log::error!("Could not assign a plane: {}", ErrorFmt(e));
}
{
log::error!("Could not assign a plane: {}", ErrorFmt(e));
}
}
let res = loop {
let res = changes.commit(flags, 0);
if let Err(e) = &res {
if flags.not_contains(DRM_MODE_ATOMIC_ALLOW_MODESET) {
log::warn!("Fast commit failed, retrying with modeset: {}", ErrorFmt(e));
flags |= DRM_MODE_ATOMIC_ALLOW_MODESET;
continue;
}
if let Err(e) = &res
&& flags.not_contains(DRM_MODE_ATOMIC_ALLOW_MODESET)
{
log::warn!("Fast commit failed, retrying with modeset: {}", ErrorFmt(e));
flags |= DRM_MODE_ATOMIC_ALLOW_MODESET;
continue;
}
break res;
};
@ -2775,11 +2769,11 @@ impl MetalBackend {
if dd.should_enable_vrr() {
vrr_crtcs.insert(crtc_id);
}
if let Some(m) = &dd.colorspace {
if m.value.get() != dd.persistent.color_space.get().to_drm() {
log::debug!("Connector has wrong colorspace");
return false;
}
if let Some(m) = &dd.colorspace
&& m.value.get() != dd.persistent.color_space.get().to_drm()
{
log::debug!("Connector has wrong colorspace");
return false;
}
if let Some(diff) = self.compare_hdr_metadata(&dev.dev, &dd) {
log::debug!("{}", diff);
@ -3139,10 +3133,9 @@ impl MetalBackend {
if plane.ty == PlaneType::Primary
&& !plane.assigned.get()
&& plane.lease.is_none()
&& let Some(format) = plane.formats.get(&format.drm)
{
if let Some(format) = plane.formats.get(&format.drm) {
break 'primary_plane (plane.clone(), &format.modifiers);
}
break 'primary_plane (plane.clone(), &format.modifiers);
}
}
return Err(MetalError::NoPrimaryPlaneForConnector);
@ -3189,12 +3182,11 @@ impl MetalBackend {
&& !plane.assigned.get()
&& plane.lease.is_none()
&& plane.formats.contains_key(&ARGB8888.drm)
&& let Some(format) = plane.formats.get(&ARGB8888.drm)
{
if let Some(format) = plane.formats.get(&ARGB8888.drm) {
cursor_plane = Some(plane.clone());
cursor_modifiers = &format.modifiers;
break;
}
cursor_plane = Some(plane.clone());
cursor_modifiers = &format.modifiers;
break;
}
}
let mut cursor_buffers = None;