diff --git a/src/backend/kms/device.rs b/src/backend/kms/device.rs index 0cf9e083..926af374 100644 --- a/src/backend/kms/device.rs +++ b/src/backend/kms/device.rs @@ -244,7 +244,7 @@ impl State { let gbm = GbmDevice::new(fd) .with_context(|| format!("Failed to initialize GBM device for {}", path.display()))?; - let (render_node, render_formats, is_software) = { + let (render_node, render_formats, texture_formats, is_software) = { let egl = init_egl(&gbm)?; let render_node = egl @@ -254,8 +254,14 @@ impl State { .and_then(std::convert::identity) .unwrap_or(drm_node); let render_formats = egl.context.dmabuf_render_formats().clone(); + let texture_formats = egl.context.dmabuf_texture_formats().clone(); - (render_node, render_formats, egl.device.is_software()) + ( + render_node, + render_formats, + texture_formats, + egl.device.is_software(), + ) }; let token = self @@ -279,7 +285,7 @@ impl State { .with_context(|| format!("Failed to add drm device to event loop: {}", dev))?; let socket = match (!is_software) - .then(|| self.create_socket(dh, render_node, render_formats.clone())) + .then(|| self.create_socket(dh, render_node, texture_formats)) .transpose() { Ok(socket) => socket,