diff --git a/src/backend/udev.rs b/src/backend/udev.rs index 48da203..66cf523 100644 --- a/src/backend/udev.rs +++ b/src/backend/udev.rs @@ -300,10 +300,18 @@ pub fn init_udev( &default_feedback, ); data.dmabuf_global = Some(dmabuf_global); - data.drm_syncobj_state = Some(smithay::wayland::drm_syncobj::DrmSyncobjState::new::( - &data.display_handle, - device_fd.clone(), - )); + if drm.is_atomic() { + data.drm_syncobj_state = + Some(smithay::wayland::drm_syncobj::DrmSyncobjState::new::( + &data.display_handle, + device_fd.clone(), + )); + } else { + tracing::info!( + "Legacy DRM active: disabling linux-drm-syncobj-v1 advertisement and falling back to implicit synchronization" + ); + data.drm_syncobj_state = None; + } // 5. Set up libinput let libinput_session = LibinputSessionInterface::from(session.clone());