diff --git a/.github/workflows/web-demo.yml b/.github/workflows/web-demo.yml index 1d89b8738..ecbf64224 100644 --- a/.github/workflows/web-demo.yml +++ b/.github/workflows/web-demo.yml @@ -27,7 +27,7 @@ jobs: uses: taiki-e/install-action@v2 with: # If updating, also update in examples/with_winit/Cargo.toml - tool: wasm-bindgen@0.2.95 + tool: wasm-bindgen@0.2.97 - name: build (wasm) run: cargo build -p with_winit --bin with_winit_bin --release --target wasm32-unknown-unknown diff --git a/Cargo.lock b/Cargo.lock index 9601827ea..335959ec1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,6 +235,9 @@ name = "bitflags" version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +dependencies = [ + "serde", +] [[package]] name = "block" @@ -356,12 +359,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[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" @@ -802,9 +799,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" dependencies = [ "js-sys", "slotmap", @@ -1051,10 +1048,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1199,9 +1197,9 @@ dependencies = [ [[package]] name = "metal" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" +checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" dependencies = [ "bitflags 2.8.0", "block", @@ -1236,22 +1234,23 @@ dependencies = [ [[package]] name = "naga" -version = "23.1.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" +checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e" dependencies = [ "arrayvec", "bit-set", "bitflags 2.8.0", - "cfg_aliases 0.1.1", + "cfg_aliases", "codespan-reporting", "hexf-parse", "indexmap 2.7.0", "log", "rustc-hash", "spirv", + "strum", "termcolor", - "thiserror 1.0.69", + "thiserror 2.0.11", "unicode-xid", ] @@ -1607,6 +1606,15 @@ dependencies = [ "libredox", ] +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "owned_ttf_parser" version = "0.25.0" @@ -1948,6 +1956,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "rustversion" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + [[package]] name = "ryu" version = "1.0.18" @@ -2244,6 +2258,28 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "svg_fmt" version = "0.4.4" @@ -2554,9 +2590,9 @@ dependencies = [ [[package]] name = "walrus" -version = "0.22.0" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68aa3c7b80be75c8458fc087453e5a31a226cfffede2e9b932393b2ea1c624a" +checksum = "6481311b98508f4bc2d0abbfa5d42172e7a54b4b24d8f15e28b0dc650be0c59f" dependencies = [ "anyhow", "gimli", @@ -2565,7 +2601,7 @@ dependencies = [ "log", "walrus-macro", "wasm-encoder", - "wasmparser", + "wasmparser 0.214.0", ] [[package]] @@ -2588,9 +2624,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" dependencies = [ "cfg-if", "once_cell", @@ -2599,9 +2635,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" dependencies = [ "bumpalo", "log", @@ -2614,9 +2650,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-cli-support" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b21cf9e89b196d78ff95c442a8076cc417171001e75dc062fe2c421cd2a0f9" +checksum = "5ff44829c4a8cb55c9c1764609522cddf6a092dae2e34a4b0f48d863737c5ff1" dependencies = [ "anyhow", "base64", @@ -2637,9 +2673,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-externref-xform" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9f5eaefdb356e4266ca53d76526f5500e1e3b0961da8ee932193f08ada25ec7" +checksum = "e18f2b3830afd01899e1f3252bd310c52eb4e76aae8ee406de26ade3ce80618c" dependencies = [ "anyhow", "walrus", @@ -2660,9 +2696,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2670,9 +2706,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" dependencies = [ "proc-macro2", "quote", @@ -2683,9 +2719,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-multi-value-xform" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22689c6bbdc7f3a9110f1aa21873398a7ab2c50474ba9a45595c9ffde49c0cd" +checksum = "688e1343d8220793ed018c6d516ab782708e7550152f36f089adde39f69eef5a" dependencies = [ "anyhow", "walrus", @@ -2694,15 +2730,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" [[package]] name = "wasm-bindgen-threads-xform" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d3c6389a7c8fa49ee4f55847d01b74c640a60387598952cdf3211b8499520c" +checksum = "fa429167b4fe4155e91343b31dba3e8fbd07bcc70bf26d44fed1b241f446acef" dependencies = [ "anyhow", "walrus", @@ -2711,22 +2747,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-wasm-conventions" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b4d6bf2704173b57d7f319316593a35f2102e18bc92251d96909f89e7d4595" +checksum = "e88a8ba4fca3be5dd6bd3850b73c1e24c1fe05f5ae309c0a5ea9e0da8ba0c295" dependencies = [ "anyhow", "leb128", "log", "walrus", - "wasmparser", + "wasmparser 0.212.0", ] [[package]] name = "wasm-bindgen-wasm-interpreter" -version = "0.2.95" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b123244c6bf9e7abbb6ad9aa98ed86f927b55ee9d95b5552dd9346910341d5e2" +checksum = "170b4ec3be6a888c7fe3e221e18abc5981fc52e06215481e066a85fe25f0e6ad" dependencies = [ "anyhow", "log", @@ -2736,9 +2772,9 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.212.0" +version = "0.214.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501940df4418b8929eb6d52f1aade1fdd15a5b86c92453cb696e3c906bd3fc33" +checksum = "ff694f02a8d7a50b6922b197ae03883fbf18cdb2ae9fbee7b6148456f5f44041" dependencies = [ "leb128", ] @@ -2757,6 +2793,20 @@ dependencies = [ "serde", ] +[[package]] +name = "wasmparser" +version = "0.214.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5309c1090e3e84dad0d382f42064e9933fdaedb87e468cc239f0eabea73ddcb6" +dependencies = [ + "ahash", + "bitflags 2.8.0", + "hashbrown 0.14.5", + "indexmap 2.7.0", + "semver", + "serde", +] + [[package]] name = "wayland-backend" version = "0.3.7" @@ -2868,9 +2918,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" dependencies = [ "js-sys", "wasm-bindgen", @@ -2888,12 +2938,13 @@ dependencies = [ [[package]] name = "wgpu" -version = "23.0.1" +version = "24.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" +checksum = "47f55718f85c2fa756edffa0e7f0e0a60aba463d1362b57e23123c58f035e4b6" dependencies = [ "arrayvec", - "cfg_aliases 0.1.1", + "bitflags 2.8.0", + "cfg_aliases", "document-features", "js-sys", "log", @@ -2913,14 +2964,14 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" +checksum = "82a39b8842dc9ffcbe34346e3ab6d496b32a47f6497e119d762c97fcaae3cb37" dependencies = [ "arrayvec", "bit-vec", "bitflags 2.8.0", - "cfg_aliases 0.1.1", + "cfg_aliases", "document-features", "indexmap 2.7.0", "log", @@ -2931,16 +2982,16 @@ dependencies = [ "raw-window-handle", "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "wgpu-hal", "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" +checksum = "5a782e5056b060b0b4010881d1decddd059e44f2ecd01e2db2971b48ad3627e5" dependencies = [ "android_system_properties", "arrayvec", @@ -2949,7 +3000,7 @@ dependencies = [ "bitflags 2.8.0", "block", "bytemuck", - "cfg_aliases 0.1.1", + "cfg_aliases", "core-graphics-types", "glow", "glutin_wgl_sys", @@ -2966,6 +3017,7 @@ dependencies = [ "ndk-sys 0.5.0+25.2.9519653", "objc", "once_cell", + "ordered-float", "parking_lot", "profiling", "range-alloc", @@ -2973,7 +3025,7 @@ dependencies = [ "renderdoc-sys", "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "wasm-bindgen", "web-sys", "wgpu-types", @@ -2983,23 +3035,24 @@ dependencies = [ [[package]] name = "wgpu-profiler" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43016a1a244a8ca4c3543441dc68d0c970430c74d6d9a17ae016426e2d3fdb08" +checksum = "06c0b8d286b9d88e6070b329ceede1d13e47c4ef19f7118bd224bfbb9fc0dff5" dependencies = [ "parking_lot", - "thiserror 1.0.69", + "thiserror 2.0.11", "wgpu", ] [[package]] name = "wgpu-types" -version = "23.0.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" +checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c" dependencies = [ "bitflags 2.8.0", "js-sys", + "log", "web-sys", ] @@ -3294,7 +3347,7 @@ dependencies = [ "block2", "bytemuck", "calloop", - "cfg_aliases 0.2.1", + "cfg_aliases", "concurrent-queue", "core-foundation", "core-graphics", diff --git a/Cargo.toml b/Cargo.toml index 0f26cf3bc..06fe11175 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -110,7 +110,7 @@ static_assertions = "1.1.0" thiserror = "2.0.11" # NOTE: Make sure to keep this in sync with the version badge in README.md and vello/README.md -wgpu = { version = "23.0.1" } +wgpu = { version = "24.0.1" } log = "0.4.22" image = { version = "0.25.5", default-features = false } @@ -119,5 +119,5 @@ clap = "4.5.26" anyhow = "1.0.95" pollster = "0.4.0" web-time = "1.1.0" -wgpu-profiler = "0.19.0" +wgpu-profiler = "0.21.0" scenes = { path = "examples/scenes" } diff --git a/examples/headless/src/main.rs b/examples/headless/src/main.rs index d6d791e22..98bcdcdd6 100644 --- a/examples/headless/src/main.rs +++ b/examples/headless/src/main.rs @@ -22,7 +22,7 @@ use vello::kurbo::{Affine, Vec2}; use vello::peniko::color::palette; use vello::util::RenderContext; use vello::wgpu::{ - self, BufferDescriptor, BufferUsages, CommandEncoderDescriptor, Extent3d, ImageCopyBuffer, + self, BufferDescriptor, BufferUsages, CommandEncoderDescriptor, Extent3d, TexelCopyBufferInfo, TextureDescriptor, TextureFormat, TextureUsages, }; use vello::{util::block_on_wgpu, RendererOptions, Scene}; @@ -185,9 +185,9 @@ async fn render(mut scenes: SceneSet, index: usize, args: &Args) -> Result<()> { }); encoder.copy_texture_to_buffer( target.as_image_copy(), - ImageCopyBuffer { + TexelCopyBufferInfo { buffer: &buffer, - layout: wgpu::ImageDataLayout { + layout: wgpu::TexelCopyBufferLayout { offset: 0, bytes_per_row: Some(padded_byte_width), rows_per_image: None, diff --git a/examples/with_winit/Cargo.toml b/examples/with_winit/Cargo.toml index a21484dd1..26ed73544 100644 --- a/examples/with_winit/Cargo.toml +++ b/examples/with_winit/Cargo.toml @@ -74,7 +74,7 @@ wasm-bindgen-futures = "0.4.45" web-sys = { version = "0.3.72", features = ["HtmlCollection", "Text"] } web-time = { workspace = true } # If updating, also update in .github/workflows/web-demo.yml -wasm-bindgen = "=0.2.95" +wasm-bindgen = "=0.2.97" [target.wasm32-unknown-unknown.dependencies] # We have a transitive dependency on getrandom and it does not automatically diff --git a/vello/src/lib.rs b/vello/src/lib.rs index 71d365376..e29a981d1 100644 --- a/vello/src/lib.rs +++ b/vello/src/lib.rs @@ -584,8 +584,8 @@ impl Renderer { pub fn override_image( &mut self, image: &peniko::Image, - texture: Option>>, - ) -> Option>> { + texture: Option>>, + ) -> Option>> { match texture { Some(texture) => self.engine.image_overrides.insert(image.data.id(), texture), None => self.engine.image_overrides.remove(&image.data.id()), diff --git a/vello/src/util.rs b/vello/src/util.rs index d7e56370e..e14ad376e 100644 --- a/vello/src/util.rs +++ b/vello/src/util.rs @@ -30,16 +30,13 @@ impl RenderContext { reason = "Creating a wgpu Instance is something which should only be done rarely" )] pub fn new() -> Self { - let backends = wgpu::util::backend_bits_from_env().unwrap_or_default(); + let backends = wgpu::Backends::from_env().unwrap_or_default(); let flags = wgpu::InstanceFlags::from_build_config().with_env(); - let dx12_shader_compiler = wgpu::util::dx12_shader_compiler_from_env().unwrap_or_default(); - let gles_minor_version = wgpu::util::gles_minor_version_from_env().unwrap_or_default(); - - let instance = Instance::new(wgpu::InstanceDescriptor { + let backend_options = wgpu::BackendOptions::from_env_or_default(); + let instance = Instance::new(&wgpu::InstanceDescriptor { backends, flags, - dx12_shader_compiler, - gles_minor_version, + backend_options, }); Self { instance, diff --git a/vello/src/wgpu_engine.rs b/vello/src/wgpu_engine.rs index 2107fdec1..eab40c738 100644 --- a/vello/src/wgpu_engine.rs +++ b/vello/src/wgpu_engine.rs @@ -41,7 +41,7 @@ pub(crate) struct WgpuEngine { /// Overrides from a specific `Image::data`'s [`id`](peniko::Blob::id) to a wgpu `Texture`. /// /// The `Texture` should have the same size as the `Image`. - pub(crate) image_overrides: HashMap>>, + pub(crate) image_overrides: HashMap>>, } enum PipelineState { @@ -436,6 +436,7 @@ impl WgpuEngine { let texture_view = texture.create_view(&wgpu::TextureViewDescriptor { label: None, dimension: Some(TextureViewDimension::D2), + usage: None, aspect: TextureAspect::All, mip_level_count: None, base_mip_level: 0, @@ -444,14 +445,14 @@ impl WgpuEngine { format: Some(format), }); queue.write_texture( - wgpu::ImageCopyTexture { + wgpu::TexelCopyTextureInfo { texture: &texture, mip_level: 0, origin: wgpu::Origin3d { x: 0, y: 0, z: 0 }, aspect: TextureAspect::All, }, bytes, - wgpu::ImageDataLayout { + wgpu::TexelCopyBufferLayout { offset: 0, bytes_per_row: Some(image_proxy.width * block_size), rows_per_image: None, @@ -473,13 +474,13 @@ impl WgpuEngine { .expect("ImageFormat must have a valid block size"); if let Some(overrider) = self.image_overrides.get(&image.data.id()) { encoder.copy_texture_to_texture( - wgpu::ImageCopyTexture { + wgpu::TexelCopyTextureInfo { texture: &overrider.texture, mip_level: overrider.mip_level, origin: overrider.origin, aspect: overrider.aspect, }, - wgpu::ImageCopyTexture { + wgpu::TexelCopyTextureInfo { texture, mip_level: 0, origin: wgpu::Origin3d { x: *x, y: *y, z: 0 }, @@ -493,14 +494,14 @@ impl WgpuEngine { ); } else { queue.write_texture( - wgpu::ImageCopyTexture { + wgpu::TexelCopyTextureInfo { texture, mip_level: 0, origin: wgpu::Origin3d { x: *x, y: *y, z: 0 }, aspect: TextureAspect::All, }, image.data.data(), - wgpu::ImageDataLayout { + wgpu::TexelCopyBufferLayout { offset: 0, bytes_per_row: Some(image.width * block_size), rows_per_image: None, @@ -910,6 +911,7 @@ impl BindMap { }); let texture_view = texture.create_view(&wgpu::TextureViewDescriptor { label: None, + usage: None, dimension: Some(TextureViewDimension::D2), aspect: TextureAspect::All, mip_level_count: None, @@ -1097,6 +1099,7 @@ impl<'a> TransientBindMap<'a> { }); let texture_view = texture.create_view(&wgpu::TextureViewDescriptor { label: None, + usage: None, dimension: Some(TextureViewDimension::D2), aspect: TextureAspect::All, mip_level_count: None, diff --git a/vello_shaders/Cargo.toml b/vello_shaders/Cargo.toml index 7bc7f99a2..25e2ddb59 100644 --- a/vello_shaders/Cargo.toml +++ b/vello_shaders/Cargo.toml @@ -31,10 +31,10 @@ workspace = true [dependencies] bytemuck = { workspace = true, optional = true } -naga = { version = "23.1.0", features = ["wgsl-in"], optional = true } +naga = { version = "24.0.0", features = ["wgsl-in"], optional = true } thiserror = { workspace = true, optional = true } vello_encoding = { workspace = true, optional = true } [build-dependencies] -naga = { version = "23.1.0", features = ["wgsl-in"] } +naga = { version = "24.0.0", features = ["wgsl-in"] } thiserror = { workspace = true } diff --git a/vello_shaders/src/compile/msl.rs b/vello_shaders/src/compile/msl.rs index e1f3a0576..5e0d3cf77 100644 --- a/vello_shaders/src/compile/msl.rs +++ b/vello_shaders/src/compile/msl.rs @@ -42,6 +42,7 @@ pub fn translate(shader: &ShaderInfo) -> Result { fake_missing_bindings: false, bounds_check_policies: naga::proc::BoundsCheckPolicies::default(), zero_initialize_workgroup_memory: true, + force_loop_bounding: true, }; let (source, _) = naga_msl::write_string( &shader.module, diff --git a/vello_tests/src/lib.rs b/vello_tests/src/lib.rs index 636606ca0..2ca781782 100644 --- a/vello_tests/src/lib.rs +++ b/vello_tests/src/lib.rs @@ -42,7 +42,7 @@ use scenes::{ExampleScene, ImageCache, SceneParams, SimpleText}; use vello::kurbo::{Affine, Vec2}; use vello::peniko::{color::palette, Blob, Color, Image, ImageFormat}; use vello::wgpu::{ - self, BufferDescriptor, BufferUsages, CommandEncoderDescriptor, Extent3d, ImageCopyBuffer, + self, BufferDescriptor, BufferUsages, CommandEncoderDescriptor, Extent3d, TexelCopyBufferInfo, TextureDescriptor, TextureFormat, TextureUsages, }; use vello::{util::block_on_wgpu, util::RenderContext, AaConfig, RendererOptions, Scene}; @@ -162,9 +162,9 @@ pub async fn get_scene_image(params: &TestParams, scene: &Scene) -> Result