diff --git a/src/backend/kms/mod.rs b/src/backend/kms/mod.rs index 8e0d39db..532d6590 100644 --- a/src/backend/kms/mod.rs +++ b/src/backend/kms/mod.rs @@ -16,6 +16,7 @@ use smithay::{ allocator::{ dmabuf::Dmabuf, gbm::{GbmAllocator, GbmBufferFlags}, + Buffer, }, drm::{output::DrmOutputRenderElements, DrmDeviceFd, DrmNode, NodeType}, egl::{context::ContextPriority, EGLContext, EGLDevice, EGLDisplay}, @@ -456,6 +457,17 @@ impl KmsState { &_egl.as_ref().unwrap().display }; + if !egl_display + .dmabuf_texture_formats() + .contains(&dmabuf.format()) + { + trace!( + "Skipping import of dmabuf on {:?}: unsupported format", + device.render_node + ); + continue; + } + let result = egl_display .create_image_from_dmabuf(&dmabuf) .map(|image| {