From f62f1d1157c42bf370250c992b66068842870891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=96R=C3=96K=20Attila?= Date: Mon, 14 Apr 2025 12:22:59 +0200 Subject: [PATCH 1/2] Update to wgpu 25 --- Cargo.lock | 204 +++++++++++++------- Cargo.toml | 2 +- crates/egui-wgpu/src/lib.rs | 7 +- crates/egui-wgpu/src/setup.rs | 14 +- crates/egui_kittest/Cargo.toml | 7 +- crates/egui_kittest/src/texture_to_image.rs | 4 +- crates/egui_kittest/src/wgpu.rs | 7 +- 7 files changed, 148 insertions(+), 97 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35ff4c9afe2..8755be8ea3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -174,7 +174,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.8.0", + "bitflags 2.9.0", "cc", "cesu8", "jni", @@ -592,9 +592,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" dependencies = [ "serde", ] @@ -655,9 +655,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" dependencies = [ "bytemuck_derive", ] @@ -697,7 +697,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "log", "polling", "rustix", @@ -844,10 +844,11 @@ dependencies = [ [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", "unicode-width", ] @@ -1164,7 +1165,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a0d569e003ff27784e0e14e4a594048698e0c0f0b66cabcb51511be55a7caa0" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.6.0", "libc", "objc2 0.6.0", @@ -1192,9 +1193,9 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" dependencies = [ "litrs", ] @@ -1270,7 +1271,7 @@ dependencies = [ "accesskit", "ahash", "backtrace", - "bitflags 2.8.0", + "bitflags 2.9.0", "document-features", "emath", "epaint", @@ -1908,7 +1909,7 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec69412a0bf07ea7607e638b415447857a808846c2b685a43c8aa18bc6d5e499" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg_aliases", "cgl", "core-foundation", @@ -1974,7 +1975,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "gpu-alloc-types", ] @@ -1984,7 +1985,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -2005,7 +2006,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "gpu-descriptor-types", "hashbrown", ] @@ -2016,17 +2017,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] name = "half" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" dependencies = [ "cfg-if", "crunchy", + "num-traits", ] [[package]] @@ -2492,7 +2494,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "libc", "redox_syscall 0.5.7", ] @@ -2582,7 +2584,7 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block", "core-graphics-types", "foreign-types", @@ -2644,24 +2646,27 @@ dependencies = [ [[package]] name = "naga" -version = "24.0.0" +version = "25.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e" +checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632" dependencies = [ "arrayvec", "bit-set 0.8.0", - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg_aliases", "codespan-reporting", + "half", + "hashbrown", "hexf-parse", "indexmap", "log", + "num-traits", + "once_cell", "rustc-hash", "spirv", "strum", - "termcolor", "thiserror 2.0.11", - "unicode-xid", + "unicode-ident", ] [[package]] @@ -2670,7 +2675,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "jni-sys", "log", "ndk-sys 0.6.0+11769913", @@ -2709,7 +2714,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "cfg_aliases", "libc", @@ -2735,6 +2740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -2798,7 +2804,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -2814,7 +2820,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5906f93257178e2f7ae069efb89fbd6ee94f0592740b5f8a1512ca498814d0fb" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.6.0", "objc2 0.6.0", "objc2-foundation 0.3.0", @@ -2826,7 +2832,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -2850,7 +2856,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -2862,7 +2868,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daeaf60f25471d26948a1c2f840e3f7d86f4109e3af4e8e4b5cd70c39690d925" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "objc2 0.6.0", ] @@ -2902,7 +2908,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "dispatch", "libc", @@ -2915,7 +2921,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a21c6c9014b82c39515db5b396f91645182611c97d24637cf56ac01e5f8d998" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "objc2 0.6.0", "objc2-core-foundation", ] @@ -2938,7 +2944,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -2950,7 +2956,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -2973,7 +2979,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "objc2 0.5.2", "objc2-cloud-kit", @@ -3005,7 +3011,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -3023,9 +3029,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "oorandom" @@ -3237,6 +3243,12 @@ dependencies = [ "env_logger", ] +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + [[package]] name = "powerfmt" version = "0.2.0" @@ -3455,7 +3467,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -3572,7 +3584,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "beceb6f7bf81c73e73aeef6dd1356d9a1b2b4909e1f0fc3e59b034f9572d7b7f" dependencies = [ "base64", - "bitflags 2.8.0", + "bitflags 2.9.0", "serde", "serde_derive", "unicode-ident", @@ -3602,7 +3614,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", @@ -3653,7 +3665,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "bytemuck", "core_maths", "log", @@ -3852,7 +3864,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "calloop", "calloop-wayland-source", "cursor-icon", @@ -3907,7 +3919,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -4370,12 +4382,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "unicode_names2" version = "0.6.0" @@ -4587,7 +4593,7 @@ version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "rustix", "wayland-backend", "wayland-scanner", @@ -4599,7 +4605,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cursor-icon", "wayland-backend", ] @@ -4621,7 +4627,7 @@ version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -4633,7 +4639,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b31cab548ee68c7eb155517f2212049dc151f7cd7910c2b66abfd31c3ee12bd" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -4646,7 +4652,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -4730,18 +4736,20 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "wgpu" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e41253fc7b660735e2a2d9a58c563f2a047d3cc3445293d8f4095538c9e8afbe" +checksum = "ca6049eb2014a0e0d8689f9b787605dd71d5bbfdc74095ead499f3cff705c229" dependencies = [ "arrayvec", - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg_aliases", "document-features", + "hashbrown", "js-sys", "log", "naga", "parking_lot", + "portable-atomic", "profiling", "raw-window-handle 0.6.2", "smallvec", @@ -4756,42 +4764,86 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "24.0.0" +version = "25.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a39b8842dc9ffcbe34346e3ab6d496b32a47f6497e119d762c97fcaae3cb37" +checksum = "a19813e647da7aa3cdaa84f5846e2c64114970ea7c86b1e6aae8be08091f4bdc" dependencies = [ "arrayvec", + "bit-set 0.8.0", "bit-vec 0.8.0", - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg_aliases", "document-features", + "hashbrown", "indexmap", "log", "naga", "once_cell", "parking_lot", + "portable-atomic", "profiling", "raw-window-handle 0.6.2", "rustc-hash", "smallvec", "thiserror 2.0.11", + "wgpu-core-deps-apple", + "wgpu-core-deps-emscripten", + "wgpu-core-deps-wasm", + "wgpu-core-deps-windows-linux-android", "wgpu-hal", "wgpu-types", ] +[[package]] +name = "wgpu-core-deps-apple" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd488b3239b6b7b185c3b045c39ca6bf8af34467a4c5de4e0b1a564135d093d" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-emscripten" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09ad7aceb3818e52539acc679f049d3475775586f3f4e311c30165cf2c00445" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-wasm" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca8809ad123f6c7f2c5e01a2c7117c4fdfd02f70bd422ee2533f69dfa98756c" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cba5fb5f7f9c98baa7c889d444f63ace25574833df56f5b817985f641af58e46" +dependencies = [ + "wgpu-hal", +] + [[package]] name = "wgpu-hal" -version = "24.0.0" +version = "25.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a782e5056b060b0b4010881d1decddd059e44f2ecd01e2db2971b48ad3627e5" +checksum = "fb7c4a1dc42ff14c23c9b11ebf1ee85cde661a9b1cf0392f79c1faca5bc559fb" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set 0.8.0", - "bitflags 2.8.0", + "bitflags 2.9.0", "block", "bytemuck", + "cfg-if", "cfg_aliases", "core-graphics-types", "glow", @@ -4799,6 +4851,7 @@ dependencies = [ "gpu-alloc", "gpu-allocator", "gpu-descriptor", + "hashbrown", "js-sys", "khronos-egl", "libc", @@ -4808,14 +4861,13 @@ dependencies = [ "naga", "ndk-sys 0.5.0+25.2.9519653", "objc", - "once_cell", "ordered-float", "parking_lot", + "portable-atomic", "profiling", "range-alloc", "raw-window-handle 0.6.2", "renderdoc-sys", - "rustc-hash", "smallvec", "thiserror 2.0.11", "wasm-bindgen", @@ -4827,13 +4879,15 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "24.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c" +checksum = "2aa49460c2a8ee8edba3fca54325540d904dd85b2e086ada762767e17d06e8bc" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", + "bytemuck", "js-sys", "log", + "thiserror 2.0.11", "web-sys", ] @@ -5164,7 +5218,7 @@ dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.8.0", + "bitflags 2.9.0", "block2 0.5.1", "bytemuck", "calloop", @@ -5231,7 +5285,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -5300,7 +5354,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "dlib", "log", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 3b306176bfe..cf969450b46 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,7 +104,7 @@ wasm-bindgen = "0.2" wasm-bindgen-futures = "0.4" web-sys = "0.3.73" web-time = "1.1.0" # Timekeeping for native and web -wgpu = { version = "24.0.0", default-features = false } +wgpu = { version = "25.0.0", default-features = false } windows-sys = "0.59" winit = { version = "0.30.7", default-features = false } diff --git a/crates/egui-wgpu/src/lib.rs b/crates/egui-wgpu/src/lib.rs index 5df19db859c..8910b9af397 100644 --- a/crates/egui-wgpu/src/lib.rs +++ b/crates/egui-wgpu/src/lib.rs @@ -104,7 +104,7 @@ async fn request_adapter( force_fallback_adapter: false, }) .await - .ok_or_else(|| { + .map_err(|e| { #[cfg(not(target_arch = "wasm32"))] if _available_adapters.is_empty() { log::info!("No wgpu adapters found"); @@ -121,7 +121,7 @@ async fn request_adapter( ); } - WgpuError::NoSuitableAdapterFound("`request_adapters` returned `None`".to_owned()) + WgpuError::NoSuitableAdapterFound(format!("`request_adapters` returned `Err`: {e}")) })?; #[cfg(target_arch = "wasm32")] @@ -184,7 +184,6 @@ impl RenderState { power_preference, native_adapter_selector: _native_adapter_selector, device_descriptor, - trace_path, }) => { let adapter = { #[cfg(target_arch = "wasm32")] @@ -209,7 +208,7 @@ impl RenderState { let (device, queue) = { profiling::scope!("request_device"); adapter - .request_device(&(*device_descriptor)(&adapter), trace_path.as_deref()) + .request_device(&(*device_descriptor)(&adapter)) .await? }; diff --git a/crates/egui-wgpu/src/setup.rs b/crates/egui-wgpu/src/setup.rs index 2499d006bef..cae8c4807fd 100644 --- a/crates/egui-wgpu/src/setup.rs +++ b/crates/egui-wgpu/src/setup.rs @@ -126,13 +126,6 @@ pub struct WgpuSetupCreateNew { /// Configuration passed on device request, given an adapter pub device_descriptor: Arc wgpu::DeviceDescriptor<'static> + Send + Sync>, - - /// Option path to output a wgpu trace file. - /// - /// This only works if this feature is enabled in `wgpu-core`. - /// Does not work when running with WebGPU. - /// Defaults to the path set in the `WGPU_TRACE` environment variable. - pub trace_path: Option, } impl Clone for WgpuSetupCreateNew { @@ -142,7 +135,6 @@ impl Clone for WgpuSetupCreateNew { power_preference: self.power_preference, native_adapter_selector: self.native_adapter_selector.clone(), device_descriptor: self.device_descriptor.clone(), - trace_path: self.trace_path.clone(), } } } @@ -156,7 +148,6 @@ impl std::fmt::Debug for WgpuSetupCreateNew { "native_adapter_selector", &self.native_adapter_selector.is_some(), ) - .field("trace_path", &self.trace_path) .finish() } } @@ -195,12 +186,9 @@ impl Default for WgpuSetupCreateNew { ..base_limits }, memory_hints: wgpu::MemoryHints::default(), + trace: wgpu::Trace::Off, } }), - - trace_path: std::env::var("WGPU_TRACE") - .ok() - .map(std::path::PathBuf::from), } } } diff --git a/crates/egui_kittest/Cargo.toml b/crates/egui_kittest/Cargo.toml index d2434124622..ccc2c72b801 100644 --- a/crates/egui_kittest/Cargo.toml +++ b/crates/egui_kittest/Cargo.toml @@ -52,7 +52,12 @@ egui-wgpu = { workspace = true, optional = true } pollster = { workspace = true, optional = true } image = { workspace = true, optional = true } # Enable DX12 because it always comes with a software rasterizer. -wgpu = { workspace = true, features = ["metal", "dx12"], optional = true } +wgpu = { workspace = true, features = [ + "metal", + "dx12", + "vulkan", + "gles", +], optional = true } # snapshot dependencies dify = { workspace = true, optional = true } diff --git a/crates/egui_kittest/src/texture_to_image.rs b/crates/egui_kittest/src/texture_to_image.rs index 8f7cb72a5ed..e215cd4ec3d 100644 --- a/crates/egui_kittest/src/texture_to_image.rs +++ b/crates/egui_kittest/src/texture_to_image.rs @@ -47,7 +47,9 @@ pub(crate) fn texture_to_image(device: &Device, queue: &Queue, texture: &Texture buffer_slice.map_async(wgpu::MapMode::Read, move |v| drop(sender.send(v))); // Poll the device in a blocking manner so that our future resolves. - device.poll(wgpu::Maintain::WaitForSubmissionIndex(submission_index)); + device + .poll(wgpu::PollType::WaitForSubmissionIndex(submission_index)) + .expect("Failed to poll device"); receiver.recv().unwrap().unwrap(); let buffer_slice = output_buffer.slice(..); diff --git a/crates/egui_kittest/src/wgpu.rs b/crates/egui_kittest/src/wgpu.rs index e7734c958ee..efd954245fb 100644 --- a/crates/egui_kittest/src/wgpu.rs +++ b/crates/egui_kittest/src/wgpu.rs @@ -28,7 +28,7 @@ pub fn default_wgpu_setup() -> egui_wgpu::WgpuSetup { wgpu::Backend::Dx12 => 2, wgpu::Backend::Gl => 4, wgpu::Backend::BrowserWebGpu => 6, - wgpu::Backend::Empty => 7, + wgpu::Backend::Noop => 7, }); // Prefer CPU adapters, otherwise if we can't, prefer discrete GPU over integrated GPU. @@ -202,7 +202,10 @@ impl crate::TestRenderer for WgpuTestRenderer { .queue .submit(user_buffers.into_iter().chain(once(encoder.finish()))); - self.render_state.device.poll(wgpu::Maintain::Wait); + self.render_state + .device + .poll(wgpu::PollType::Wait) + .map_err(|e| format!("{e}"))?; Ok(texture_to_image( &self.render_state.device, From 4b28caf147b383b4d106df19a3fcfab01214f14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=96R=C3=96K=20Attila?= Date: Sat, 26 Apr 2025 13:49:28 +0200 Subject: [PATCH 2/2] Add back WGPU_TRACE support via the new wgpu-trace feature --- Cargo.lock | 37 +++++++++++++++++++++++++++++------ Cargo.toml | 1 + crates/egui-wgpu/Cargo.toml | 4 ++++ crates/egui-wgpu/src/setup.rs | 11 ++++++++++- 4 files changed, 46 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8755be8ea3e..46bc9ec75ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -273,6 +273,9 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +dependencies = [ + "serde", +] [[package]] name = "as-raw-xcb-connection" @@ -1251,7 +1254,7 @@ dependencies = [ "pollster", "profiling", "raw-window-handle 0.6.2", - "ron", + "ron 0.10.1", "serde", "static_assertions", "wasm-bindgen", @@ -1278,7 +1281,7 @@ dependencies = [ "log", "nohash-hasher", "profiling", - "ron", + "ron 0.10.1", "serde", "unicode-segmentation", ] @@ -1298,6 +1301,7 @@ dependencies = [ "type-map", "web-time", "wgpu", + "wgpu-core", "winit", ] @@ -2029,6 +2033,7 @@ dependencies = [ "cfg-if", "crunchy", "num-traits", + "serde", ] [[package]] @@ -2038,6 +2043,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "foldhash", + "serde", ] [[package]] @@ -2340,6 +2346,7 @@ checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", "hashbrown", + "serde", ] [[package]] @@ -2663,6 +2670,7 @@ dependencies = [ "num-traits", "once_cell", "rustc-hash", + "serde", "spirv", "strum", "thiserror 2.0.11", @@ -3577,6 +3585,19 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ron" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63f3aa105dea217ef30d89581b65a4d527a19afc95ef5750be3890e8d3c5b837" +dependencies = [ + "base64", + "bitflags 2.9.0", + "serde", + "serde_derive", + "unicode-ident", +] + [[package]] name = "ron" version = "0.10.1" @@ -3728,18 +3749,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.214" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -4772,6 +4793,7 @@ dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", "bitflags 2.9.0", + "bytemuck", "cfg_aliases", "document-features", "hashbrown", @@ -4783,7 +4805,9 @@ dependencies = [ "portable-atomic", "profiling", "raw-window-handle 0.6.2", + "ron 0.9.0", "rustc-hash", + "serde", "smallvec", "thiserror 2.0.11", "wgpu-core-deps-apple", @@ -4887,6 +4911,7 @@ dependencies = [ "bytemuck", "js-sys", "log", + "serde", "thiserror 2.0.11", "web-sys", ] diff --git a/Cargo.toml b/Cargo.toml index cf969450b46..6fc85848305 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,6 +105,7 @@ wasm-bindgen-futures = "0.4" web-sys = "0.3.73" web-time = "1.1.0" # Timekeeping for native and web wgpu = { version = "25.0.0", default-features = false } +wgpu-core = { version = "25.0.1", default-features = false } windows-sys = "0.59" winit = { version = "0.30.7", default-features = false } diff --git a/crates/egui-wgpu/Cargo.toml b/crates/egui-wgpu/Cargo.toml index 2f4330236d0..e0147a27458 100644 --- a/crates/egui-wgpu/Cargo.toml +++ b/crates/egui-wgpu/Cargo.toml @@ -42,6 +42,9 @@ wayland = ["winit?/wayland"] ## Enables x11 support for winit. x11 = ["winit?/x11"] +## Enables tracing support for wgpu. Requires setting the `WGPU_TRACE` environment variable to a directory to work. +wgpu-trace = ["wgpu-core/trace"] + ## Make the renderer `Sync` on wasm, exploiting that by default wasm isn't multithreaded. ## It may make code easier, expecially when targeting both native and web. ## On native most wgpu objects are send and sync, on the web they are not (by nature of the WebGPU specification). @@ -62,6 +65,7 @@ thiserror.workspace = true type-map.workspace = true web-time.workspace = true wgpu = { workspace = true, features = ["wgsl"] } +wgpu-core.workspace = true # Optional dependencies: diff --git a/crates/egui-wgpu/src/setup.rs b/crates/egui-wgpu/src/setup.rs index cae8c4807fd..990369d49e5 100644 --- a/crates/egui-wgpu/src/setup.rs +++ b/crates/egui-wgpu/src/setup.rs @@ -176,6 +176,15 @@ impl Default for WgpuSetupCreateNew { wgpu::Limits::default() }; + let mut _trace = wgpu::Trace::Off; + #[cfg(feature = "wgpu-trace")] + if let Some(path) = std::env::var("WGPU_TRACE") + .ok() + .map(std::path::PathBuf::from) + { + _trace = wgpu::Trace::Directory(path); + } + wgpu::DeviceDescriptor { label: Some("egui wgpu device"), required_features: wgpu::Features::default(), @@ -186,7 +195,7 @@ impl Default for WgpuSetupCreateNew { ..base_limits }, memory_hints: wgpu::MemoryHints::default(), - trace: wgpu::Trace::Off, + trace: _trace, } }), }