From d61848609f96fc2fe3cc54379abb2fe56c04010d Mon Sep 17 00:00:00 2001 From: Nico Burns Date: Wed, 5 Nov 2025 18:22:02 +0000 Subject: [PATCH] Make dioxus-native work on iOS simulator (#4876) * Make dioxus-native work on iOS simulator Signed-off-by: Nico Burns * Bump dioxus-native to v0.7.1 Signed-off-by: Nico Burns * Update package version to use workspace versioning --------- Signed-off-by: Nico Burns Co-authored-by: Jonathan Kelley --- Cargo.lock | 554 ++++++++++++++++++++++--- Cargo.toml | 3 +- packages/native/Cargo.toml | 3 + packages/native/src/dioxus_renderer.rs | 11 +- packages/native/src/lib.rs | 8 +- 5 files changed, 513 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c801749fa..d89956d31 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -463,9 +463,9 @@ checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" [[package]] name = "anyrender" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13df215023d4e8c644b39202b468be3ee6d098dcfef1bb3ab7c259dfaf48d7f1" +checksum = "5e2c6900aa6fa601379c17b824d0882c5c4ffd2f974124b273ba083b64f76077" dependencies = [ "kurbo 0.12.0", "peniko", @@ -497,14 +497,28 @@ dependencies = [ "futures-intrusive", "kurbo 0.12.0", "peniko", - "pollster", + "pollster 0.4.0", "raw-window-handle 0.6.2", "rustc-hash 1.1.0", "vello", - "wgpu", + "wgpu 26.0.1", "wgpu_context", ] +[[package]] +name = "anyrender_vello_cpu" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53ab47fd3c17dd144010b079f07e106b9d5d982c2916dcf73e8ad2f611d5becd" +dependencies = [ + "anyrender", + "debug_timer", + "kurbo 0.12.0", + "peniko", + "pixels_window_renderer", + "vello_cpu", +] + [[package]] name = "app_units" version = "0.7.8" @@ -764,6 +778,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" +[[package]] +name = "ash" +version = "0.37.3+1.3.251" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +dependencies = [ + "libloading 0.7.4", +] + [[package]] name = "ash" version = "0.38.0+1.3.281" @@ -1650,7 +1673,7 @@ dependencies = [ "dioxus", "dioxus-native", "tracing-subscriber", - "wgpu", + "wgpu 26.0.1", ] [[package]] @@ -1857,7 +1880,7 @@ dependencies = [ "serde", "smallvec", "thiserror 2.0.17", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -1873,7 +1896,7 @@ dependencies = [ "encase", "serde", "thiserror 2.0.17", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -2101,7 +2124,7 @@ dependencies = [ "serde", "thiserror 2.0.17", "tracing", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -2284,7 +2307,7 @@ dependencies = [ "hexasphere", "thiserror 2.0.17", "tracing", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -2435,7 +2458,7 @@ dependencies = [ "thiserror 2.0.17", "uuid", "variadics_please", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -2488,7 +2511,7 @@ dependencies = [ "image", "indexmap 2.12.0", "js-sys", - "naga", + "naga 26.0.0", "nonmax", "offset-allocator", "send_wrapper", @@ -2498,7 +2521,7 @@ dependencies = [ "variadics_please", "wasm-bindgen", "web-sys", - "wgpu", + "wgpu 26.0.1", ] [[package]] @@ -2543,12 +2566,12 @@ dependencies = [ "bevy_asset", "bevy_platform", "bevy_reflect", - "naga", + "naga 26.0.0", "naga_oil", "serde", "thiserror 2.0.17", "tracing", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -2573,7 +2596,7 @@ dependencies = [ "bevy_window", "radsort", "tracing", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -2677,7 +2700,7 @@ dependencies = [ "sys-locale", "thiserror 2.0.17", "tracing", - "wgpu-types", + "wgpu-types 26.0.0", ] [[package]] @@ -2836,7 +2859,7 @@ dependencies = [ "tracing", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 26.0.0", "winit", ] @@ -2873,6 +2896,15 @@ dependencies = [ "syn 2.0.108", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -3219,7 +3251,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ "borsh-derive", - "cfg_aliases", + "cfg_aliases 0.2.1", ] [[package]] @@ -3778,6 +3810,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "cfg_aliases" version = "0.2.1" @@ -3970,6 +4008,16 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e769b5c8c8283982a987c6e948e540254f1058d5a74b8794914d4ef5fc2a24" +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width 0.1.14", +] + [[package]] name = "codespan-reporting" version = "0.12.0" @@ -3986,6 +4034,9 @@ name = "color" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18ef4657441fb193b65f34dc39b3781f0dfec23d3bd94d0eeb4e88cde421edb" +dependencies = [ + "bytemuck", +] [[package]] name = "color_quant" @@ -3999,6 +4050,37 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "com" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6" +dependencies = [ + "com_macros", +] + +[[package]] +name = "com_macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" +dependencies = [ + "com_macros_support", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "com_macros_support" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "combine" version = "4.6.7" @@ -4903,6 +4985,17 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "d3d12" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" +dependencies = [ + "bitflags 2.9.4", + "libloading 0.7.4", + "winapi", +] + [[package]] name = "darling" version = "0.20.11" @@ -5759,7 +5852,7 @@ dependencies = [ "wasm-splitter", "wasm-streams", "web-time", - "wgpu", + "wgpu 26.0.1", ] [[package]] @@ -6013,10 +6106,11 @@ dependencies = [ [[package]] name = "dioxus-native" -version = "0.7.0" +version = "0.7.1" dependencies = [ "anyrender", "anyrender_vello", + "anyrender_vello_cpu", "blitz-dom", "blitz-html", "blitz-net", @@ -7107,6 +7201,15 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "fearless_simd" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb2907d1f08b2b316b9223ced5b0e89d87028ba8deae9764741dba8ff7f3903" +dependencies = [ + "bytemuck", +] + [[package]] name = "ff" version = "0.13.1" @@ -8316,6 +8419,18 @@ dependencies = [ "web-sys", ] +[[package]] +name = "glow" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "glow" version = "0.16.0" @@ -8364,6 +8479,15 @@ dependencies = [ "serde_json", ] +[[package]] +name = "glutin_wgl_sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" +dependencies = [ + "gl_generator", +] + [[package]] name = "glutin_wgl_sys" version = "0.6.1" @@ -8414,6 +8538,19 @@ dependencies = [ "bitflags 2.9.4", ] +[[package]] +name = "gpu-allocator" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" +dependencies = [ + "log", + "presser", + "thiserror 1.0.69", + "winapi", + "windows 0.52.0", +] + [[package]] name = "gpu-allocator" version = "0.27.0" @@ -8426,6 +8563,17 @@ dependencies = [ "windows 0.58.0", ] +[[package]] +name = "gpu-descriptor" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +dependencies = [ + "bitflags 2.9.4", + "gpu-descriptor-types 0.1.2", + "hashbrown 0.14.5", +] + [[package]] name = "gpu-descriptor" version = "0.3.2" @@ -8433,10 +8581,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ "bitflags 2.9.4", - "gpu-descriptor-types", + "gpu-descriptor-types 0.2.0", "hashbrown 0.15.5", ] +[[package]] +name = "gpu-descriptor-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" +dependencies = [ + "bitflags 2.9.4", +] + [[package]] name = "gpu-descriptor-types" version = "0.2.0" @@ -8844,6 +9001,21 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "hassle-rs" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" +dependencies = [ + "bitflags 2.9.4", + "com", + "libc", + "libloading 0.7.4", + "thiserror 1.0.69", + "widestring", + "winapi", +] + [[package]] name = "hdrhistogram" version = "7.5.4" @@ -10944,6 +11116,21 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "metal" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" +dependencies = [ + "bitflags 2.9.4", + "block", + "core-graphics-types 0.1.3", + "foreign-types 0.5.0", + "log", + "objc", + "paste", +] + [[package]] name = "metal" version = "0.32.0" @@ -11116,6 +11303,26 @@ dependencies = [ "syn 2.0.108", ] +[[package]] +name = "naga" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" +dependencies = [ + "bit-set 0.5.3", + "bitflags 2.9.4", + "codespan-reporting 0.11.1", + "hexf-parse", + "indexmap 2.12.0", + "log", + "num-traits", + "rustc-hash 1.1.0", + "spirv", + "termcolor", + "thiserror 1.0.69", + "unicode-xid", +] + [[package]] name = "naga" version = "26.0.0" @@ -11123,11 +11330,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c" dependencies = [ "arrayvec", - "bit-set", + "bit-set 0.8.0", "bitflags 2.9.4", "cfg-if", - "cfg_aliases", - "codespan-reporting", + "cfg_aliases 0.2.1", + "codespan-reporting 0.12.0", "half", "hashbrown 0.15.5", "hexf-parse", @@ -11149,10 +11356,10 @@ version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b586d3cf5c9b7e13fe2af6e114406ff70773fd80881960378933b63e76f37dd" dependencies = [ - "codespan-reporting", + "codespan-reporting 0.12.0", "data-encoding", "indexmap 2.12.0", - "naga", + "naga 26.0.0", "regex", "rustc-hash 1.1.0", "thiserror 2.0.17", @@ -11191,11 +11398,11 @@ dependencies = [ "dioxus", "dioxus-native-dom", "futures-util", - "pollster", + "pollster 0.4.0", "rustc-hash 1.1.0", "tracing-subscriber", "vello", - "wgpu", + "wgpu 26.0.1", "wgpu_context", ] @@ -11220,7 +11427,7 @@ dependencies = [ "rustc-hash 1.1.0", "tracing-subscriber", "vello", - "wgpu", + "wgpu 26.0.1", ] [[package]] @@ -11341,7 +11548,7 @@ checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ "bitflags 2.9.4", "cfg-if", - "cfg_aliases", + "cfg_aliases 0.2.1", "libc", "memoffset", ] @@ -11354,7 +11561,7 @@ checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags 2.9.4", "cfg-if", - "cfg_aliases", + "cfg_aliases 0.2.1", "libc", "memoffset", ] @@ -11656,6 +11863,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", + "objc_exception", ] [[package]] @@ -11998,6 +12206,15 @@ dependencies = [ "objc2-foundation 0.3.2", ] +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + [[package]] name = "objc_id" version = "0.1.1" @@ -12578,6 +12795,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3c76095c9a636173600478e0373218c7b955335048c2bcd12dc6a79657649d8" dependencies = [ + "bytemuck", "color", "kurbo 0.12.0", "linebender_resource_handle", @@ -12916,6 +13134,31 @@ dependencies = [ "futures-io", ] +[[package]] +name = "pixels" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518d43cd70c5381d4c7bd4bf47ee344beee99b58b0587adcb198cc713ff0dfb5" +dependencies = [ + "bytemuck", + "pollster 0.3.0", + "raw-window-handle 0.6.2", + "thiserror 1.0.69", + "ultraviolet", + "wgpu 0.19.4", +] + +[[package]] +name = "pixels_window_renderer" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5973b55d585de980b6a1db68b116c8c741c18ab5a5699621aee7cac343aea58" +dependencies = [ + "anyrender", + "debug_timer", + "pixels", +] + [[package]] name = "pkcs1" version = "0.7.5" @@ -13017,6 +13260,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "pollster" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" + [[package]] name = "pollster" version = "0.4.0" @@ -13420,7 +13669,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", - "cfg_aliases", + "cfg_aliases 0.2.1", "pin-project-lite", "quinn-proto", "quinn-udp", @@ -13460,7 +13709,7 @@ version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ - "cfg_aliases", + "cfg_aliases 0.2.1", "libc", "once_cell", "socket2 0.6.1", @@ -14070,7 +14319,7 @@ dependencies = [ "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", - "pollster", + "pollster 0.4.0", "raw-window-handle 0.6.2", "urlencoding", "wasm-bindgen", @@ -14604,6 +14853,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd29631678d6fb0903b69223673e122c32e9ae559d0960a38d574695ebc0ea15" +[[package]] +name = "safe_arch" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +dependencies = [ + "bytemuck", +] + [[package]] name = "same-file" version = "1.0.6" @@ -17962,6 +18220,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "ultraviolet" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a28554d13eb5daba527cc1b91b6c341372a0ae45ed277ffb2c6fbc04f319d7e" +dependencies = [ + "wide", +] + [[package]] name = "uluru" version = "3.1.0" @@ -18366,7 +18633,32 @@ dependencies = [ "thiserror 2.0.17", "vello_encoding", "vello_shaders", - "wgpu", + "wgpu 26.0.1", +] + +[[package]] +name = "vello_common" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a235ba928b3109ad9e7696270edb09445a52ae1c7c08e6d31a19b1cdd6cbc24a" +dependencies = [ + "bytemuck", + "fearless_simd", + "hashbrown 0.15.5", + "log", + "peniko", + "skrifa", + "smallvec", +] + +[[package]] +name = "vello_cpu" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0bd1fcf9c1814f17a491e07113623d44e3ec1125a9f3401f5e047d6d326da21" +dependencies = [ + "bytemuck", + "vello_common", ] [[package]] @@ -18390,7 +18682,7 @@ checksum = "8c381dde4e7d0d7957df0c0e3f8a7cc0976762d3972d97da5c71464e57ffefd3" dependencies = [ "bytemuck", "log", - "naga", + "naga 26.0.0", "thiserror 2.0.17", "vello_encoding", ] @@ -19025,6 +19317,31 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" +[[package]] +name = "wgpu" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" +dependencies = [ + "arrayvec", + "cfg-if", + "cfg_aliases 0.1.1", + "js-sys", + "log", + "naga 0.19.2", + "parking_lot", + "profiling", + "raw-window-handle 0.6.2", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core 0.19.4", + "wgpu-hal 0.19.5", + "wgpu-types 0.19.2", +] + [[package]] name = "wgpu" version = "26.0.1" @@ -19034,12 +19351,12 @@ dependencies = [ "arrayvec", "bitflags 2.9.4", "cfg-if", - "cfg_aliases", + "cfg_aliases 0.2.1", "document-features", "hashbrown 0.15.5", "js-sys", "log", - "naga", + "naga 26.0.0", "parking_lot", "portable-atomic", "profiling", @@ -19049,9 +19366,35 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", + "wgpu-core 26.0.1", + "wgpu-hal 26.0.6", + "wgpu-types 26.0.0", +] + +[[package]] +name = "wgpu-core" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" +dependencies = [ + "arrayvec", + "bit-vec 0.6.3", + "bitflags 2.9.4", + "cfg_aliases 0.1.1", + "codespan-reporting 0.11.1", + "indexmap 2.12.0", + "log", + "naga 0.19.2", + "once_cell", + "parking_lot", + "profiling", + "raw-window-handle 0.6.2", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 1.0.69", + "web-sys", + "wgpu-hal 0.19.5", + "wgpu-types 0.19.2", ] [[package]] @@ -19061,15 +19404,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f62f1053bd28c2268f42916f31588f81f64796e2ff91b81293515017ca8bd9" dependencies = [ "arrayvec", - "bit-set", + "bit-set 0.8.0", "bit-vec 0.8.0", "bitflags 2.9.4", - "cfg_aliases", + "cfg_aliases 0.2.1", "document-features", "hashbrown 0.15.5", "indexmap 2.12.0", "log", - "naga", + "naga 26.0.0", "once_cell", "parking_lot", "portable-atomic", @@ -19082,8 +19425,8 @@ dependencies = [ "wgpu-core-deps-emscripten", "wgpu-core-deps-wasm", "wgpu-core-deps-windows-linux-android", - "wgpu-hal", - "wgpu-types", + "wgpu-hal 26.0.6", + "wgpu-types 26.0.0", ] [[package]] @@ -19092,7 +19435,7 @@ version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18ae5fbde6a4cbebae38358aa73fcd6e0f15c6144b67ef5dc91ded0db125dbdf" dependencies = [ - "wgpu-hal", + "wgpu-hal 26.0.6", ] [[package]] @@ -19101,7 +19444,7 @@ version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7670e390f416006f746b4600fdd9136455e3627f5bd763abf9a65daa216dd2d" dependencies = [ - "wgpu-hal", + "wgpu-hal 26.0.6", ] [[package]] @@ -19110,7 +19453,7 @@ version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c03b9f9e1a50686d315fc6debe4980cc45cd37b0e919351917df494e8fdc8885" dependencies = [ - "wgpu-hal", + "wgpu-hal 26.0.6", ] [[package]] @@ -19119,7 +19462,52 @@ version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "720a5cb9d12b3d337c15ff0e24d3e97ed11490ff3f7506e7f3d98c68fa5d6f14" dependencies = [ - "wgpu-hal", + "wgpu-hal 26.0.6", +] + +[[package]] +name = "wgpu-hal" +version = "0.19.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfabcfc55fd86611a855816326b2d54c3b2fd7972c27ce414291562650552703" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash 0.37.3+1.3.251", + "bit-set 0.5.3", + "bitflags 2.9.4", + "block", + "cfg_aliases 0.1.1", + "core-graphics-types 0.1.3", + "d3d12", + "glow 0.13.1", + "glutin_wgl_sys 0.5.0", + "gpu-alloc", + "gpu-allocator 0.25.0", + "gpu-descriptor 0.2.4", + "hassle-rs", + "js-sys", + "khronos-egl", + "libc", + "libloading 0.7.4", + "log", + "metal 0.27.0", + "naga 0.19.2", + "ndk-sys 0.5.0+25.2.9519653", + "objc", + "once_cell", + "parking_lot", + "profiling", + "range-alloc", + "raw-window-handle 0.6.2", + "renderdoc-sys", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 1.0.69", + "wasm-bindgen", + "web-sys", + "wgpu-types 0.19.2", + "winapi", ] [[package]] @@ -19130,27 +19518,27 @@ checksum = "a8d0e67224cc7305b3b4eb2cc57ca4c4c3afc665c1d1bee162ea806e19c47bdd" dependencies = [ "android_system_properties", "arrayvec", - "ash", - "bit-set", + "ash 0.38.0+1.3.281", + "bit-set 0.8.0", "bitflags 2.9.4", "block", "bytemuck", "cfg-if", - "cfg_aliases", + "cfg_aliases 0.2.1", "core-graphics-types 0.2.0", - "glow", - "glutin_wgl_sys", + "glow 0.16.0", + "glutin_wgl_sys 0.6.1", "gpu-alloc", - "gpu-allocator", - "gpu-descriptor", + "gpu-allocator 0.27.0", + "gpu-descriptor 0.3.2", "hashbrown 0.15.5", "js-sys", "khronos-egl", "libc", "libloading 0.8.9", "log", - "metal", - "naga", + "metal 0.32.0", + "naga 26.0.0", "ndk-sys 0.6.0+11769913", "objc", "ordered-float 5.0.0", @@ -19165,7 +19553,7 @@ dependencies = [ "thiserror 2.0.17", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 26.0.0", "windows 0.58.0", "windows-core 0.58.0", ] @@ -19179,10 +19567,21 @@ dependencies = [ "dioxus", "dioxus-native", "tracing-subscriber", - "wgpu", + "wgpu 26.0.1", "winit", ] +[[package]] +name = "wgpu-types" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" +dependencies = [ + "bitflags 2.9.4", + "js-sys", + "web-sys", +] + [[package]] name = "wgpu-types" version = "26.0.0" @@ -19205,7 +19604,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "066bd52170313ca33ba22c7cdc442bf9dbc06a1539eed1719ff7ae63386c0cae" dependencies = [ "futures-intrusive", - "wgpu", + "wgpu 26.0.1", ] [[package]] @@ -19241,6 +19640,16 @@ dependencies = [ "wasite", ] +[[package]] +name = "wide" +version = "0.7.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "widestring" version = "1.2.1" @@ -19278,6 +19687,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows" version = "0.54.0" @@ -19341,6 +19760,15 @@ dependencies = [ "windows-core 0.62.2", ] +[[package]] +name = "windows-core" +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-core" version = "0.54.0" @@ -19900,7 +20328,7 @@ dependencies = [ "block2 0.5.1", "bytemuck", "calloop", - "cfg_aliases", + "cfg_aliases 0.2.1", "concurrent-queue", "core-foundation 0.9.4", "core-graphics 0.23.2", diff --git a/Cargo.toml b/Cargo.toml index aefefaccd..10462b098 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -222,8 +222,9 @@ blitz-html = { version = "0.2" } blitz-paint = { version = "0.2" } blitz-traits = { version = "0.2" } blitz-shell = { version = "0.2", default-features = false } -anyrender = { version = "0.6", default-features = false } +anyrender = { version = "0.6.2", default-features = false } anyrender_vello = { version = "0.6", default-features = false } +anyrender_vello_cpu = { version = "0.8", default-features = false } wgpu_context = { version = "0.1", default-features = false } wgpu = { version = "26.0" } vello = "0.6" diff --git a/packages/native/Cargo.toml b/packages/native/Cargo.toml index 9a283a297..731badb97 100644 --- a/packages/native/Cargo.toml +++ b/packages/native/Cargo.toml @@ -56,5 +56,8 @@ tracing = { workspace = true, optional = true } rustc-hash = { workspace = true } futures-util = { workspace = true } +[target.'cfg(all(target_os = "ios", target_abi = "sim"))'.dependencies] +anyrender_vello_cpu = { workspace = true, features = ["pixels_window_renderer"]} + [package.metadata.docs.rs] all-features = true diff --git a/packages/native/src/dioxus_renderer.rs b/packages/native/src/dioxus_renderer.rs index 0e61bdeec..ea1f71458 100644 --- a/packages/native/src/dioxus_renderer.rs +++ b/packages/native/src/dioxus_renderer.rs @@ -6,9 +6,16 @@ use anyrender::WindowRenderer; pub use anyrender_vello::{ wgpu::{Features, Limits}, - CustomPaintSource, VelloRendererOptions, VelloWindowRenderer as InnerRenderer, + CustomPaintSource, VelloRendererOptions, }; +#[cfg(not(all(target_os = "ios", target_abi = "sim")))] +pub use anyrender_vello::VelloWindowRenderer as InnerRenderer; + +#[cfg(all(target_os = "ios", target_abi = "sim"))] +pub use anyrender_vello_cpu::VelloCpuWindowRenderer as InnerRenderer; + +#[cfg(not(all(target_os = "ios", target_abi = "sim")))] pub fn use_wgpu(create_source: impl FnOnce() -> T) -> u64 { use dioxus_core::{consume_context, use_hook_with_cleanup}; @@ -44,6 +51,7 @@ impl DioxusNativeWindowRenderer { Self::with_inner_renderer(vello_renderer) } + #[cfg(not(all(target_os = "ios", target_abi = "sim")))] pub fn with_features_and_limits(features: Option, limits: Option) -> Self { let vello_renderer = InnerRenderer::with_options(VelloRendererOptions { features, @@ -60,6 +68,7 @@ impl DioxusNativeWindowRenderer { } } +#[cfg(not(all(target_os = "ios", target_abi = "sim")))] impl DioxusNativeWindowRenderer { pub fn register_custom_paint_source(&self, source: Box) -> u64 { self.inner.borrow_mut().register_custom_paint_source(source) diff --git a/packages/native/src/lib.rs b/packages/native/src/lib.rs index e5d332e89..8bc03719d 100644 --- a/packages/native/src/lib.rs +++ b/packages/native/src/lib.rs @@ -21,7 +21,10 @@ pub use dioxus_native_dom::*; pub use anyrender_vello::{CustomPaintCtx, CustomPaintSource, DeviceHandle, TextureHandle}; use assets::DioxusNativeNetProvider; pub use dioxus_application::{DioxusNativeApplication, DioxusNativeEvent}; -pub use dioxus_renderer::{use_wgpu, DioxusNativeWindowRenderer, Features, Limits}; +pub use dioxus_renderer::{DioxusNativeWindowRenderer, Features, Limits}; + +#[cfg(not(all(target_os = "ios", target_abi = "sim")))] +pub use dioxus_renderer::use_wgpu; use blitz_shell::{create_default_event_loop, BlitzShellEvent, Config, WindowConfig}; use dioxus_core::{ComponentFunction, Element, VirtualDom}; @@ -135,7 +138,10 @@ pub fn launch_cfg_with_props( ..Default::default() }, ); + #[cfg(not(all(target_os = "ios", target_abi = "sim")))] let renderer = DioxusNativeWindowRenderer::with_features_and_limits(features, limits); + #[cfg(all(target_os = "ios", target_abi = "sim"))] + let renderer = DioxusNativeWindowRenderer::new(); let config = WindowConfig::with_attributes( Box::new(doc) as _, renderer.clone(),