chore: Update smithay
This commit is contained in:
parent
3d3864b357
commit
83ec68d383
9 changed files with 748 additions and 200 deletions
622
Cargo.lock
generated
622
Cargo.lock
generated
|
|
@ -203,12 +203,177 @@ dependencies = [
|
|||
"libloading 0.7.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-broadcast"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
|
||||
dependencies = [
|
||||
"event-listener 2.5.3",
|
||||
"futures-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-channel"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
|
||||
dependencies = [
|
||||
"concurrent-queue",
|
||||
"event-listener 5.1.0",
|
||||
"event-listener-strategy 0.5.0",
|
||||
"futures-core",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-executor"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
|
||||
dependencies = [
|
||||
"async-lock 3.3.0",
|
||||
"async-task",
|
||||
"concurrent-queue",
|
||||
"fastrand 2.0.1",
|
||||
"futures-lite 2.2.0",
|
||||
"slab",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-fs"
|
||||
version = "1.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
|
||||
dependencies = [
|
||||
"async-lock 2.8.0",
|
||||
"autocfg",
|
||||
"blocking",
|
||||
"futures-lite 1.13.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-io"
|
||||
version = "1.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
|
||||
dependencies = [
|
||||
"async-lock 2.8.0",
|
||||
"autocfg",
|
||||
"cfg-if",
|
||||
"concurrent-queue",
|
||||
"futures-lite 1.13.0",
|
||||
"log",
|
||||
"parking",
|
||||
"polling 2.8.0",
|
||||
"rustix 0.37.27",
|
||||
"slab",
|
||||
"socket2",
|
||||
"waker-fn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-io"
|
||||
version = "2.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
|
||||
dependencies = [
|
||||
"async-lock 3.3.0",
|
||||
"cfg-if",
|
||||
"concurrent-queue",
|
||||
"futures-io",
|
||||
"futures-lite 2.2.0",
|
||||
"parking",
|
||||
"polling 3.3.2",
|
||||
"rustix 0.38.30",
|
||||
"slab",
|
||||
"tracing",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-lock"
|
||||
version = "2.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
|
||||
dependencies = [
|
||||
"event-listener 2.5.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-lock"
|
||||
version = "3.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
|
||||
dependencies = [
|
||||
"event-listener 4.0.3",
|
||||
"event-listener-strategy 0.4.0",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-process"
|
||||
version = "1.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
|
||||
dependencies = [
|
||||
"async-io 1.13.0",
|
||||
"async-lock 2.8.0",
|
||||
"async-signal",
|
||||
"blocking",
|
||||
"cfg-if",
|
||||
"event-listener 3.1.0",
|
||||
"futures-lite 1.13.0",
|
||||
"rustix 0.38.30",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-recursion"
|
||||
version = "1.0.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-signal"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
|
||||
dependencies = [
|
||||
"async-io 2.3.1",
|
||||
"async-lock 2.8.0",
|
||||
"atomic-waker",
|
||||
"cfg-if",
|
||||
"futures-core",
|
||||
"futures-io",
|
||||
"rustix 0.38.30",
|
||||
"signal-hook-registry",
|
||||
"slab",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "async-task"
|
||||
version = "4.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
|
||||
|
||||
[[package]]
|
||||
name = "async-trait"
|
||||
version = "0.1.77"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "atomic-waker"
|
||||
version = "1.1.2"
|
||||
|
|
@ -220,7 +385,7 @@ name = "atomicwrites"
|
|||
version = "0.4.2"
|
||||
source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
|
||||
dependencies = [
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"tempfile",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
|
@ -337,6 +502,22 @@ dependencies = [
|
|||
"objc2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "blocking"
|
||||
version = "1.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
|
||||
dependencies = [
|
||||
"async-channel",
|
||||
"async-lock 3.3.0",
|
||||
"async-task",
|
||||
"fastrand 2.0.1",
|
||||
"futures-io",
|
||||
"futures-lite 2.2.0",
|
||||
"piper",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bumpalo"
|
||||
version = "3.14.0"
|
||||
|
|
@ -384,8 +565,8 @@ dependencies = [
|
|||
"async-task",
|
||||
"bitflags 2.4.2",
|
||||
"log",
|
||||
"polling",
|
||||
"rustix",
|
||||
"polling 3.3.2",
|
||||
"rustix 0.38.30",
|
||||
"slab",
|
||||
"thiserror",
|
||||
]
|
||||
|
|
@ -397,7 +578,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
|
||||
dependencies = [
|
||||
"calloop",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"wayland-backend",
|
||||
"wayland-client",
|
||||
]
|
||||
|
|
@ -604,6 +785,7 @@ dependencies = [
|
|||
"xdg",
|
||||
"xdg-user",
|
||||
"xkbcommon",
|
||||
"zbus",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -795,7 +977,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
|
||||
dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
"libloading 0.8.1",
|
||||
"libloading 0.7.4",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
|
|
@ -868,6 +1050,17 @@ dependencies = [
|
|||
"powerfmt",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "derivative"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "derive_setters"
|
||||
version = "0.1.6"
|
||||
|
|
@ -993,7 +1186,7 @@ dependencies = [
|
|||
"bytemuck",
|
||||
"drm-ffi 0.7.1",
|
||||
"drm-fourcc",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -1013,7 +1206,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
|
||||
dependencies = [
|
||||
"drm-sys 0.6.1",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -1153,6 +1346,27 @@ dependencies = [
|
|||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "enumflags2"
|
||||
version = "0.7.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
|
||||
dependencies = [
|
||||
"enumflags2_derive",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "enumflags2_derive"
|
||||
version = "0.7.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "enumn"
|
||||
version = "0.1.13"
|
||||
|
|
@ -1215,6 +1429,65 @@ dependencies = [
|
|||
"num-traits",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "event-listener"
|
||||
version = "2.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
|
||||
|
||||
[[package]]
|
||||
name = "event-listener"
|
||||
version = "3.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
|
||||
dependencies = [
|
||||
"concurrent-queue",
|
||||
"parking",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "event-listener"
|
||||
version = "4.0.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
|
||||
dependencies = [
|
||||
"concurrent-queue",
|
||||
"parking",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "event-listener"
|
||||
version = "5.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27"
|
||||
dependencies = [
|
||||
"concurrent-queue",
|
||||
"parking",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "event-listener-strategy"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
|
||||
dependencies = [
|
||||
"event-listener 4.0.3",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "event-listener-strategy"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
|
||||
dependencies = [
|
||||
"event-listener 5.1.0",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "exr"
|
||||
version = "1.6.4"
|
||||
|
|
@ -1237,6 +1510,15 @@ version = "1.0.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1"
|
||||
|
||||
[[package]]
|
||||
name = "fastrand"
|
||||
version = "1.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
|
||||
dependencies = [
|
||||
"instant",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fastrand"
|
||||
version = "2.0.1"
|
||||
|
|
@ -1513,6 +1795,34 @@ version = "0.3.30"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
|
||||
|
||||
[[package]]
|
||||
name = "futures-lite"
|
||||
version = "1.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
|
||||
dependencies = [
|
||||
"fastrand 1.9.0",
|
||||
"futures-core",
|
||||
"futures-io",
|
||||
"memchr",
|
||||
"parking",
|
||||
"pin-project-lite",
|
||||
"waker-fn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-lite"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
|
||||
dependencies = [
|
||||
"fastrand 2.0.1",
|
||||
"futures-core",
|
||||
"futures-io",
|
||||
"parking",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-macro"
|
||||
version = "0.3.30"
|
||||
|
|
@ -1556,9 +1866,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gbm"
|
||||
version = "0.14.0"
|
||||
version = "0.14.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "65dffaf38d96aa22cb748ccd9b1ffe624931e899f54c0225815ef7ac757a409f"
|
||||
checksum = "313702b30cdeb83ddc72bc14dcee67803cd0ae2d12282ea06e368c25a900c844"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"drm 0.11.1",
|
||||
|
|
@ -1823,6 +2133,12 @@ version = "0.3.4"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
|
||||
|
||||
[[package]]
|
||||
name = "hex"
|
||||
version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
||||
|
||||
[[package]]
|
||||
name = "hexf-parse"
|
||||
version = "0.2.1"
|
||||
|
|
@ -2510,6 +2826,12 @@ dependencies = [
|
|||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
version = "0.3.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
version = "0.4.13"
|
||||
|
|
@ -3004,7 +3326,7 @@ version = "0.7.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
|
||||
dependencies = [
|
||||
"proc-macro-crate",
|
||||
"proc-macro-crate 3.1.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.48",
|
||||
|
|
@ -3129,6 +3451,16 @@ dependencies = [
|
|||
"hashbrown 0.12.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ordered-stream"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ouroboros"
|
||||
version = "0.17.2"
|
||||
|
|
@ -3192,6 +3524,12 @@ dependencies = [
|
|||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "parking"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot"
|
||||
version = "0.11.2"
|
||||
|
|
@ -3332,6 +3670,17 @@ version = "0.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
||||
|
||||
[[package]]
|
||||
name = "piper"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
|
||||
dependencies = [
|
||||
"atomic-waker",
|
||||
"fastrand 2.0.1",
|
||||
"futures-io",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pkg-config"
|
||||
version = "0.3.29"
|
||||
|
|
@ -3351,6 +3700,22 @@ dependencies = [
|
|||
"miniz_oxide",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polling"
|
||||
version = "2.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"bitflags 1.3.2",
|
||||
"cfg-if",
|
||||
"concurrent-queue",
|
||||
"libc",
|
||||
"log",
|
||||
"pin-project-lite",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "polling"
|
||||
version = "3.3.2"
|
||||
|
|
@ -3360,7 +3725,7 @@ dependencies = [
|
|||
"cfg-if",
|
||||
"concurrent-queue",
|
||||
"pin-project-lite",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"tracing",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
|
@ -3383,13 +3748,23 @@ version = "0.3.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-crate"
|
||||
version = "1.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"toml_edit 0.19.15",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-crate"
|
||||
version = "3.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
|
||||
dependencies = [
|
||||
"toml_edit",
|
||||
"toml_edit 0.21.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -3818,6 +4193,20 @@ version = "1.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.37.27"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"errno",
|
||||
"io-lifetimes 1.0.11",
|
||||
"libc",
|
||||
"linux-raw-sys 0.3.8",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.38.30"
|
||||
|
|
@ -3946,6 +4335,17 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_repr"
|
||||
version = "0.1.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_spanned"
|
||||
version = "0.6.5"
|
||||
|
|
@ -3955,6 +4355,17 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha1"
|
||||
version = "0.10.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cpufeatures",
|
||||
"digest",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sha2"
|
||||
version = "0.10.8"
|
||||
|
|
@ -3975,6 +4386,15 @@ dependencies = [
|
|||
"lazy_static",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "signal-hook-registry"
|
||||
version = "1.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "simd-adler32"
|
||||
version = "0.3.7"
|
||||
|
|
@ -4023,7 +4443,7 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
|
|||
[[package]]
|
||||
name = "smithay"
|
||||
version = "0.3.0"
|
||||
source = "git+https://github.com/smithay//smithay?rev=3b3e07952e#3b3e07952e471618fe8b590ba3223f4201cec10c"
|
||||
source = "git+https://github.com/smithay//smithay?rev=094fa3f7c3#094fa3f7c3909a7815000174807d1d962d555718"
|
||||
dependencies = [
|
||||
"appendlist",
|
||||
"ash",
|
||||
|
|
@ -4051,7 +4471,7 @@ dependencies = [
|
|||
"pkg-config",
|
||||
"profiling",
|
||||
"rand",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"scan_fmt",
|
||||
"scopeguard",
|
||||
"smallvec",
|
||||
|
|
@ -4084,7 +4504,7 @@ dependencies = [
|
|||
"libc",
|
||||
"log",
|
||||
"memmap2 0.9.3",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"thiserror",
|
||||
"wayland-backend",
|
||||
"wayland-client",
|
||||
|
|
@ -4127,6 +4547,16 @@ version = "1.3.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "27207bb65232eda1f588cf46db2fee75c0808d557f6b3cf19a75f5d6d7c94df1"
|
||||
|
||||
[[package]]
|
||||
name = "socket2"
|
||||
version = "0.4.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "softbuffer"
|
||||
version = "0.3.3"
|
||||
|
|
@ -4138,7 +4568,7 @@ dependencies = [
|
|||
"cocoa",
|
||||
"core-graphics",
|
||||
"drm 0.10.0",
|
||||
"fastrand",
|
||||
"fastrand 2.0.1",
|
||||
"foreign-types",
|
||||
"js-sys",
|
||||
"log",
|
||||
|
|
@ -4146,7 +4576,7 @@ dependencies = [
|
|||
"objc",
|
||||
"raw-window-handle 0.5.2",
|
||||
"redox_syscall 0.4.1",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"tiny-xlib",
|
||||
"wasm-bindgen",
|
||||
"wayland-backend",
|
||||
|
|
@ -4287,9 +4717,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"fastrand",
|
||||
"fastrand 2.0.1",
|
||||
"redox_syscall 0.4.1",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
|
|
@ -4479,7 +4909,7 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_spanned",
|
||||
"toml_datetime",
|
||||
"toml_edit",
|
||||
"toml_edit 0.21.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -4491,6 +4921,17 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.19.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
|
||||
dependencies = [
|
||||
"indexmap 2.1.0",
|
||||
"toml_datetime",
|
||||
"winnow",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.21.0"
|
||||
|
|
@ -4609,6 +5050,17 @@ dependencies = [
|
|||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "uds_windows"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
|
||||
dependencies = [
|
||||
"memoffset 0.9.0",
|
||||
"tempfile",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unic-langid"
|
||||
version = "0.9.4"
|
||||
|
|
@ -4831,6 +5283,12 @@ version = "0.9.4"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||
|
||||
[[package]]
|
||||
name = "waker-fn"
|
||||
version = "1.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
|
||||
|
||||
[[package]]
|
||||
name = "walkdir"
|
||||
version = "2.4.0"
|
||||
|
|
@ -4988,9 +5446,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "wayland-protocols"
|
||||
version = "0.31.0"
|
||||
version = "0.31.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
|
||||
checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
|
||||
dependencies = [
|
||||
"bitflags 2.4.2",
|
||||
"wayland-backend",
|
||||
|
|
@ -5175,7 +5633,7 @@ dependencies = [
|
|||
"js-sys",
|
||||
"khronos-egl",
|
||||
"libc",
|
||||
"libloading 0.8.1",
|
||||
"libloading 0.7.4",
|
||||
"log",
|
||||
"metal",
|
||||
"naga",
|
||||
|
|
@ -5498,7 +5956,7 @@ dependencies = [
|
|||
"percent-encoding",
|
||||
"raw-window-handle 0.6.0",
|
||||
"redox_syscall 0.3.5",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"smithay-client-toolkit",
|
||||
"smol_str",
|
||||
"unicode-segmentation",
|
||||
|
|
@ -5573,7 +6031,7 @@ dependencies = [
|
|||
"libc",
|
||||
"libloading 0.8.1",
|
||||
"once_cell",
|
||||
"rustix",
|
||||
"rustix 0.38.30",
|
||||
"x11rb-protocol 0.13.0",
|
||||
]
|
||||
|
||||
|
|
@ -5604,6 +6062,16 @@ version = "2.5.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
|
||||
|
||||
[[package]]
|
||||
name = "xdg-home"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "xdg-user"
|
||||
version = "0.2.1"
|
||||
|
|
@ -5674,6 +6142,72 @@ version = "0.1.6"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
|
||||
|
||||
[[package]]
|
||||
name = "zbus"
|
||||
version = "3.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
|
||||
dependencies = [
|
||||
"async-broadcast",
|
||||
"async-executor",
|
||||
"async-fs",
|
||||
"async-io 1.13.0",
|
||||
"async-lock 2.8.0",
|
||||
"async-process",
|
||||
"async-recursion",
|
||||
"async-task",
|
||||
"async-trait",
|
||||
"blocking",
|
||||
"byteorder",
|
||||
"derivative",
|
||||
"enumflags2",
|
||||
"event-listener 2.5.3",
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
"futures-util",
|
||||
"hex",
|
||||
"nix 0.26.4",
|
||||
"once_cell",
|
||||
"ordered-stream",
|
||||
"rand",
|
||||
"serde",
|
||||
"serde_repr",
|
||||
"sha1",
|
||||
"static_assertions",
|
||||
"tracing",
|
||||
"uds_windows",
|
||||
"winapi",
|
||||
"xdg-home",
|
||||
"zbus_macros",
|
||||
"zbus_names",
|
||||
"zvariant",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zbus_macros"
|
||||
version = "3.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
|
||||
dependencies = [
|
||||
"proc-macro-crate 1.3.1",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"regex",
|
||||
"syn 1.0.109",
|
||||
"zvariant_utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zbus_names"
|
||||
version = "2.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"static_assertions",
|
||||
"zvariant",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zeno"
|
||||
version = "0.2.3"
|
||||
|
|
@ -5708,3 +6242,41 @@ checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
|
|||
dependencies = [
|
||||
"simd-adler32",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zvariant"
|
||||
version = "3.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"enumflags2",
|
||||
"libc",
|
||||
"serde",
|
||||
"static_assertions",
|
||||
"zvariant_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zvariant_derive"
|
||||
version = "3.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
|
||||
dependencies = [
|
||||
"proc-macro-crate 1.3.1",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
"zvariant_utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zvariant_utils"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
|
|
|||
121
Cargo.toml
121
Cargo.toml
|
|
@ -1,94 +1,111 @@
|
|||
[package]
|
||||
name = "cosmic-comp"
|
||||
version = "0.1.0"
|
||||
authors = ["Victoria Brekenfeld"]
|
||||
edition = "2021"
|
||||
license = "GPL-3.0-only"
|
||||
authors = ["Victoria Brekenfeld"]
|
||||
name = "cosmic-comp"
|
||||
version = "0.1.0"
|
||||
|
||||
[workspace]
|
||||
members = [
|
||||
"cosmic-comp-config"
|
||||
"cosmic-comp-config",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
anyhow = { version = "1.0.51", features = ["backtrace"] }
|
||||
anyhow = {version = "1.0.51", features = ["backtrace"]}
|
||||
bitflags = "2.4"
|
||||
bytemuck = "1.12"
|
||||
calloop = { version = "0.12.2", features = ["executor"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
sendfd = "0.4.1"
|
||||
egui = { version = "0.23.0", optional = true }
|
||||
egui_plot = { version = "0.23.0", optional = true }
|
||||
renderdoc = { version = "0.11.0", optional = true }
|
||||
edid-rs = { version = "0.1" }
|
||||
png = "0.17.5"
|
||||
lazy_static = "1.4.0"
|
||||
log-panics = { version = "2", features = ["with-backtrace"] }
|
||||
thiserror = "1.0.26"
|
||||
regex = "1"
|
||||
xcursor = "0.3.3"
|
||||
xkbcommon = "0.7"
|
||||
calloop = {version = "0.12.2", features = ["executor"]}
|
||||
cosmic-comp-config = {path = "cosmic-comp-config"}
|
||||
cosmic-config = {git = "https://github.com/pop-os/libcosmic/", features = ["calloop", "macro"]}
|
||||
cosmic-protocols = {git = "https://github.com/pop-os/cosmic-protocols", branch = "main", default-features = false, features = ["server"]}
|
||||
edid-rs = {version = "0.1"}
|
||||
egui = {version = "0.23.0", optional = true}
|
||||
egui_plot = {version = "0.23.0", optional = true}
|
||||
glow = "0.12.0"
|
||||
i18n-embed = {version = "0.14", features = ["fluent-system", "desktop-requester"]}
|
||||
i18n-embed-fl = "0.7"
|
||||
iced_tiny_skia = {git = "https://github.com/pop-os/libcosmic/"}
|
||||
indexmap = "2.0"
|
||||
xdg = "^2.1"
|
||||
keyframe = "1.1.1"
|
||||
lazy_static = "1.4.0"
|
||||
libc = "0.2.149"
|
||||
libcosmic = {git = "https://github.com/pop-os/libcosmic/", default-features = false}
|
||||
libsystemd = {version = "0.7", optional = true}
|
||||
log-panics = {version = "2", features = ["with-backtrace"]}
|
||||
once_cell = "1.18.0"
|
||||
ordered-float = "4.0"
|
||||
png = "0.17.5"
|
||||
puffin = {version = "0.17.0", optional = true}
|
||||
puffin_egui = {version = "0.23.0", optional = true}
|
||||
regex = "1"
|
||||
renderdoc = {version = "0.11.0", optional = true}
|
||||
ron = "0.8"
|
||||
libsystemd = { version = "0.7", optional = true }
|
||||
rust-embed = {version = "8.0", features = ["debug-embed"]}
|
||||
sanitize-filename = "0.5.0"
|
||||
sendfd = "0.4.1"
|
||||
serde = {version = "1", features = ["derive"]}
|
||||
serde_json = "1"
|
||||
thiserror = "1.0.26"
|
||||
time = {version = "0.3.30", features = ["macros", "formatting", "local-offset"]}
|
||||
tiny-skia = "0.11"
|
||||
tracing = {version = "0.1.37", features = ["max_level_debug", "release_max_level_info"]}
|
||||
tracing-journald = "0.3.0"
|
||||
tracing-subscriber = {version = "0.3.16", features = ["env-filter", "tracing-log"]}
|
||||
wayland-backend = "0.3.2"
|
||||
wayland-scanner = "0.31.0"
|
||||
cosmic-comp-config = { path = "cosmic-comp-config" }
|
||||
cosmic-config = { git = "https://github.com/pop-os/libcosmic/", features = ["calloop", "macro"] }
|
||||
cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols", branch = "main", default-features = false, features = ["server"] }
|
||||
libcosmic = { git = "https://github.com/pop-os/libcosmic/", default-features = false }
|
||||
iced_tiny_skia = { git = "https://github.com/pop-os/libcosmic/" }
|
||||
tiny-skia = "0.11"
|
||||
ordered-float = "4.0"
|
||||
glow = "0.12.0"
|
||||
tracing-subscriber = { version = "0.3.16", features = ["env-filter", "tracing-log"] }
|
||||
tracing-journald = "0.3.0"
|
||||
tracing = { version = "0.1.37", features = ["max_level_debug", "release_max_level_info"] }
|
||||
puffin = { version = "0.17.0", optional = true }
|
||||
puffin_egui = { version = "0.23.0", optional = true }
|
||||
keyframe = "1.1.1"
|
||||
once_cell = "1.18.0"
|
||||
i18n-embed = { version = "0.14", features = ["fluent-system", "desktop-requester"] }
|
||||
i18n-embed-fl = "0.7"
|
||||
rust-embed = { version = "8.0", features = ["debug-embed"] }
|
||||
libc = "0.2.149"
|
||||
xcursor = "0.3.3"
|
||||
xdg = "^2.1"
|
||||
xdg-user = "0.2.1"
|
||||
time = { version = "0.3.30", features = ["macros", "formatting", "local-offset"] }
|
||||
sanitize-filename = "0.5.0"
|
||||
xkbcommon = "0.7"
|
||||
zbus = "3.15.0"
|
||||
|
||||
[dependencies.id_tree]
|
||||
git = "https://github.com/Drakulix/id-tree.git"
|
||||
branch = "feature/copy_clone"
|
||||
git = "https://github.com/Drakulix/id-tree.git"
|
||||
|
||||
[dependencies.smithay]
|
||||
version = "0.3"
|
||||
default-features = false
|
||||
features = [
|
||||
"backend_drm",
|
||||
"backend_gbm",
|
||||
"backend_egl",
|
||||
"backend_libinput",
|
||||
"backend_session_libseat",
|
||||
"backend_udev",
|
||||
"backend_winit",
|
||||
"backend_vulkan",
|
||||
"backend_x11",
|
||||
"desktop",
|
||||
"use_system_lib",
|
||||
"renderer_glow",
|
||||
"renderer_multi",
|
||||
"wayland_frontend",
|
||||
"xwayland",
|
||||
]
|
||||
git = "https://github.com/smithay/smithay.git"
|
||||
rev = "74ef59a3f"
|
||||
default-features = false
|
||||
features = ["backend_drm", "backend_gbm", "backend_egl", "backend_libinput", "backend_session_libseat", "backend_udev", "backend_winit", "backend_vulkan", "backend_x11", "desktop", "use_system_lib", "renderer_glow", "renderer_multi", "wayland_frontend", "xwayland"]
|
||||
version = "0.3"
|
||||
|
||||
[dependencies.smithay-egui]
|
||||
git = "https://github.com/Smithay/smithay-egui.git"
|
||||
rev = "cdc652e0"
|
||||
features = ["svg"]
|
||||
git = "https://github.com/Smithay/smithay-egui.git"
|
||||
optional = true
|
||||
rev = "cdc652e0"
|
||||
|
||||
[features]
|
||||
debug = ["egui", "egui_plot", "smithay-egui", "renderdoc", "puffin", "puffin_egui", "anyhow/backtrace"]
|
||||
default = ["systemd"]
|
||||
systemd = ["libsystemd"]
|
||||
debug = ["egui", "egui_plot", "smithay-egui", "renderdoc", "puffin", "puffin_egui", "anyhow/backtrace"]
|
||||
|
||||
[profile.dev]
|
||||
lto = "thin"
|
||||
|
||||
[profile.fastdebug]
|
||||
inherits = "release"
|
||||
debug = true
|
||||
inherits = "release"
|
||||
|
||||
[profile.release]
|
||||
lto = "fat"
|
||||
|
||||
[patch."https://github.com/Smithay/smithay.git"]
|
||||
smithay = { git = "https://github.com/smithay//smithay", rev = "3b3e07952e" }
|
||||
smithay = {git = "https://github.com/smithay//smithay", rev = "094fa3f7c3"}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
[toolchain]
|
||||
channel = "1.70"
|
||||
channel = "1.72"
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#[cfg(feature = "debug")]
|
||||
use crate::backend::render::element::AsGlowRenderer;
|
||||
use crate::{
|
||||
backend::render::{workspace_elements, CLEAR_COLOR},
|
||||
config::OutputConfig,
|
||||
shell::Shell,
|
||||
state::{BackendData, ClientState, Common, Fps, SurfaceDmabufFeedback},
|
||||
state::{BackendData, Common, Fps, SurfaceDmabufFeedback},
|
||||
utils::prelude::*,
|
||||
wayland::{
|
||||
handlers::screencopy::{render_session, UserdataExt},
|
||||
|
|
@ -20,9 +18,9 @@ use libc::dev_t;
|
|||
use smithay::{
|
||||
backend::{
|
||||
allocator::{
|
||||
dmabuf::{AnyError, Dmabuf, DmabufAllocator},
|
||||
dmabuf::Dmabuf,
|
||||
gbm::{GbmAllocator, GbmBufferFlags, GbmDevice},
|
||||
Allocator, Format, Fourcc,
|
||||
Format, Fourcc,
|
||||
},
|
||||
drm::{
|
||||
compositor::{BlitFrameResultError, DrmCompositor, FrameError, PrimaryPlaneElement},
|
||||
|
|
@ -65,7 +63,7 @@ use smithay::{
|
|||
},
|
||||
wayland_server::{
|
||||
protocol::{wl_buffer::WlBuffer, wl_surface::WlSurface},
|
||||
Client, DisplayHandle, Resource, Weak,
|
||||
Client, DisplayHandle, Weak,
|
||||
},
|
||||
},
|
||||
utils::{DeviceFd, Size, Transform},
|
||||
|
|
@ -76,7 +74,6 @@ use smithay::{
|
|||
seat::WaylandFocus,
|
||||
shm::{shm_format_to_fourcc, with_buffer_contents},
|
||||
},
|
||||
xwayland::XWaylandClientData,
|
||||
};
|
||||
use tracing::{error, info, trace, warn};
|
||||
|
||||
|
|
@ -92,7 +89,7 @@ mod drm_helpers;
|
|||
mod socket;
|
||||
use socket::*;
|
||||
|
||||
use super::render::{init_shaders, CursorMode, GlMultiRenderer};
|
||||
use super::render::{element::AsGlowRenderer, init_shaders, CursorMode, GlMultiRenderer};
|
||||
// for now we assume we need at least 3ms
|
||||
const MIN_RENDER_TIME: Duration = Duration::from_millis(3);
|
||||
|
||||
|
|
@ -100,7 +97,7 @@ const MIN_RENDER_TIME: Duration = Duration::from_millis(3);
|
|||
pub struct KmsState {
|
||||
pub devices: HashMap<DrmNode, Device>,
|
||||
pub input_devices: HashMap<String, input::Device>,
|
||||
pub api: GpuManager<GbmGlesBackend<GlowRenderer>>,
|
||||
pub api: GpuManager<GbmGlesBackend<GlowRenderer, DrmDeviceFd>>,
|
||||
pub primary_node: DrmNode,
|
||||
session: LibSeatSession,
|
||||
pub auto_assign: bool,
|
||||
|
|
@ -112,7 +109,6 @@ pub struct Device {
|
|||
surfaces: HashMap<crtc::Handle, Surface>,
|
||||
pub drm: DrmDevice,
|
||||
gbm: GbmDevice<DrmDeviceFd>,
|
||||
allocator: Box<dyn Allocator<Buffer = Dmabuf, Error = AnyError>>,
|
||||
formats: HashSet<Format>,
|
||||
supports_atomic: bool,
|
||||
pub non_desktop_connectors: Vec<(connector::Handle, crtc::Handle)>,
|
||||
|
|
@ -130,7 +126,6 @@ impl fmt::Debug for Device {
|
|||
.field("surfaces", &self.surfaces)
|
||||
.field("drm", &self.drm)
|
||||
.field("gbm", &self.gbm)
|
||||
.field("allocator", &"...")
|
||||
.field("formats", &self.formats)
|
||||
.field("supports_atomic", &self.supports_atomic)
|
||||
.field("non_desktop_connectors", &self.non_desktop_connectors)
|
||||
|
|
@ -211,7 +206,7 @@ pub fn init_backend(
|
|||
})
|
||||
.map_err(|err| err.error)
|
||||
.context("Failed to initialize libinput event source")?;
|
||||
let api = GpuManager::new(GbmGlesBackend::<GlowRenderer>::default())
|
||||
let api = GpuManager::new(GbmGlesBackend::<GlowRenderer, DrmDeviceFd>::default())
|
||||
.context("Failed to initialize renderers")?;
|
||||
|
||||
// TODO get this info from system76-power, if available and setup a watcher
|
||||
|
|
@ -586,15 +581,10 @@ impl State {
|
|||
}
|
||||
};
|
||||
|
||||
let allocator = Box::new(DmabufAllocator(GbmAllocator::new(
|
||||
gbm.clone(),
|
||||
GbmBufferFlags::RENDERING,
|
||||
)));
|
||||
let mut device = Device {
|
||||
render_node,
|
||||
surfaces: HashMap::new(),
|
||||
gbm: gbm.clone(),
|
||||
allocator,
|
||||
drm,
|
||||
formats,
|
||||
supports_atomic,
|
||||
|
|
@ -972,7 +962,7 @@ impl Device {
|
|||
crtc: crtc::Handle,
|
||||
conn: connector::Handle,
|
||||
position: (i32, i32),
|
||||
renderer: &mut GlMultiRenderer<'_, '_>,
|
||||
renderer: &mut GlMultiRenderer<'_>,
|
||||
) -> Result<Output> {
|
||||
let drm = &mut self.drm;
|
||||
let crtc_info = drm.get_crtc(crtc)?;
|
||||
|
|
@ -1067,19 +1057,13 @@ impl Device {
|
|||
}
|
||||
}
|
||||
|
||||
fn source_node_for_surface<'a>(
|
||||
w: &WlSurface,
|
||||
mut devices: impl Iterator<Item = &'a Device>,
|
||||
) -> Option<DrmNode> {
|
||||
fn source_node_for_surface<'a>(w: &WlSurface) -> Option<DrmNode> {
|
||||
with_renderer_surface_state(w, |state| {
|
||||
state.buffer().and_then(|buffer| {
|
||||
devices.find_map(|dev| {
|
||||
dev.active_buffers
|
||||
.contains(&buffer.downgrade())
|
||||
.then_some(dev.render_node)
|
||||
})
|
||||
})
|
||||
state
|
||||
.buffer()
|
||||
.and_then(|buffer| get_dmabuf(buffer).ok().and_then(|dmabuf| dmabuf.node()))
|
||||
})
|
||||
.flatten()
|
||||
}
|
||||
|
||||
fn render_node_for_output(
|
||||
|
|
@ -1087,7 +1071,6 @@ fn render_node_for_output(
|
|||
primary_node: DrmNode,
|
||||
target_node: DrmNode,
|
||||
shell: &Shell,
|
||||
non_target_devices: &Vec<(&DrmNode, &mut Device)>,
|
||||
) -> DrmNode {
|
||||
if target_node == primary_node {
|
||||
return target_node;
|
||||
|
|
@ -1099,17 +1082,10 @@ fn render_node_for_output(
|
|||
.map(|w| vec![w.clone()])
|
||||
.unwrap_or_else(|| workspace.windows().collect::<Vec<_>>())
|
||||
.into_iter()
|
||||
.flat_map(|w| {
|
||||
w.wl_surface().and_then(|s| {
|
||||
source_node_for_surface(&s, non_target_devices.iter().map(|(_, dev)| &**dev))
|
||||
})
|
||||
})
|
||||
.flat_map(|w| w.wl_surface().and_then(|s| source_node_for_surface(&s)))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
if nodes.is_empty() {
|
||||
// we don't want to force needlessly expensive imports,
|
||||
// so we only choose the target node if it is save and use the main_device otherwise.
|
||||
// (possibly fixable, once we have kernel API to test for migrations or dmabuf-v5)
|
||||
if nodes.contains(&target_node) || nodes.is_empty() {
|
||||
target_node
|
||||
} else {
|
||||
primary_node
|
||||
|
|
@ -1149,7 +1125,10 @@ fn get_surface_dmabuf_feedback(
|
|||
.collect::<Vec<_>>();
|
||||
|
||||
let target_node = surface.device_fd().dev_id().unwrap();
|
||||
let mut builder = DmabufFeedbackBuilder::new(render_node.dev_id(), render_formats);
|
||||
let builder = DmabufFeedbackBuilder::new(render_node.dev_id(), render_formats);
|
||||
/*
|
||||
// iris doesn't handle nvidia buffers very well (it hangs).
|
||||
// so only do this in the future with v6 and clients telling us the gpu
|
||||
if target_node != render_node.dev_id() && !combined_formats.is_empty() {
|
||||
builder = builder.add_preference_tranche(
|
||||
target_node,
|
||||
|
|
@ -1157,16 +1136,22 @@ fn get_surface_dmabuf_feedback(
|
|||
combined_formats,
|
||||
);
|
||||
};
|
||||
let render_feedback = builder.clone().build().unwrap();
|
||||
*/
|
||||
|
||||
let scanout_feedback = builder
|
||||
.add_preference_tranche(
|
||||
target_node,
|
||||
Some(zwp_linux_dmabuf_feedback_v1::TrancheFlags::Scanout),
|
||||
planes_formats,
|
||||
)
|
||||
.build()
|
||||
.unwrap();
|
||||
let render_feedback = builder.clone().build().unwrap();
|
||||
// we would want to do this in other cases as well, but same thing as above applies
|
||||
let scanout_feedback = if target_node == render_node.dev_id() {
|
||||
builder
|
||||
.add_preference_tranche(
|
||||
target_node,
|
||||
Some(zwp_linux_dmabuf_feedback_v1::TrancheFlags::Scanout),
|
||||
planes_formats,
|
||||
)
|
||||
.build()
|
||||
.unwrap()
|
||||
} else {
|
||||
builder.build().unwrap()
|
||||
};
|
||||
|
||||
SurfaceDmabufFeedback {
|
||||
render_feedback,
|
||||
|
|
@ -1177,11 +1162,8 @@ fn get_surface_dmabuf_feedback(
|
|||
impl Surface {
|
||||
pub fn render_output(
|
||||
&mut self,
|
||||
api: &mut GpuManager<GbmGlesBackend<GlowRenderer>>,
|
||||
render_node: Option<(
|
||||
&DrmNode,
|
||||
&mut dyn Allocator<Buffer = Dmabuf, Error = AnyError>,
|
||||
)>,
|
||||
api: &mut GpuManager<GbmGlesBackend<GlowRenderer, DrmDeviceFd>>,
|
||||
render_node: Option<&DrmNode>,
|
||||
target_node: &DrmNode,
|
||||
state: &mut Common,
|
||||
screencopy: Option<&[(ScreencopySession, BufferParams)]>,
|
||||
|
|
@ -1195,9 +1177,9 @@ impl Surface {
|
|||
|
||||
let compositor = self.surface.as_mut().unwrap();
|
||||
let (render_node, mut renderer) = match render_node {
|
||||
Some((render_node, allocator)) => (
|
||||
Some(render_node) => (
|
||||
render_node,
|
||||
api.renderer(&render_node, &target_node, allocator, compositor.format())
|
||||
api.renderer(&render_node, &target_node, compositor.format())
|
||||
.unwrap(),
|
||||
),
|
||||
None => (target_node, api.single_renderer(&target_node).unwrap()),
|
||||
|
|
@ -1536,6 +1518,7 @@ impl KmsState {
|
|||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn target_node_for_output(&self, output: &Output) -> Option<DrmNode> {
|
||||
self.devices
|
||||
.values()
|
||||
|
|
@ -1546,34 +1529,13 @@ impl KmsState {
|
|||
|
||||
pub fn try_early_import(
|
||||
&mut self,
|
||||
dh: &DisplayHandle,
|
||||
surface: &WlSurface,
|
||||
output: &Output,
|
||||
target: DrmNode,
|
||||
shell: &Shell,
|
||||
) {
|
||||
let render = render_node_for_output(
|
||||
&output,
|
||||
self.primary_node,
|
||||
target,
|
||||
&shell,
|
||||
&self.devices.iter_mut().collect(),
|
||||
);
|
||||
if let Err(err) = self.api.early_import(
|
||||
if let Some(client) = dh.get_client(surface.id()).ok() {
|
||||
if let Some(normal_client) = client.get_data::<ClientState>() {
|
||||
normal_client.advertised_drm_node.clone()
|
||||
} else if let Some(xwayland_client) = client.get_data::<XWaylandClientData>() {
|
||||
xwayland_client.user_data().get::<DrmNode>().cloned()
|
||||
} else {
|
||||
None
|
||||
}
|
||||
} else {
|
||||
None
|
||||
},
|
||||
render,
|
||||
surface,
|
||||
) {
|
||||
let render = render_node_for_output(&output, self.primary_node, target, &shell);
|
||||
if let Err(err) = self.api.early_import(render, surface) {
|
||||
trace!(?err, "Early import failed.");
|
||||
}
|
||||
}
|
||||
|
|
@ -1616,12 +1578,17 @@ impl KmsState {
|
|||
let result = self
|
||||
.api
|
||||
.single_renderer(&device.render_node)?
|
||||
// using the MultiRenderer here would actually try multiple devices
|
||||
.glow_renderer_mut()
|
||||
.import_dmabuf(&dmabuf, None)
|
||||
.map(|_| device.render_node)
|
||||
.map_err(Into::into);
|
||||
|
||||
match result {
|
||||
Ok(node) => return Ok(node),
|
||||
Ok(node) => {
|
||||
dmabuf.set_node(node); // so the MultiRenderer knows what node to use
|
||||
return Ok(node);
|
||||
}
|
||||
Err(err) => {
|
||||
trace!(?err, "Failed to import dmabuf on {:?}", device.render_node);
|
||||
last_err = err;
|
||||
|
|
@ -1683,16 +1650,15 @@ impl KmsState {
|
|||
let target_device = &mut device[0].1;
|
||||
|
||||
if let Some(surface) = target_device.surfaces.get_mut(&crtc) {
|
||||
let common = &mut state.common;
|
||||
let target_node = target_device.render_node;
|
||||
let render_node = render_node_for_output(
|
||||
&surface.output,
|
||||
backend.primary_node,
|
||||
target_node,
|
||||
&state.common.shell,
|
||||
&other,
|
||||
&common.shell,
|
||||
);
|
||||
|
||||
let common = &mut state.common;
|
||||
let result = if render_node != target_node {
|
||||
let render_device = &mut other
|
||||
.iter_mut()
|
||||
|
|
@ -1701,10 +1667,7 @@ impl KmsState {
|
|||
.1;
|
||||
surface.render_output(
|
||||
&mut backend.api,
|
||||
Some((
|
||||
&render_device.render_node,
|
||||
render_device.allocator.as_mut(),
|
||||
)),
|
||||
Some(&render_device.render_node),
|
||||
&target_node,
|
||||
common,
|
||||
screencopy_sessions.as_deref(),
|
||||
|
|
|
|||
|
|
@ -161,10 +161,10 @@ impl RenderElement<GlowRenderer> for CosmicElement<GlowRenderer> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, 'b> RenderElement<GlMultiRenderer<'a, 'b>> for CosmicElement<GlMultiRenderer<'a, 'b>> {
|
||||
impl<'a> RenderElement<GlMultiRenderer<'a>> for CosmicElement<GlMultiRenderer<'a>> {
|
||||
fn draw<'frame>(
|
||||
&self,
|
||||
frame: &mut GlMultiFrame<'a, 'b, 'frame>,
|
||||
frame: &mut GlMultiFrame<'a, 'frame>,
|
||||
src: Rectangle<f64, BufferCoords>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
damage: &[Rectangle<i32, Physical>],
|
||||
|
|
@ -185,10 +185,7 @@ impl<'a, 'b> RenderElement<GlMultiRenderer<'a, 'b>> for CosmicElement<GlMultiRen
|
|||
}
|
||||
}
|
||||
|
||||
fn underlying_storage(
|
||||
&self,
|
||||
renderer: &mut GlMultiRenderer<'a, 'b>,
|
||||
) -> Option<UnderlyingStorage> {
|
||||
fn underlying_storage(&self, renderer: &mut GlMultiRenderer<'a>) -> Option<UnderlyingStorage> {
|
||||
match self {
|
||||
CosmicElement::Workspace(elem) => elem.underlying_storage(renderer),
|
||||
CosmicElement::Cursor(elem) => elem.underlying_storage(renderer),
|
||||
|
|
@ -273,7 +270,7 @@ impl AsGlowRenderer for GlowRenderer {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, 'b> AsGlowRenderer for GlMultiRenderer<'a, 'b> {
|
||||
impl<'a> AsGlowRenderer for GlMultiRenderer<'a> {
|
||||
fn glow_renderer(&self) -> &GlowRenderer {
|
||||
self.as_ref()
|
||||
}
|
||||
|
|
@ -299,7 +296,7 @@ impl<'frame> AsGlowFrame<'frame> for GlowFrame<'frame> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'renderer, 'alloc, 'frame> AsGlowFrame<'frame> for GlMultiFrame<'renderer, 'alloc, 'frame> {
|
||||
impl<'renderer, 'frame> AsGlowFrame<'frame> for GlMultiFrame<'renderer, 'frame> {
|
||||
fn glow_frame(&self) -> &GlowFrame<'frame> {
|
||||
self.as_ref()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ use keyframe::{ease, functions::EaseInOutCubic};
|
|||
use smithay::{
|
||||
backend::{
|
||||
allocator::dmabuf::Dmabuf,
|
||||
drm::DrmNode,
|
||||
drm::{DrmDeviceFd, DrmNode},
|
||||
renderer::{
|
||||
buffer_dimensions,
|
||||
damage::{Error as RenderError, OutputDamageTracker, RenderOutputResult},
|
||||
|
|
@ -75,11 +75,23 @@ use self::cursor::CursorRenderElement;
|
|||
pub mod element;
|
||||
use self::element::{AsGlowRenderer, CosmicElement};
|
||||
|
||||
pub type GlMultiRenderer<'a, 'b> =
|
||||
MultiRenderer<'a, 'a, 'b, GbmGlesBackend<GlowRenderer>, GbmGlesBackend<GlowRenderer>>;
|
||||
pub type GlMultiFrame<'a, 'b, 'frame> =
|
||||
MultiFrame<'a, 'a, 'b, 'frame, GbmGlesBackend<GlowRenderer>, GbmGlesBackend<GlowRenderer>>;
|
||||
pub type GlMultiError = MultiError<GbmGlesBackend<GlowRenderer>, GbmGlesBackend<GlowRenderer>>;
|
||||
pub type GlMultiRenderer<'a> = MultiRenderer<
|
||||
'a,
|
||||
'a,
|
||||
GbmGlesBackend<GlowRenderer, DrmDeviceFd>,
|
||||
GbmGlesBackend<GlowRenderer, DrmDeviceFd>,
|
||||
>;
|
||||
pub type GlMultiFrame<'a, 'frame> = MultiFrame<
|
||||
'a,
|
||||
'a,
|
||||
'frame,
|
||||
GbmGlesBackend<GlowRenderer, DrmDeviceFd>,
|
||||
GbmGlesBackend<GlowRenderer, DrmDeviceFd>,
|
||||
>;
|
||||
pub type GlMultiError = MultiError<
|
||||
GbmGlesBackend<GlowRenderer, DrmDeviceFd>,
|
||||
GbmGlesBackend<GlowRenderer, DrmDeviceFd>,
|
||||
>;
|
||||
|
||||
pub static CLEAR_COLOR: [f32; 4] = [0.153, 0.161, 0.165, 1.0];
|
||||
pub static OUTLINE_SHADER: &str = include_str!("./shaders/rounded_outline.frag");
|
||||
|
|
|
|||
|
|
@ -1421,12 +1421,10 @@ impl RenderElement<GlowRenderer> for CosmicMappedRenderElement<GlowRenderer> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, 'b> RenderElement<GlMultiRenderer<'a, 'b>>
|
||||
for CosmicMappedRenderElement<GlMultiRenderer<'a, 'b>>
|
||||
{
|
||||
impl<'a> RenderElement<GlMultiRenderer<'a>> for CosmicMappedRenderElement<GlMultiRenderer<'a>> {
|
||||
fn draw<'frame>(
|
||||
&self,
|
||||
frame: &mut GlMultiFrame<'a, 'b, 'frame>,
|
||||
frame: &mut GlMultiFrame<'a, 'frame>,
|
||||
src: Rectangle<f64, BufferCoords>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
damage: &[Rectangle<i32, Physical>],
|
||||
|
|
@ -1464,10 +1462,7 @@ impl<'a, 'b> RenderElement<GlMultiRenderer<'a, 'b>>
|
|||
}
|
||||
}
|
||||
|
||||
fn underlying_storage(
|
||||
&self,
|
||||
renderer: &mut GlMultiRenderer<'a, 'b>,
|
||||
) -> Option<UnderlyingStorage> {
|
||||
fn underlying_storage(&self, renderer: &mut GlMultiRenderer<'a>) -> Option<UnderlyingStorage> {
|
||||
match self {
|
||||
CosmicMappedRenderElement::Stack(elem) => elem.underlying_storage(renderer),
|
||||
CosmicMappedRenderElement::Window(elem) => elem.underlying_storage(renderer),
|
||||
|
|
|
|||
|
|
@ -1116,12 +1116,10 @@ impl RenderElement<GlowRenderer> for WorkspaceRenderElement<GlowRenderer> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, 'b> RenderElement<GlMultiRenderer<'a, 'b>>
|
||||
for WorkspaceRenderElement<GlMultiRenderer<'a, 'b>>
|
||||
{
|
||||
impl<'a> RenderElement<GlMultiRenderer<'a>> for WorkspaceRenderElement<GlMultiRenderer<'a>> {
|
||||
fn draw<'frame>(
|
||||
&self,
|
||||
frame: &mut GlMultiFrame<'a, 'b, 'frame>,
|
||||
frame: &mut GlMultiFrame<'a, 'frame>,
|
||||
src: Rectangle<f64, BufferCoords>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
damage: &[Rectangle<i32, smithay::utils::Physical>],
|
||||
|
|
@ -1140,7 +1138,7 @@ impl<'a, 'b> RenderElement<GlMultiRenderer<'a, 'b>>
|
|||
|
||||
fn underlying_storage(
|
||||
&self,
|
||||
renderer: &mut GlMultiRenderer<'a, 'b>,
|
||||
renderer: &mut GlMultiRenderer<'a>,
|
||||
) -> Option<smithay::backend::renderer::element::UnderlyingStorage> {
|
||||
match self {
|
||||
WorkspaceRenderElement::OverrideRedirect(elem) => elem.underlying_storage(renderer),
|
||||
|
|
|
|||
|
|
@ -35,18 +35,11 @@ use super::screencopy::PendingScreencopyBuffers;
|
|||
impl State {
|
||||
fn early_import_surface(&mut self, surface: &WlSurface) {
|
||||
let mut import_nodes = std::collections::HashSet::new();
|
||||
let dh = &self.common.display_handle;
|
||||
if let Some(output) = self.common.shell.visible_output_for_surface(&surface) {
|
||||
if let BackendData::Kms(ref mut kms_state) = &mut self.backend {
|
||||
if let Some(target) = kms_state.target_node_for_output(&output) {
|
||||
if import_nodes.insert(target) {
|
||||
kms_state.try_early_import(
|
||||
dh,
|
||||
surface,
|
||||
&output,
|
||||
target,
|
||||
&self.common.shell,
|
||||
);
|
||||
kms_state.try_early_import(surface, &output, target, &self.common.shell);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -184,6 +177,7 @@ impl CompositorHandler for State {
|
|||
let toplevel = wl_window.toplevel();
|
||||
if self.toplevel_ensure_initial_configure(&toplevel)
|
||||
&& with_renderer_surface_state(&surface, |state| state.buffer().is_some())
|
||||
.unwrap_or(false)
|
||||
{
|
||||
window.on_commit();
|
||||
Shell::map_window(self, &window);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue