From 009a9130d203d5bcc9224da143b870e90d3897c0 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 10 May 2026 14:54:47 +0200 Subject: [PATCH] drivers/graphics: Report DRM_CAP_DUMB_PREFERRED_DEPTH to clients --- drivers/graphics/ihdgd/src/device/scheme.rs | 4 +++- drivers/graphics/vesad/src/scheme.rs | 4 +++- drivers/graphics/virtio-gpud/src/scheme.rs | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/graphics/ihdgd/src/device/scheme.rs b/drivers/graphics/ihdgd/src/device/scheme.rs index 7a90d6933e..337314da71 100644 --- a/drivers/graphics/ihdgd/src/device/scheme.rs +++ b/drivers/graphics/ihdgd/src/device/scheme.rs @@ -6,7 +6,8 @@ use driver_graphics::kms::objects::{ }; use driver_graphics::{Buffer, CursorPlane, Damage, GraphicsAdapter}; use drm_sys::{ - DRM_CAP_DUMB_BUFFER, DRM_CAP_DUMB_PREFER_SHADOW, DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT, + DRM_CAP_DUMB_BUFFER, DRM_CAP_DUMB_PREFERRED_DEPTH, DRM_CAP_DUMB_PREFER_SHADOW, + DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT, }; use syscall::error::EINVAL; @@ -50,6 +51,7 @@ impl GraphicsAdapter for Device { fn get_cap(&self, cap: u32) -> syscall::Result { match cap { DRM_CAP_DUMB_BUFFER => Ok(1), + DRM_CAP_DUMB_PREFERRED_DEPTH => Ok(24), DRM_CAP_DUMB_PREFER_SHADOW => Ok(1), _ => Err(syscall::Error::new(EINVAL)), } diff --git a/drivers/graphics/vesad/src/scheme.rs b/drivers/graphics/vesad/src/scheme.rs index 9c9713b229..4b8b31ce83 100644 --- a/drivers/graphics/vesad/src/scheme.rs +++ b/drivers/graphics/vesad/src/scheme.rs @@ -7,7 +7,8 @@ use driver_graphics::kms::connector::{KmsConnectorDriver, KmsConnectorStatus}; use driver_graphics::kms::objects::{KmsCrtc, KmsCrtcState, KmsObjectId, KmsObjects}; use driver_graphics::{Buffer, CursorPlane, Damage, GraphicsAdapter}; use drm_sys::{ - DRM_CAP_DUMB_BUFFER, DRM_CAP_DUMB_PREFER_SHADOW, DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT, + DRM_CAP_DUMB_BUFFER, DRM_CAP_DUMB_PREFERRED_DEPTH, DRM_CAP_DUMB_PREFER_SHADOW, + DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT, }; use syscall::{EINVAL, PAGE_SIZE}; @@ -61,6 +62,7 @@ impl GraphicsAdapter for FbAdapter { fn get_cap(&self, cap: u32) -> syscall::Result { match cap { DRM_CAP_DUMB_BUFFER => Ok(1), + DRM_CAP_DUMB_PREFERRED_DEPTH => Ok(24), DRM_CAP_DUMB_PREFER_SHADOW => Ok(0), _ => Err(syscall::Error::new(EINVAL)), } diff --git a/drivers/graphics/virtio-gpud/src/scheme.rs b/drivers/graphics/virtio-gpud/src/scheme.rs index 0f88a66e91..2dd07681f5 100644 --- a/drivers/graphics/virtio-gpud/src/scheme.rs +++ b/drivers/graphics/virtio-gpud/src/scheme.rs @@ -6,8 +6,8 @@ use driver_graphics::kms::connector::{KmsConnectorDriver, KmsConnectorStatus}; use driver_graphics::kms::objects::{KmsCrtc, KmsCrtcState, KmsObjectId, KmsObjects}; use driver_graphics::{Buffer as DrmBuffer, CursorPlane, Damage, GraphicsAdapter, GraphicsScheme}; use drm_sys::{ - DRM_CAP_CURSOR_HEIGHT, DRM_CAP_CURSOR_WIDTH, DRM_CAP_DUMB_BUFFER, DRM_CAP_DUMB_PREFER_SHADOW, - DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT, + DRM_CAP_CURSOR_HEIGHT, DRM_CAP_CURSOR_WIDTH, DRM_CAP_DUMB_BUFFER, DRM_CAP_DUMB_PREFERRED_DEPTH, + DRM_CAP_DUMB_PREFER_SHADOW, DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT, }; use syscall::{EINVAL, PAGE_SIZE}; @@ -293,6 +293,7 @@ impl<'a> GraphicsAdapter for VirtGpuAdapter<'a> { fn get_cap(&self, cap: u32) -> syscall::Result { match cap { DRM_CAP_DUMB_BUFFER => Ok(1), + DRM_CAP_DUMB_PREFERRED_DEPTH => Ok(24), DRM_CAP_DUMB_PREFER_SHADOW => Ok(0), DRM_CAP_CURSOR_WIDTH => Ok(64), DRM_CAP_CURSOR_HEIGHT => Ok(64),