wluma
wluma copied to clipboard
chore: update libs
inotify watches had to be update
Is there still incentive to work on this? I've made a few commits on top of this PR, and am now stuck at getting vulkan to work properly.
The error I'm getting is
thread 'main' panicked at src/frame/capturer/wlroots.rs:42:35:
Unable to initialize Vulkan: ERROR_EXTENSION_NOT_PRESENT
Here's what I've done so far, as a big patch
diff --git a/Cargo.lock b/Cargo.lock
index c02c1eb..e6fda9a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -98,9 +98,9 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
[[package]]
name = "ash"
-version = "0.37.3+1.3.251"
+version = "0.38.0+1.3.281"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a"
+checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f"
[[package]]
name = "autocfg"
@@ -164,6 +164,26 @@ version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+[[package]]
+name = "bytemuck"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "byteorder"
version = "1.5.0"
@@ -172,16 +192,28 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "calloop"
-version = "0.10.6"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
+checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
"log",
- "nix 0.25.1",
- "slotmap",
+ "polling",
+ "rustix",
+ "slab",
"thiserror",
- "vec_map",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20"
+dependencies = [
+ "calloop",
+ "rustix",
+ "wayland-backend",
+ "wayland-client",
]
[[package]]
@@ -219,7 +251,7 @@ dependencies = [
"js-sys",
"num-traits",
"wasm-bindgen",
- "windows-targets 0.52.6",
+ "windows-targets",
]
[[package]]
@@ -239,6 +271,15 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
[[package]]
name = "core-foundation"
version = "0.9.4"
@@ -279,6 +320,18 @@ dependencies = [
"libc",
]
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
[[package]]
name = "dbus"
version = "0.9.7"
@@ -500,6 +553,12 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+[[package]]
+name = "hermit-abi"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+
[[package]]
name = "home"
version = "0.5.9"
@@ -583,11 +642,11 @@ dependencies = [
[[package]]
name = "inotify"
-version = "0.10.2"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc"
+checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
"futures-core",
"inotify-sys",
"libc",
@@ -613,17 +672,6 @@ dependencies = [
"mach2",
]
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@@ -656,9 +704,9 @@ dependencies = [
[[package]]
name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "lazycell"
@@ -688,7 +736,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
dependencies = [
"cfg-if",
- "windows-targets 0.52.6",
+ "windows-targets",
]
[[package]]
@@ -786,40 +834,22 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "memmap2"
-version = "0.5.10"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
dependencies = [
"libc",
]
[[package]]
name = "memmap2"
-version = "0.7.1"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
dependencies = [
"libc",
]
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg",
-]
-
[[package]]
name = "minimal-lexical"
version = "0.2.1"
@@ -841,7 +871,7 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
- "hermit-abi",
+ "hermit-abi 0.3.9",
"libc",
"wasi",
"windows-sys 0.52.0",
@@ -849,14 +879,13 @@ dependencies = [
[[package]]
name = "mockall"
-version = "0.12.1"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
+checksum = "d4c28b3fb6d753d28c20e826cd46ee611fda1cf3cde03a443a974043247c065a"
dependencies = [
"cfg-if",
"downcast",
"fragile",
- "lazy_static",
"mockall_derive",
"predicates",
"predicates-tree",
@@ -864,9 +893,9 @@ dependencies = [
[[package]]
name = "mockall_derive"
-version = "0.12.1"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
+checksum = "341014e7f530314e9a1fdbc7400b244efea7122662c96bfa248c31da5bfb2020"
dependencies = [
"cfg-if",
"proc-macro2",
@@ -874,31 +903,6 @@ dependencies = [
"syn",
]
-[[package]]
-name = "nix"
-version = "0.25.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.26.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
- "memoffset 0.7.1",
-]
-
[[package]]
name = "nom"
version = "3.2.1"
@@ -982,6 +986,21 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+[[package]]
+name = "polling"
+version = "3.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi 0.4.0",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.59.0",
+]
+
[[package]]
name = "predicates"
version = "3.1.2"
@@ -1027,15 +1046,6 @@ dependencies = [
"unicode-ident",
]
-[[package]]
-name = "quick-xml"
-version = "0.28.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
-dependencies = [
- "memchr 2.7.4",
-]
-
[[package]]
name = "quick-xml"
version = "0.34.0"
@@ -1190,12 +1200,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
-name = "slotmap"
-version = "1.0.7"
+name = "slab"
+version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
dependencies = [
- "version_check",
+ "autocfg",
]
[[package]]
@@ -1206,26 +1216,30 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "smithay-client-toolkit"
-version = "0.17.0"
+version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1476c3d89bb67079264b88aaf4f14358353318397e083b7c4e8c14517f55de7"
+checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
+ "bytemuck",
"calloop",
- "dlib",
- "lazy_static",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
"log",
- "memmap2 0.5.10",
- "nix 0.26.4",
+ "memmap2 0.9.4",
"pkg-config",
+ "rustix",
"thiserror",
- "wayland-backend 0.1.2",
- "wayland-client 0.30.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-csd-frame",
"wayland-cursor",
- "wayland-protocols 0.30.1",
- "wayland-protocols-wlr 0.1.0",
- "wayland-scanner 0.30.1",
+ "wayland-protocols",
+ "wayland-protocols-wlr",
+ "wayland-scanner",
"xkbcommon",
+ "xkeysym",
]
[[package]]
@@ -1323,6 +1337,22 @@ dependencies = [
"winnow",
]
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+
[[package]]
name = "udev"
version = "0.2.0"
@@ -1377,18 +1407,6 @@ dependencies = [
"bindgen",
]
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
-
[[package]]
name = "void"
version = "1.0.2"
@@ -1456,21 +1474,6 @@ version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
-[[package]]
-name = "wayland-backend"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8"
-dependencies = [
- "cc",
- "downcast-rs",
- "io-lifetimes",
- "nix 0.26.4",
- "scoped-tls",
- "smallvec",
- "wayland-sys 0.30.1",
-]
-
[[package]]
name = "wayland-backend"
version = "0.3.6"
@@ -1482,20 +1485,7 @@ dependencies = [
"rustix",
"scoped-tls",
"smallvec",
- "wayland-sys 0.31.4",
-]
-
-[[package]]
-name = "wayland-client"
-version = "0.30.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8"
-dependencies = [
- "bitflags 1.3.2",
- "calloop",
- "nix 0.26.4",
- "wayland-backend 0.1.2",
- "wayland-scanner 0.30.1",
+ "wayland-sys",
]
[[package]]
@@ -1506,31 +1496,30 @@ checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943"
dependencies = [
"bitflags 2.6.0",
"rustix",
- "wayland-backend 0.3.6",
- "wayland-scanner 0.31.4",
+ "wayland-backend",
+ "wayland-scanner",
]
[[package]]
-name = "wayland-cursor"
-version = "0.30.0"
+name = "wayland-csd-frame"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d0c3a0d5b4b688b07b0442362d3ed6bf04724fcc16cd69ab6285b90dbc487aa"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
dependencies = [
- "nix 0.26.4",
- "wayland-client 0.30.2",
- "xcursor",
+ "bitflags 2.6.0",
+ "cursor-icon",
+ "wayland-backend",
]
[[package]]
-name = "wayland-protocols"
-version = "0.30.1"
+name = "wayland-cursor"
+version = "0.31.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b28101e5ca94f70461a6c2d610f76d85ad223d042dd76585ab23d3422dd9b4d"
+checksum = "6ef9489a8df197ebf3a8ce8a7a7f0a2320035c3743f3c1bd0bdbccf07ce64f95"
dependencies = [
- "bitflags 1.3.2",
- "wayland-backend 0.1.2",
- "wayland-client 0.30.2",
- "wayland-scanner 0.30.1",
+ "rustix",
+ "wayland-client",
+ "xcursor",
]
[[package]]
@@ -1540,22 +1529,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62989625a776e827cc0f15d41444a3cea5205b963c3a25be48ae1b52d6b4daaa"
dependencies = [
"bitflags 2.6.0",
- "wayland-backend 0.3.6",
- "wayland-client 0.31.5",
- "wayland-scanner 0.31.4",
-]
-
-[[package]]
-name = "wayland-protocols-wlr"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fce991093320e4a6a525876e6b629ab24da25f9baef0c2e0080ad173ec89588a"
-dependencies = [
- "bitflags 1.3.2",
- "wayland-backend 0.1.2",
- "wayland-client 0.30.2",
- "wayland-protocols 0.30.1",
- "wayland-scanner 0.30.1",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
]
[[package]]
@@ -1565,21 +1541,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd993de54a40a40fbe5601d9f1fbcaef0aebcc5fda447d7dc8f6dcbaae4f8953"
dependencies = [
"bitflags 2.6.0",
- "wayland-backend 0.3.6",
- "wayland-client 0.31.5",
- "wayland-protocols 0.32.3",
- "wayland-scanner 0.31.4",
-]
-
-[[package]]
-name = "wayland-scanner"
-version = "0.30.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e"
-dependencies = [
- "proc-macro2",
- "quick-xml 0.28.2",
- "quote",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
]
[[package]]
@@ -1589,21 +1554,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6"
dependencies = [
"proc-macro2",
- "quick-xml 0.34.0",
+ "quick-xml",
"quote",
]
-[[package]]
-name = "wayland-sys"
-version = "0.30.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06"
-dependencies = [
- "dlib",
- "log",
- "pkg-config",
-]
-
[[package]]
name = "wayland-sys"
version = "0.31.4"
@@ -1662,16 +1616,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets",
]
[[package]]
@@ -1680,22 +1625,16 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
- "windows-targets 0.52.6",
+ "windows-targets",
]
[[package]]
-name = "windows-targets"
-version = "0.48.5"
+name = "windows-sys"
+version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
- "windows_aarch64_gnullvm 0.48.5",
- "windows_aarch64_msvc 0.48.5",
- "windows_i686_gnu 0.48.5",
- "windows_i686_msvc 0.48.5",
- "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm 0.48.5",
- "windows_x86_64_msvc 0.48.5",
+ "windows-targets",
]
[[package]]
@@ -1704,46 +1643,28 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
- "windows_aarch64_gnullvm 0.52.6",
- "windows_aarch64_msvc 0.52.6",
- "windows_i686_gnu 0.52.6",
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
"windows_i686_gnullvm",
- "windows_i686_msvc 0.52.6",
- "windows_x86_64_gnu 0.52.6",
- "windows_x86_64_gnullvm 0.52.6",
- "windows_x86_64_msvc 0.52.6",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
]
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
@@ -1756,48 +1677,24 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
@@ -1832,10 +1729,10 @@ dependencies = [
"smithay-client-toolkit",
"toml",
"v4l",
- "wayland-backend 0.3.6",
- "wayland-client 0.31.5",
- "wayland-protocols 0.32.3",
- "wayland-protocols-wlr 0.3.3",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-protocols-wlr",
"xdg",
]
@@ -1853,12 +1750,22 @@ checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
[[package]]
name = "xkbcommon"
-version = "0.5.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52db25b599e92bf6e3904134618728eeb7b49a5a4f38f107f92399bb9c496b88"
+checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
dependencies = [
"libc",
- "memmap2 0.7.1",
+ "memmap2 0.8.0",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
+dependencies = [
+ "bytemuck",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index bd18e17..7403588 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -9,21 +9,21 @@ wayland-client = { version = "~0.31" }
wayland-backend = { version = "~0.3", features = ["dlopen"] }
wayland-protocols = { version = "~0.32", features = ["client"] }
wayland-protocols-wlr = { version = "~0.3", features = ["client"] }
-smithay-client-toolkit = "~0.17"
+smithay-client-toolkit = "~0.19"
serde = { version = "~1.0", features = ["derive"] }
serde_yaml = "~0.9"
toml = "~0.8"
chrono = "~0.4"
-ash = { version = "~0.37", features = ["linked"], default-features = false }
+ash = { version = "~0.38", features = ["linked"], default-features = false }
itertools = "~0.13"
v4l = { version = "~0.14", features = ["libv4l"], default-features = false }
ddc-hi = "~0.4"
log = "~0.4"
env_logger = "~0.11"
-inotify = "~0.10"
-lazy_static = "~1.4"
+inotify = "~0.11"
+lazy_static = "~1.5"
xdg = "~2.5"
dbus = "~0.9"
[dev-dependencies]
-mockall = "0.12"
+mockall = "0.13"
diff --git a/flake.lock b/flake.lock
index 2d9e81a..5fcbf0e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,23 +1,5 @@
{
"nodes": {
- "flake-utils": {
- "inputs": {
- "systems": "systems"
- },
- "locked": {
- "lastModified": 1710146030,
- "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
"naersk": {
"inputs": {
"nixpkgs": "nixpkgs"
@@ -67,23 +49,23 @@
},
"root": {
"inputs": {
- "flake-utils": "flake-utils",
"naersk": "naersk",
- "nixpkgs": "nixpkgs_2"
+ "nixpkgs": "nixpkgs_2",
+ "systems": "systems"
}
},
"systems": {
"locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "lastModified": 1689347949,
+ "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "repo": "default-linux",
+ "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
- "repo": "default",
+ "repo": "default-linux",
"type": "github"
}
}
diff --git a/flake.nix b/flake.nix
index ff31dd3..96be764 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,45 +2,60 @@
inputs = {
naersk.url = "github:nix-community/naersk/master";
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- flake-utils.url = "github:numtide/flake-utils";
+ systems.url = "github:nix-systems/default-linux";
};
- outputs = { self, nixpkgs, flake-utils, naersk }:
- let systems = [ "x86_64-linux" "aarch64-linux" ];
- in flake-utils.lib.eachSystem systems (system:
- let
- pkgs = import nixpkgs { inherit system; };
- naersk-lib = pkgs.callPackage naersk { };
- libs = with pkgs; [
+ outputs = {
+ self,
+ nixpkgs,
+ naersk,
+ systems,
+ }: let
+ inherit (nixpkgs) lib;
+ eachSystem = lib.genAttrs (import systems);
+ pkgsFor = nixpkgs.legacyPackages;
+ naersk-lib = eachSystem (system: pkgsFor.${system}.callPackage naersk {});
+ in {
+ packages = eachSystem (system: {
+ default = naersk-lib.${system}.buildPackage {
+ pname = "wluma";
+ version = "4.4.0";
+
+ src = ./.;
+
+ nativeBuildInputs = with pkgsFor.${system}; [
+ makeWrapper
+ pkg-config
+ rustPlatform.bindgenHook
+ marked-man
+ libxkbcommon
+ ];
+
+ buildInputs = with pkgsFor.${system}; [
udev
v4l-utils
vulkan-loader
dbus
];
- in
- {
- defaultPackage = naersk-lib.buildPackage {
- src = ./.;
- meta.mainProgram = "wluma";
- nativeBuildInputs = with pkgs; [
- makeWrapper
- pkg-config
- rustPlatform.bindgenHook
- marked-man
+
+ meta.mainProgram = "wluma";
+ };
+ });
+
+ devShells = eachSystem (system: {
+ default = with pkgsFor.${system};
+ mkShell {
+ inputsFrom = [self.packages.${system}.default];
+ packages = [
+ cargo
+ pre-commit
+ rustc
+ rustfmt
+ rustPackages.clippy
];
- buildInputs = libs;
- };
- devShell = with pkgs; mkShell {
- buildInputs = [ cargo rustc rustfmt pre-commit rustPackages.clippy pkg-config ] ++ libs;
+
RUST_SRC_PATH = rustPlatform.rustLibSrc;
- LIBCLANG_PATH = "${llvmPackages_12.libclang.lib}/lib";
- BINDGEN_EXTRA_CLANG_ARGS = [
- ''-I"${llvmPackages_12.libclang.lib}/lib/clang/${llvmPackages_12.libclang.version}/include"''
- ] ++ (builtins.map (a: ''-I"${a}/include"'') [
- glibc.dev
- libv4l.dev
- ]);
};
- }
- );
+ });
+ };
}
diff --git a/src/frame/capturer/wlroots.rs b/src/frame/capturer/wlroots.rs
index 796c8f7..3b1a92f 100644
--- a/src/frame/capturer/wlroots.rs
+++ b/src/frame/capturer/wlroots.rs
@@ -168,9 +168,7 @@ impl Dispatch<zwlr_export_dmabuf_frame_v1::ZwlrExportDmabufFrameV1, ()> for Capt
frame.destroy();
match reason {
- WEnum::Value(reason)
- if reason == zwlr_export_dmabuf_frame_v1::CancelReason::Permanent =>
- {
+ WEnum::Value(zwlr_export_dmabuf_frame_v1::CancelReason::Permanent) => {
panic!("Frame was cancelled due to a permanent error. If you just disconnected screen, this is not implemented yet.");
}
_ => {
diff --git a/src/frame/object.rs b/src/frame/object.rs
index 4c54a7d..a7b51a3 100644
--- a/src/frame/object.rs
+++ b/src/frame/object.rs
@@ -1,5 +1,5 @@
-use std::collections::HashMap;
-use wayland_backend::io_lifetimes::OwnedFd;
+use std::{collections::HashMap, os::fd::OwnedFd};
+// use wayland_backend::io_lifetimes::OwnedFd;
#[derive(Default)]
pub struct Object {
diff --git a/src/frame/vulkan.rs b/src/frame/vulkan.rs
index 2240187..0bc4c40 100644
--- a/src/frame/vulkan.rs
+++ b/src/frame/vulkan.rs
@@ -1,5 +1,6 @@
use crate::frame::compute_perceived_lightness_percent;
use crate::frame::object::Object;
+use ash::prelude::VkResult;
use ash::{vk, Device, Entry, Instance};
use std::cell::RefCell;
use std::default::Default;
@@ -31,9 +32,10 @@ pub struct Vulkan {
}
impl Vulkan {
- pub fn new() -> Result<Self, Box<dyn Error>> {
- let app_name = CString::new("wluma")?;
- let app_info = vk::ApplicationInfo::builder()
+ // pub fn new() -> Result<Self, Box<dyn Error>> {
+ pub fn new() -> VkResult<Self> {
+ let app_name = CString::new("wluma").expect("Could not create string 'wluma'");
+ let app_info = vk::ApplicationInfo::default()
.application_name(&app_name)
.application_version(WLUMA_VERSION)
.engine_name(&app_name)
@@ -41,13 +43,13 @@ impl Vulkan {
.api_version(VULKAN_VERSION);
let instance_extensions = &[
- vk::KhrExternalMemoryCapabilitiesFn::name().as_ptr(),
- vk::KhrGetPhysicalDeviceProperties2Fn::name().as_ptr(),
+ vk::KHR_EXTERNAL_MEMORY_CAPABILITIES_NAME.as_ptr(),
+ vk::KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_NAME.as_ptr(),
];
let entry = Entry::linked();
- let create_info = vk::InstanceCreateInfo::builder()
+ let create_info = vk::InstanceCreateInfo::default()
.application_info(&app_info)
.enabled_extension_names(instance_extensions);
@@ -56,22 +58,21 @@ impl Vulkan {
let physical_devices = unsafe { instance.enumerate_physical_devices()? };
let physical_device = *physical_devices
.first()
- .ok_or("Unable to find a physical device")?;
+ .expect("Unable to find a physical device");
let queue_family_index = 0;
- let queue_info = &[vk::DeviceQueueCreateInfo::builder()
+ let queue_info = &[vk::DeviceQueueCreateInfo::default()
.queue_family_index(queue_family_index)
- .queue_priorities(&[1.0])
- .build()];
+ .queue_priorities(&[1.0])];
let device_extensions = &[
- vk::KhrExternalMemoryFn::name().as_ptr(),
- vk::KhrExternalMemoryFdFn::name().as_ptr(),
- vk::ExtExternalMemoryDmaBufFn::name().as_ptr(),
+ vk::KHR_EXTERNAL_MEMORY_CAPABILITIES_NAME.as_ptr(),
+ vk::KHR_EXTERNAL_MEMORY_FD_NAME.as_ptr(),
+ vk::EXT_EXTERNAL_MEMORY_DMA_BUF_NAME.as_ptr(),
];
- let features = vk::PhysicalDeviceFeatures::builder();
+ let features = vk::PhysicalDeviceFeatures::default();
- let device_create_info = vk::DeviceCreateInfo::builder()
+ let device_create_info = vk::DeviceCreateInfo::default()
.queue_create_infos(queue_info)
.enabled_extension_names(device_extensions)
.enabled_features(&features);
@@ -80,20 +81,20 @@ impl Vulkan {
let queue = unsafe { device.get_device_queue(queue_family_index, 0) };
- let pool_create_info = vk::CommandPoolCreateInfo::builder()
+ let pool_create_info = vk::CommandPoolCreateInfo::default()
.flags(vk::CommandPoolCreateFlags::RESET_COMMAND_BUFFER)
.queue_family_index(queue_family_index);
let command_pool = unsafe { device.create_command_pool(&pool_create_info, None)? };
- let command_buffer_allocate_info = vk::CommandBufferAllocateInfo::builder()
+ let command_buffer_allocate_info = vk::CommandBufferAllocateInfo::default()
.command_buffer_count(1)
.command_pool(command_pool)
.level(vk::CommandBufferLevel::PRIMARY);
let command_buffers =
unsafe { device.allocate_command_buffers(&command_buffer_allocate_info)? };
- let buffer_info = vk::BufferCreateInfo::builder()
+ let buffer_info = vk::BufferCreateInfo::default()
.size(BUFFER_PIXELS)
.usage(vk::BufferUsageFlags::TRANSFER_DST)
.sharing_mode(vk::SharingMode::EXCLUSIVE);
@@ -110,7 +111,7 @@ impl Vulkan {
&device_memory_properties,
vk::MemoryPropertyFlags::HOST_VISIBLE | vk::MemoryPropertyFlags::HOST_COHERENT,
)
- .ok_or("Unable to find suitable memory type for the buffer")?;
+ .expect("Unable to find suitable memory type for the buffer");
let allocate_info = vk::MemoryAllocateInfo {
allocation_size: buffer_memory_req.size,
@@ -123,7 +124,7 @@ impl Vulkan {
device.bind_buffer_memory(buffer, buffer_memory, 0)?;
}
- let fence_create_info = vk::FenceCreateInfo::builder();
+ let fence_create_info = vk::FenceCreateInfo::default();
let fence = unsafe { device.create_fence(&fence_create_info, None)? };
Ok(Self {
@@ -175,12 +176,15 @@ impl Vulkan {
let pixels = mip_width as usize * mip_height as usize;
let rgbas = unsafe {
- let buffer_pointer = self.device.map_memory(
- self.buffer_memory,
- 0,
- vk::WHOLE_SIZE,
- vk::MemoryMapFlags::empty(),
- )?;
+ let buffer_pointer = self
+ .device
+ .map_memory(
+ self.buffer_memory,
+ 0,
+ vk::WHOLE_SIZE,
+ vk::MemoryMapFlags::empty(),
+ )
+ .expect("Failed to map memory");
std::slice::from_raw_parts(buffer_pointer as *mut u8, pixels * 4)
};
@@ -188,7 +192,9 @@ impl Vulkan {
unsafe {
self.device.unmap_memory(self.buffer_memory);
- self.device.reset_fences(&[self.fence])?;
+ self.device
+ .reset_fences(&[self.fence])
+ .expect("Failed to reset fences");
self.device.destroy_image(frame_image, None);
self.device.free_memory(frame_image_memory, None);
}
@@ -199,7 +205,7 @@ impl Vulkan {
fn init_image(&self, frame: &Object) -> Result<(), Box<dyn Error>> {
let (width, height, mip_levels) = image_dimensions(frame);
- let image_create_info = vk::ImageCreateInfo::builder()
+ let image_create_info = vk::ImageCreateInfo::default()
.image_type(vk::ImageType::TYPE_2D)
.format(vk::Format::B8G8R8A8_UNORM)
.extent(vk::Extent3D {
@@ -215,17 +221,27 @@ impl Vulkan {
.usage(vk::ImageUsageFlags::TRANSFER_DST | vk::ImageUsageFlags::TRANSFER_SRC)
.sharing_mode(vk::SharingMode::EXCLUSIVE);
- let image = unsafe { self.device.create_image(&image_create_info, None)? };
+ let image = unsafe {
+ self.device
+ .create_image(&image_create_info, None)
+ .expect("Failed to create image")
+ };
let image_memory_req = unsafe { self.device.get_image_memory_requirements(image) };
- let image_allocate_info = vk::MemoryAllocateInfo::builder()
+ let image_allocate_info = vk::MemoryAllocateInfo::default()
.allocation_size(image_memory_req.size)
.memory_type_index(0);
- let image_memory = unsafe { self.device.allocate_memory(&image_allocate_info, None)? };
+ let image_memory = unsafe {
+ self.device
+ .allocate_memory(&image_allocate_info, None)
+ .expect("Failed to allocate memory")
+ };
unsafe {
- self.device.bind_image_memory(image, image_memory, 0)?;
+ self.device
+ .bind_image_memory(image, image_memory, 0)
+ .expect("Failed to bind image memory");
}
self.image.borrow_mut().replace(image);
@@ -240,10 +256,10 @@ impl Vulkan {
&self,
frame: &Object,
) -> Result<(vk::Image, vk::DeviceMemory), Box<dyn Error>> {
- let mut frame_image_memory_info = vk::ExternalMemoryImageCreateInfo::builder()
+ let mut frame_image_memory_info = vk::ExternalMemoryImageCreateInfo::default()
.handle_types(vk::ExternalMemoryHandleTypeFlags::DMA_BUF_EXT);
- let frame_image_create_info = vk::ImageCreateInfo::builder()
+ let frame_image_create_info = vk::ImageCreateInfo::default()
.push_next(&mut frame_image_memory_info)
.image_type(vk::ImageType::TYPE_2D)
.format(vk::Format::R8G8B8A8_UNORM)
@@ -260,16 +276,19 @@ impl Vulkan {
.usage(vk::ImageUsageFlags::TRANSFER_SRC)
.sharing_mode(vk::SharingMode::EXCLUSIVE);
- let frame_image = unsafe { self.device.create_image(&frame_image_create_info, None)? };
+ let frame_image = unsafe {
+ self.device
+ .create_image(&frame_image_create_info, None)
+ .expect("Failed to create image")
+ };
let frame_image_memory_req_info =
- vk::ImageMemoryRequirementsInfo2::builder().image(frame_image);
+ vk::ImageMemoryRequirementsInfo2::default().image(frame_image);
// Prepare the structures to get memory requirements into, then get the requirements
let mut frame_image_mem_dedicated_req = vk::MemoryDedicatedRequirements::default();
- let mut frame_image_mem_req = vk::MemoryRequirements2::builder()
- .push_next(&mut frame_image_mem_dedicated_req)
- .build();
+ let mut frame_image_mem_req =
+ vk::MemoryRequirements2::default().push_next(&mut frame_image_mem_dedicated_req);
unsafe {
self.device.get_image_memory_requirements2(
&frame_image_memory_req_info,
@@ -287,14 +306,14 @@ impl Vulkan {
// Construct the memory alloctation info according to the requirements
// If the image needs dedicated memory, add MemoryDedicatedAllocateInfo to the info chain
- let mut frame_import_memory_info = vk::ImportMemoryFdInfoKHR::builder()
+ let mut frame_import_memory_info = vk::ImportMemoryFdInfoKHR::default()
.handle_type(vk::ExternalMemoryHandleTypeFlags::DMA_BUF_EXT)
.fd(frame.fds[&0].as_raw_fd());
let mut frame_image_memory_dedicated_info =
- vk::MemoryDedicatedAllocateInfo::builder().image(frame_image);
+ vk::MemoryDedicatedAllocateInfo::default().image(frame_image);
- let mut frame_image_allocate_info = vk::MemoryAllocateInfo::builder()
+ let mut frame_image_allocate_info = vk::MemoryAllocateInfo::default()
.push_next(&mut frame_import_memory_info)
.allocation_size(frame_image_mem_req.memory_requirements.size)
.memory_type_index(memory_type_index);
@@ -307,12 +326,14 @@ impl Vulkan {
// Allocate the memory and bind it to the image
let frame_image_memory = unsafe {
self.device
- .allocate_memory(&frame_image_allocate_info, None)?
+ .allocate_memory(&frame_image_allocate_info, None)
+ .expect("Failed to allocate memory")
};
unsafe {
self.device
- .bind_image_memory(frame_image, frame_image_memory, 0)?;
+ .bind_image_memory(frame_image, frame_image_memory, 0)
+ .expect("Failed to bind image memory");
}
Ok((frame_image, frame_image_memory))
@@ -330,17 +351,16 @@ impl Vulkan {
dst_access_mask: vk::AccessFlags,
src_stage_mask: vk::PipelineStageFlags,
) {
- let image_barrier = vk::ImageMemoryBarrier::builder()
+ let image_barrier = vk::ImageMemoryBarrier::default()
.old_layout(old_layout)
.new_layout(new_layout)
.image(*image)
.subresource_range(
- vk::ImageSubresourceRange::builder()
+ vk::ImageSubresourceRange::default()
.aspect_mask(vk::ImageAspectFlags::COLOR)
.base_mip_level(base_mip_level)
.level_count(mip_levels)
- .layer_count(1)
- .build(),
+ .layer_count(1),
)
.src_access_mask(src_access_mask)
.dst_access_mask(dst_access_mask);
@@ -353,7 +373,7 @@ impl Vulkan {
vk::DependencyFlags::empty(),
&[],
&[],
- &[image_barrier.build()],
+ &[image_barrier],
);
}
}
@@ -370,7 +390,7 @@ impl Vulkan {
dst_height: u32,
dst_mip_level: u32,
) {
- let blit_info = vk::ImageBlit::builder()
+ let blit_info = vk::ImageBlit::default()
.src_offsets([
vk::Offset3D { x: 0, y: 0, z: 0 },
vk::Offset3D {
@@ -380,11 +400,10 @@ impl Vulkan {
},
])
.src_subresource(
- vk::ImageSubresourceLayers::builder()
+ vk::ImageSubresourceLayers::default()
.aspect_mask(vk::ImageAspectFlags::COLOR)
.mip_level(src_mip_level)
- .layer_count(1)
- .build(),
+ .layer_count(1),
)
.dst_offsets([
vk::Offset3D { x: 0, y: 0, z: 0 },
@@ -395,11 +414,10 @@ impl Vulkan {
},
])
.dst_subresource(
- vk::ImageSubresourceLayers::builder()
+ vk::ImageSubresourceLayers::default()
.aspect_mask(vk::ImageAspectFlags::COLOR)
.mip_level(dst_mip_level)
- .layer_count(1)
- .build(),
+ .layer_count(1),
);
unsafe {
@@ -409,7 +427,7 @@ impl Vulkan {
vk::ImageLayout::TRANSFER_SRC_OPTIMAL,
*dst_image,
vk::ImageLayout::TRANSFER_DST_OPTIMAL,
- &[blit_info.build()],
+ &[blit_info],
vk::Filter::LINEAR,
);
}
@@ -502,13 +520,12 @@ impl Vulkan {
vk::PipelineStageFlags::TRANSFER,
);
- let buffer_image_copy = vk::BufferImageCopy::builder()
+ let buffer_image_copy = vk::BufferImageCopy::default()
.image_subresource(
- vk::ImageSubresourceLayers::builder()
+ vk::ImageSubresourceLayers::default()
.aspect_mask(vk::ImageAspectFlags::COLOR)
.mip_level(mip_level)
- .layer_count(1)
- .build(),
+ .layer_count(1),
)
.image_offset(vk::Offset3D { x: 0, y: 0, z: 0 })
.image_extent(vk::Extent3D {
@@ -523,18 +540,19 @@ impl Vulkan {
*image,
vk::ImageLayout::TRANSFER_SRC_OPTIMAL,
self.buffer,
- &[buffer_image_copy.build()],
+ &[buffer_image_copy],
);
}
}
fn begin_commands(&self) -> Result<(), Box<dyn Error>> {
- let command_buffer_info = vk::CommandBufferBeginInfo::builder()
+ let command_buffer_info = vk::CommandBufferBeginInfo::default()
.flags(vk::CommandBufferUsageFlags::ONE_TIME_SUBMIT);
unsafe {
self.device
- .begin_command_buffer(self.command_buffers[0], &command_buffer_info)?;
+ .begin_command_buffer(self.command_buffers[0], &command_buffer_info)
+ .expect("Failed to begin command buffer");
}
Ok(())
@@ -542,16 +560,20 @@ impl Vulkan {
fn submit_commands(&self) -> Result<(), Box<dyn Error>> {
unsafe {
- self.device.end_command_buffer(self.command_buffers[0])?;
+ self.device
+ .end_command_buffer(self.command_buffers[0])
+ .expect("Failed to end command buffer");
}
- let submit_info = vk::SubmitInfo::builder().command_buffers(&self.command_buffers);
+ let submit_info = vk::SubmitInfo::default().command_buffers(&self.command_buffers);
unsafe {
self.device
- .queue_submit(self.queue, &[submit_info.build()], self.fence)?;
+ .queue_submit(self.queue, &[submit_info], self.fence)
+ .expect("Failed to submit queue");
self.device
- .wait_for_fences(&[self.fence], true, FENCES_TIMEOUT_NS)?;
+ .wait_for_fences(&[self.fence], true, FENCES_TIMEOUT_NS)
+ .expect("Failed to wait for fences");
}
Ok(())
I'm sad I couldn't finish this in time, personally I'm not working on this PR simply because I no longer have hardware that is able to run vulkan and therefore wluma ☹️ As soon as I'm able to run wluma, this would be the first thing I tackle, unless someone manages to finish it before then.
To be reopen later if needed