From bdb2662681acb74d2fe2d8117fd71de1d2076e9e Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 16 Jul 2026 15:11:02 +0200 Subject: [PATCH 01/12] update to nightly-2026-07-16, failing compiletests --- crates/rustc_codegen_spirv/build.rs | 4 ++-- crates/rustc_codegen_spirv/src/abi.rs | 6 +++--- crates/rustc_codegen_spirv/src/attr.rs | 4 ++-- .../rustc_codegen_spirv/src/builder/builder_methods.rs | 2 +- crates/rustc_codegen_spirv/src/builder/intrinsics.rs | 7 ++----- crates/rustc_codegen_spirv/src/codegen_cx/constant.rs | 7 +++---- crates/rustc_codegen_spirv/src/codegen_cx/mod.rs | 10 +++++++--- crates/rustc_codegen_spirv/src/codegen_cx/type_.rs | 4 ++-- crates/rustc_codegen_spirv/src/lib.rs | 3 ++- rust-toolchain.toml | 4 ++-- tests/compiletests/ui/dis/ptr_copy.normal.stderr | 8 ++++---- tests/compiletests/ui/dis/ptr_read.stderr | 2 +- tests/compiletests/ui/dis/ptr_read_method.stderr | 2 +- tests/compiletests/ui/dis/ptr_write.stderr | 2 +- tests/compiletests/ui/dis/ptr_write_method.stderr | 2 +- tests/difftests/runner/src/differ.rs | 2 -- 16 files changed, 34 insertions(+), 35 deletions(-) diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index 16d67c37838..819a31c8299 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -19,9 +19,9 @@ use std::{env, fs, mem}; /// `cargo publish`. We need to figure out a way to do this properly, but let's hardcode it for now :/ //const REQUIRED_RUST_TOOLCHAIN: &str = include_str!("../../rust-toolchain.toml"); const REQUIRED_RUST_TOOLCHAIN: &str = r#"[toolchain] -channel = "nightly-2026-07-03" +channel = "nightly-2026-07-16" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = c397dae808f70caebab1fc4e11b3edf7e59f58c7"#; +# commit_hash = d0babd8b6b05ef9bb65d42f928cef4129d64cf65"#; fn rustc_output(arg: &str) -> Result> { let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".into()); diff --git a/crates/rustc_codegen_spirv/src/abi.rs b/crates/rustc_codegen_spirv/src/abi.rs index 781f48efb28..0dafc0bf355 100644 --- a/crates/rustc_codegen_spirv/src/abi.rs +++ b/crates/rustc_codegen_spirv/src/abi.rs @@ -87,7 +87,7 @@ pub(crate) fn provide(providers: &mut Providers) { fn_abi: &'tcx FnAbi<'tcx, Ty<'tcx>>, ) -> &'tcx FnAbi<'tcx, Ty<'tcx>> { let readjust_arg_abi = |arg: &ArgAbi<'tcx, Ty<'tcx>>| { - let mut arg = ArgAbi::new(&tcx, arg.layout, |_, _| ArgAttributes::new()); + let mut arg = ArgAbi::new(arg.layout, |_, _| ArgAttributes::new()); // FIXME: this is bad! https://github.com/rust-lang/rust/issues/115666 // arg.make_direct_deprecated(); @@ -382,7 +382,7 @@ impl<'tcx> ConvSpirvType<'tcx> for TyAndLayout<'tcx> { } .def_with_name(cx, span, TyLayoutNameKey::from(*self)), BackendRepr::Scalar(scalar) => trans_scalar(cx, span, *self, scalar, Size::ZERO), - BackendRepr::ScalarPair(a, b) => { + BackendRepr::ScalarPair { a, b, .. } => { // NOTE(eddyb) unlike `BackendRepr::Scalar`'s simpler newtype-unpacking // behavior, `BackendRepr::ScalarPair` can be composed in two ways: // * two `BackendRepr::Scalar` fields (and any number of ZST fields), @@ -485,7 +485,7 @@ pub fn scalar_pair_element_backend_type<'tcx>( index: usize, ) -> Word { let [a, b] = match ty.backend_repr { - BackendRepr::ScalarPair(a, b) => [a, b], + BackendRepr::ScalarPair { a, b, .. } => [a, b], other => span_bug!( span, "scalar_pair_element_backend_type invalid abi: {:?}", diff --git a/crates/rustc_codegen_spirv/src/attr.rs b/crates/rustc_codegen_spirv/src/attr.rs index ae1651120b6..4698aae0fa2 100644 --- a/crates/rustc_codegen_spirv/src/attr.rs +++ b/crates/rustc_codegen_spirv/src/attr.rs @@ -7,7 +7,7 @@ use crate::symbols::Symbols; use rspirv::spirv::{BuiltIn, ExecutionMode, ExecutionModel, StorageClass}; use rustc_ast::{LitKind, MetaItemInner, MetaItemLit}; use rustc_hir as hir; -use rustc_hir::def_id::LocalModDefId; +use rustc_hir::def_id::LocalModId; use rustc_hir::intravisit::{self, Visitor}; use rustc_hir::{Attribute, CRATE_HIR_ID, HirId, MethodKind, Target}; use rustc_middle::hir::nested_filter; @@ -503,7 +503,7 @@ impl<'tcx> Visitor<'tcx> for CheckSpirvAttrVisitor<'tcx> { } // FIXME(eddyb) DRY this somehow and make it reusable from somewhere in `rustc`. -fn check_mod_attrs(tcx: TyCtxt<'_>, module_def_id: LocalModDefId) { +fn check_mod_attrs(tcx: TyCtxt<'_>, module_def_id: LocalModId) { let check_spirv_attr_visitor = &mut CheckSpirvAttrVisitor { tcx, sym: Symbols::get(), diff --git a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs index b2b50694428..129fe24b11a 100644 --- a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs +++ b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs @@ -1924,7 +1924,7 @@ impl<'a, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'tcx> { place.val.align, ); OperandValue::Immediate(llval) - } else if let BackendRepr::ScalarPair(a, b) = place.layout.backend_repr { + } else if let BackendRepr::ScalarPair { a, b, .. } = place.layout.backend_repr { let b_offset = a .primitive() .size(self) diff --git a/crates/rustc_codegen_spirv/src/builder/intrinsics.rs b/crates/rustc_codegen_spirv/src/builder/intrinsics.rs index a188400f5bc..622347b8a08 100644 --- a/crates/rustc_codegen_spirv/src/builder/intrinsics.rs +++ b/crates/rustc_codegen_spirv/src/builder/intrinsics.rs @@ -77,7 +77,7 @@ impl<'a, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'tcx> { let callee_ty = instance.ty(self.tcx, TypingEnv::fully_monomorphized()); let (def_id, fn_args) = match *callee_ty.kind() { - FnDef(def_id, fn_args) => (def_id, fn_args), + FnDef(def_id, fn_args) => (def_id, fn_args.skip_binder()), _ => bug!("expected fn item type, found {}", callee_ty), }; @@ -360,10 +360,7 @@ impl<'a, 'tcx> IntrinsicCallBuilderMethods<'tcx> for Builder<'a, 'tcx> { _ => { // Call the fallback body instead of generating the intrinsic code - return IntrinsicResult::Fallback(Instance::new_raw( - instance.def_id(), - instance.args, - )); + return IntrinsicResult::Fallback(Instance::new_raw(def_id, instance.args)); } }; diff --git a/crates/rustc_codegen_spirv/src/codegen_cx/constant.rs b/crates/rustc_codegen_spirv/src/codegen_cx/constant.rs index d4f0cbbb3a3..0ef855f63d7 100644 --- a/crates/rustc_codegen_spirv/src/codegen_cx/constant.rs +++ b/crates/rustc_codegen_spirv/src/codegen_cx/constant.rs @@ -8,11 +8,10 @@ use crate::spirv_type::SpirvType; use itertools::Itertools as _; use rspirv::spirv::Word; use rustc_abi::{self as abi, AddressSpace, Float, HasDataLayout, Integer, Primitive, Size}; -use rustc_codegen_ssa::traits::{ - ConstCodegenMethods, MiscCodegenMethods, PacMetadata, StaticCodegenMethods, -}; +use rustc_codegen_ssa::traits::{ConstCodegenMethods, MiscCodegenMethods, StaticCodegenMethods}; use rustc_middle::mir::interpret::{AllocError, ConstAllocation, GlobalAlloc, Scalar, alloc_range}; use rustc_middle::ty::layout::LayoutOf; +use rustc_session::PointerAuthSchema; use rustc_span::{DUMMY_SP, Span}; impl<'tcx> CodegenCx<'tcx> { @@ -233,7 +232,7 @@ impl ConstCodegenMethods for CodegenCx<'_> { cv: Scalar, layout: rustc_abi::Scalar, ty: Self::Type, - _pac: Option, + _pac: Option<&PointerAuthSchema>, ) -> Self::Value { self.scalar_to_backend(cv, layout, ty) } diff --git a/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs b/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs index f08cdb819f8..236bc5f4adf 100644 --- a/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs +++ b/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs @@ -23,14 +23,14 @@ use rustc_abi::{AddressSpace, HasDataLayout, TargetDataLayout}; use rustc_ast::ast::{InlineAsmOptions, InlineAsmTemplatePiece}; use rustc_codegen_ssa::traits::{ AsmCodegenMethods, BackendTypes, DebugInfoCodegenMethods, GlobalAsmOperandRef, - MiscCodegenMethods, PacMetadata, + MiscCodegenMethods, }; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_hir::def_id::DefId; use rustc_middle::mono::CodegenUnit; use rustc_middle::ty::layout::{HasTyCtxt, HasTypingEnv}; use rustc_middle::ty::{self, Instance, Ty, TyCtxt, TypingEnv}; -use rustc_session::Session; +use rustc_session::{PointerAuthSchema, Session}; use rustc_span::symbol::Symbol; use rustc_span::{DUMMY_SP, Span}; use rustc_target::spec::{HasTargetSpec, Target, TargetTuple}; @@ -908,7 +908,11 @@ impl<'tcx> MiscCodegenMethods<'tcx> for CodegenCx<'tcx> { // NOTE(eddyb) see the comment on `SpirvValueKind::FnAddr`, this should // be fixed upstream, so we never see any "function pointer" values being // created just to perform direct calls. - fn get_fn_addr(&self, instance: Instance<'tcx>, _pac: Option) -> Self::Value { + fn get_fn_addr( + &self, + instance: Instance<'tcx>, + _pac: Option<&PointerAuthSchema>, + ) -> Self::Value { let function = self.get_fn(instance); let span = self.tcx.def_span(instance.def_id()); diff --git a/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs b/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs index c2ef34ee283..e9a3f95c383 100644 --- a/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs +++ b/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs @@ -99,14 +99,14 @@ impl<'tcx> LayoutTypeCodegenMethods<'tcx> for CodegenCx<'tcx> { BackendRepr::Scalar(_) | BackendRepr::SimdScalableVector { .. } | BackendRepr::SimdVector { .. } => true, - BackendRepr::ScalarPair(..) => false, + BackendRepr::ScalarPair { .. } => false, BackendRepr::Memory { .. } => layout.is_zst(), } } fn is_backend_scalar_pair(&self, layout: TyAndLayout<'tcx>) -> bool { match layout.backend_repr { - BackendRepr::ScalarPair(..) => true, + BackendRepr::ScalarPair { .. } => true, BackendRepr::Scalar(_) | BackendRepr::SimdScalableVector { .. } | BackendRepr::SimdVector { .. } diff --git a/crates/rustc_codegen_spirv/src/lib.rs b/crates/rustc_codegen_spirv/src/lib.rs index df16829a6be..4e72b8584a1 100644 --- a/crates/rustc_codegen_spirv/src/lib.rs +++ b/crates/rustc_codegen_spirv/src/lib.rs @@ -2,10 +2,11 @@ #![feature(deref_patterns)] #![feature(file_buffered)] #![feature(negative_impls)] -#![feature(string_from_utf8_lossy_owned)] +#![feature(option_into_flat_iter)] #![feature(trait_alias)] #![feature(try_blocks)] #![recursion_limit = "256"] +#![cfg_attr(bootstrap, feature(string_from_utf8_lossy_owned))] // HACK(eddyb) end of `rustc_codegen_ssa` crate-level attributes (see `build.rs`). //! Welcome to the API documentation for the `rust-gpu` project, this API is diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 3e36ae224b4..2e61e578ccc 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] -channel = "nightly-2026-07-03" +channel = "nightly-2026-07-16" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = c397dae808f70caebab1fc4e11b3edf7e59f58c7 +# commit_hash = d0babd8b6b05ef9bb65d42f928cef4129d64cf65 # Whenever changing the nightly channel, update the commit hash above, and # change `REQUIRED_RUST_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` too. diff --git a/tests/compiletests/ui/dis/ptr_copy.normal.stderr b/tests/compiletests/ui/dis/ptr_copy.normal.stderr index e4fd211dcca..a01ff97c7c6 100644 --- a/tests/compiletests/ui/dis/ptr_copy.normal.stderr +++ b/tests/compiletests/ui/dis/ptr_copy.normal.stderr @@ -1,11 +1,11 @@ error: cannot memcpy dynamically sized data - --> <$CORE_SRC/ptr/mod.rs>:642:9 + --> <$CORE_SRC/ptr/mod.rs>:640:9 | LL | crate::intrinsics::copy(src, dst, count) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: used from within `core::ptr::copy::` - --> <$CORE_SRC/ptr/mod.rs>:627:21 + --> <$CORE_SRC/ptr/mod.rs>:625:21 | LL | pub const unsafe fn copy(src: *const T, dst: *mut T, count: usize) { | ^^^^ @@ -28,7 +28,7 @@ LL | pub fn main(i: f32, o: &mut f32) { error: cannot cast between pointer types from `*f32` to `*struct () { }` - --> <$CORE_SRC/ptr/mod.rs>:630:9 + --> <$CORE_SRC/ptr/mod.rs>:628:9 | LL | / ub_checks::assert_unsafe_precondition!( LL | | check_language_ub, @@ -39,7 +39,7 @@ LL | | ); | |_________^ | note: used from within `core::ptr::copy::` - --> <$CORE_SRC/ptr/mod.rs>:630:9 + --> <$CORE_SRC/ptr/mod.rs>:628:9 | LL | / ub_checks::assert_unsafe_precondition!( LL | | check_language_ub, diff --git a/tests/compiletests/ui/dis/ptr_read.stderr b/tests/compiletests/ui/dis/ptr_read.stderr index 944037e5252..c719253ddeb 100644 --- a/tests/compiletests/ui/dis/ptr_read.stderr +++ b/tests/compiletests/ui/dis/ptr_read.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel - OpLine %8 1733 8 + OpLine %8 1731 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/compiletests/ui/dis/ptr_read_method.stderr b/tests/compiletests/ui/dis/ptr_read_method.stderr index 944037e5252..c719253ddeb 100644 --- a/tests/compiletests/ui/dis/ptr_read_method.stderr +++ b/tests/compiletests/ui/dis/ptr_read_method.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel - OpLine %8 1733 8 + OpLine %8 1731 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/compiletests/ui/dis/ptr_write.stderr b/tests/compiletests/ui/dis/ptr_write.stderr index f83f52d41af..35af9a8a355 100644 --- a/tests/compiletests/ui/dis/ptr_write.stderr +++ b/tests/compiletests/ui/dis/ptr_write.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 35 %9 = OpLoad %10 %4 - OpLine %11 1941 40 + OpLine %11 1939 40 OpStore %6 %9 OpNoLine OpReturn diff --git a/tests/compiletests/ui/dis/ptr_write_method.stderr b/tests/compiletests/ui/dis/ptr_write_method.stderr index d29b867dff5..c042a20be7b 100644 --- a/tests/compiletests/ui/dis/ptr_write_method.stderr +++ b/tests/compiletests/ui/dis/ptr_write_method.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 37 %9 = OpLoad %10 %4 - OpLine %11 1941 40 + OpLine %11 1939 40 OpStore %6 %9 OpNoLine OpReturn diff --git a/tests/difftests/runner/src/differ.rs b/tests/difftests/runner/src/differ.rs index 66c3e000402..592046dd175 100644 --- a/tests/difftests/runner/src/differ.rs +++ b/tests/difftests/runner/src/differ.rs @@ -302,7 +302,6 @@ impl Default for NumericDiffer { } impl OutputDiffer for NumericDiffer { - #[expect(clippy::chunks_exact_to_as_chunks)] fn compare(&self, output1: &[u8], output2: &[u8], epsilon: Option) -> Vec { if output1.len() != output2.len() { return vec![Difference { @@ -451,7 +450,6 @@ impl DifferenceDisplay for NumericDiffer { self.format_table(diffs, pkg1, pkg2) } - #[expect(clippy::chunks_exact_to_as_chunks)] fn write_human_readable(&self, output: &[u8], path: &std::path::Path) -> std::io::Result<()> { use std::io::Write; let mut file = std::fs::File::create(path)?; From f415b9d11bd78490141e26cba923349218a148e9 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 16 Jul 2026 15:11:02 +0200 Subject: [PATCH 02/12] failing compiletests, rustc seems to change types? --- .../subgroup_composite_all_equals.stderr | 37 +++++++++++-------- .../core/ref/member_ref_arg_tuples.stderr | 16 +++++++- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/tests/compiletests/ui/arch/subgroup/subgroup_composite_all_equals.stderr b/tests/compiletests/ui/arch/subgroup/subgroup_composite_all_equals.stderr index 08ae7961ea4..ced7a20296a 100644 --- a/tests/compiletests/ui/arch/subgroup/subgroup_composite_all_equals.stderr +++ b/tests/compiletests/ui/arch/subgroup/subgroup_composite_all_equals.stderr @@ -1,15 +1,22 @@ - %1 = OpFunction %2 None %3 - %4 = OpFunctionParameter %5 - %6 = OpLabel - %8 = OpCompositeExtract %9 %4 0 - %11 = OpGroupNonUniformAllEqual %2 %12 %8 - %13 = OpLogicalAnd %2 %14 %11 - %15 = OpCompositeExtract %16 %4 1 - %17 = OpGroupNonUniformAllEqual %2 %12 %15 - %18 = OpLogicalAnd %2 %13 %17 - %19 = OpCompositeExtract %20 %4 2 - %21 = OpGroupNonUniformAllEqual %2 %12 %19 - %22 = OpLogicalAnd %2 %18 %21 - OpNoLine - OpReturnValue %22 - OpFunctionEnd +error: `u8` type used without `OpCapability Int8` + | + = note: used by unnamed constant + = note: used from within `spirv_std::arch::subgroup::subgroup_all_equal::` +note: called by `subgroup_composite_all_equals::disassembly` + --> <$DIR/subgroup_composite_all_equals.rs>:27:5 + | +LL | subgroup_all_equal(my_struct) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +note: called by `subgroup_composite_all_equals::main` + --> <$DIR/subgroup_composite_all_equals.rs>:44:20 + | +LL | let bool = disassembly(my_struct); + | ^^^^^^^^^^^^^^^^^^^^^^ +note: called by GLCompute entry-point `main` + --> <$DIR/subgroup_composite_all_equals.rs>:31:8 + | +LL | pub fn main( + | ^^^^ + +error: aborting due to 1 previous error + diff --git a/tests/compiletests/ui/lang/core/ref/member_ref_arg_tuples.stderr b/tests/compiletests/ui/lang/core/ref/member_ref_arg_tuples.stderr index 26a651c3ebc..2f81d211870 100644 --- a/tests/compiletests/ui/lang/core/ref/member_ref_arg_tuples.stderr +++ b/tests/compiletests/ui/lang/core/ref/member_ref_arg_tuples.stderr @@ -34,5 +34,19 @@ LL | fn h_newtyped(xyz: ((&u32, &u32, &u32),)) -> (u32, u32, u32) { = note: inlining was required due to illegal parameter type = note: called from `member_ref_arg_tuples::main` -warning: 4 warnings emitted +error: `u64` type used without `OpCapability Int64` + | + = note: used by unnamed constant +note: used from within `member_ref_arg_tuples::main` + --> <$DIR/member_ref_arg_tuples.rs>:44:13 + | +LL | let s = S { x: 2, y: 2 }; + | ^^^^^^^^^^^^^^^^ +note: called by Fragment entry-point `main` + --> <$DIR/member_ref_arg_tuples.rs>:43:8 + | +LL | pub fn main() { + | ^^^^ + +error: aborting due to 1 previous error; 4 warnings emitted From a031c9e9db7fe600d746098e02dde90e3eca4fdc Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 16 Jul 2026 15:35:25 +0200 Subject: [PATCH 03/12] ignore cg_ssa attributes only required for bootstrap feature --- crates/rustc_codegen_spirv/build.rs | 5 ++++- crates/rustc_codegen_spirv/src/lib.rs | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index 819a31c8299..b75d0a2aa8f 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -153,7 +153,10 @@ fn generate_pqp_cg_ssa() -> Result<(), Box> { for line in mem::take(&mut src).lines() { if line.starts_with("#!") { src += "// "; - if !line.starts_with("#![doc(") && line != "#![warn(unreachable_pub)]" { + if !line.starts_with("#![doc(") + && line != "#![warn(unreachable_pub)]" + && !line.starts_with("#![cfg_attr(bootstrap,") + { writeln(&mut cg_ssa_lib_rc_attrs, line); } } else if line == "#[macro_use]" || line.starts_with("extern crate ") { diff --git a/crates/rustc_codegen_spirv/src/lib.rs b/crates/rustc_codegen_spirv/src/lib.rs index 4e72b8584a1..9eb9fae4b6a 100644 --- a/crates/rustc_codegen_spirv/src/lib.rs +++ b/crates/rustc_codegen_spirv/src/lib.rs @@ -6,7 +6,6 @@ #![feature(trait_alias)] #![feature(try_blocks)] #![recursion_limit = "256"] -#![cfg_attr(bootstrap, feature(string_from_utf8_lossy_owned))] // HACK(eddyb) end of `rustc_codegen_ssa` crate-level attributes (see `build.rs`). //! Welcome to the API documentation for the `rust-gpu` project, this API is From 29e99f11cf51a669f9ec0e083f4868b5d6aa8c2f Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 6 Aug 2026 16:50:59 +0200 Subject: [PATCH 04/12] update to nightly-2026-07-18 --- crates/rustc_codegen_spirv/build.rs | 4 ++-- rust-toolchain.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index b75d0a2aa8f..0cf8a22375a 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -19,9 +19,9 @@ use std::{env, fs, mem}; /// `cargo publish`. We need to figure out a way to do this properly, but let's hardcode it for now :/ //const REQUIRED_RUST_TOOLCHAIN: &str = include_str!("../../rust-toolchain.toml"); const REQUIRED_RUST_TOOLCHAIN: &str = r#"[toolchain] -channel = "nightly-2026-07-16" +channel = "nightly-2026-07-18" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = d0babd8b6b05ef9bb65d42f928cef4129d64cf65"#; +# commit_hash = b6839f4d0e2bd63b960bbff8619c6fdea27d81e5"#; fn rustc_output(arg: &str) -> Result> { let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".into()); diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 2e61e578ccc..07b5084bc6a 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] -channel = "nightly-2026-07-16" +channel = "nightly-2026-07-18" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = d0babd8b6b05ef9bb65d42f928cef4129d64cf65 +# commit_hash = b6839f4d0e2bd63b960bbff8619c6fdea27d81e5 # Whenever changing the nightly channel, update the commit hash above, and # change `REQUIRED_RUST_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` too. From 918df46396bb618b527bd9074a3c611212cb4507 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 6 Aug 2026 16:38:33 +0200 Subject: [PATCH 05/12] update to nightly-2026-07-19, requires full scalar pair support --- crates/rustc_codegen_spirv/build.rs | 4 ++-- .../src/builder/builder_methods.rs | 2 +- .../src/codegen_cx/type_.rs | 22 +------------------ rust-toolchain.toml | 4 ++-- .../ui/dis/ptr_copy.normal.stderr | 8 +++---- tests/compiletests/ui/dis/ptr_read.stderr | 2 +- .../ui/dis/ptr_read_method.stderr | 2 +- tests/compiletests/ui/dis/ptr_write.stderr | 2 +- .../ui/dis/ptr_write_method.stderr | 2 +- 9 files changed, 14 insertions(+), 34 deletions(-) diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index 0cf8a22375a..1550d90a4a3 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -19,9 +19,9 @@ use std::{env, fs, mem}; /// `cargo publish`. We need to figure out a way to do this properly, but let's hardcode it for now :/ //const REQUIRED_RUST_TOOLCHAIN: &str = include_str!("../../rust-toolchain.toml"); const REQUIRED_RUST_TOOLCHAIN: &str = r#"[toolchain] -channel = "nightly-2026-07-18" +channel = "nightly-2026-07-19" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = b6839f4d0e2bd63b960bbff8619c6fdea27d81e5"#; +# commit_hash = eff8269f797067c30555e77f160ec84c0ed15cd9"#; fn rustc_output(arg: &str) -> Result> { let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".into()); diff --git a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs index 129fe24b11a..ab94b5217a0 100644 --- a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs +++ b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs @@ -1917,7 +1917,7 @@ impl<'a, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'tcx> { let val = if place.val.llextra.is_some() { OperandValue::Ref(place.val) - } else if self.cx.is_backend_immediate(place.layout) { + } else if place.layout.backend_repr.is_scalar_or_simd() { let llval = self.load( place.layout.spirv_type(self.span(), self), place.val.llval, diff --git a/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs b/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs index e9a3f95c383..f9c146d0bd0 100644 --- a/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs +++ b/crates/rustc_codegen_spirv/src/codegen_cx/type_.rs @@ -5,7 +5,7 @@ use super::CodegenCx; use crate::abi::ConvSpirvType; use crate::spirv_type::SpirvType; use rspirv::spirv::Word; -use rustc_abi::{AddressSpace, BackendRepr, Reg}; +use rustc_abi::{AddressSpace, Reg}; use rustc_codegen_ssa::common::TypeKind; use rustc_codegen_ssa::traits::{BaseTypeCodegenMethods, LayoutTypeCodegenMethods}; use rustc_middle::ty::Ty; @@ -94,26 +94,6 @@ impl<'tcx> LayoutTypeCodegenMethods<'tcx> for CodegenCx<'tcx> { layout.spirv_type(DUMMY_SP, self) } - fn is_backend_immediate(&self, layout: TyAndLayout<'tcx>) -> bool { - match layout.backend_repr { - BackendRepr::Scalar(_) - | BackendRepr::SimdScalableVector { .. } - | BackendRepr::SimdVector { .. } => true, - BackendRepr::ScalarPair { .. } => false, - BackendRepr::Memory { .. } => layout.is_zst(), - } - } - - fn is_backend_scalar_pair(&self, layout: TyAndLayout<'tcx>) -> bool { - match layout.backend_repr { - BackendRepr::ScalarPair { .. } => true, - BackendRepr::Scalar(_) - | BackendRepr::SimdScalableVector { .. } - | BackendRepr::SimdVector { .. } - | BackendRepr::Memory { .. } => false, - } - } - fn scalar_pair_element_backend_type( &self, layout: TyAndLayout<'tcx>, diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 07b5084bc6a..560c5bb4d99 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] -channel = "nightly-2026-07-18" +channel = "nightly-2026-07-19" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = b6839f4d0e2bd63b960bbff8619c6fdea27d81e5 +# commit_hash = eff8269f797067c30555e77f160ec84c0ed15cd9 # Whenever changing the nightly channel, update the commit hash above, and # change `REQUIRED_RUST_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` too. diff --git a/tests/compiletests/ui/dis/ptr_copy.normal.stderr b/tests/compiletests/ui/dis/ptr_copy.normal.stderr index a01ff97c7c6..f012f7b74e7 100644 --- a/tests/compiletests/ui/dis/ptr_copy.normal.stderr +++ b/tests/compiletests/ui/dis/ptr_copy.normal.stderr @@ -1,11 +1,11 @@ error: cannot memcpy dynamically sized data - --> <$CORE_SRC/ptr/mod.rs>:640:9 + --> <$CORE_SRC/ptr/mod.rs>:645:9 | LL | crate::intrinsics::copy(src, dst, count) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: used from within `core::ptr::copy::` - --> <$CORE_SRC/ptr/mod.rs>:625:21 + --> <$CORE_SRC/ptr/mod.rs>:630:21 | LL | pub const unsafe fn copy(src: *const T, dst: *mut T, count: usize) { | ^^^^ @@ -28,7 +28,7 @@ LL | pub fn main(i: f32, o: &mut f32) { error: cannot cast between pointer types from `*f32` to `*struct () { }` - --> <$CORE_SRC/ptr/mod.rs>:628:9 + --> <$CORE_SRC/ptr/mod.rs>:633:9 | LL | / ub_checks::assert_unsafe_precondition!( LL | | check_language_ub, @@ -39,7 +39,7 @@ LL | | ); | |_________^ | note: used from within `core::ptr::copy::` - --> <$CORE_SRC/ptr/mod.rs>:628:9 + --> <$CORE_SRC/ptr/mod.rs>:633:9 | LL | / ub_checks::assert_unsafe_precondition!( LL | | check_language_ub, diff --git a/tests/compiletests/ui/dis/ptr_read.stderr b/tests/compiletests/ui/dis/ptr_read.stderr index c719253ddeb..3676866746b 100644 --- a/tests/compiletests/ui/dis/ptr_read.stderr +++ b/tests/compiletests/ui/dis/ptr_read.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel - OpLine %8 1731 8 + OpLine %8 1736 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/compiletests/ui/dis/ptr_read_method.stderr b/tests/compiletests/ui/dis/ptr_read_method.stderr index c719253ddeb..3676866746b 100644 --- a/tests/compiletests/ui/dis/ptr_read_method.stderr +++ b/tests/compiletests/ui/dis/ptr_read_method.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel - OpLine %8 1731 8 + OpLine %8 1736 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/compiletests/ui/dis/ptr_write.stderr b/tests/compiletests/ui/dis/ptr_write.stderr index 35af9a8a355..493a413de6e 100644 --- a/tests/compiletests/ui/dis/ptr_write.stderr +++ b/tests/compiletests/ui/dis/ptr_write.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 35 %9 = OpLoad %10 %4 - OpLine %11 1939 40 + OpLine %11 1944 40 OpStore %6 %9 OpNoLine OpReturn diff --git a/tests/compiletests/ui/dis/ptr_write_method.stderr b/tests/compiletests/ui/dis/ptr_write_method.stderr index c042a20be7b..407c1008ceb 100644 --- a/tests/compiletests/ui/dis/ptr_write_method.stderr +++ b/tests/compiletests/ui/dis/ptr_write_method.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 37 %9 = OpLoad %10 %4 - OpLine %11 1939 40 + OpLine %11 1944 40 OpStore %6 %9 OpNoLine OpReturn From a9ef0e1a6a0f5afb46028393613749eff3815414 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Mon, 10 Aug 2026 12:45:45 +0200 Subject: [PATCH 06/12] update to nightly-2026-07-30 --- crates/rustc_codegen_spirv/build.rs | 4 +- crates/rustc_codegen_spirv/src/attr.rs | 8 +- .../src/builder/spirv_asm.rs | 228 ++++++++++-------- rust-toolchain.toml | 4 +- 4 files changed, 138 insertions(+), 106 deletions(-) diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index 1550d90a4a3..ba59d59fbe9 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -19,9 +19,9 @@ use std::{env, fs, mem}; /// `cargo publish`. We need to figure out a way to do this properly, but let's hardcode it for now :/ //const REQUIRED_RUST_TOOLCHAIN: &str = include_str!("../../rust-toolchain.toml"); const REQUIRED_RUST_TOOLCHAIN: &str = r#"[toolchain] -channel = "nightly-2026-07-19" +channel = "nightly-2026-07-30" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = eff8269f797067c30555e77f160ec84c0ed15cd9"#; +# commit_hash = 1a833e16546c2eb012758ddd499964fd8afee29e"#; fn rustc_output(arg: &str) -> Result> { let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".into()); diff --git a/crates/rustc_codegen_spirv/src/attr.rs b/crates/rustc_codegen_spirv/src/attr.rs index 4698aae0fa2..6fe22385eac 100644 --- a/crates/rustc_codegen_spirv/src/attr.rs +++ b/crates/rustc_codegen_spirv/src/attr.rs @@ -433,19 +433,19 @@ impl<'tcx> Visitor<'tcx> for CheckSpirvAttrVisitor<'tcx> { } fn visit_item(&mut self, item: &'tcx hir::Item<'tcx>) { - let target = Target::from_item(item); + let target = Target::from(item); self.check_spirv_attributes(item.hir_id(), target); intravisit::walk_item(self, item); } fn visit_generic_param(&mut self, generic_param: &'tcx hir::GenericParam<'tcx>) { - let target = Target::from_generic_param(generic_param); + let target = Target::from(generic_param); self.check_spirv_attributes(generic_param.hir_id, target); intravisit::walk_generic_param(self, generic_param); } fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { - let target = Target::from_trait_item(trait_item); + let target = Target::from(trait_item); self.check_spirv_attributes(trait_item.hir_id(), target); intravisit::walk_trait_item(self, trait_item); } @@ -461,7 +461,7 @@ impl<'tcx> Visitor<'tcx> for CheckSpirvAttrVisitor<'tcx> { } fn visit_foreign_item(&mut self, f_item: &'tcx hir::ForeignItem<'tcx>) { - let target = Target::from_foreign_item(f_item); + let target = Target::from(f_item); self.check_spirv_attributes(f_item.hir_id(), target); intravisit::walk_foreign_item(self, f_item); } diff --git a/crates/rustc_codegen_spirv/src/builder/spirv_asm.rs b/crates/rustc_codegen_spirv/src/builder/spirv_asm.rs index e83ca9f0ed4..86f380fa621 100644 --- a/crates/rustc_codegen_spirv/src/builder/spirv_asm.rs +++ b/crates/rustc_codegen_spirv/src/builder/spirv_asm.rs @@ -3,8 +3,10 @@ use crate::maybe_pqp_cg_ssa as rustc_codegen_ssa; use super::Builder; use crate::abi::ConvSpirvType; -use crate::builder_spirv::{SpirvValue, SpirvValueExt, SpirvValueKind}; +use crate::builder_spirv::{SpirvBlockCursor, SpirvValue, SpirvValueExt, SpirvValueKind}; use crate::codegen_cx::CodegenCx; +use crate::maybe_pqp_cg_ssa::mir::operand::OperandRef; +use crate::maybe_pqp_cg_ssa::traits::BackendTypes; use crate::spirv_type::SpirvType; use rspirv::dr; use rspirv::grammar::{LogicalOperand, OperandKind, OperandQuantifier, reflect}; @@ -17,11 +19,12 @@ use rustc_abi::{BackendRepr, Primitive}; use rustc_ast::ast::{InlineAsmOptions, InlineAsmTemplatePiece}; use rustc_codegen_ssa::mir::operand::OperandValue; use rustc_codegen_ssa::mir::place::PlaceRef; -use rustc_codegen_ssa::traits::{ - AsmBuilderMethods, BackendTypes, BuilderMethods, InlineAsmOperandRef, -}; +use rustc_codegen_ssa::traits::{AsmBuilderMethods, BuilderMethods, InlineAsmOperandRef}; use rustc_data_structures::fx::{FxHashMap, FxHashSet}; -use rustc_middle::{bug, ty::Instance}; +use rustc_middle::mir::interpret::Scalar; +use rustc_middle::ty::layout::LayoutOf; +use rustc_middle::{bug, span_bug, ty::Instance}; +use rustc_span::def_id::DefId; use rustc_span::{DUMMY_SP, Span}; use rustc_target::asm::{InlineAsmRegClass, InlineAsmRegOrRegClass, SpirVInlineAsmRegClass}; use smallvec::SmallVec; @@ -40,32 +43,80 @@ impl InstructionTable { } } -// HACK(eddyb) `InlineAsmOperandRef` lacks `#[derive(Clone)]` -fn inline_asm_operand_ref_clone<'tcx, B: BackendTypes + ?Sized>( - operand: &InlineAsmOperandRef<'tcx, B>, -) -> InlineAsmOperandRef<'tcx, B> { - use InlineAsmOperandRef::*; - - match operand { - &In { reg, value } => In { reg, value }, - &Out { reg, late, place } => Out { reg, late, place }, - &InOut { - reg, - late, - in_value, - out_place, - } => InOut { - reg, - late, - in_value, - out_place, - }, - Const { string } => Const { - string: string.clone(), - }, - &SymFn { instance } => SymFn { instance }, - &SymStatic { def_id } => SymStatic { def_id }, - &Label { label } => Label { label }, +#[expect( + dead_code, + reason = "keep asm structs like upstream with minimal changes" +)] +#[derive(Debug)] +pub enum SpvInlineAsmOperandRef<'tcx> { + In { + reg: InlineAsmRegOrRegClass, + value: OperandRef<'tcx, SpirvValue>, + }, + Out { + reg: InlineAsmRegOrRegClass, + late: bool, + place: Option>, + }, + InOut { + reg: InlineAsmRegOrRegClass, + late: bool, + in_value: OperandRef<'tcx, SpirvValue>, + out_place: Option>, + }, + Const { + string: String, + }, + SymThreadLocalStatic { + def_id: DefId, + }, + Label { + label: SpirvBlockCursor, + }, +} + +impl<'tcx> SpvInlineAsmOperandRef<'tcx> { + fn from + ?Sized>( + cx: &CodegenCx<'tcx>, + operand: &InlineAsmOperandRef<'tcx, B>, + span: Span, + ) -> Self { + match *operand { + InlineAsmOperandRef::In { reg, value } => Self::In { reg, value }, + InlineAsmOperandRef::Out { reg, late, place } => Self::Out { reg, late, place }, + InlineAsmOperandRef::InOut { + reg, + late, + in_value, + out_place, + } => Self::InOut { + reg, + late, + in_value, + out_place, + }, + InlineAsmOperandRef::Const { value, ty } => match value { + Scalar::Int(value) => { + let string = rustc_codegen_ssa::common::asm_const_to_str( + cx.tcx, + span, + value, + cx.layout_of(ty), + ); + Self::Const { string } + } + Scalar::Ptr(_, _) => { + span_bug!( + span, + "spirv can't handle `InlineAsmOperandRef::Const {{ value: Scalar::Ptr(_, _) }}`", + ) + } + }, + InlineAsmOperandRef::Label { label } => Self::Label { label }, + InlineAsmOperandRef::SymThreadLocalStatic { def_id } => { + Self::SymThreadLocalStatic { def_id } + } + } } } @@ -109,22 +160,24 @@ impl<'a, 'tcx> AsmBuilderMethods<'tcx> for Builder<'a, 'tcx> { // HACK(eddyb) get more accurate pointers types, for pointer operands, // from the Rust types available in their respective `OperandRef`s. - let mut operands: SmallVec<[_; 8]> = - operands.iter().map(inline_asm_operand_ref_clone).collect(); + let span = line_spans.first().copied().unwrap_or_default(); + let mut operands: SmallVec<[_; 8]> = operands + .iter() + .map(|operand| SpvInlineAsmOperandRef::from(self.cx, operand, span)) + .collect(); for operand in &mut operands { let (in_value, out_place) = match operand { - InlineAsmOperandRef::In { value, .. } => (Some(value), None), - InlineAsmOperandRef::InOut { + SpvInlineAsmOperandRef::In { value, .. } => (Some(value), None), + SpvInlineAsmOperandRef::InOut { in_value, out_place, .. } => (Some(in_value), out_place.as_mut()), - InlineAsmOperandRef::Out { place, .. } => (None, place.as_mut()), + SpvInlineAsmOperandRef::Out { place, .. } => (None, place.as_mut()), - InlineAsmOperandRef::Const { .. } - | InlineAsmOperandRef::SymFn { .. } - | InlineAsmOperandRef::SymStatic { .. } - | InlineAsmOperandRef::Label { .. } => (None, None), + SpvInlineAsmOperandRef::Const { .. } + | SpvInlineAsmOperandRef::Label { .. } + | SpvInlineAsmOperandRef::SymThreadLocalStatic { .. } => (None, None), }; if let Some(in_value) = in_value @@ -201,7 +254,9 @@ impl<'a, 'tcx> AsmBuilderMethods<'tcx> for Builder<'a, 'tcx> { Token::Typeof(&operands[operand_idx], span, kind); } None => match &operands[operand_idx] { - InlineAsmOperandRef::Const { string } => line.push(Token::Word(string)), + SpvInlineAsmOperandRef::Const { string } => { + line.push(Token::Word(string)); + } item => line.push(Token::Placeholder(item, span)), }, } @@ -213,7 +268,7 @@ impl<'a, 'tcx> AsmBuilderMethods<'tcx> for Builder<'a, 'tcx> { let mut defined_ids = FxHashSet::default(); let mut id_to_type_map = FxHashMap::default(); for operand in &operands { - if let InlineAsmOperandRef::In { reg: _, value } = operand { + if let SpvInlineAsmOperandRef::In { reg: _, value } = operand { let value = value.immediate(); id_to_type_map.insert(value.def(self), value.ty); } @@ -275,15 +330,11 @@ enum TypeofKind { Dereference, } -enum Token<'a, 'cx, 'tcx> { +enum Token<'a, 'tcx> { Word(&'a str), String(String), - Placeholder(&'a InlineAsmOperandRef<'tcx, Builder<'cx, 'tcx>>, Span), - Typeof( - &'a InlineAsmOperandRef<'tcx, Builder<'cx, 'tcx>>, - Span, - TypeofKind, - ), + Placeholder(&'a SpvInlineAsmOperandRef<'tcx>, Span), + Typeof(&'a SpvInlineAsmOperandRef<'tcx>, Span, TypeofKind), } enum OutRegister<'tcx> { @@ -297,7 +348,7 @@ enum AsmBlock { } impl<'cx, 'tcx> Builder<'cx, 'tcx> { - fn lex_word<'a>(&self, line: &mut std::str::Chars<'a>) -> Option> { + fn lex_word<'a>(&self, line: &mut std::str::Chars<'a>) -> Option> { loop { let start = line.as_str(); match line.next()? { @@ -512,7 +563,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { defined_ids: &mut FxHashSet, id_to_type_map: &mut FxHashMap, asm_block: &mut AsmBlock, - mut tokens: impl Iterator>, + mut tokens: impl Iterator>, ) where 'cx: 'a, 'tcx: 'a, @@ -601,7 +652,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { &mut self, id_map: &mut FxHashMap<&'a str, Word>, id_to_type_map: &FxHashMap, - mut tokens: impl Iterator>, + mut tokens: impl Iterator>, instruction: &mut dr::Instruction, ) where 'cx: 'a, @@ -909,7 +960,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { &mut self, id_map: &mut FxHashMap<&'a str, Word>, defined_ids: &mut FxHashSet, - token: Token<'a, 'cx, 'tcx>, + token: Token<'a, 'tcx>, ) -> Option> { match token { Token::Word(word) => { @@ -937,14 +988,14 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { None } Token::Placeholder(hole, span) => match hole { - InlineAsmOperandRef::In { reg, value: _ } => { + SpvInlineAsmOperandRef::In { reg, value: _ } => { self.check_reg(span, reg); self.tcx .dcx() .span_err(span, "in register cannot be assigned to"); None } - InlineAsmOperandRef::Out { + SpvInlineAsmOperandRef::Out { reg, late: _, place, @@ -957,7 +1008,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { None } } - InlineAsmOperandRef::InOut { + SpvInlineAsmOperandRef::InOut { reg, late: _, in_value: _, @@ -971,28 +1022,22 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { None } } - InlineAsmOperandRef::Const { string: _ } => { + SpvInlineAsmOperandRef::Const { .. } => { self.tcx .dcx() .span_err(span, "cannot write to const asm argument"); None } - InlineAsmOperandRef::SymFn { instance: _ } => { - self.tcx - .dcx() - .span_err(span, "cannot write to function asm argument"); - None - } - InlineAsmOperandRef::SymStatic { def_id: _ } => { + SpvInlineAsmOperandRef::Label { label: _ } => { self.tcx .dcx() - .span_err(span, "cannot write to static variable asm argument"); + .span_err(span, "cannot write to label asm argument"); None } - InlineAsmOperandRef::Label { label: _ } => { + SpvInlineAsmOperandRef::SymThreadLocalStatic { .. } => { self.tcx .dcx() - .span_err(span, "cannot write to label asm argument"); + .span_err(span, "cannot write to SymThreadLocalStatic asm argument"); None } }, @@ -1002,7 +1047,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { fn parse_id_in<'a>( &mut self, id_map: &mut FxHashMap<&'a str, Word>, - token: Token<'a, 'cx, 'tcx>, + token: Token<'a, 'tcx>, ) -> Option { match token { Token::Word(word) => { @@ -1018,7 +1063,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { None } Token::Typeof(hole, span, kind) => match hole { - InlineAsmOperandRef::In { reg, value } => { + SpvInlineAsmOperandRef::In { reg, value } => { self.check_reg(span, reg); let ty = value.immediate().ty; Some(match kind { @@ -1038,7 +1083,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { }, }) } - InlineAsmOperandRef::Out { + SpvInlineAsmOperandRef::Out { reg, late: _, place, @@ -1065,7 +1110,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { None } } - InlineAsmOperandRef::InOut { + SpvInlineAsmOperandRef::InOut { reg, late: _, in_value, @@ -1074,38 +1119,31 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { self.check_reg(span, reg); Some(in_value.immediate().ty) } - InlineAsmOperandRef::Const { string: _ } => { + SpvInlineAsmOperandRef::Const { .. } => { self.tcx .dcx() .span_err(span, "cannot take the type of a const asm argument"); None } - InlineAsmOperandRef::SymFn { instance: _ } => { + SpvInlineAsmOperandRef::Label { label: _ } => { self.tcx .dcx() - .span_err(span, "cannot take the type of a function asm argument"); - None - } - InlineAsmOperandRef::SymStatic { def_id: _ } => { - self.tcx.dcx().span_err( - span, - "cannot take the type of a static variable asm argument", - ); + .span_err(span, "cannot take the type of a label asm argument"); None } - InlineAsmOperandRef::Label { label: _ } => { + SpvInlineAsmOperandRef::SymThreadLocalStatic { .. } => { self.tcx .dcx() - .span_err(span, "cannot take the type of a label asm argument"); + .span_err(span, "cannot write to SymThreadLocalStatic asm argument"); None } }, Token::Placeholder(hole, span) => match hole { - InlineAsmOperandRef::In { reg, value } => { + SpvInlineAsmOperandRef::In { reg, value } => { self.check_reg(span, reg); Some(value.immediate().def(self)) } - InlineAsmOperandRef::Out { + SpvInlineAsmOperandRef::Out { reg, late: _, place: _, @@ -1116,7 +1154,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { .span_err(span, "out register cannot be used as a value"); None } - InlineAsmOperandRef::InOut { + SpvInlineAsmOperandRef::InOut { reg, late: _, in_value, @@ -1125,28 +1163,22 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { self.check_reg(span, reg); Some(in_value.immediate().def(self)) } - InlineAsmOperandRef::Const { string: _ } => { + SpvInlineAsmOperandRef::Const { .. } => { self.tcx .dcx() .span_err(span, "const asm argument not supported yet"); None } - InlineAsmOperandRef::SymFn { instance: _ } => { + SpvInlineAsmOperandRef::Label { label: _ } => { self.tcx .dcx() - .span_err(span, "function asm argument not supported yet"); - None - } - InlineAsmOperandRef::SymStatic { def_id: _ } => { - self.tcx - .dcx() - .span_err(span, "static variable asm argument not supported yet"); + .span_err(span, "label asm argument not supported yet"); None } - InlineAsmOperandRef::Label { label: _ } => { + SpvInlineAsmOperandRef::SymThreadLocalStatic { .. } => { self.tcx .dcx() - .span_err(span, "label asm argument not supported yet"); + .span_err(span, "cannot write to SymThreadLocalStatic asm argument"); None } }, @@ -1158,7 +1190,7 @@ impl<'cx, 'tcx> Builder<'cx, 'tcx> { id_map: &mut FxHashMap<&'a str, Word>, inst: &mut dr::Instruction, kind: OperandKind, - tokens: &mut impl Iterator>, + tokens: &mut impl Iterator>, ) -> bool where 'cx: 'a, diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 560c5bb4d99..73f32a8eb37 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] -channel = "nightly-2026-07-19" +channel = "nightly-2026-07-30" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = eff8269f797067c30555e77f160ec84c0ed15cd9 +# commit_hash = 1a833e16546c2eb012758ddd499964fd8afee29e # Whenever changing the nightly channel, update the commit hash above, and # change `REQUIRED_RUST_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` too. From 93808e5e3d03a7b4a389dcecabf444768abfcafb Mon Sep 17 00:00:00 2001 From: firestar99 Date: Thu, 6 Aug 2026 16:30:50 +0200 Subject: [PATCH 07/12] update to nightly-2026-08-06, requires build-dir-new-layout support --- crates/rustc_codegen_spirv/build.rs | 4 ++-- crates/rustc_codegen_spirv/src/abi.rs | 2 +- crates/rustc_codegen_spirv/src/lib.rs | 5 +++-- crates/rustc_codegen_spirv/src/linker/test.rs | 2 +- rust-toolchain.toml | 4 ++-- .../ui/arch/debug_printf_type_checking.stderr | 5 ++++- tests/compiletests/ui/dis/ptr_copy.normal.stderr | 8 ++++---- tests/compiletests/ui/dis/ptr_read.stderr | 2 +- tests/compiletests/ui/dis/ptr_read_method.stderr | 2 +- tests/compiletests/ui/dis/ptr_write.stderr | 2 +- tests/compiletests/ui/dis/ptr_write_method.stderr | 2 +- .../compiletests/ui/lang/core/intrinsics/black_box.stderr | 2 +- 12 files changed, 22 insertions(+), 18 deletions(-) diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index ba59d59fbe9..070f8682201 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -19,9 +19,9 @@ use std::{env, fs, mem}; /// `cargo publish`. We need to figure out a way to do this properly, but let's hardcode it for now :/ //const REQUIRED_RUST_TOOLCHAIN: &str = include_str!("../../rust-toolchain.toml"); const REQUIRED_RUST_TOOLCHAIN: &str = r#"[toolchain] -channel = "nightly-2026-07-30" +channel = "nightly-2026-08-06" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = 1a833e16546c2eb012758ddd499964fd8afee29e"#; +# commit_hash = 7608eb7b07eaf93f16d7cf5bcb2098eca87503df"#; fn rustc_output(arg: &str) -> Result> { let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".into()); diff --git a/crates/rustc_codegen_spirv/src/abi.rs b/crates/rustc_codegen_spirv/src/abi.rs index 0dafc0bf355..3cf1feabca8 100644 --- a/crates/rustc_codegen_spirv/src/abi.rs +++ b/crates/rustc_codegen_spirv/src/abi.rs @@ -444,7 +444,7 @@ impl<'tcx> ConvSpirvType<'tcx> for TyAndLayout<'tcx> { let elem_spirv = trans_scalar(cx, span, *self, element, Size::ZERO); SpirvType::Vector { element: elem_spirv, - count: count as u32, + count: count.as_u32(), size: self.size, align: self.align.abi, } diff --git a/crates/rustc_codegen_spirv/src/lib.rs b/crates/rustc_codegen_spirv/src/lib.rs index 9eb9fae4b6a..bbcf14e7f02 100644 --- a/crates/rustc_codegen_spirv/src/lib.rs +++ b/crates/rustc_codegen_spirv/src/lib.rs @@ -159,8 +159,8 @@ use rustc_middle::dep_graph::{WorkProduct, WorkProductMap}; use rustc_middle::mono::{MonoItem, MonoItemData}; use rustc_middle::ty::print::with_no_trimmed_paths; use rustc_middle::ty::{InstanceKind, TyCtxt}; -use rustc_session::Session; use rustc_session::config::{self, OutputFilenames, OutputType}; +use rustc_session::{IncrCompSession, Session}; use rustc_span::symbol::Symbol; use std::any::Any; use std::fs; @@ -255,13 +255,14 @@ impl CodegenBackend for SpirvCodegenBackend { &self, ongoing_codegen: Box, sess: &Session, + incr_comp_session: Option<&IncrCompSession>, _outputs: &OutputFilenames, crate_info: &CrateInfo, ) -> (CompiledModules, WorkProductMap) { ongoing_codegen .downcast::>() .expect("Expected OngoingCodegen, found Box") - .join(sess, crate_info) + .join(sess, incr_comp_session, crate_info) } fn link( diff --git a/crates/rustc_codegen_spirv/src/linker/test.rs b/crates/rustc_codegen_spirv/src/linker/test.rs index d1560409b21..e06a861e3c3 100644 --- a/crates/rustc_codegen_spirv/src/linker/test.rs +++ b/crates/rustc_codegen_spirv/src/linker/test.rs @@ -98,7 +98,7 @@ fn link_with_linker_opts( // is really a silent unwinding device, that should be treated the same as // `Err(ErrorGuaranteed)` returns from `link`). rustc_driver::catch_fatal_errors(|| { - rustc_data_structures::jobserver::initialize_checked(|err| { + rustc_data_structures::jobserver::initialize(99, |err| { unreachable!("jobserver error: {err}"); }); diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 73f32a8eb37..f5f633ab355 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] -channel = "nightly-2026-07-30" +channel = "nightly-2026-08-06" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = 1a833e16546c2eb012758ddd499964fd8afee29e +# commit_hash = 7608eb7b07eaf93f16d7cf5bcb2098eca87503df # Whenever changing the nightly channel, update the commit hash above, and # change `REQUIRED_RUST_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` too. diff --git a/tests/compiletests/ui/arch/debug_printf_type_checking.stderr b/tests/compiletests/ui/arch/debug_printf_type_checking.stderr index 0e6cd5e4546..4def80e80af 100644 --- a/tests/compiletests/ui/arch/debug_printf_type_checking.stderr +++ b/tests/compiletests/ui/arch/debug_printf_type_checking.stderr @@ -112,7 +112,10 @@ error[E0277]: the trait bound `{float}: spirv_std::Vector` is not satisf --> $DIR/debug_printf_type_checking.rs:24:9 | LL | debug_printf!("%v2f", 11.0); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `spirv_std::Vector` is not implemented for `{float}` + | ^^^^^^^^^^^^^^^^^^^^^^----^ + | | | + | | `{float}` doesn't satisfy the trait bound + | the trait `spirv_std::Vector` is not implemented for `{float}` | help: the trait `spirv_std::Vector` is implemented for `Vec2` --> $SPIRV_STD_SRC/vector.rs:71:12 diff --git a/tests/compiletests/ui/dis/ptr_copy.normal.stderr b/tests/compiletests/ui/dis/ptr_copy.normal.stderr index f012f7b74e7..f94204759ab 100644 --- a/tests/compiletests/ui/dis/ptr_copy.normal.stderr +++ b/tests/compiletests/ui/dis/ptr_copy.normal.stderr @@ -1,11 +1,11 @@ error: cannot memcpy dynamically sized data - --> <$CORE_SRC/ptr/mod.rs>:645:9 + --> <$CORE_SRC/ptr/mod.rs>:664:9 | LL | crate::intrinsics::copy(src, dst, count) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: used from within `core::ptr::copy::` - --> <$CORE_SRC/ptr/mod.rs>:630:21 + --> <$CORE_SRC/ptr/mod.rs>:649:21 | LL | pub const unsafe fn copy(src: *const T, dst: *mut T, count: usize) { | ^^^^ @@ -28,7 +28,7 @@ LL | pub fn main(i: f32, o: &mut f32) { error: cannot cast between pointer types from `*f32` to `*struct () { }` - --> <$CORE_SRC/ptr/mod.rs>:633:9 + --> <$CORE_SRC/ptr/mod.rs>:652:9 | LL | / ub_checks::assert_unsafe_precondition!( LL | | check_language_ub, @@ -39,7 +39,7 @@ LL | | ); | |_________^ | note: used from within `core::ptr::copy::` - --> <$CORE_SRC/ptr/mod.rs>:633:9 + --> <$CORE_SRC/ptr/mod.rs>:652:9 | LL | / ub_checks::assert_unsafe_precondition!( LL | | check_language_ub, diff --git a/tests/compiletests/ui/dis/ptr_read.stderr b/tests/compiletests/ui/dis/ptr_read.stderr index 3676866746b..0a6e73aa798 100644 --- a/tests/compiletests/ui/dis/ptr_read.stderr +++ b/tests/compiletests/ui/dis/ptr_read.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel - OpLine %8 1736 8 + OpLine %8 1755 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/compiletests/ui/dis/ptr_read_method.stderr b/tests/compiletests/ui/dis/ptr_read_method.stderr index 3676866746b..0a6e73aa798 100644 --- a/tests/compiletests/ui/dis/ptr_read_method.stderr +++ b/tests/compiletests/ui/dis/ptr_read_method.stderr @@ -2,7 +2,7 @@ %4 = OpFunctionParameter %5 %6 = OpFunctionParameter %5 %7 = OpLabel - OpLine %8 1736 8 + OpLine %8 1755 8 %9 = OpLoad %10 %4 OpLine %11 7 13 OpStore %6 %9 diff --git a/tests/compiletests/ui/dis/ptr_write.stderr b/tests/compiletests/ui/dis/ptr_write.stderr index 493a413de6e..6c0a63b4546 100644 --- a/tests/compiletests/ui/dis/ptr_write.stderr +++ b/tests/compiletests/ui/dis/ptr_write.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 35 %9 = OpLoad %10 %4 - OpLine %11 1944 40 + OpLine %11 1963 40 OpStore %6 %9 OpNoLine OpReturn diff --git a/tests/compiletests/ui/dis/ptr_write_method.stderr b/tests/compiletests/ui/dis/ptr_write_method.stderr index 407c1008ceb..5a09df7d418 100644 --- a/tests/compiletests/ui/dis/ptr_write_method.stderr +++ b/tests/compiletests/ui/dis/ptr_write_method.stderr @@ -4,7 +4,7 @@ %7 = OpLabel OpLine %8 7 37 %9 = OpLoad %10 %4 - OpLine %11 1944 40 + OpLine %11 1963 40 OpStore %6 %9 OpNoLine OpReturn diff --git a/tests/compiletests/ui/lang/core/intrinsics/black_box.stderr b/tests/compiletests/ui/lang/core/intrinsics/black_box.stderr index af7314f9f1c..34d9e7d8420 100644 --- a/tests/compiletests/ui/lang/core/intrinsics/black_box.stderr +++ b/tests/compiletests/ui/lang/core/intrinsics/black_box.stderr @@ -8,7 +8,7 @@ warning: black_box intrinsic does not prevent optimization in Rust GPU %10 = OpIAdd %7 %11 %12 OpLine %5 47 8 %13 = OpBitcast %7 %14 - OpLine %15 1245 17 + OpLine %15 1284 17 %16 = OpBitcast %7 %17 OpLine %5 46 4 %18 = OpCompositeConstruct %2 %13 %16 %19 %20 %21 %22 %6 %23 %10 %24 %24 %24 From ac6eb2c90b0f26b211b9f227d38a1540500ca575 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Tue, 11 Aug 2026 13:11:41 +0200 Subject: [PATCH 08/12] fix example-runner-wgpu on android and wasm --- examples/runners/wgpu/build.rs | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/examples/runners/wgpu/build.rs b/examples/runners/wgpu/build.rs index f01def125ed..748cd201dbe 100644 --- a/examples/runners/wgpu/build.rs +++ b/examples/runners/wgpu/build.rs @@ -1,6 +1,5 @@ use std::env; use std::error::Error; -use std::path::PathBuf; fn main() -> Result<(), Box> { let target_os = env::var("CARGO_CFG_TARGET_OS")?; @@ -12,27 +11,8 @@ fn main() -> Result<(), Box> { if target_os != "android" && target_arch != "wasm32" { return Ok(()); } - let profile = env::var("PROFILE").unwrap(); - let mut dir = PathBuf::from(env::var_os("OUT_DIR").unwrap()); - // Strip `$profile/build/*/out`. - let ok = dir.ends_with("out") - && dir.pop() - && dir.pop() - && dir.ends_with("build") - && dir.pop() - && dir.ends_with(profile) - && dir.pop(); - assert!(ok); - let dir = dir.join("example-runner-wgpu-builder"); let status = std::process::Command::new("cargo") - .args([ - "run", - "--release", - "-p", - "example-runner-wgpu-builder", - "--target-dir", - ]) - .arg(dir) + .args(["run", "--release", "-p", "example-runner-wgpu-builder"]) .env_remove("CARGO_ENCODED_RUSTFLAGS") .stderr(std::process::Stdio::inherit()) .stdout(std::process::Stdio::inherit()) From b4f4ece7bdd15d2be250684e84b1f781463c82e5 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Mon, 14 Sep 2026 01:20:51 +0200 Subject: [PATCH 09/12] fixup compiletests emitting invalid spv --- tests/compiletests/ui/lang/abi/transparent_array.rs | 2 +- tests/compiletests/ui/lang/abi/transparent_array.stderr | 2 +- tests/compiletests/ui/lang/abi/transparent_nested.rs | 2 +- tests/compiletests/ui/lang/abi/transparent_nested.stderr | 2 +- tests/compiletests/ui/lang/abi/transparent_u32.rs | 2 +- tests/compiletests/ui/lang/abi/transparent_u32.stderr | 2 +- tests/compiletests/ui/lang/abi/transparent_vec.rs | 2 +- tests/compiletests/ui/lang/abi/transparent_vec.stderr | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/compiletests/ui/lang/abi/transparent_array.rs b/tests/compiletests/ui/lang/abi/transparent_array.rs index 1b129c942e6..76d43c8ba44 100644 --- a/tests/compiletests/ui/lang/abi/transparent_array.rs +++ b/tests/compiletests/ui/lang/abi/transparent_array.rs @@ -23,7 +23,7 @@ pub struct A([u32; 3]); pub struct AT([u32; 3]); #[spirv(vertex)] -pub fn main(a: &mut A, at: &mut AT, #[spirv(local_invocation_index)] tid: u32) { +pub fn main(a: &mut A, at: &mut AT, #[spirv(vertex_index)] tid: u32) { *a = A([tid, 1, 2]); a.0 = [tid, 1, 2]; a.0[2] += 4; diff --git a/tests/compiletests/ui/lang/abi/transparent_array.stderr b/tests/compiletests/ui/lang/abi/transparent_array.stderr index 5a814ba069a..d3e241612ea 100644 --- a/tests/compiletests/ui/lang/abi/transparent_array.stderr +++ b/tests/compiletests/ui/lang/abi/transparent_array.stderr @@ -8,7 +8,7 @@ OpName %AT "AT" OpName %a "a" OpName %at "at" - OpDecorate %tid BuiltIn LocalInvocationIndex + OpDecorate %tid BuiltIn VertexIndex OpDecorate %AT ArrayStride 4 OpDecorate %a Location 0 OpDecorate %at Location 3 diff --git a/tests/compiletests/ui/lang/abi/transparent_nested.rs b/tests/compiletests/ui/lang/abi/transparent_nested.rs index fdd96fda213..c838d8f5748 100644 --- a/tests/compiletests/ui/lang/abi/transparent_nested.rs +++ b/tests/compiletests/ui/lang/abi/transparent_nested.rs @@ -33,7 +33,7 @@ pub struct AT(UVec3); pub struct BT(AT); #[spirv(vertex)] -pub fn main(a: &mut B, at: &mut BT, #[spirv(local_invocation_index)] tid: u32) { +pub fn main(a: &mut B, at: &mut BT, #[spirv(vertex_index)] tid: u32) { *a = B(A(UVec3::new(tid, 1, 2))); a.0.0.y = tid + 1; a.0.0.x += 4; diff --git a/tests/compiletests/ui/lang/abi/transparent_nested.stderr b/tests/compiletests/ui/lang/abi/transparent_nested.stderr index cee72e7fcd0..3129823bf44 100644 --- a/tests/compiletests/ui/lang/abi/transparent_nested.stderr +++ b/tests/compiletests/ui/lang/abi/transparent_nested.stderr @@ -13,7 +13,7 @@ OpMemberName %B 0 "0" OpName %a "a" OpName %at "at" - OpDecorate %tid BuiltIn LocalInvocationIndex + OpDecorate %tid BuiltIn VertexIndex OpMemberDecorate %A 0 Offset 0 OpMemberDecorate %B 0 Offset 0 OpDecorate %a Location 0 diff --git a/tests/compiletests/ui/lang/abi/transparent_u32.rs b/tests/compiletests/ui/lang/abi/transparent_u32.rs index 5518f64da25..c23961c8fd0 100644 --- a/tests/compiletests/ui/lang/abi/transparent_u32.rs +++ b/tests/compiletests/ui/lang/abi/transparent_u32.rs @@ -25,7 +25,7 @@ pub struct A(u32); pub struct AT(u32); #[spirv(vertex)] -pub fn main(a: &mut A, at: &mut AT, #[spirv(local_invocation_index)] tid: u32) { +pub fn main(a: &mut A, at: &mut AT, #[spirv(vertex_index)] tid: u32) { *a = A(tid); a.0 = tid + 1; a.0 += 4; diff --git a/tests/compiletests/ui/lang/abi/transparent_u32.stderr b/tests/compiletests/ui/lang/abi/transparent_u32.stderr index cb5f2b66afa..17337a63e45 100644 --- a/tests/compiletests/ui/lang/abi/transparent_u32.stderr +++ b/tests/compiletests/ui/lang/abi/transparent_u32.stderr @@ -6,7 +6,7 @@ OpName %tid "tid" OpName %a "a" OpName %at "at" - OpDecorate %tid BuiltIn LocalInvocationIndex + OpDecorate %tid BuiltIn VertexIndex OpDecorate %a Location 0 OpDecorate %at Location 1 %u32 = OpTypeInt 32 0 diff --git a/tests/compiletests/ui/lang/abi/transparent_vec.rs b/tests/compiletests/ui/lang/abi/transparent_vec.rs index fb8691dfb25..597040a41fd 100644 --- a/tests/compiletests/ui/lang/abi/transparent_vec.rs +++ b/tests/compiletests/ui/lang/abi/transparent_vec.rs @@ -25,7 +25,7 @@ pub struct A(UVec3); pub struct AT(UVec3); #[spirv(vertex)] -pub fn main(a: &mut A, at: &mut AT, #[spirv(local_invocation_index)] tid: u32) { +pub fn main(a: &mut A, at: &mut AT, #[spirv(vertex_index)] tid: u32) { *a = A(UVec3::new(tid, 1, 2)); a.0 = UVec3::new(tid, 1, 3); a.0.y += 10; diff --git a/tests/compiletests/ui/lang/abi/transparent_vec.stderr b/tests/compiletests/ui/lang/abi/transparent_vec.stderr index f00d00206b8..60e052225d7 100644 --- a/tests/compiletests/ui/lang/abi/transparent_vec.stderr +++ b/tests/compiletests/ui/lang/abi/transparent_vec.stderr @@ -7,7 +7,7 @@ OpName %tid "tid" OpName %a "a" OpName %at "at" - OpDecorate %tid BuiltIn LocalInvocationIndex + OpDecorate %tid BuiltIn VertexIndex OpDecorate %a Location 0 OpDecorate %at Location 1 %u32 = OpTypeInt 32 0 From 1637b6c3ef0956b49b342f78f6d1e458db7ad2db Mon Sep 17 00:00:00 2001 From: firestar99 Date: Mon, 14 Sep 2026 01:20:51 +0200 Subject: [PATCH 10/12] fixup memset_fill_u128 --- crates/rustc_codegen_spirv/src/builder/builder_methods.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs index ab94b5217a0..364c8faec54 100644 --- a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs +++ b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs @@ -310,7 +310,7 @@ fn memset_fill_u64(b: u8) -> u64 { fn memset_fill_u128(b: u8) -> u128 { let b64 = memset_fill_u64(b) as u128; - b64 | b64 >> 64 + b64 | b64 << 64 } fn memset_dynamic_scalar( @@ -484,6 +484,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { 16 => memset_dynamic_scalar(self, fill_var, 2, false), 32 => memset_dynamic_scalar(self, fill_var, 4, false), 64 => memset_dynamic_scalar(self, fill_var, 8, false), + 128 => memset_dynamic_scalar(self, fill_var, 16, false), _ => self.fatal(format!( "memset on integer width {width} not implemented yet" )), From 676fa98e4dc10a218dd7a53f048a5d1f07b98ea4 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Mon, 14 Sep 2026 01:02:53 +0200 Subject: [PATCH 11/12] update to nightly-2026-08-15 --- crates/rustc_codegen_spirv/build.rs | 4 ++-- crates/rustc_codegen_spirv/src/abi.rs | 11 ++++++++++- crates/rustc_codegen_spirv/src/codegen_cx/mod.rs | 2 +- crates/rustc_codegen_spirv/src/lib.rs | 9 ++------- rust-toolchain.toml | 4 ++-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/crates/rustc_codegen_spirv/build.rs b/crates/rustc_codegen_spirv/build.rs index 070f8682201..ff2fa7abf8e 100644 --- a/crates/rustc_codegen_spirv/build.rs +++ b/crates/rustc_codegen_spirv/build.rs @@ -19,9 +19,9 @@ use std::{env, fs, mem}; /// `cargo publish`. We need to figure out a way to do this properly, but let's hardcode it for now :/ //const REQUIRED_RUST_TOOLCHAIN: &str = include_str!("../../rust-toolchain.toml"); const REQUIRED_RUST_TOOLCHAIN: &str = r#"[toolchain] -channel = "nightly-2026-08-06" +channel = "nightly-2026-08-15" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = 7608eb7b07eaf93f16d7cf5bcb2098eca87503df"#; +# commit_hash = d453bdd8f092d099bc336f0bda4163f809ad18e0"#; fn rustc_output(arg: &str) -> Result> { let rustc = env::var("RUSTC").unwrap_or_else(|_| "rustc".into()); diff --git a/crates/rustc_codegen_spirv/src/abi.rs b/crates/rustc_codegen_spirv/src/abi.rs index 3cf1feabca8..22ca4e314ac 100644 --- a/crates/rustc_codegen_spirv/src/abi.rs +++ b/crates/rustc_codegen_spirv/src/abi.rs @@ -90,7 +90,16 @@ pub(crate) fn provide(providers: &mut Providers) { let mut arg = ArgAbi::new(arg.layout, |_, _| ArgAttributes::new()); // FIXME: this is bad! https://github.com/rust-lang/rust/issues/115666 // - arg.make_direct_deprecated(); + // replaces removed `arg.make_direct_deprecated();` + arg.mode = if let PassMode::Indirect { .. } = arg.mode { + PassMode::Direct(ArgAttributes::new()) + } else if arg.layout.is_zst() { + PassMode::Ignore + } else if let PassMode::Ignore | PassMode::Direct(..) | PassMode::Pair(..) = arg.mode { + arg.mode + } else { + panic!("Tried to make {:?} direct", arg.mode) + }; // Avoid pointlessly passing ZSTs, just like the official Rust ABI. if arg.layout.is_zst() { diff --git a/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs b/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs index 236bc5f4adf..577889bce69 100644 --- a/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs +++ b/crates/rustc_codegen_spirv/src/codegen_cx/mod.rs @@ -205,7 +205,7 @@ impl<'tcx> CodegenCx<'tcx> { let mut feature_names = tcx .sess - .target_features + .internal_target_features .iter() .map(|s| s.as_str()) .collect::>(); diff --git a/crates/rustc_codegen_spirv/src/lib.rs b/crates/rustc_codegen_spirv/src/lib.rs index bbcf14e7f02..3e77dbc81c1 100644 --- a/crates/rustc_codegen_spirv/src/lib.rs +++ b/crates/rustc_codegen_spirv/src/lib.rs @@ -212,14 +212,9 @@ impl CodegenBackend for SpirvCodegenBackend { .map(Symbol::intern) .collect(); - // HACK(eddyb) this should be a superset of `target_features`, - // which *additionally* also includes unstable target features, - // but there is no reason to make a distinction for SPIR-V ones. - let unstable_target_features = target_features.clone(); - TargetConfig { - target_features, - unstable_target_features, + // There is no stable/unstable distinction for SPIR-V target features. + internal_target_features: target_features.into_iter().collect(), // FIXME(eddyb) support and/or emulate `f16` and `f128`. has_reliable_f16: false, diff --git a/rust-toolchain.toml b/rust-toolchain.toml index f5f633ab355..7fe8bbc1f04 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,7 +1,7 @@ [toolchain] -channel = "nightly-2026-08-06" +channel = "nightly-2026-08-15" components = ["rust-src", "rustc-dev", "llvm-tools"] -# commit_hash = 7608eb7b07eaf93f16d7cf5bcb2098eca87503df +# commit_hash = d453bdd8f092d099bc336f0bda4163f809ad18e0 # Whenever changing the nightly channel, update the commit hash above, and # change `REQUIRED_RUST_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` too. From 4b6c9198e82c376d0b1b69569c5f57742bf72dc6 Mon Sep 17 00:00:00 2001 From: firestar99 Date: Mon, 14 Sep 2026 02:24:37 +0200 Subject: [PATCH 12/12] cargo update to fix clippy --- Cargo.lock | 578 ++++++++++++++++++++++++++--------------------------- 1 file changed, 289 insertions(+), 289 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d42d6f26b2a..7ed047bd348 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -69,7 +69,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.13.1", + "bitflags 2.13.2", "cc", "jni", "libc", @@ -78,7 +78,7 @@ dependencies = [ "ndk-context", "ndk-sys", "num_enum", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -106,9 +106,9 @@ dependencies = [ [[package]] name = "android_system_properties" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" dependencies = [ "libc", ] @@ -289,9 +289,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.13.1" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" dependencies = [ "bytemuck", "serde_core", @@ -364,13 +364,13 @@ dependencies = [ [[package]] name = "bytemuck_derive" -version = "1.11.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65693059b6b9c588b9f62fed1cedbf0a8b805631457ea162d68f0de186f3de5" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] @@ -397,7 +397,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "log", "polling", "rustix 0.38.44", @@ -463,9 +463,9 @@ dependencies = [ "semver", "serde", "tempfile", - "thiserror 2.0.19", + "thiserror 2.0.20", "time", - "toml 1.1.4+spec-1.1.0", + "toml 1.1.6+spec-1.1.0", "walkdir", ] @@ -537,7 +537,7 @@ dependencies = [ "serde", "serde-untagged", "serde-value", - "thiserror 2.0.19", + "thiserror 2.0.20", "toml 0.8.23", "unicode-xid", "url", @@ -554,7 +554,7 @@ dependencies = [ "serde", "serde-untagged", "serde-value", - "thiserror 2.0.19", + "thiserror 2.0.20", "toml 0.9.12+spec-1.1.0", "unicode-ident", "url", @@ -573,14 +573,14 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] name = "cc" -version = "1.4.0" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" dependencies = [ "find-msvc-tools", "jobserver", @@ -615,9 +615,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.5" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301b56658598e48f3648647ac6fc887be7e7108eddfa4e9b63fcf3ec58c0cadf" +checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca" dependencies = [ "clap_builder", "clap_derive", @@ -625,9 +625,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.5" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a65403d1a1bd28f7dc68eb8506e8874808ee5eecb59298de588e2e1407a078" +checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889" dependencies = [ "anstream", "anstyle", @@ -645,7 +645,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.5", ] [[package]] @@ -703,9 +703,9 @@ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "combine" -version = "4.6.7" +version = "4.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" dependencies = [ "bytes", "memchr", @@ -770,9 +770,9 @@ dependencies = [ [[package]] name = "console" -version = "0.16.4" +version = "0.16.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" +checksum = "e96a4956774c13c126a8b5af4daa79384f4d826534c95a02d76afb39e2ab64e3" dependencies = [ "encode_unicode", "libc", @@ -877,18 +877,18 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -896,18 +896,18 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.20" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crossterm" @@ -915,7 +915,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "crossterm_winapi", "document-features", "mio", @@ -1029,7 +1029,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" dependencies = [ - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -1119,7 +1119,7 @@ dependencies = [ "serde_json", "tabled", "tempfile", - "thiserror 2.0.19", + "thiserror 2.0.20", "toml 0.9.12+spec-1.1.0", "tracing", "tracing-subscriber", @@ -1216,7 +1216,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "objc2 0.6.4", ] @@ -1228,7 +1228,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.5", ] [[package]] @@ -1275,9 +1275,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "either" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "elsa" @@ -1460,9 +1460,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" [[package]] name = "fixedbitset" @@ -1472,12 +1472,13 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" dependencies = [ "crc32fast", "miniz_oxide", + "zlib-rs", ] [[package]] @@ -1516,7 +1517,7 @@ checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.5", ] [[package]] @@ -1568,9 +1569,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", @@ -1583,9 +1584,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", "futures-sink", @@ -1593,15 +1594,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-executor" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" dependencies = [ "futures-core", "futures-task", @@ -1610,38 +1611,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-macro" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] name = "futures-sink" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-channel", "futures-core", @@ -1745,7 +1746,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddddbf932745a6be37109b6112d3ee09696106f848449069d3a57bba937ab82e" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "libc", "libgit2-sys", "log", @@ -1779,7 +1780,7 @@ dependencies = [ "gix-ref", "gix-sec", "smallvec", - "thiserror 2.0.19", + "thiserror 2.0.20", "unicode-bom", ] @@ -1789,11 +1790,11 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed42168329552f6c2e5df09665c104199d45d84bedb53683738a49b57fe1baab" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bstr", "gix-path", "libc", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -1842,7 +1843,7 @@ dependencies = [ "gix-features", "gix-path", "gix-utils", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -1851,7 +1852,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1fcb8ef5b16bcf874abe9b68d8abb3c0493c876d367ab824151f30a0f3f3756" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bstr", "gix-features", "gix-path", @@ -1866,7 +1867,7 @@ dependencies = [ "faster-hex", "gix-features", "sha1-checked", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -1888,7 +1889,7 @@ checksum = "65c9dedd9e90b0d47624d2ed241d394e09294118364e87b9b7e5f1fe755f3c2c" dependencies = [ "gix-tempfile", "gix-utils", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -1907,19 +1908,19 @@ dependencies = [ "gix-validate", "itoa", "smallvec", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] name = "gix-path" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b075e730586bba7341304d6fc1b4efc1d10cf64532622521c0e07f30e661046" +checksum = "38fc6f029ea67de83cbcbd33fd98c05a48360d2932b39d9fdacbc6eae802d475" dependencies = [ "bstr", "gix-trace", "gix-validate", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -1939,7 +1940,7 @@ dependencies = [ "gix-utils", "gix-validate", "memmap2", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -1948,7 +1949,7 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af4fe6c152c1d50aea36f299825702cd37e303307832fec1d0fdd5844e47ce2f" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "gix-path", "libc", "windows-sys 0.61.2", @@ -2035,9 +2036,9 @@ dependencies = [ [[package]] name = "glam" -version = "0.33.3" +version = "0.33.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7360bd2cd76e0cd9032d42cf2922155cecea2685b0cfa4630c3246df030bcfd6" +checksum = "e762b9b188634fc508d4ec54b62ea3d352c43fd431d18d05d46f559f217f4725" dependencies = [ "bytemuck", "libm", @@ -2087,7 +2088,7 @@ dependencies = [ "hashbrown 0.16.1", "log", "presser", - "thiserror 2.0.19", + "thiserror 2.0.20", "windows", ] @@ -2163,9 +2164,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" [[package]] name = "home" @@ -2202,9 +2203,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", @@ -2216,9 +2217,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -2229,9 +2230,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -2243,16 +2244,17 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -2263,15 +2265,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" dependencies = [ "displaydoc", "icu_locale_core", @@ -2336,9 +2338,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.0" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", "hashbrown 0.17.1", @@ -2361,11 +2363,11 @@ dependencies = [ [[package]] name = "inotify" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "153be1941a183ec9ccd095ddbe17a8b8d435ef6c76e9e02451b933c3999af2c8" +checksum = "4cc00ea907cab49550b7da656f80ebb97be1b997d931fbcd28d39734e17ce592" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "inotify-sys", "libc", ] @@ -2429,9 +2431,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.35" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" +checksum = "0ab1baf72f08796de0260609515130699b890ac25f30e610ad894bc5856cafdb" dependencies = [ "defmt", "jiff-core", @@ -2446,18 +2448,19 @@ dependencies = [ [[package]] name = "jiff-core" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +checksum = "5e52fe76043ccecc9005d2305ebaadf7d7fc0cc89ca6baa10a94d6bc68c7128c" dependencies = [ "defmt", + "log", ] [[package]] name = "jiff-static" -version = "0.2.35" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" +checksum = "378268a1116ad67ae6228701118ac9f491d78fda38a40a1f1a9e1348de6f7212" dependencies = [ "jiff-core", "proc-macro2", @@ -2492,7 +2495,7 @@ dependencies = [ "jni-sys 0.4.1", "log", "simd_cesu8", - "thiserror 2.0.19", + "thiserror 2.0.20", "walkdir", "windows-link", ] @@ -2550,9 +2553,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.103" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" dependencies = [ "cfg-if", "futures-util", @@ -2592,7 +2595,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "libc", ] @@ -2662,21 +2665,21 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.19" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2026a5056764a10b2bf5d56488cba40da507f5493a6a429340e2004d9ed085fa" +checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "libc", "plain", - "redox_syscall 0.9.1", + "redox_syscall 0.9.4", ] [[package]] name = "libssh2-sys" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c04141a07bb0c0bc461cb657808764de571702a59bc5c726c400ac9a7625e3ab" +checksum = "0f5eb74291e8691cab524a01274a1b1e7742b1a94f29d8b101d8aadc8372c1cd" dependencies = [ "cc", "libc", @@ -2778,9 +2781,9 @@ dependencies = [ [[package]] name = "litemap" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "litrs" @@ -2799,9 +2802,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "longest-increasing-subsequence" @@ -2882,9 +2885,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.9" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" dependencies = [ "adler2", "simd-adler32", @@ -2892,9 +2895,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" dependencies = [ "libc", "log", @@ -2934,7 +2937,7 @@ checksum = "b2bf919621e7975acb27d881bae2fb993e0d45c8e0446e85e6272971e00dc8df" dependencies = [ "arrayvec", "bit-set 0.9.1", - "bitflags 2.13.1", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "codespan-reporting", @@ -2948,18 +2951,18 @@ dependencies = [ "petgraph", "rustc-hash 1.1.0", "spirv", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] name = "naga" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23bf0a141a9ab6f07dbb492db53245e464bc9db42f407772d9ae03d83a2c1033" +checksum = "a616d2fb8c89516ac2723a581f69d6c18576046bed761bd6b305e5618e6ae130" dependencies = [ "arrayvec", "bit-set 0.10.0", - "bitflags 2.13.1", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "codespan-reporting", @@ -2974,20 +2977,20 @@ dependencies = [ "petgraph", "rustc-hash 1.1.0", "spirv", - "thiserror 2.0.19", + "thiserror 2.0.20", "unicode-ident", ] [[package]] name = "naga-types" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658200ddc25c6c7b860747516d132d1b284c0fafb7a380233acee9a72fb30e11" +checksum = "590afbf58a6f4f62873cd5cff4468061844bafa1cdf399cc954537c22d768d49" dependencies = [ "hashbrown 0.17.1", "indexmap", "rustc-hash 1.1.0", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -3005,7 +3008,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "jni-sys 0.3.1", "log", "ndk-sys", @@ -3048,7 +3051,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "libc", @@ -3069,7 +3072,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "fsevent-sys", "inotify", "kqueue", @@ -3087,7 +3090,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -3187,7 +3190,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -3203,7 +3206,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -3227,7 +3230,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -3239,7 +3242,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "dispatch2", "objc2 0.6.4", ] @@ -3292,7 +3295,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "dispatch", "libc", @@ -3305,7 +3308,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "objc2 0.6.4", "objc2-core-foundation", ] @@ -3316,7 +3319,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "objc2 0.6.4", "objc2-core-foundation", ] @@ -3339,7 +3342,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -3351,7 +3354,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "objc2 0.6.4", "objc2-foundation 0.3.2", @@ -3363,7 +3366,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -3376,7 +3379,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "objc2 0.6.4", "objc2-core-foundation", "objc2-core-graphics", @@ -3400,7 +3403,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-cloud-kit", @@ -3432,7 +3435,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", @@ -3527,9 +3530,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "5.3.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" +checksum = "8c7c9e0d9b23589f26070720bac724174bfec1083e82f7854cdd0267518343c0" dependencies = [ "num-traits", ] @@ -3591,9 +3594,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a07a60cc7a4d00c91f95c685609d1d2f79050e6804b70ebedd7650f0b839bcf" +checksum = "6d45aeb61b4bf818e12d4205f2466f8c4748f85f4fce0146d1c03d69d753f0ad" dependencies = [ "memchr", "ucd-trie", @@ -3601,9 +3604,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a83744a5c8455b8b3e0dc5031362780a347c878bdd11584d1a8984228cc88d" +checksum = "89cc5a242e25ed4e7704d0be240f2cfbe20a8c27e7e252d94835be93d92dc39f" dependencies = [ "pest", "pest_generator", @@ -3611,9 +3614,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd3451aa3de60d4b9a1e736885e4dea6b31617598026f12256ad566d63304a" +checksum = "7abf21475cc3820fe4b2ca2dc2142902f67a02189f3b5b3a229f4febc01a43e5" dependencies = [ "pest", "pest_meta", @@ -3624,9 +3627,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d3a0849e241d7dfce834c83b1c5edc8622009e8dd51a12ba1927c32f05496" +checksum = "adba4db388f687393c18c51348d44a41d870ca9df71a2c98172ea3035dc6936e" dependencies = [ "pest", ] @@ -3676,9 +3679,9 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "plain" @@ -3702,24 +3705,24 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" [[package]] name = "portable-atomic-util" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" dependencies = [ "portable-atomic", ] [[package]] name = "potential_utf" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ "zerovec", ] @@ -3761,7 +3764,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.13+spec-1.1.0", + "toml_edit 0.25.15+spec-1.1.0", ] [[package]] @@ -3833,9 +3836,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" dependencies = [ "libc", "rand_chacha", @@ -3944,16 +3947,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] name = "redox_syscall" -version = "0.9.1" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07507be7b4a5f9f26eeb41eeaebb1f5a7ff29dfb29739facc21d35bf8b11c21e" +checksum = "737970939a87c6fa31e7acad13307bccbb017a073b695b6089a2c484f929e20e" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -3975,7 +3978,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.17", "libredox", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -4056,7 +4059,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd4dd0f8c36625202a4ba553c416c19b719947cd2a31d1bda06126e4a5727daf" dependencies = [ "ahash", - "bitflags 2.13.1", + "bitflags 2.13.2", "num-traits", "once_cell", "rhai_codegen", @@ -4093,7 +4096,7 @@ version = "0.1.0+sdk-1.4.357" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "538bb4bcd995e28a520c42c73d5a1900c3b9714054a6f916807ab26f0e07a40c" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "profiling", "rspirv2-types", @@ -4107,7 +4110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e32dd16a2eba8ae3e9fabd45bf0587e29310ba4d64e4e93eabd33650b18a8e4" dependencies = [ "anstyle", - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "profiling", "rustc-hash 2.1.3", @@ -4183,7 +4186,7 @@ dependencies = [ "serde", "serde_json", "spirv", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] @@ -4213,7 +4216,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys 0.4.15", @@ -4226,7 +4229,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys 0.12.1", @@ -4373,7 +4376,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.5", ] [[package]] @@ -4543,9 +4546,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.2" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" dependencies = [ "serde", ] @@ -4567,7 +4570,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "calloop", "calloop-wayland-source", "cursor-icon", @@ -4622,7 +4625,7 @@ version = "0.4.0+sdk-1.4.341.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9571ea910ebd84c86af4b3ed27f9dbdc6ad06f17c5f96146b2b671e2976744f" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "serde", ] @@ -4641,19 +4644,19 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.19", + "thiserror 2.0.20", ] [[package]] name = "spirv-std" version = "0.10.0-alpha.1" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "glam 0.30.10", "glam 0.31.1", "glam 0.32.1", - "glam 0.33.3", + "glam 0.33.7", "libm", "num-traits", "spirv-std-macros", @@ -4667,7 +4670,7 @@ dependencies = [ "proc-macro2", "quote", "spirv-std-types", - "syn 3.0.3", + "syn 3.0.5", ] [[package]] @@ -4773,9 +4776,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.3" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" dependencies = [ "proc-macro2", "quote", @@ -4927,11 +4930,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ - "thiserror-impl 2.0.19", + "thiserror-impl 2.0.20", ] [[package]] @@ -4947,13 +4950,13 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.5", ] [[package]] @@ -5043,9 +5046,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "zerovec", @@ -5053,18 +5056,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "toml" @@ -5095,9 +5089,9 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.4+spec-1.1.0" +version = "1.1.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" +checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a" dependencies = [ "indexmap", "serde_core", @@ -5151,9 +5145,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.13+spec-1.1.0" +version = "0.25.15+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" dependencies = [ "indexmap", "toml_datetime 1.1.1+spec-1.1.0", @@ -5407,9 +5401,9 @@ dependencies = [ [[package]] name = "walrus" -version = "0.26.4" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfa49767bb3a9e1afb02aa95bbcbde8d82f2db4ca377afae94d688f14f62378" +checksum = "25b63a2bc6e4acb4cf69080068a531bad4530791098230e972ffcb64fd1dc266" dependencies = [ "anyhow", "gimli 0.32.3", @@ -5451,9 +5445,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" dependencies = [ "cfg-if", "once_cell", @@ -5466,9 +5460,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-cli-support" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c3e3bac5bcdc2a15ba22862e2cb7c0d1beddf9d46dd320bec1f6ae82f2da53" +checksum = "e771daffd9404412ad1b20076ab5d0aa9f8c031e5d1734c362f720cf5538f8e3" dependencies = [ "anyhow", "base64", @@ -5484,9 +5478,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.76" +version = "0.4.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" dependencies = [ "js-sys", "wasm-bindgen", @@ -5494,9 +5488,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5504,22 +5498,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.126" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" dependencies = [ "unicode-ident", ] @@ -5540,7 +5534,7 @@ version = "0.236.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9b1e81f3eb254cf7404a82cee6926a4a3ccc5aad80cc3d43608a070c67aa1d7" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -5549,7 +5543,7 @@ version = "0.245.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "hashbrown 0.16.1", "indexmap", "semver", @@ -5558,9 +5552,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016ccf01d1c58b6f8999612813e17c9b2390f7d70671428869913310f83f54b8" +checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" dependencies = [ "cc", "downcast-rs", @@ -5592,7 +5586,7 @@ version = "0.31.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "rustix 1.1.4", "wayland-backend", "wayland-scanner 0.31.11", @@ -5616,7 +5610,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cursor-icon", "wayland-backend", ] @@ -5661,7 +5655,7 @@ version = "0.32.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client 0.31.15", "wayland-scanner 0.31.11", @@ -5673,7 +5667,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client 0.31.15", "wayland-protocols 0.32.13", @@ -5686,7 +5680,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client 0.31.15", "wayland-protocols 0.32.13", @@ -5740,9 +5734,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.103" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" dependencies = [ "js-sys", "wasm-bindgen", @@ -5760,12 +5754,12 @@ dependencies = [ [[package]] name = "wgpu" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d8f4bd44d92da5270f03409dba9f952dab24f128e05d6a554926101d1bf9114" +checksum = "527ccdf43dd5b2e8676eed9984ce00e2bbb0a1b85b70c1969dcb6cd2eb55ab9e" dependencies = [ "arrayvec", - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "cfg-if", "cfg_aliases", @@ -5773,7 +5767,7 @@ dependencies = [ "hashbrown 0.17.1", "js-sys", "log", - "naga 30.0.0", + "naga 30.0.1", "parking_lot", "portable-atomic", "profiling", @@ -5790,21 +5784,21 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08763620e76fc980bca7bf84de82568614487a53172dd968d89187282eb87fa2" +checksum = "14c018fce9b6270aa203c2fdd56f3cce996713534bd757e4ea58c8560b121f14" dependencies = [ "arrayvec", "bit-set 0.10.0", "bit-vec", - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "cfg_aliases", "document-features", "hashbrown 0.17.1", "indexmap", "log", - "naga 30.0.0", + "naga 30.0.1", "naga-types", "once_cell", "parking_lot", @@ -5813,7 +5807,7 @@ dependencies = [ "raw-window-handle 0.6.2", "rustc-hash 1.1.0", "smallvec", - "thiserror 2.0.19", + "thiserror 2.0.20", "wgpu-core-deps-apple", "wgpu-core-deps-emscripten", "wgpu-core-deps-windows-linux-android", @@ -5824,42 +5818,42 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3283b6da70d7fc892de95840215aa36381b5d0cbc479e88ee2b173c7b992b225" +checksum = "061f3d319a40d39d00b1ecc2c33b89fe21d4e6fe01859df3500a3a8ecccd6b68" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-emscripten" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85dcf2b2e5c2afb9eda64c570a87a4e570304bf39e52eddbaaf222d655b656ad" +checksum = "d98b86cf4abf524a902dd35f18ca6a3f08fc2ae9847c8f10b48e30491b1f0b86" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f76bc9c1c186ff3d9054e0d224c93c8c1c79d6653907c5249a5c1ea1a2cb1e43" +checksum = "7586165fd5f6d881cb9ce4bb71f40d6caab2c0f1837e3fc1d9788a197fb6004f" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-hal" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf765132d8d5f50e192e7880464890c13f4e7457aafe8e5466e8174586e9f101" +checksum = "b6b7fb58561a792bc237628ba0792e332de418fefe145f13b5ed8201e6d52f58" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set 0.10.0", - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "bytemuck", "cfg-if", @@ -5873,7 +5867,7 @@ dependencies = [ "libc", "libloading", "log", - "naga 30.0.0", + "naga 30.0.1", "naga-types", "ndk-sys", "objc2 0.6.4", @@ -5883,7 +5877,7 @@ dependencies = [ "objc2-metal 0.3.2", "objc2-quartz-core 0.3.2", "once_cell", - "ordered-float 5.3.0", + "ordered-float 5.5.0", "parking_lot", "portable-atomic", "portable-atomic-util", @@ -5894,7 +5888,7 @@ dependencies = [ "renderdoc-sys", "smallvec", "static_assertions", - "thiserror 2.0.19", + "thiserror 2.0.20", "wasm-bindgen", "wayland-sys 0.31.11", "web-sys", @@ -5907,21 +5901,21 @@ dependencies = [ [[package]] name = "wgpu-naga-bridge" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9eaac644e5008925c78567d272b9d66ef83da55a53cc17fc7daade7bb6e66e5" +checksum = "d2f62e73117bb7a62bfd9c5a5841438a823f6566c6442a808ee269d2d055c081" dependencies = [ - "naga 30.0.0", + "naga 30.0.1", "wgpu-types", ] [[package]] name = "wgpu-types" -version = "30.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a9c93c2b35edde326df60ffdee4c0f5864eac3011d6768b70d43f028ad93565" +checksum = "99dad6f1fbdbbdb4c278a6508b059d44688f5cebddf78d005a46a31340269286" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "js-sys", "log", @@ -6246,7 +6240,7 @@ dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "bytemuck", "calloop", @@ -6316,9 +6310,9 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "x11-dl" @@ -6364,7 +6358,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "dlib", "log", "once_cell", @@ -6379,9 +6373,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.28" +version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" +checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xtask" @@ -6428,18 +6422,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.55" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.55" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" dependencies = [ "proc-macro2", "quote", @@ -6475,9 +6469,9 @@ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -6486,9 +6480,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" dependencies = [ "yoke", "zerofrom", @@ -6497,15 +6491,21 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", ] +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + [[package]] name = "zmij" version = "1.0.23"