<NME> Cargo.toml
<BEF> [package]
name = "smithay"
version = "0.3.0"
authors = ["Victor Berger <victor.berger@m4x.org>", "Drakulix (Victoria Brekenfeld)"]
license = "MIT"
description = "Smithay is a library for writing wayland compositors."
repository = "https://github.com/Smithay/smithay"
edition = "2021"
readme = "README.md"
homepage = "https://smithay.github.io/"
keywords = ["wayland", "compositor", "graphics", "server"]
categories = ["gui"]
[dependencies]
bitflags = "1"
calloop = "0.6.2"
dbus = { version = "0.9.0", optional = true }
drm = { version = "^0.4.0", git = "https://github.com/drakulix/drm-rs", branch = "develop", optional = true }
gbm = { version = "^0.6.0", git = "https://github.com/drakulix/gbm.rs", branch = "thread-safe", optional = true, default-features = false, features = ["drm-support"] }
glium = { version = "0.29.0", optional = true, default-features = false }
image = { version = "0.23.0", optional = true, default-features = false }
input = { version = "0.5", default-features = false, optional = true }
lazy_static = "1"

[dependencies]
appendlist = "1.4"
# Intentionally pick a commit from "0.37-stable" branch since additions for 0.37.1 are used
ash = { git = "https://github.com/ash-rs/ash", rev = "62960ad680207e8496ae19ebd11f7c7ae8422e27", optional = true }
bitflags = "1"
calloop = "0.10.1"
cgmath = "0.18.0"
dbus = { version = "0.9.4", optional = true }
downcast-rs = "1.2.0"
drm-fourcc = "^2.2.0"
drm = { version = "0.7.0", optional = true }
wayland-sys = { version = "0.28", optional = true }
winit = { version = "0.24.0", optional = true }
xkbcommon = "0.4.0"
# TODO: remove as soon as drm-rs provides an error implementing Error
failure = { version = "0.1", optional = true }

[dev-dependencies]
slog-term = "2.3"
libc = "0.2.103"
libseat= { version = "0.1.1", optional = true }
libloading = { version="0.7.0", optional = true } 
pkg-config = { version = "0.3.17", optional = true }

[features]
default = ["backend_winit", "backend_drm_legacy", "backend_drm_atomic", "backend_drm_gbm", "backend_drm_eglstream", "backend_drm_egl", "backend_libinput", "backend_udev", "backend_session_logind", "renderer_glium", "xwayland", "wayland_frontend", "slog-stdlog"]
backend_winit = ["winit", "wayland-server/dlopen", "backend_egl", "wayland-egl", "renderer_gl", "use_system_lib"]
backend_drm = ["drm", "failure"]
backend_drm_atomic = ["backend_drm"]
backend_drm_legacy = ["backend_drm"]
backend_drm_gbm = ["backend_drm", "gbm", "image"]
backend_drm_eglstream = ["backend_drm", "backend_egl"]
backend_drm_egl = ["backend_drm", "backend_egl"]
backend_egl = ["gl_generator"]
backend_libinput = ["input"]
backend_session = []
backend_udev = ["udev"]
backend_session_logind = ["dbus", "backend_session", "pkg-config"]
backend_session_elogind = ["backend_session_logind"]
renderer_gl = ["gl_generator"]
renderer_glium = ["renderer_gl", "glium"]
use_system_lib = ["wayland_frontend", "wayland-sys", "wayland-server/use_system_lib"]
wayland_frontend = ["wayland-server", "wayland-commons", "wayland-protocols", "tempfile"]
xwayland = ["wayland_frontend"]
x11rb = { version = "0.10.0", optional = true }

[[example]]
name = "raw_legacy_drm"
required-features = ["backend_drm_legacy"]
gl_generator = { version = "0.14", optional = true }
pkg-config = { version = "0.3.17", optional = true }
cc = { version = "1.0", optional = true }

[features]
default = ["backend_drm", "backend_gbm", "backend_libinput", "backend_udev", "backend_session_logind", "backend_x11", "backend_winit", "desktop", "renderer_gl", "renderer_multi", "xwayland", "wayland_frontend", "slog-stdlog", "backend_vulkan"]
backend_winit = ["winit", "backend_egl", "wayland-egl", "renderer_gl"]
backend_x11 = ["x11rb", "x11rb/dri3", "x11rb/xfixes", "x11rb/present", "x11rb_event_source", "backend_gbm", "backend_drm", "backend_egl"]
backend_drm = ["drm", "drm-ffi"]
backend_gbm = ["gbm", "cc", "pkg-config"]
backend_gbm_has_fd_for_plane = []
backend_egl = ["gl_generator", "libloading"]
backend_libinput = ["input"]
backend_session = []
backend_udev = ["udev", "input/udev"]
backend_vulkan = ["ash", "scopeguard"]
backend_session_logind = ["dbus", "backend_session", "pkg-config"]
backend_session_elogind = ["backend_session_logind"]
backend_session_libseat = ["backend_session", "libseat"]
desktop = []
renderer_gl = ["gl_generator", "backend_egl"]
renderer_glow = ["renderer_gl", "glow"]
renderer_multi = ["backend_drm"]
use_system_lib = ["wayland_frontend", "wayland-backend/server_system", "wayland-sys"]
wayland_frontend = ["wayland-server", "wayland-protocols", "tempfile"]
x11rb_event_source = ["x11rb"]
xwayland = ["wayland_frontend"]
test_all_features = ["default", "renderer_glow"]

[[example]]
name = "minimal"
required-features = ["backend_winit", "renderer_gl", "wayland_frontend"]

[[example]]
name = "seat"
required-features = ["wayland_frontend"]

[[example]]
name = "compositor"
required-features = ["wayland_frontend"]

[[example]]
name = "vulkan"
required-features = ["backend_vulkan"]

<MSG> Update to new drm-rs version and introduce drm-fourcc for formats

<DFF> @@ -13,10 +13,11 @@ members = [ "anvil" ]
 [dependencies]
 bitflags = "1"
 calloop = "0.6.2"
+cgmath = "0.18.0"
 dbus = { version = "0.9.0", optional = true }
-drm = { version = "^0.4.0", git = "https://github.com/drakulix/drm-rs", branch = "develop", optional = true }
-gbm = { version = "^0.6.0", git = "https://github.com/drakulix/gbm.rs", branch = "thread-safe", optional = true, default-features = false, features = ["drm-support"] }
-glium = { version = "0.29.0", optional = true, default-features = false }
+drm-fourcc = "^2.0.0"
+drm = { version = "^0.4.0-alpha1", git = "https://github.com/drakulix/drm-rs", branch = "next", optional = true }
+gbm = { version = "^0.6.0", git = "https://github.com/drakulix/gbm.rs", branch = "develop", optional = true, default-features = false, features = ["drm-support"] }
 image = { version = "0.23.0", optional = true, default-features = false }
 input = { version = "0.5", default-features = false, optional = true }
 lazy_static = "1"
@@ -35,8 +36,6 @@ wayland-server = { version = "0.28.3", optional = true }
 wayland-sys = { version = "0.28", optional = true }
 winit = { version = "0.24.0", optional = true }
 xkbcommon = "0.4.0"
-# TODO: remove as soon as drm-rs provides an error implementing Error
-failure = { version = "0.1", optional = true }
 
 [dev-dependencies]
 slog-term = "2.3"
@@ -46,22 +45,17 @@ gl_generator = { version = "0.14", optional = true }
 pkg-config = { version = "0.3.17", optional = true }
 
 [features]
-default = ["backend_winit", "backend_drm_legacy", "backend_drm_atomic", "backend_drm_gbm", "backend_drm_eglstream", "backend_drm_egl", "backend_libinput", "backend_udev", "backend_session_logind", "renderer_glium", "xwayland", "wayland_frontend", "slog-stdlog"]
+default = ["backend_drm", "backend_gbm", "backend_libinput", "backend_udev", "backend_session_logind", "backend_winit", "renderer_gl", "xwayland", "wayland_frontend", "slog-stdlog"]
 backend_winit = ["winit", "wayland-server/dlopen", "backend_egl", "wayland-egl", "renderer_gl", "use_system_lib"]
-backend_drm = ["drm", "failure"]
-backend_drm_atomic = ["backend_drm"]
-backend_drm_legacy = ["backend_drm"]
-backend_drm_gbm = ["backend_drm", "gbm", "image"]
-backend_drm_eglstream = ["backend_drm", "backend_egl"]
-backend_drm_egl = ["backend_drm", "backend_egl"]
+backend_drm = ["drm"]
+backend_gbm = ["gbm"]
 backend_egl = ["gl_generator"]
 backend_libinput = ["input"]
 backend_session = []
 backend_udev = ["udev"]
 backend_session_logind = ["dbus", "backend_session", "pkg-config"]
 backend_session_elogind = ["backend_session_logind"]
-renderer_gl = ["gl_generator"]
-renderer_glium = ["renderer_gl", "glium"]
+renderer_gl = ["gl_generator", "backend_egl"]
 use_system_lib = ["wayland_frontend", "wayland-sys", "wayland-server/use_system_lib"]
 wayland_frontend = ["wayland-server", "wayland-commons", "wayland-protocols", "tempfile"]
 xwayland = ["wayland_frontend"]
@@ -69,4 +63,8 @@ test_all_features = ["default"]
 
 [[example]]
 name = "raw_legacy_drm"
-required-features = ["backend_drm_legacy"]
+required-features = ["backend_drm"]
+
+[[example]]
+name = "raw_atomic_drm"
+required-features = ["backend_drm"]

Update to new drm-rs version and introduce drm-fourcc for formats