diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..6223f2b103 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,22 @@ +# `rust-gpu` Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Changed 🛠️ + +- 🚨BREAKING🚨 Migrated from `register_attr` to `register_tool`. [More information](docs/src/migration-to-register-tool.md). + +## [0.4.0-alpha.15] + +### Added ⭐ + +- Build-time check for nightly toolchain version to provide user-friendly error messages. + +### Changed 🛠️ + +- Updated rust toolchain to `nightly-2022-08-29`. diff --git a/crates/rustc_codegen_spirv/src/symbols.rs b/crates/rustc_codegen_spirv/src/symbols.rs index 5a98fe1980..2b9c69e950 100644 --- a/crates/rustc_codegen_spirv/src/symbols.rs +++ b/crates/rustc_codegen_spirv/src/symbols.rs @@ -1,7 +1,7 @@ use crate::attr::{Entry, ExecutionModeExtra, IntrinsicType, SpirvAttribute}; use crate::builder::libm_intrinsics; use rspirv::spirv::{BuiltIn, ExecutionMode, ExecutionModel, StorageClass}; -use rustc_ast::ast::{Attribute, Lit, LitIntType, LitKind, NestedMetaItem}; +use rustc_ast::ast::{AttrKind, Attribute, Lit, LitIntType, LitKind, NestedMetaItem}; use rustc_data_structures::fx::FxHashMap; use rustc_span::symbol::{Ident, Symbol}; use rustc_span::Span; @@ -16,6 +16,7 @@ pub struct Symbols { // Used by `is_blocklisted_fn`. pub fmt_decimal: Symbol, + pub rust_gpu: Symbol, pub spirv: Symbol, pub spirv_std: Symbol, pub libm: Symbol, @@ -373,6 +374,7 @@ impl Symbols { Self { fmt_decimal: Symbol::intern("fmt_decimal"), + rust_gpu: Symbol::intern("rust_gpu"), spirv: Symbol::intern("spirv"), spirv_std: Symbol::intern("spirv_std"), libm: Symbol::intern("libm"), @@ -411,20 +413,44 @@ pub(crate) fn parse_attrs_for_checking<'a>( attrs: &'a [Attribute], ) -> impl Iterator> + 'a { attrs.iter().flat_map(move |attr| { - let (whole_attr_error, args) = if !attr.has_name(sym.spirv) { - // Use an empty vec here to return empty - (None, Vec::new()) - } else if let Some(args) = attr.meta_item_list() { - (None, args) - } else { - ( - Some(Err(( - attr.span, - "#[spirv(..)] attribute must have at least one argument".to_string(), - ))), - Vec::new(), - ) + let (whole_attr_error, args) = match attr.kind { + AttrKind::Normal(ref normal) => { + // #[...] + let s = &normal.item.path.segments; + if s.len() > 1 && s[0].ident.name == sym.rust_gpu { + // #[rust_gpu ...] + if s.len() != 2 || s[1].ident.name != sym.spirv { + // #[rust_gpu::...] but not #[rust_gpu::spirv] + ( + Some(Err(( + attr.span, + "unknown `rust_gpu` attribute, expected `rust_gpu::spirv`" + .to_string(), + ))), + Vec::new(), + ) + } else if let Some(args) = attr.meta_item_list() { + // #[rust_gpu::spirv(...)] + (None, args) + } else { + // #[rust_gpu::spirv] + ( + Some(Err(( + attr.span, + "#[rust_gpu::spirv(..)] attribute must have at least one argument" + .to_string(), + ))), + Vec::new(), + ) + } + } else { + // #[...] but not #[rust_gpu ...] + (None, Vec::new()) + } + } + AttrKind::DocComment(..) => (None, Vec::new()), // doccomment }; + whole_attr_error .into_iter() .chain(args.into_iter().map(move |ref arg| { diff --git a/crates/spirv-builder/src/lib.rs b/crates/spirv-builder/src/lib.rs index db6fcff2e6..ff9fc507a9 100644 --- a/crates/spirv-builder/src/lib.rs +++ b/crates/spirv-builder/src/lib.rs @@ -424,6 +424,8 @@ fn invoke_rustc(builder: &SpirvBuilder) -> Result { // the default until https://github.com/rust-lang/rust/pull/93969). "-Zbinary-dep-depinfo".to_string(), "-Csymbol-mangling-version=v0".to_string(), + "-Zcrate-attr=feature(register_tool)".to_string(), + "-Zcrate-attr=register_tool(rust_gpu)".to_string(), ]; let mut llvm_args = vec![]; diff --git a/crates/spirv-std/macros/src/lib.rs b/crates/spirv-std/macros/src/lib.rs index b1b2e7f4ad..5bfa4366f0 100644 --- a/crates/spirv-std/macros/src/lib.rs +++ b/crates/spirv-std/macros/src/lib.rs @@ -77,7 +77,7 @@ use proc_macro2::{Delimiter, Group, Ident, Span, TokenTree}; use syn::{punctuated::Punctuated, spanned::Spanned, ItemFn, Token}; -use quote::ToTokens; +use quote::{quote, ToTokens}; use std::fmt::Write; /// A macro for creating SPIR-V `OpTypeImage` types. Always produces a @@ -138,9 +138,16 @@ pub fn Image(item: TokenStream) -> TokenStream { output.into() } +/// Replaces all (nested) occurrences of the `#[spirv(..)]` attribute with +/// `#[cfg_attr(target_arch="spirv", rust_gpu::spirv(..))]`. #[proc_macro_attribute] -pub fn spirv(_attr: TokenStream, item: TokenStream) -> TokenStream { - let mut tokens = Vec::new(); +pub fn spirv(attr: TokenStream, item: TokenStream) -> TokenStream { + let mut tokens: Vec = Vec::new(); + + // prepend with #[rust_gpu::spirv(..)] + let attr: proc_macro2::TokenStream = attr.into(); + tokens.extend(quote! { #[cfg_attr(target_arch="spirv", rust_gpu::spirv(#attr))] }); + let item: proc_macro2::TokenStream = item.into(); for tt in item { match tt { @@ -153,7 +160,11 @@ pub fn spirv(_attr: TokenStream, item: TokenStream) -> TokenStream { && matches!(group.stream().into_iter().next(), Some(TokenTree::Ident(ident)) if ident == "spirv") && matches!(sub_tokens.last(), Some(TokenTree::Punct(p)) if p.as_char() == '#') => { - sub_tokens.pop(); + // group matches [spirv ...] + let inner = group.stream(); // group stream doesn't include the brackets + sub_tokens.extend( + quote! { [cfg_attr(target_arch="spirv", rust_gpu::#inner)] }, + ); } _ => sub_tokens.push(tt), } diff --git a/crates/spirv-std/shared/src/lib.rs b/crates/spirv-std/shared/src/lib.rs index 7547af23df..82bbe34e5f 100644 --- a/crates/spirv-std/shared/src/lib.rs +++ b/crates/spirv-std/shared/src/lib.rs @@ -1,5 +1,6 @@ //! Small shared crate, to share definitions between `spirv-std` //! and `spirv-std-macros`. + #![no_std] pub mod image_params; diff --git a/crates/spirv-std/src/byte_addressable_buffer.rs b/crates/spirv-std/src/byte_addressable_buffer.rs index 675dd7e6fe..58ca9824eb 100644 --- a/crates/spirv-std/src/byte_addressable_buffer.rs +++ b/crates/spirv-std/src/byte_addressable_buffer.rs @@ -45,7 +45,7 @@ impl<'a> ByteAddressableBuffer<'a> { /// transmute) pub unsafe fn load(&self, byte_index: u32) -> T { if byte_index + mem::size_of::() as u32 > self.data.len() as u32 { - panic!("Index out of range") + panic!("Index out of range"); } buffer_load_intrinsic(self.data, byte_index) } @@ -71,7 +71,7 @@ impl<'a> ByteAddressableBuffer<'a> { /// transmute) pub unsafe fn store(&mut self, byte_index: u32, value: T) { if byte_index + mem::size_of::() as u32 > self.data.len() as u32 { - panic!("Index out of range") + panic!("Index out of range"); } buffer_store_intrinsic(self.data, byte_index, value); } diff --git a/crates/spirv-std/src/lib.rs b/crates/spirv-std/src/lib.rs index 110628cd17..ee00c39dfc 100644 --- a/crates/spirv-std/src/lib.rs +++ b/crates/spirv-std/src/lib.rs @@ -6,10 +6,8 @@ asm_experimental_arch, core_intrinsics, lang_items, - register_attr, repr_simd, - ), - register_attr(spirv) + ) )] // BEGIN - Embark standard lints v0.4 // do not change or add/remove here, but one can add exceptions after this section @@ -93,8 +91,9 @@ //! Core functions, traits, and more that make up a "standard library" for SPIR-V for use in //! rust-gpu. -#[cfg_attr(not(target_arch = "spirv"), macro_use)] +#[macro_use] pub extern crate spirv_std_macros as macros; +pub use macros::spirv; pub mod arch; pub mod byte_addressable_buffer; diff --git a/docs/src/attributes.md b/docs/src/attributes.md index eceafe6d50..35af009a47 100644 --- a/docs/src/attributes.md +++ b/docs/src/attributes.md @@ -2,6 +2,12 @@ rust-gpu introduces a number of SPIR-V related attributes to express behavior specific to SPIR-V not exposed in the base rust language. +Before you'll able to use these attributes, make sure you import the attribute from the `spirv-std` crate: + +```rust +use spirv_std::spirv; +``` + There are a few different categories of attributes: ## Entry points diff --git a/docs/src/migration-to-register-tool.md b/docs/src/migration-to-register-tool.md new file mode 100644 index 0000000000..32ceccdbb5 --- /dev/null +++ b/docs/src/migration-to-register-tool.md @@ -0,0 +1,45 @@ +# Migration to `register_tool` + +This document applies to [PR#926](https://github.com/EmbarkStudios/rust-gpu/pull/926) + +## What happened + +In a [recent nightly Rust update](https://github.com/rust-lang/rust/commit/76dd5c58a011bb734ad5b8e96fc560374893bc8f), the `register_attr` feature was removed in favor of `register_tool`. Unfortunately, rust-gpu made use of this feature to register the `spirv` attribute. + +## What does this mean for you as a shader maintainer + +You'll need to import the `spirv` proc macro attribute from `spirv-std` in order for the rust compiler: + +```rust +use spirv_std::spirv; +``` + +If your shader code already contains this line but is conditionally only included for non-spirv builds, like so: + +```rust +#[cfg(not(target_arch = "spirv"))] +use spirv_std::spirv; +``` + +please remove the conditional attribute. + +For this macro attribute to work correctly, it is important that `spirv` is visible in the global score and you use it like you used it before: `#[spirv(..)]`. An attempt to scope the attribute (such as `#[spirv_std::spirv(..)]`) will confuse the macro and likely fail. + +You'll also need to remove the `feature(register_attr)` and `register_attr(spirv)` attributes from your shader crates. If you're building using `SpirvBuilder`, you don't need to do anything else; the new `register_tool` is applied automatically. If not, you'll need to include these attributes instead: + +```rust +#![feature(register_tool)] +#![register_tool(rust_gpu)] +``` + +That's it. Your shaders should now compile like before. + +## Technical Background + +Unfortunately, since the new Rust nightly toolchain in September 2022, `register_attr(spirv)` can no longer be used to register a global `spirv` attribute. Without this registration, the compiler would simply complain about `spirv` being an unknown attribute. However, the alternative, `register_tool`, requires us to scope the attribute in a namespace. For instance, as we've chosen the `rust_gpu` namespace, this would mean that you'd need to start writing `#[rust_gpu::spirv(..)]` instead, which would be quite tedious and would break a lot of code. And it's not possible to `use` a name from a tool namespace to bring it into scope. + +Instead, we opted to implement a proc macro attribute called `spirv` instead[^1]. This macro attribute scans the item it is applied to, and translates any `#[spirv(..)]` it finds into `#[rust_gpu::spirv(..)]` which will be subsequently handled by the codegen backend. Because it is now a proc macro attribute exported from `spirv_std`, you need to do `use spirv_std::spirv` to make it globally visible in your crate. ***Note that we recommend using the `spirv` proc macro attribute itself rather than the `rust_gpu::spirv` attribute it translates to, as the latter is subject to change.*** + +We've also added the `feature(register_tool)` and `register_tool(rust_gpu)` crate attributes by default when compiling through `SpirvBuilder`. This will silence any error that you would otherwise get for applying a `rust_gpu` scoped attribute. + +[^1]: This is not entirely true. In reality, the `spirv` proc macro attribute already existed, but only for non-spirv builds. It was used to turn the `#[spirv(..)]` attribute into a no-op. The proc macro is now used on all platforms, and it emits `#[cfg_attr(target_arch="spirv", rust_gpu::spirv(..))]` for each usage of `#[spirv(..)]`. diff --git a/examples/shaders/compute-shader/src/lib.rs b/examples/shaders/compute-shader/src/lib.rs index d5bc237fc3..b57bdd5d26 100644 --- a/examples/shaders/compute-shader/src/lib.rs +++ b/examples/shaders/compute-shader/src/lib.rs @@ -1,16 +1,9 @@ -#![cfg_attr( - target_arch = "spirv", - feature(register_attr), - register_attr(spirv), - no_std -)] +#![cfg_attr(target_arch = "spirv", no_std)] // HACK(eddyb) can't easily see warnings otherwise from `spirv-builder` builds. #![deny(warnings)] use glam::UVec3; -use spirv_std::glam; -#[cfg(not(target_arch = "spirv"))] -use spirv_std::macros::spirv; +use spirv_std::{glam, spirv}; // Adapted from the wgpu hello-compute example diff --git a/examples/shaders/mouse-shader/src/lib.rs b/examples/shaders/mouse-shader/src/lib.rs index 5f6a162287..761e935b3a 100644 --- a/examples/shaders/mouse-shader/src/lib.rs +++ b/examples/shaders/mouse-shader/src/lib.rs @@ -1,24 +1,17 @@ -#![cfg_attr( - target_arch = "spirv", - no_std, - feature(register_attr), - register_attr(spirv) -)] +#![cfg_attr(target_arch = "spirv", no_std)] // HACK(eddyb) can't easily see warnings otherwise from `spirv-builder` builds. #![deny(warnings)] use core::f32::consts::PI; use glam::{const_vec4, vec2, vec3, Mat2, Vec2, Vec3, Vec4, Vec4Swizzles}; use shared::*; +use spirv_std::spirv; // Note: This cfg is incorrect on its surface, it really should be "are we compiling with std", but // we tie #[no_std] above to the same condition, so it's fine. #[cfg(target_arch = "spirv")] use spirv_std::num_traits::Float; -#[cfg(not(target_arch = "spirv"))] -use spirv_std::macros::spirv; - trait Shape: Copy { /// Distances indicate where the point is in relation to the shape: /// * negative distance: the point is "inside" the shape diff --git a/examples/shaders/reduce/src/lib.rs b/examples/shaders/reduce/src/lib.rs index ed8cf0fa08..892e956bd2 100644 --- a/examples/shaders/reduce/src/lib.rs +++ b/examples/shaders/reduce/src/lib.rs @@ -1,17 +1,11 @@ -#![cfg_attr( - target_arch = "spirv", - no_std, - feature(register_attr), - register_attr(spirv) -)] +#![cfg_attr(target_arch = "spirv", no_std)] #![allow(clippy::too_many_arguments, clippy::missing_safety_doc)] // HACK(eddyb) can't easily see warnings otherwise from `spirv-builder` builds. #![deny(warnings)] use spirv_std::glam::UVec3; -#[cfg(not(target_arch = "spirv"))] -use spirv_std::macros::spirv; #[cfg(target_arch = "spirv")] use spirv_std::memory::Scope; +use spirv_std::spirv; #[doc(alias = "OpGroupNonUniformIAdd")] #[cfg(target_arch = "spirv")] diff --git a/examples/shaders/simplest-shader/src/lib.rs b/examples/shaders/simplest-shader/src/lib.rs index 5221084905..11f8a44048 100644 --- a/examples/shaders/simplest-shader/src/lib.rs +++ b/examples/shaders/simplest-shader/src/lib.rs @@ -1,16 +1,9 @@ -#![cfg_attr( - target_arch = "spirv", - no_std, - feature(register_attr), - register_attr(spirv) -)] +#![cfg_attr(target_arch = "spirv", no_std)] // HACK(eddyb) can't easily see warnings otherwise from `spirv-builder` builds. #![deny(warnings)] -#[cfg(not(target_arch = "spirv"))] -use spirv_std::macros::spirv; - use shared::glam::{vec4, Vec4}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main_fs(output: &mut Vec4) { diff --git a/examples/shaders/sky-shader/src/lib.rs b/examples/shaders/sky-shader/src/lib.rs index 85fbfdf3f6..2038ef1568 100644 --- a/examples/shaders/sky-shader/src/lib.rs +++ b/examples/shaders/sky-shader/src/lib.rs @@ -1,20 +1,13 @@ //! Ported to Rust from -#![cfg_attr( - target_arch = "spirv", - no_std, - feature(register_attr, lang_items), - register_attr(spirv) -)] +#![cfg_attr(target_arch = "spirv", no_std)] // HACK(eddyb) can't easily see warnings otherwise from `spirv-builder` builds. #![deny(warnings)] -#[cfg(not(target_arch = "spirv"))] -use spirv_std::macros::spirv; - use core::f32::consts::PI; use glam::{const_vec3, vec2, vec3, Vec2, Vec3, Vec4}; use shared::*; +use spirv_std::spirv; // Note: This cfg is incorrect on its surface, it really should be "are we compiling with std", but // we tie #[no_std] above to the same condition, so it's fine. diff --git a/tests/src/main.rs b/tests/src/main.rs index 33cacf95cd..94be8c270f 100644 --- a/tests/src/main.rs +++ b/tests/src/main.rs @@ -123,8 +123,7 @@ impl Runner { "--crate-type dylib", "-Zunstable-options", "-Zcrate-attr=no_std", - "-Zcrate-attr=feature(register_attr,asm_const,asm_experimental_arch)", - "-Zcrate-attr=register_attr(spirv)", + "-Zcrate-attr=feature(asm_const,asm_experimental_arch)", ] .join(" ") } @@ -333,6 +332,8 @@ fn rust_flags(codegen_backend_path: &Path) -> String { "-Cembed-bitcode=no", &format!("-Ctarget-feature=+{}", target_features.join(",+")), "-Csymbol-mangling-version=v0", + "-Zcrate-attr=feature(register_tool)", + "-Zcrate-attr=register_tool(rust_gpu)", ] .join(" ") } diff --git a/tests/ui/arch/all.rs b/tests/ui/arch/all.rs index 1e7f8514d0..5b7649ef0b 100644 --- a/tests/ui/arch/all.rs +++ b/tests/ui/arch/all.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass #[spirv(fragment)] diff --git a/tests/ui/arch/all_memory_barrier.rs b/tests/ui/arch/all_memory_barrier.rs index 95f00ed306..b3f6d2f374 100644 --- a/tests/ui/arch/all_memory_barrier.rs +++ b/tests/ui/arch/all_memory_barrier.rs @@ -2,7 +2,7 @@ // compile-flags: -C target-feature=+VulkanMemoryModelDeviceScopeKHR,+ext:SPV_KHR_vulkan_memory_model // compile-flags: -C llvm-args=--disassemble-fn=all_memory_barrier::all_memory_barrier -use spirv_std as _; +use spirv_std::spirv; unsafe fn all_memory_barrier() { spirv_std::arch::all_memory_barrier(); diff --git a/tests/ui/arch/all_memory_barrier_with_group_sync.rs b/tests/ui/arch/all_memory_barrier_with_group_sync.rs index ba05ad8ee6..dc49dffd18 100644 --- a/tests/ui/arch/all_memory_barrier_with_group_sync.rs +++ b/tests/ui/arch/all_memory_barrier_with_group_sync.rs @@ -2,7 +2,7 @@ // compile-flags: -C target-feature=+VulkanMemoryModelDeviceScopeKHR,+ext:SPV_KHR_vulkan_memory_model // compile-flags: -C llvm-args=--disassemble-fn=all_memory_barrier_with_group_sync::all_memory_barrier_with_group_sync -use spirv_std as _; +use spirv_std::spirv; unsafe fn all_memory_barrier_with_group_sync() { spirv_std::arch::all_memory_barrier_with_group_sync(); diff --git a/tests/ui/arch/any.rs b/tests/ui/arch/any.rs index 49bb8e5867..fdc9ee43ba 100644 --- a/tests/ui/arch/any.rs +++ b/tests/ui/arch/any.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass #[spirv(fragment)] diff --git a/tests/ui/arch/atomic_i_increment.rs b/tests/ui/arch/atomic_i_increment.rs index 3866324823..d4dd7482c2 100644 --- a/tests/ui/arch/atomic_i_increment.rs +++ b/tests/ui/arch/atomic_i_increment.rs @@ -1,6 +1,7 @@ // build-pass use spirv_std::arch::IndexUnchecked; +use spirv_std::spirv; #[spirv(compute(threads(64)))] pub fn main(#[spirv(descriptor_set = 0, binding = 0, storage_buffer)] buffer: &mut [u32]) { diff --git a/tests/ui/arch/control_barrier.rs b/tests/ui/arch/control_barrier.rs index 73362cd226..4947f4f19e 100644 --- a/tests/ui/arch/control_barrier.rs +++ b/tests/ui/arch/control_barrier.rs @@ -4,6 +4,7 @@ #![allow(incomplete_features)] use spirv_std::memory::{Scope, Semantics}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/arch/convert_u_to_acceleration_structure_khr.rs b/tests/ui/arch/convert_u_to_acceleration_structure_khr.rs index cbce97f4e4..83b42151f0 100644 --- a/tests/ui/arch/convert_u_to_acceleration_structure_khr.rs +++ b/tests/ui/arch/convert_u_to_acceleration_structure_khr.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+RayTracingKHR,+ext:SPV_KHR_ray_tracing diff --git a/tests/ui/arch/debug_printf.rs b/tests/ui/arch/debug_printf.rs index d296f12473..e396b2f538 100644 --- a/tests/ui/arch/debug_printf.rs +++ b/tests/ui/arch/debug_printf.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -Ctarget-feature=+ext:SPV_KHR_non_semantic_info +use spirv_std::spirv; use spirv_std::{ glam::{IVec2, UVec2, Vec2, Vec3, Vec4}, macros::{debug_printf, debug_printfln}, diff --git a/tests/ui/arch/debug_printf_type_checking.rs b/tests/ui/arch/debug_printf_type_checking.rs index c41c7924b9..5efe7ecd3a 100644 --- a/tests/ui/arch/debug_printf_type_checking.rs +++ b/tests/ui/arch/debug_printf_type_checking.rs @@ -2,6 +2,7 @@ // normalize-stderr-test "\S*/crates/spirv-std/src/" -> "$$SPIRV_STD_SRC/" // compile-flags: -Ctarget-feature=+ext:SPV_KHR_non_semantic_info +use spirv_std::spirv; use spirv_std::{glam::Vec2, macros::debug_printf}; #[spirv(fragment)] diff --git a/tests/ui/arch/debug_printf_type_checking.stderr b/tests/ui/arch/debug_printf_type_checking.stderr index 43fbe401d7..7fb833e5c7 100644 --- a/tests/ui/arch/debug_printf_type_checking.stderr +++ b/tests/ui/arch/debug_printf_type_checking.stderr @@ -1,105 +1,105 @@ error: Unterminated format specifier: missing type after precision - --> $DIR/debug_printf_type_checking.rs:10:23 + --> $DIR/debug_printf_type_checking.rs:11:23 | -10 | debug_printf!("%1"); +11 | debug_printf!("%1"); | ^^^^ error: Unterminated format specifier: missing type after decimal point - --> $DIR/debug_printf_type_checking.rs:11:23 + --> $DIR/debug_printf_type_checking.rs:12:23 | -11 | debug_printf!("%1."); +12 | debug_printf!("%1."); | ^^^^^ error: Unrecognised format specifier: '.' - --> $DIR/debug_printf_type_checking.rs:12:23 + --> $DIR/debug_printf_type_checking.rs:13:23 | -12 | debug_printf!("%."); +13 | debug_printf!("%."); | ^^^^ error: Unrecognised format specifier: '.' - --> $DIR/debug_printf_type_checking.rs:13:23 + --> $DIR/debug_printf_type_checking.rs:14:23 | -13 | debug_printf!("%.1"); +14 | debug_printf!("%.1"); | ^^^^^ error: Unterminated format specifier: missing type after fraction precision - --> $DIR/debug_printf_type_checking.rs:14:23 + --> $DIR/debug_printf_type_checking.rs:15:23 | -14 | debug_printf!("%1.1"); +15 | debug_printf!("%1.1"); | ^^^^^^ error: Missing vector dimensions specifier - --> $DIR/debug_printf_type_checking.rs:15:23 + --> $DIR/debug_printf_type_checking.rs:16:23 | -15 | debug_printf!("%1.1v"); +16 | debug_printf!("%1.1v"); | ^^^^^^^ error: Invalid width for vector: 5 - --> $DIR/debug_printf_type_checking.rs:16:23 + --> $DIR/debug_printf_type_checking.rs:17:23 | -16 | debug_printf!("%1.1v5"); +17 | debug_printf!("%1.1v5"); | ^^^^^^^^ error: Missing vector type specifier - --> $DIR/debug_printf_type_checking.rs:17:23 + --> $DIR/debug_printf_type_checking.rs:18:23 | -17 | debug_printf!("%1.1v2"); +18 | debug_printf!("%1.1v2"); | ^^^^^^^^ error: Unrecognised vector type specifier: 'r' - --> $DIR/debug_printf_type_checking.rs:18:23 + --> $DIR/debug_printf_type_checking.rs:19:23 | -18 | debug_printf!("%1.1v2r"); +19 | debug_printf!("%1.1v2r"); | ^^^^^^^^^ error: Unrecognised format specifier: 'r' - --> $DIR/debug_printf_type_checking.rs:19:23 + --> $DIR/debug_printf_type_checking.rs:20:23 | -19 | debug_printf!("%r", 11_i32); +20 | debug_printf!("%r", 11_i32); | ^^^^ error[E0308]: mismatched types - --> $DIR/debug_printf_type_checking.rs:20:29 + --> $DIR/debug_printf_type_checking.rs:21:29 | -20 | debug_printf!("%f", 11_u32); +21 | debug_printf!("%f", 11_u32); | --------------------^^^^^^- | | | | | expected `f32`, found `u32` | arguments to this function are incorrect | note: function defined here - --> $SPIRV_STD_SRC/lib.rs:138:8 + --> $SPIRV_STD_SRC/lib.rs:137:8 | -138 | pub fn debug_printf_assert_is_type(ty: T) -> T { +137 | pub fn debug_printf_assert_is_type(ty: T) -> T { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change the type of the numeric literal from `u32` to `f32` | -20 | debug_printf!("%f", 11_f32); +21 | debug_printf!("%f", 11_f32); | ~~~ error[E0308]: mismatched types - --> $DIR/debug_printf_type_checking.rs:21:29 + --> $DIR/debug_printf_type_checking.rs:22:29 | -21 | debug_printf!("%u", 11.0_f32); +22 | debug_printf!("%u", 11.0_f32); | --------------------^^^^^^^^- | | | | | expected `u32`, found `f32` | arguments to this function are incorrect | note: function defined here - --> $SPIRV_STD_SRC/lib.rs:138:8 + --> $SPIRV_STD_SRC/lib.rs:137:8 | -138 | pub fn debug_printf_assert_is_type(ty: T) -> T { +137 | pub fn debug_printf_assert_is_type(ty: T) -> T { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change the type of the numeric literal from `f32` to `u32` | -21 | debug_printf!("%u", 11u32); +22 | debug_printf!("%u", 11u32); | ~~~ error[E0277]: the trait bound `{float}: Vector` is not satisfied - --> $DIR/debug_printf_type_checking.rs:22:31 + --> $DIR/debug_printf_type_checking.rs:23:31 | -22 | debug_printf!("%v2f", 11.0); +23 | debug_printf!("%v2f", 11.0); | ----------------------^^^^- | | | | | the trait `Vector` is not implemented for `{float}` @@ -116,24 +116,24 @@ error[E0277]: the trait bound `{float}: Vector` is not satisfied > and 8 others note: required by a bound in `debug_printf_assert_is_vector` - --> $SPIRV_STD_SRC/lib.rs:145:8 + --> $SPIRV_STD_SRC/lib.rs:144:8 | -145 | V: crate::vector::Vector, +144 | V: crate::vector::Vector, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `debug_printf_assert_is_vector` error[E0308]: mismatched types - --> $DIR/debug_printf_type_checking.rs:23:29 + --> $DIR/debug_printf_type_checking.rs:24:29 | -23 | debug_printf!("%f", Vec2::splat(33.3)); +24 | debug_printf!("%f", Vec2::splat(33.3)); | --------------------^^^^^^^^^^^^^^^^^- | | | | | expected `f32`, found struct `Vec2` | arguments to this function are incorrect | note: function defined here - --> $SPIRV_STD_SRC/lib.rs:138:8 + --> $SPIRV_STD_SRC/lib.rs:137:8 | -138 | pub fn debug_printf_assert_is_type(ty: T) -> T { +137 | pub fn debug_printf_assert_is_type(ty: T) -> T { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to 14 previous errors diff --git a/tests/ui/arch/demote_to_helper_invocation.rs b/tests/ui/arch/demote_to_helper_invocation.rs index e0dd428106..eb63ac349f 100644 --- a/tests/ui/arch/demote_to_helper_invocation.rs +++ b/tests/ui/arch/demote_to_helper_invocation.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // // compile-flags: -C target-feature=+DemoteToHelperInvocationEXT,+ext:SPV_EXT_demote_to_helper_invocation diff --git a/tests/ui/arch/device_memory_barrier.rs b/tests/ui/arch/device_memory_barrier.rs index 0ffe4cfb29..e43db6d777 100644 --- a/tests/ui/arch/device_memory_barrier.rs +++ b/tests/ui/arch/device_memory_barrier.rs @@ -2,7 +2,7 @@ // compile-flags: -C target-feature=+VulkanMemoryModelDeviceScopeKHR,+ext:SPV_KHR_vulkan_memory_model // compile-flags: -C llvm-args=--disassemble-fn=device_memory_barrier::device_memory_barrier -use spirv_std as _; +use spirv_std::spirv; unsafe fn device_memory_barrier() { spirv_std::arch::device_memory_barrier(); diff --git a/tests/ui/arch/device_memory_barrier_with_group_sync.rs b/tests/ui/arch/device_memory_barrier_with_group_sync.rs index cc17b78937..294dc45870 100644 --- a/tests/ui/arch/device_memory_barrier_with_group_sync.rs +++ b/tests/ui/arch/device_memory_barrier_with_group_sync.rs @@ -2,7 +2,7 @@ // compile-flags: -C target-feature=+VulkanMemoryModelDeviceScopeKHR,+ext:SPV_KHR_vulkan_memory_model // compile-flags: -C llvm-args=--disassemble-fn=device_memory_barrier_with_group_sync::device_memory_barrier_with_group_sync -use spirv_std as _; +use spirv_std::spirv; unsafe fn device_memory_barrier_with_group_sync() { spirv_std::arch::device_memory_barrier_with_group_sync(); diff --git a/tests/ui/arch/emit_stream_vertex.rs b/tests/ui/arch/emit_stream_vertex.rs index 3f0a1ac538..fbb14864dc 100644 --- a/tests/ui/arch/emit_stream_vertex.rs +++ b/tests/ui/arch/emit_stream_vertex.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -C target-feature=+GeometryStreams diff --git a/tests/ui/arch/emit_vertex.rs b/tests/ui/arch/emit_vertex.rs index da1f3fe1ea..4c83037df2 100644 --- a/tests/ui/arch/emit_vertex.rs +++ b/tests/ui/arch/emit_vertex.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+Geometry diff --git a/tests/ui/arch/end_primitive.rs b/tests/ui/arch/end_primitive.rs index cb3014d320..7cb4faceb0 100644 --- a/tests/ui/arch/end_primitive.rs +++ b/tests/ui/arch/end_primitive.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+Geometry diff --git a/tests/ui/arch/end_stream_primitive.rs b/tests/ui/arch/end_stream_primitive.rs index e578da32e2..69f27992f4 100644 --- a/tests/ui/arch/end_stream_primitive.rs +++ b/tests/ui/arch/end_stream_primitive.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -C target-feature=+GeometryStreams diff --git a/tests/ui/arch/execute_callable.rs b/tests/ui/arch/execute_callable.rs index f8c6032b7b..8607a59096 100644 --- a/tests/ui/arch/execute_callable.rs +++ b/tests/ui/arch/execute_callable.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+RayTracingKHR,+ext:SPV_KHR_ray_tracing diff --git a/tests/ui/arch/ignore_intersection_khr.rs b/tests/ui/arch/ignore_intersection_khr.rs index 28ccd6301d..dab6c2dfcf 100644 --- a/tests/ui/arch/ignore_intersection_khr.rs +++ b/tests/ui/arch/ignore_intersection_khr.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+RayTracingKHR,+ext:SPV_KHR_ray_tracing diff --git a/tests/ui/arch/index_unchecked.rs b/tests/ui/arch/index_unchecked.rs index 31e94e948a..e4a6ad9c19 100644 --- a/tests/ui/arch/index_unchecked.rs +++ b/tests/ui/arch/index_unchecked.rs @@ -1,6 +1,7 @@ // build-pass use spirv_std::arch::IndexUnchecked; +use spirv_std::spirv; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/arch/integer_min_and_max.rs b/tests/ui/arch/integer_min_and_max.rs index 74f6e0cc8d..3adeb183ab 100644 --- a/tests/ui/arch/integer_min_and_max.rs +++ b/tests/ui/arch/integer_min_and_max.rs @@ -1,6 +1,7 @@ // build-pass use spirv_std::arch::{signed_max, signed_min, unsigned_max, unsigned_min}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/arch/kill.rs b/tests/ui/arch/kill.rs index 361f0e1f35..400cff7fa5 100644 --- a/tests/ui/arch/kill.rs +++ b/tests/ui/arch/kill.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass #[spirv(fragment)] diff --git a/tests/ui/arch/memory_barrier.rs b/tests/ui/arch/memory_barrier.rs index 2875b730e6..3c6033b910 100644 --- a/tests/ui/arch/memory_barrier.rs +++ b/tests/ui/arch/memory_barrier.rs @@ -4,6 +4,7 @@ #![allow(incomplete_features)] use spirv_std::memory::{Scope, Semantics}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/arch/ray_query_confirm_intersection_khr.rs b/tests/ui/arch/ray_query_confirm_intersection_khr.rs index 35a8b08d1f..d75c69878c 100644 --- a/tests/ui/arch/ray_query_confirm_intersection_khr.rs +++ b/tests/ui/arch/ray_query_confirm_intersection_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_barycentrics_khr.rs b/tests/ui/arch/ray_query_get_intersection_barycentrics_khr.rs index 918449204e..4e859c6fea 100644 --- a/tests/ui/arch/ray_query_get_intersection_barycentrics_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_barycentrics_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_candidate_aabb_opaque_khr.rs b/tests/ui/arch/ray_query_get_intersection_candidate_aabb_opaque_khr.rs index 7aa270578d..87376f005c 100644 --- a/tests/ui/arch/ray_query_get_intersection_candidate_aabb_opaque_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_candidate_aabb_opaque_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_front_face_khr.rs b/tests/ui/arch/ray_query_get_intersection_front_face_khr.rs index 9611097ca2..ba6006988e 100644 --- a/tests/ui/arch/ray_query_get_intersection_front_face_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_front_face_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_geometry_index_khr.rs b/tests/ui/arch/ray_query_get_intersection_geometry_index_khr.rs index 9c572dde71..69323141d3 100644 --- a/tests/ui/arch/ray_query_get_intersection_geometry_index_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_geometry_index_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_instance_custom_index_khr.rs b/tests/ui/arch/ray_query_get_intersection_instance_custom_index_khr.rs index b8ad914d06..2dfc5bb17e 100644 --- a/tests/ui/arch/ray_query_get_intersection_instance_custom_index_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_instance_custom_index_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_instance_id_khr.rs b/tests/ui/arch/ray_query_get_intersection_instance_id_khr.rs index 7cd5104299..20b413deec 100644 --- a/tests/ui/arch/ray_query_get_intersection_instance_id_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_instance_id_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_object_ray_direction_khr.rs b/tests/ui/arch/ray_query_get_intersection_object_ray_direction_khr.rs index e0e73ffa2b..177490b1b2 100644 --- a/tests/ui/arch/ray_query_get_intersection_object_ray_direction_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_object_ray_direction_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_object_ray_origin_khr.rs b/tests/ui/arch/ray_query_get_intersection_object_ray_origin_khr.rs index 06ca7a9a21..a0ea175b89 100644 --- a/tests/ui/arch/ray_query_get_intersection_object_ray_origin_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_object_ray_origin_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_object_to_world_khr.rs b/tests/ui/arch/ray_query_get_intersection_object_to_world_khr.rs index b80f3df483..ac3f9c3ac7 100644 --- a/tests/ui/arch/ray_query_get_intersection_object_to_world_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_object_to_world_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_primitive_index_khr.rs b/tests/ui/arch/ray_query_get_intersection_primitive_index_khr.rs index e9e85cbc14..a4f9ab84cc 100644 --- a/tests/ui/arch/ray_query_get_intersection_primitive_index_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_primitive_index_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_shader_binding_table_record_offset_khr.rs b/tests/ui/arch/ray_query_get_intersection_shader_binding_table_record_offset_khr.rs index 8369029d62..159c4aa16d 100644 --- a/tests/ui/arch/ray_query_get_intersection_shader_binding_table_record_offset_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_shader_binding_table_record_offset_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_t_khr.rs b/tests/ui/arch/ray_query_get_intersection_t_khr.rs index 0df6ae4f5f..39cd3dde59 100644 --- a/tests/ui/arch/ray_query_get_intersection_t_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_t_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_intersection_type_khr.rs b/tests/ui/arch/ray_query_get_intersection_type_khr.rs index b4df974b6c..39b848003e 100644 --- a/tests/ui/arch/ray_query_get_intersection_type_khr.rs +++ b/tests/ui/arch/ray_query_get_intersection_type_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_ray_flags_khr.rs b/tests/ui/arch/ray_query_get_ray_flags_khr.rs index 6d4ced9846..816e808b93 100644 --- a/tests/ui/arch/ray_query_get_ray_flags_khr.rs +++ b/tests/ui/arch/ray_query_get_ray_flags_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_ray_t_min_khr.rs b/tests/ui/arch/ray_query_get_ray_t_min_khr.rs index fc5c78332f..b5c0d82c3f 100644 --- a/tests/ui/arch/ray_query_get_ray_t_min_khr.rs +++ b/tests/ui/arch/ray_query_get_ray_t_min_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_world_ray_direction_khr.rs b/tests/ui/arch/ray_query_get_world_ray_direction_khr.rs index 3cee03152b..1f579e38b5 100644 --- a/tests/ui/arch/ray_query_get_world_ray_direction_khr.rs +++ b/tests/ui/arch/ray_query_get_world_ray_direction_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_get_world_ray_origin_khr.rs b/tests/ui/arch/ray_query_get_world_ray_origin_khr.rs index 2c5b8f83dc..f56a47e67b 100644 --- a/tests/ui/arch/ray_query_get_world_ray_origin_khr.rs +++ b/tests/ui/arch/ray_query_get_world_ray_origin_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/ray_query_initialize_khr.rs b/tests/ui/arch/ray_query_initialize_khr.rs index 36e147c52b..90b73b79f1 100644 --- a/tests/ui/arch/ray_query_initialize_khr.rs +++ b/tests/ui/arch/ray_query_initialize_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] // Rustfmt eats long attributes diff --git a/tests/ui/arch/ray_query_terminate_khr.rs b/tests/ui/arch/ray_query_terminate_khr.rs index af3fb0ea4e..02c5b4fde6 100644 --- a/tests/ui/arch/ray_query_terminate_khr.rs +++ b/tests/ui/arch/ray_query_terminate_khr.rs @@ -3,6 +3,7 @@ use glam::Vec3; use spirv_std::ray_tracing::{AccelerationStructure, RayFlags, RayQuery}; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] accel: &AccelerationStructure) { diff --git a/tests/ui/arch/read_clock_khr.rs b/tests/ui/arch/read_clock_khr.rs index 25dfc71f2e..681388db1b 100644 --- a/tests/ui/arch/read_clock_khr.rs +++ b/tests/ui/arch/read_clock_khr.rs @@ -2,6 +2,7 @@ // compile-flags: -Ctarget-feature=+Int64,+ShaderClockKHR,+ext:SPV_KHR_shader_clock use glam::UVec2; +use spirv_std::spirv; use spirv_std::{ arch::{read_clock_khr, read_clock_uvec2_khr}, memory::Scope, diff --git a/tests/ui/arch/report_intersection_khr.rs b/tests/ui/arch/report_intersection_khr.rs index 023790d9de..3429c1a9ff 100644 --- a/tests/ui/arch/report_intersection_khr.rs +++ b/tests/ui/arch/report_intersection_khr.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+RayTracingKHR,+ext:SPV_KHR_ray_tracing diff --git a/tests/ui/arch/terminate_ray_khr.rs b/tests/ui/arch/terminate_ray_khr.rs index d1bcfad1c0..8a5827be17 100644 --- a/tests/ui/arch/terminate_ray_khr.rs +++ b/tests/ui/arch/terminate_ray_khr.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+RayTracingKHR,+ext:SPV_KHR_ray_tracing diff --git a/tests/ui/arch/trace_ray_khr.rs b/tests/ui/arch/trace_ray_khr.rs index 603c0bbd2e..434e2c708f 100644 --- a/tests/ui/arch/trace_ray_khr.rs +++ b/tests/ui/arch/trace_ray_khr.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -Ctarget-feature=+RayTracingKHR,+ext:SPV_KHR_ray_tracing diff --git a/tests/ui/arch/vector_extract_dynamic.rs b/tests/ui/arch/vector_extract_dynamic.rs index 5dd4714474..7cd86580cc 100644 --- a/tests/ui/arch/vector_extract_dynamic.rs +++ b/tests/ui/arch/vector_extract_dynamic.rs @@ -2,6 +2,7 @@ // build-pass use spirv_std::arch; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/arch/vector_insert_dynamic.rs b/tests/ui/arch/vector_insert_dynamic.rs index d850313b22..b66a4b1a85 100644 --- a/tests/ui/arch/vector_insert_dynamic.rs +++ b/tests/ui/arch/vector_insert_dynamic.rs @@ -2,6 +2,7 @@ // build-pass use spirv_std::arch; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/arch/workgroup_memory_barrier.rs b/tests/ui/arch/workgroup_memory_barrier.rs index 13216ab093..1a4b6de668 100644 --- a/tests/ui/arch/workgroup_memory_barrier.rs +++ b/tests/ui/arch/workgroup_memory_barrier.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=workgroup_memory_barrier::workgroup_memory_barrier -use spirv_std as _; +use spirv_std::spirv; unsafe fn workgroup_memory_barrier() { spirv_std::arch::workgroup_memory_barrier(); diff --git a/tests/ui/arch/workgroup_memory_barrier_with_group_sync.rs b/tests/ui/arch/workgroup_memory_barrier_with_group_sync.rs index 0e16fbd8bc..125df880d6 100644 --- a/tests/ui/arch/workgroup_memory_barrier_with_group_sync.rs +++ b/tests/ui/arch/workgroup_memory_barrier_with_group_sync.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=workgroup_memory_barrier_with_group_sync::workgroup_memory_barrier_with_group_sync -use spirv_std as _; +use spirv_std::spirv; unsafe fn workgroup_memory_barrier_with_group_sync() { spirv_std::arch::workgroup_memory_barrier_with_group_sync(); diff --git a/tests/ui/byte_addressable_buffer/arr.rs b/tests/ui/byte_addressable_buffer/arr.rs index cc3b9b9774..af871451e5 100644 --- a/tests/ui/byte_addressable_buffer/arr.rs +++ b/tests/ui/byte_addressable_buffer/arr.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::{glam::Vec4, ByteAddressableBuffer}; #[spirv(fragment)] diff --git a/tests/ui/byte_addressable_buffer/big_struct.rs b/tests/ui/byte_addressable_buffer/big_struct.rs index e08fd9ec7c..ca13800ec1 100644 --- a/tests/ui/byte_addressable_buffer/big_struct.rs +++ b/tests/ui/byte_addressable_buffer/big_struct.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::ByteAddressableBuffer; pub struct BigStruct { diff --git a/tests/ui/byte_addressable_buffer/complex.rs b/tests/ui/byte_addressable_buffer/complex.rs index cd8b0b9d76..1ec3267a2e 100644 --- a/tests/ui/byte_addressable_buffer/complex.rs +++ b/tests/ui/byte_addressable_buffer/complex.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::{glam::Vec2, ByteAddressableBuffer}; pub struct Complex { diff --git a/tests/ui/byte_addressable_buffer/empty_struct.rs b/tests/ui/byte_addressable_buffer/empty_struct.rs index 8699c970cd..2f7886a1cd 100644 --- a/tests/ui/byte_addressable_buffer/empty_struct.rs +++ b/tests/ui/byte_addressable_buffer/empty_struct.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::ByteAddressableBuffer; pub struct EmptyStruct {} diff --git a/tests/ui/byte_addressable_buffer/f32.rs b/tests/ui/byte_addressable_buffer/f32.rs index e4f16d8cc5..3dc5d3ffe3 100644 --- a/tests/ui/byte_addressable_buffer/f32.rs +++ b/tests/ui/byte_addressable_buffer/f32.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::ByteAddressableBuffer; #[spirv(fragment)] diff --git a/tests/ui/byte_addressable_buffer/small_struct.rs b/tests/ui/byte_addressable_buffer/small_struct.rs index f869e2216a..43a92db9dd 100644 --- a/tests/ui/byte_addressable_buffer/small_struct.rs +++ b/tests/ui/byte_addressable_buffer/small_struct.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::ByteAddressableBuffer; pub struct SmallStruct { diff --git a/tests/ui/byte_addressable_buffer/u32.rs b/tests/ui/byte_addressable_buffer/u32.rs index e77aa068af..c1922356b9 100644 --- a/tests/ui/byte_addressable_buffer/u32.rs +++ b/tests/ui/byte_addressable_buffer/u32.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::ByteAddressableBuffer; #[spirv(fragment)] diff --git a/tests/ui/byte_addressable_buffer/vec.rs b/tests/ui/byte_addressable_buffer/vec.rs index 9b61b8e36c..49ecbc15c2 100644 --- a/tests/ui/byte_addressable_buffer/vec.rs +++ b/tests/ui/byte_addressable_buffer/vec.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::{glam::Vec4, ByteAddressableBuffer}; #[spirv(matrix)] diff --git a/tests/ui/dis/add_two_ints.rs b/tests/ui/dis/add_two_ints.rs index 9f441a3ee3..81dccc353d 100644 --- a/tests/ui/dis/add_two_ints.rs +++ b/tests/ui/dis/add_two_ints.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=add_two_ints::add_two_ints -use spirv_std as _; +use spirv_std::spirv; fn add_two_ints(x: u32, y: u32) -> u32 { x + y diff --git a/tests/ui/dis/asm.rs b/tests/ui/dis/asm.rs index cf7a7e8a8d..1e2a5a6f01 100644 --- a/tests/ui/dis/asm.rs +++ b/tests/ui/dis/asm.rs @@ -2,7 +2,7 @@ // compile-flags: -C llvm-args=--disassemble-fn=asm::asm use core::arch::asm; -use spirv_std as _; +use spirv_std::spirv; fn asm() { unsafe { diff --git a/tests/ui/dis/asm_add_two_ints.rs b/tests/ui/dis/asm_add_two_ints.rs index 889d21a0f7..e7cbedf191 100644 --- a/tests/ui/dis/asm_add_two_ints.rs +++ b/tests/ui/dis/asm_add_two_ints.rs @@ -2,7 +2,7 @@ // compile-flags: -C llvm-args=--disassemble-fn=asm_add_two_ints::add_two_ints use core::arch::asm; -use spirv_std as _; +use spirv_std::spirv; fn add_two_ints(x: u32, y: u32) -> u32 { let result; diff --git a/tests/ui/dis/asm_op_decorate.rs b/tests/ui/dis/asm_op_decorate.rs index c7b220d6fd..68881a2d34 100644 --- a/tests/ui/dis/asm_op_decorate.rs +++ b/tests/ui/dis/asm_op_decorate.rs @@ -11,7 +11,7 @@ // ignore-vulkan1.2 use core::arch::asm; -use spirv_std as _; +use spirv_std::spirv; fn add_decorate() { unsafe { diff --git a/tests/ui/dis/complex_image_sample_inst.rs b/tests/ui/dis/complex_image_sample_inst.rs index f687997624..f42cce8d0b 100644 --- a/tests/ui/dis/complex_image_sample_inst.rs +++ b/tests/ui/dis/complex_image_sample_inst.rs @@ -3,7 +3,7 @@ // compile-flags: -C llvm-args=--disassemble-fn=complex_image_sample_inst::sample_proj_lod use core::arch::asm; -use spirv_std as _; +use spirv_std::spirv; fn sample_proj_lod( coord: glam::Vec4, diff --git a/tests/ui/dis/custom_entry_point.rs b/tests/ui/dis/custom_entry_point.rs index 1ddcc5c460..2121c3146d 100644 --- a/tests/ui/dis/custom_entry_point.rs +++ b/tests/ui/dis/custom_entry_point.rs @@ -4,7 +4,7 @@ // normalize-stderr-test "OpExtension .SPV_KHR_vulkan_memory_model.\n" -> "" // normalize-stderr-test "OpMemoryModel Logical Vulkan" -> "OpMemoryModel Logical Simple" -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment(entry_point_name = "hello_world"))] pub fn main() {} diff --git a/tests/ui/dis/entry-pass-mode-cast-array.rs b/tests/ui/dis/entry-pass-mode-cast-array.rs index 8b5f5d2720..0e1314465e 100644 --- a/tests/ui/dis/entry-pass-mode-cast-array.rs +++ b/tests/ui/dis/entry-pass-mode-cast-array.rs @@ -7,7 +7,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-entry=main -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(mut in_array: [f32; 2], out_array: &mut [f32; 2]) { diff --git a/tests/ui/dis/generic-fn-op-name.rs b/tests/ui/dis/generic-fn-op-name.rs index c9eb830d9a..844a8a3ebc 100644 --- a/tests/ui/dis/generic-fn-op-name.rs +++ b/tests/ui/dis/generic-fn-op-name.rs @@ -10,6 +10,7 @@ #![allow(incomplete_features)] use spirv_std::image::Dimensionality; +use spirv_std::spirv; fn generic() {} diff --git a/tests/ui/dis/index_user_dst.rs b/tests/ui/dis/index_user_dst.rs index e680eab04f..da7df03676 100644 --- a/tests/ui/dis/index_user_dst.rs +++ b/tests/ui/dis/index_user_dst.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-entry=main -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] slice: &mut [f32]) { diff --git a/tests/ui/dis/issue-373.rs b/tests/ui/dis/issue-373.rs index 5f15870316..20f749b66d 100644 --- a/tests/ui/dis/issue-373.rs +++ b/tests/ui/dis/issue-373.rs @@ -5,7 +5,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-entry=main -use spirv_std as _; +use spirv_std::spirv; #[derive(Copy, Clone)] #[repr(C)] diff --git a/tests/ui/dis/issue-723-output.rs b/tests/ui/dis/issue-723-output.rs index ca1f6d2068..9afa48e202 100644 --- a/tests/ui/dis/issue-723-output.rs +++ b/tests/ui/dis/issue-723-output.rs @@ -16,7 +16,7 @@ // normalize-stderr-test "OpExtension .SPV_KHR_vulkan_memory_model.\n" -> "" // normalize-stderr-test "OpMemoryModel Logical Vulkan" -> "OpMemoryModel Logical Simple" -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(/* unused Output */ _: &mut glam::Vec4) {} diff --git a/tests/ui/dis/issue-731.rs b/tests/ui/dis/issue-731.rs index 2617c5ad85..ccd8d39ef4 100644 --- a/tests/ui/dis/issue-731.rs +++ b/tests/ui/dis/issue-731.rs @@ -5,7 +5,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-entry=main -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(mut in_array: [f32; 3], out_array: &mut [f32; 3]) { diff --git a/tests/ui/dis/pass-mode-cast-struct.rs b/tests/ui/dis/pass-mode-cast-struct.rs index 6f377c14db..7bcb4570bd 100644 --- a/tests/ui/dis/pass-mode-cast-struct.rs +++ b/tests/ui/dis/pass-mode-cast-struct.rs @@ -5,7 +5,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-entry=main -use spirv_std as _; +use spirv_std::spirv; struct Foo { a: u32, diff --git a/tests/ui/dis/ptr_copy.rs b/tests/ui/dis/ptr_copy.rs index a3f9f1e134..f3e692fb16 100644 --- a/tests/ui/dis/ptr_copy.rs +++ b/tests/ui/dis/ptr_copy.rs @@ -6,7 +6,7 @@ #![cfg_attr(via_intrinsic, feature(intrinsics))] -use spirv_std as _; +use spirv_std::spirv; fn copy_via_raw_ptr(src: &f32, dst: &mut f32) { #[cfg(via_intrinsic)] diff --git a/tests/ui/dis/ptr_read.rs b/tests/ui/dis/ptr_read.rs index 4229ab0f86..494bcdb3fa 100644 --- a/tests/ui/dis/ptr_read.rs +++ b/tests/ui/dis/ptr_read.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=ptr_read::copy_via_raw_ptr -use spirv_std as _; +use spirv_std::spirv; fn copy_via_raw_ptr(src: &f32, dst: &mut f32) { unsafe { *dst = core::ptr::read(src) } diff --git a/tests/ui/dis/ptr_read_method.rs b/tests/ui/dis/ptr_read_method.rs index 1dd6174f28..41620e9ebb 100644 --- a/tests/ui/dis/ptr_read_method.rs +++ b/tests/ui/dis/ptr_read_method.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=ptr_read_method::copy_via_raw_ptr -use spirv_std as _; +use spirv_std::spirv; fn copy_via_raw_ptr(src: &f32, dst: &mut f32) { unsafe { *dst = (src as *const f32).read() } diff --git a/tests/ui/dis/ptr_write.rs b/tests/ui/dis/ptr_write.rs index e05b1d12ac..fcfdc4cd8d 100644 --- a/tests/ui/dis/ptr_write.rs +++ b/tests/ui/dis/ptr_write.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=ptr_write::copy_via_raw_ptr -use spirv_std as _; +use spirv_std::spirv; fn copy_via_raw_ptr(src: &f32, dst: &mut f32) { unsafe { core::ptr::write(dst, *src) } diff --git a/tests/ui/dis/ptr_write_method.rs b/tests/ui/dis/ptr_write_method.rs index 7107e1a39f..bdc969df38 100644 --- a/tests/ui/dis/ptr_write_method.rs +++ b/tests/ui/dis/ptr_write_method.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=ptr_write_method::copy_via_raw_ptr -use spirv_std as _; +use spirv_std::spirv; fn copy_via_raw_ptr(src: &f32, dst: &mut f32) { unsafe { (dst as *mut f32).write(*src) } diff --git a/tests/ui/dis/unroll_loops.rs b/tests/ui/dis/unroll_loops.rs index d1d6a63e03..ed9ea1313d 100644 --- a/tests/ui/dis/unroll_loops.rs +++ b/tests/ui/dis/unroll_loops.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-fn=unroll_loops::java_hash_ten_times -use spirv_std as _; +use spirv_std::spirv; #[spirv(unroll_loops)] fn java_hash_ten_times(mut x: u32, y: u32) -> u32 { diff --git a/tests/ui/glam/mat3_vec3_multiply.rs b/tests/ui/glam/mat3_vec3_multiply.rs index 848143e47b..1aa0c8c3bb 100644 --- a/tests/ui/glam/mat3_vec3_multiply.rs +++ b/tests/ui/glam/mat3_vec3_multiply.rs @@ -1,7 +1,7 @@ // Tests multiplying a `Mat3` by a `Vec3`. // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(input: glam::Mat3, output: &mut glam::Vec3) { diff --git a/tests/ui/hello_world.rs b/tests/ui/hello_world.rs index 45ceffa909..3916fb4e91 100644 --- a/tests/ui/hello_world.rs +++ b/tests/ui/hello_world.rs @@ -1,7 +1,7 @@ // Simple single entrypoint function test. // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() {} diff --git a/tests/ui/image/fetch.rs b/tests/ui/image/fetch.rs index ac18c9cd96..c21cfadb9c 100644 --- a/tests/ui/image/fetch.rs +++ b/tests/ui/image/fetch.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/format.rs b/tests/ui/image/format.rs index f1aff17fb7..813d09e951 100644 --- a/tests/ui/image/format.rs +++ b/tests/ui/image/format.rs @@ -1,5 +1,6 @@ // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/gather.rs b/tests/ui/image/gather.rs index 66220e1c25..9e11f440e9 100644 --- a/tests/ui/image/gather.rs +++ b/tests/ui/image/gather.rs @@ -2,6 +2,7 @@ // build-pass use core::arch::asm; +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/gather_err.rs b/tests/ui/image/gather_err.rs index 6c3f21f8b5..917b447327 100644 --- a/tests/ui/image/gather_err.rs +++ b/tests/ui/image/gather_err.rs @@ -2,7 +2,7 @@ // normalize-stderr-test "\S*/crates/spirv-std/src/" -> "$$SPIRV_STD_SRC/" // compile-flags: -Ctarget-feature=+Sampled1D -use spirv_std::{arch, Image, Sampler}; +use spirv_std::{arch, spirv, Image, Sampler}; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/image/implicit_not_in_fragment.rs b/tests/ui/image/implicit_not_in_fragment.rs index b0030957ff..c4d78bcebe 100644 --- a/tests/ui/image/implicit_not_in_fragment.rs +++ b/tests/ui/image/implicit_not_in_fragment.rs @@ -1,5 +1,6 @@ // build-fail +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; fn deeper_stack(image2d: &Image!(2D, type=f32, sampled), sampler: &Sampler) -> glam::Vec4 { diff --git a/tests/ui/image/issue-330.rs b/tests/ui/image/issue-330.rs index 6a7a786376..ded6796be3 100644 --- a/tests/ui/image/issue-330.rs +++ b/tests/ui/image/issue-330.rs @@ -1,4 +1,5 @@ use spirv_std::glam::Vec4; +use spirv_std::spirv; use spirv_std::{image::Image2dArray, Sampler}; #[allow(unused_attributes)] diff --git a/tests/ui/image/issue_527.rs b/tests/ui/image/issue_527.rs index 7bcc7a30ae..8e43590d0c 100644 --- a/tests/ui/image/issue_527.rs +++ b/tests/ui/image/issue_527.rs @@ -1,3 +1,5 @@ +use spirv_std::spirv; + // build-pass // compile-flags: -C target-feature=+StorageImageWriteWithoutFormat diff --git a/tests/ui/image/query/query_levels.rs b/tests/ui/image/query/query_levels.rs index f546e9dd14..2660f36cdc 100644 --- a/tests/ui/image/query/query_levels.rs +++ b/tests/ui/image/query/query_levels.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -C target-feature=+ImageQuery +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/query/query_levels_err.rs b/tests/ui/image/query/query_levels_err.rs index 31b2ce05bb..c22c7ea9d5 100644 --- a/tests/ui/image/query/query_levels_err.rs +++ b/tests/ui/image/query/query_levels_err.rs @@ -2,7 +2,7 @@ // normalize-stderr-test "\S*/crates/spirv-std/src/" -> "$$SPIRV_STD_SRC/" // compile-flags: -C target-feature=+ImageQuery -use spirv_std::{arch, Image}; +use spirv_std::{arch, spirv, Image}; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/image/query/query_lod.rs b/tests/ui/image/query/query_lod.rs index 121f9200a0..a36e835ecc 100644 --- a/tests/ui/image/query/query_lod.rs +++ b/tests/ui/image/query/query_lod.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -C target-feature=+ImageQuery +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/query/query_lod_err.rs b/tests/ui/image/query/query_lod_err.rs index 28fd763d57..f07564c990 100644 --- a/tests/ui/image/query/query_lod_err.rs +++ b/tests/ui/image/query/query_lod_err.rs @@ -2,7 +2,7 @@ // normalize-stderr-test "\S*/crates/spirv-std/src/" -> "$$SPIRV_STD_SRC/" // compile-flags: -C target-feature=+ImageQuery -use spirv_std::{arch, Image, Sampler}; +use spirv_std::{arch, spirv, Image, Sampler}; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/image/query/query_samples.rs b/tests/ui/image/query/query_samples.rs index 91e004e040..c2cf6d0912 100644 --- a/tests/ui/image/query/query_samples.rs +++ b/tests/ui/image/query/query_samples.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -C target-feature=+ImageQuery +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/query/query_size.rs b/tests/ui/image/query/query_size.rs index d2d62d95fa..9c03eb0c14 100644 --- a/tests/ui/image/query/query_size.rs +++ b/tests/ui/image/query/query_size.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -C target-feature=+ImageQuery +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/query/query_size_err.rs b/tests/ui/image/query/query_size_err.rs index 59e1606150..afc59a467b 100644 --- a/tests/ui/image/query/query_size_err.rs +++ b/tests/ui/image/query/query_size_err.rs @@ -2,7 +2,7 @@ // normalize-stderr-test "\S*/crates/spirv-std/src/" -> "$$SPIRV_STD_SRC/" // compile-flags: -C target-feature=+ImageQuery -use spirv_std::{arch, Image}; +use spirv_std::{arch, spirv, Image}; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/image/query/query_size_lod.rs b/tests/ui/image/query/query_size_lod.rs index c7788f4f9a..507af953a5 100644 --- a/tests/ui/image/query/query_size_lod.rs +++ b/tests/ui/image/query/query_size_lod.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -C target-feature=+ImageQuery +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/query/query_size_lod_err.rs b/tests/ui/image/query/query_size_lod_err.rs index e7546a96ca..c106689f6c 100644 --- a/tests/ui/image/query/query_size_lod_err.rs +++ b/tests/ui/image/query/query_size_lod_err.rs @@ -2,7 +2,7 @@ // normalize-stderr-test "\S*/crates/spirv-std/src/" -> "$$SPIRV_STD_SRC/" // compile-flags: -C target-feature=+ImageQuery -use spirv_std::{arch, Image}; +use spirv_std::{arch, spirv, Image}; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/image/read.rs b/tests/ui/image/read.rs index 6e047592f6..295708b873 100644 --- a/tests/ui/image/read.rs +++ b/tests/ui/image/read.rs @@ -2,6 +2,7 @@ // build-pass // compile-flags: -C target-feature=+StorageImageReadWithoutFormat +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/read_subpass.rs b/tests/ui/image/read_subpass.rs index 9ef6610742..475233698b 100644 --- a/tests/ui/image/read_subpass.rs +++ b/tests/ui/image/read_subpass.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -C target-feature=+InputAttachment +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/image/sample.rs b/tests/ui/image/sample.rs index 50b09d251e..bc5cc44757 100644 --- a/tests/ui/image/sample.rs +++ b/tests/ui/image/sample.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleImplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_bias.rs b/tests/ui/image/sample_bias.rs index 85e652c75f..09d3bfa9a7 100644 --- a/tests/ui/image/sample_bias.rs +++ b/tests/ui/image/sample_bias.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleImplicitLod` Bias // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_depth_reference/sample.rs b/tests/ui/image/sample_depth_reference/sample.rs index 004edb4523..4de6b2c311 100644 --- a/tests/ui/image/sample_depth_reference/sample.rs +++ b/tests/ui/image/sample_depth_reference/sample.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleDrefImplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_depth_reference/sample_gradient.rs b/tests/ui/image/sample_depth_reference/sample_gradient.rs index e584bc0ee7..a197e37af6 100644 --- a/tests/ui/image/sample_depth_reference/sample_gradient.rs +++ b/tests/ui/image/sample_depth_reference/sample_gradient.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleDrefExplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_depth_reference/sample_lod.rs b/tests/ui/image/sample_depth_reference/sample_lod.rs index c802131ed5..dea60aec74 100644 --- a/tests/ui/image/sample_depth_reference/sample_lod.rs +++ b/tests/ui/image/sample_depth_reference/sample_lod.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleDrefExplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_depth_reference_with_project_coordinate/sample.rs b/tests/ui/image/sample_depth_reference_with_project_coordinate/sample.rs index 45ab323403..e0d9987440 100644 --- a/tests/ui/image/sample_depth_reference_with_project_coordinate/sample.rs +++ b/tests/ui/image/sample_depth_reference_with_project_coordinate/sample.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleProjDrefImplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_gradient.rs b/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_gradient.rs index 7ebba0ad81..d1f5aba513 100644 --- a/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_gradient.rs +++ b/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_gradient.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleProjDrefExplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_lod.rs b/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_lod.rs index 8212d88d41..7c9e75693a 100644 --- a/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_lod.rs +++ b/tests/ui/image/sample_depth_reference_with_project_coordinate/sample_lod.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleProjDrefExplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_gradient.rs b/tests/ui/image/sample_gradient.rs index 4035711fd8..a8336c5838 100644 --- a/tests/ui/image/sample_gradient.rs +++ b/tests/ui/image/sample_gradient.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleExplicitLod` Grad // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_lod.rs b/tests/ui/image/sample_lod.rs index 719ebbb3ff..0280bd3faa 100644 --- a/tests/ui/image/sample_lod.rs +++ b/tests/ui/image/sample_lod.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleExplicitLod` Lod // build-pass +use spirv_std::spirv; use spirv_std::{arch, image::SampledImage, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_with_project_coordinate/sample.rs b/tests/ui/image/sample_with_project_coordinate/sample.rs index 218502300c..580b26b7d5 100644 --- a/tests/ui/image/sample_with_project_coordinate/sample.rs +++ b/tests/ui/image/sample_with_project_coordinate/sample.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleProjImplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_with_project_coordinate/sample_gradient.rs b/tests/ui/image/sample_with_project_coordinate/sample_gradient.rs index 6dc4d0e664..7d39d801de 100644 --- a/tests/ui/image/sample_with_project_coordinate/sample_gradient.rs +++ b/tests/ui/image/sample_with_project_coordinate/sample_gradient.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleProjExplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/sample_with_project_coordinate/sample_lod.rs b/tests/ui/image/sample_with_project_coordinate/sample_lod.rs index ce11225365..aa4245c7e0 100644 --- a/tests/ui/image/sample_with_project_coordinate/sample_lod.rs +++ b/tests/ui/image/sample_with_project_coordinate/sample_lod.rs @@ -1,6 +1,7 @@ // Test `OpImageSampleProjExplicitLod` // build-pass +use spirv_std::spirv; use spirv_std::{arch, Image, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/image/write.rs b/tests/ui/image/write.rs index 0ef3e8c9e5..314f0f4ba4 100644 --- a/tests/ui/image/write.rs +++ b/tests/ui/image/write.rs @@ -2,6 +2,7 @@ // build-pass // compile-flags: -C target-feature=+StorageImageWriteWithoutFormat +use spirv_std::spirv; use spirv_std::{arch, Image}; #[spirv(fragment)] diff --git a/tests/ui/lang/asm/block_tracking_fail.rs b/tests/ui/lang/asm/block_tracking_fail.rs index 8f2eb3df31..d0e229bae0 100644 --- a/tests/ui/lang/asm/block_tracking_fail.rs +++ b/tests/ui/lang/asm/block_tracking_fail.rs @@ -3,7 +3,7 @@ // build-fail use core::arch::asm; -use spirv_std as _; +use spirv_std::spirv; // Active basic block with `noreturn`. fn asm_noreturn_open() { diff --git a/tests/ui/lang/asm/block_tracking_pass.rs b/tests/ui/lang/asm/block_tracking_pass.rs index 597cc0414a..febced0afe 100644 --- a/tests/ui/lang/asm/block_tracking_pass.rs +++ b/tests/ui/lang/asm/block_tracking_pass.rs @@ -3,7 +3,7 @@ // build-pass use core::arch::asm; -use spirv_std as _; +use spirv_std::spirv; fn asm_label() { unsafe { diff --git a/tests/ui/lang/asm/const_args.rs b/tests/ui/lang/asm/const_args.rs index 8cafc5aba0..4a42533c31 100644 --- a/tests/ui/lang/asm/const_args.rs +++ b/tests/ui/lang/asm/const_args.rs @@ -2,7 +2,7 @@ // build-pass use core::arch::asm; -use spirv_std as _; +use spirv_std::spirv; fn asm() { unsafe { diff --git a/tests/ui/lang/asm/infer-access-chain-array.rs b/tests/ui/lang/asm/infer-access-chain-array.rs index 445026ab65..cd3649989a 100644 --- a/tests/ui/lang/asm/infer-access-chain-array.rs +++ b/tests/ui/lang/asm/infer-access-chain-array.rs @@ -5,7 +5,7 @@ use core::arch::asm; use glam::Vec4; -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(push_constant)] array_in: &[Vec4; 16], #[spirv(flat)] i: u32, out: &mut Vec4) { diff --git a/tests/ui/lang/asm/infer-access-chain-slice.rs b/tests/ui/lang/asm/infer-access-chain-slice.rs index a0d5992405..1b726d7993 100644 --- a/tests/ui/lang/asm/infer-access-chain-slice.rs +++ b/tests/ui/lang/asm/infer-access-chain-slice.rs @@ -5,7 +5,7 @@ use core::arch::asm; use glam::Vec4; -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/lang/consts/issue-329.rs b/tests/ui/lang/consts/issue-329.rs index d407cf5b33..59d911cc23 100644 --- a/tests/ui/lang/consts/issue-329.rs +++ b/tests/ui/lang/consts/issue-329.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; const OFFSETS: [f32; 18] = [ 0.000000, 1.494118, 3.486275, 5.478431, 7.470588, 9.462745, 11.454902, 13.447059, 15.439216, diff --git a/tests/ui/lang/consts/issue-834.rs b/tests/ui/lang/consts/issue-834.rs index ad32819ef0..387c1e1131 100644 --- a/tests/ui/lang/consts/issue-834.rs +++ b/tests/ui/lang/consts/issue-834.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/lang/consts/nested-ref-in-composite.rs b/tests/ui/lang/consts/nested-ref-in-composite.rs index b88f5ac70f..fa5d6dafcb 100644 --- a/tests/ui/lang/consts/nested-ref-in-composite.rs +++ b/tests/ui/lang/consts/nested-ref-in-composite.rs @@ -3,7 +3,7 @@ // build-fail -use spirv_std as _; +use spirv_std::spirv; use glam::{const_mat2, Mat2, Vec2}; diff --git a/tests/ui/lang/consts/nested-ref.rs b/tests/ui/lang/consts/nested-ref.rs index b693b1b448..1617d10ef2 100644 --- a/tests/ui/lang/consts/nested-ref.rs +++ b/tests/ui/lang/consts/nested-ref.rs @@ -4,7 +4,7 @@ // build-pass // compile-flags: -C target-feature=+VariablePointers -use spirv_std as _; +use spirv_std::spirv; use glam::{const_mat2, Mat2, Vec2}; diff --git a/tests/ui/lang/consts/shallow-ref.rs b/tests/ui/lang/consts/shallow-ref.rs index af831878ec..f54497183e 100644 --- a/tests/ui/lang/consts/shallow-ref.rs +++ b/tests/ui/lang/consts/shallow-ref.rs @@ -3,7 +3,7 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; use glam::{const_mat2, Mat2, Vec2}; diff --git a/tests/ui/lang/control_flow/closure_multi.rs b/tests/ui/lang/control_flow/closure_multi.rs index 77ff4424a2..1a947bf890 100644 --- a/tests/ui/lang/control_flow/closure_multi.rs +++ b/tests/ui/lang/control_flow/closure_multi.rs @@ -1,6 +1,7 @@ // build-pass use spirv_std; +use spirv_std::spirv; fn closure_user(ptr: &u32, xmax: u32, mut callback: F) { for i in 0..xmax { diff --git a/tests/ui/lang/control_flow/defer.rs b/tests/ui/lang/control_flow/defer.rs index dee0b5654f..d09881fc48 100644 --- a/tests/ui/lang/control_flow/defer.rs +++ b/tests/ui/lang/control_flow/defer.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/for_range.rs b/tests/ui/lang/control_flow/for_range.rs index 2497f2b670..bd868ba7a5 100644 --- a/tests/ui/lang/control_flow/for_range.rs +++ b/tests/ui/lang/control_flow/for_range.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/for_with_custom_range_iter.rs b/tests/ui/lang/control_flow/for_with_custom_range_iter.rs index 3b73d3afa9..cc25fb7262 100644 --- a/tests/ui/lang/control_flow/for_with_custom_range_iter.rs +++ b/tests/ui/lang/control_flow/for_with_custom_range_iter.rs @@ -8,6 +8,7 @@ use core::ops::Range; use spirv_std::num_traits::Num; +use spirv_std::spirv; struct RangeIter(Range); diff --git a/tests/ui/lang/control_flow/if.rs b/tests/ui/lang/control_flow/if.rs index 7301d529d5..324c61ad7a 100644 --- a/tests/ui/lang/control_flow/if.rs +++ b/tests/ui/lang/control_flow/if.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/if_else.rs b/tests/ui/lang/control_flow/if_else.rs index 4a9b22d69d..87a89eba0b 100644 --- a/tests/ui/lang/control_flow/if_else.rs +++ b/tests/ui/lang/control_flow/if_else.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/if_else_if_else.rs b/tests/ui/lang/control_flow/if_else_if_else.rs index 9d664803d0..d92948b3d7 100644 --- a/tests/ui/lang/control_flow/if_else_if_else.rs +++ b/tests/ui/lang/control_flow/if_else_if_else.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/if_if.rs b/tests/ui/lang/control_flow/if_if.rs index 4d29c7572a..3394b268e3 100644 --- a/tests/ui/lang/control_flow/if_if.rs +++ b/tests/ui/lang/control_flow/if_if.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/if_return_else.rs b/tests/ui/lang/control_flow/if_return_else.rs index a217184bb2..cf49a68ac3 100644 --- a/tests/ui/lang/control_flow/if_return_else.rs +++ b/tests/ui/lang/control_flow/if_return_else.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/if_return_else_return.rs b/tests/ui/lang/control_flow/if_return_else_return.rs index 0799db0925..221c8fd269 100644 --- a/tests/ui/lang/control_flow/if_return_else_return.rs +++ b/tests/ui/lang/control_flow/if_return_else_return.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/if_while.rs b/tests/ui/lang/control_flow/if_while.rs index 1e582a52dd..af749c1d28 100644 --- a/tests/ui/lang/control_flow/if_while.rs +++ b/tests/ui/lang/control_flow/if_while.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/ifx2.rs b/tests/ui/lang/control_flow/ifx2.rs index 66e074ba70..19563d32a6 100644 --- a/tests/ui/lang/control_flow/ifx2.rs +++ b/tests/ui/lang/control_flow/ifx2.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/issue_283.rs b/tests/ui/lang/control_flow/issue_283.rs index c10c61b9c4..0d5352a13a 100644 --- a/tests/ui/lang/control_flow/issue_283.rs +++ b/tests/ui/lang/control_flow/issue_283.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; use glam::*; diff --git a/tests/ui/lang/control_flow/issue_764.rs b/tests/ui/lang/control_flow/issue_764.rs index 900c7ef2f2..a1a315908d 100644 --- a/tests/ui/lang/control_flow/issue_764.rs +++ b/tests/ui/lang/control_flow/issue_764.rs @@ -3,6 +3,7 @@ use glam::UVec3; use spirv_std::glam; use spirv_std::glam::{Mat3, Vec3, Vec4}; +use spirv_std::spirv; fn index_to_transform(index: usize, raw_data: &[u8]) -> Transform2D { Transform2D { diff --git a/tests/ui/lang/control_flow/loop.rs b/tests/ui/lang/control_flow/loop.rs index cb2332e78e..d231078164 100644 --- a/tests/ui/lang/control_flow/loop.rs +++ b/tests/ui/lang/control_flow/loop.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/lang/control_flow/while.rs b/tests/ui/lang/control_flow/while.rs index 2031f73e9d..ae130cb632 100644 --- a/tests/ui/lang/control_flow/while.rs +++ b/tests/ui/lang/control_flow/while.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_break.rs b/tests/ui/lang/control_flow/while_break.rs index 262410f316..d6d21d0b1f 100644 --- a/tests/ui/lang/control_flow/while_break.rs +++ b/tests/ui/lang/control_flow/while_break.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_continue.rs b/tests/ui/lang/control_flow/while_continue.rs index 1513bb7bee..9810cf4b10 100644 --- a/tests/ui/lang/control_flow/while_continue.rs +++ b/tests/ui/lang/control_flow/while_continue.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_if_break.rs b/tests/ui/lang/control_flow/while_if_break.rs index 7367aa43b5..f413f9cdf6 100644 --- a/tests/ui/lang/control_flow/while_if_break.rs +++ b/tests/ui/lang/control_flow/while_if_break.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_if_break_else_break.rs b/tests/ui/lang/control_flow/while_if_break_else_break.rs index b67193febf..96d1d25219 100644 --- a/tests/ui/lang/control_flow/while_if_break_else_break.rs +++ b/tests/ui/lang/control_flow/while_if_break_else_break.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_if_break_if_break.rs b/tests/ui/lang/control_flow/while_if_break_if_break.rs index 8d04d2724f..84212019df 100644 --- a/tests/ui/lang/control_flow/while_if_break_if_break.rs +++ b/tests/ui/lang/control_flow/while_if_break_if_break.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_if_continue.rs b/tests/ui/lang/control_flow/while_if_continue.rs index c01e85b5b9..9ec2e082f5 100644 --- a/tests/ui/lang/control_flow/while_if_continue.rs +++ b/tests/ui/lang/control_flow/while_if_continue.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_if_continue_else_continue.rs b/tests/ui/lang/control_flow/while_if_continue_else_continue.rs index f638348b13..a2cb50b6c7 100644 --- a/tests/ui/lang/control_flow/while_if_continue_else_continue.rs +++ b/tests/ui/lang/control_flow/while_if_continue_else_continue.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_return.rs b/tests/ui/lang/control_flow/while_return.rs index aae48cf164..8150330c92 100644 --- a/tests/ui/lang/control_flow/while_return.rs +++ b/tests/ui/lang/control_flow/while_return.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_while.rs b/tests/ui/lang/control_flow/while_while.rs index fe97f07ef9..fc88f5a255 100644 --- a/tests/ui/lang/control_flow/while_while.rs +++ b/tests/ui/lang/control_flow/while_while.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_while_break.rs b/tests/ui/lang/control_flow/while_while_break.rs index 23de1da7a1..d90c9779ac 100644 --- a/tests/ui/lang/control_flow/while_while_break.rs +++ b/tests/ui/lang/control_flow/while_while_break.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_while_continue.rs b/tests/ui/lang/control_flow/while_while_continue.rs index 3e43f481b6..5ae1d793e0 100644 --- a/tests/ui/lang/control_flow/while_while_continue.rs +++ b/tests/ui/lang/control_flow/while_while_continue.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_while_if_break.rs b/tests/ui/lang/control_flow/while_while_if_break.rs index 0fc79ab570..0e294ea3da 100644 --- a/tests/ui/lang/control_flow/while_while_if_break.rs +++ b/tests/ui/lang/control_flow/while_while_if_break.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/control_flow/while_while_if_continue.rs b/tests/ui/lang/control_flow/while_while_if_continue.rs index 905834f638..b770476995 100644 --- a/tests/ui/lang/control_flow/while_while_if_continue.rs +++ b/tests/ui/lang/control_flow/while_while_if_continue.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] i: i32) { diff --git a/tests/ui/lang/core/mem/create_unitialized_memory.rs b/tests/ui/lang/core/mem/create_unitialized_memory.rs index 1c732ccfa8..3edc57aab6 100644 --- a/tests/ui/lang/core/mem/create_unitialized_memory.rs +++ b/tests/ui/lang/core/mem/create_unitialized_memory.rs @@ -1,7 +1,7 @@ // Test creating unitialized memory. // build-pass -use spirv_std as _; +use spirv_std::spirv; use core::mem::MaybeUninit; const MAYBEI32: MaybeUninit<&i32> = MaybeUninit::<&i32>::uninit(); diff --git a/tests/ui/lang/core/ops/logical_and.rs b/tests/ui/lang/core/ops/logical_and.rs index 2e710c073f..9982280c17 100644 --- a/tests/ui/lang/core/ops/logical_and.rs +++ b/tests/ui/lang/core/ops/logical_and.rs @@ -1,7 +1,7 @@ // Test using `&&` operator. // build-pass -use spirv_std as _; +use spirv_std::spirv; fn f(x: bool, y: bool) -> bool { x && y diff --git a/tests/ui/lang/core/ops/range-contains.rs b/tests/ui/lang/core/ops/range-contains.rs index 8dce33835f..3438376d7f 100644 --- a/tests/ui/lang/core/ops/range-contains.rs +++ b/tests/ui/lang/core/ops/range-contains.rs @@ -4,7 +4,7 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; fn has_two_decimal_digits(x: u32) -> bool { (10..100).contains(&x) diff --git a/tests/ui/lang/core/ptr/allocate_const_scalar.rs b/tests/ui/lang/core/ptr/allocate_const_scalar.rs index 735c94eeb3..97ff3ae9a2 100644 --- a/tests/ui/lang/core/ptr/allocate_const_scalar.rs +++ b/tests/ui/lang/core/ptr/allocate_const_scalar.rs @@ -5,7 +5,7 @@ #![feature(ptr_internals)] -use spirv_std as _; +use spirv_std::spirv; use core::ptr::Unique; const POINTER: Unique<[u8; 4]> = Unique::<[u8; 4]>::dangling(); diff --git a/tests/ui/lang/core/ptr/allocate_null.rs b/tests/ui/lang/core/ptr/allocate_null.rs index 1ada08585d..7182d94252 100644 --- a/tests/ui/lang/core/ptr/allocate_null.rs +++ b/tests/ui/lang/core/ptr/allocate_null.rs @@ -1,7 +1,7 @@ // Tests allocating a null pointer at `const` time. // build-pass -use spirv_std as _; +use spirv_std::spirv; use core::ptr::null; const NULL_PTR: *const i32 = null(); diff --git a/tests/ui/lang/core/ptr/allocate_vec_like.rs b/tests/ui/lang/core/ptr/allocate_vec_like.rs index 71d21ec1ab..7319a25ca6 100644 --- a/tests/ui/lang/core/ptr/allocate_vec_like.rs +++ b/tests/ui/lang/core/ptr/allocate_vec_like.rs @@ -3,7 +3,7 @@ #![feature(ptr_internals)] -use spirv_std as _; +use spirv_std::spirv; use core::ptr::Unique; const VEC_LIKE: (Unique, usize, usize) = (Unique::::dangling(), 0, 0); diff --git a/tests/ui/lang/core/ref/member_ref_arg.rs b/tests/ui/lang/core/ref/member_ref_arg.rs index 918194f153..43ca55c9dd 100644 --- a/tests/ui/lang/core/ref/member_ref_arg.rs +++ b/tests/ui/lang/core/ref/member_ref_arg.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; struct S { x: u32, diff --git a/tests/ui/lang/core/ref/zst_member_ref_arg.rs b/tests/ui/lang/core/ref/zst_member_ref_arg.rs index 2192e407db..4e99f1e2e3 100644 --- a/tests/ui/lang/core/ref/zst_member_ref_arg.rs +++ b/tests/ui/lang/core/ref/zst_member_ref_arg.rs @@ -1,6 +1,6 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; struct A; struct B; diff --git a/tests/ui/lang/core/unwrap_or.rs b/tests/ui/lang/core/unwrap_or.rs index fad5adea3d..4a474e39f1 100644 --- a/tests/ui/lang/core/unwrap_or.rs +++ b/tests/ui/lang/core/unwrap_or.rs @@ -4,7 +4,7 @@ // build-pass // compile-flags: -C llvm-args=--disassemble-entry=main -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(flat)] out: &mut u32) { diff --git a/tests/ui/lang/f32/packing.rs b/tests/ui/lang/f32/packing.rs index 2f042cb7d1..b03a912243 100644 --- a/tests/ui/lang/f32/packing.rs +++ b/tests/ui/lang/f32/packing.rs @@ -3,6 +3,7 @@ use spirv_std::float::*; use spirv_std::glam::{Vec2, Vec4}; +use spirv_std::spirv; #[spirv(fragment)] pub fn test_vec2_to_f16x2(i: Vec2, #[spirv(flat)] o: &mut u32) { diff --git a/tests/ui/lang/f32/signum.rs b/tests/ui/lang/f32/signum.rs index 02f8df073a..205d4b85f4 100644 --- a/tests/ui/lang/f32/signum.rs +++ b/tests/ui/lang/f32/signum.rs @@ -2,6 +2,7 @@ // build-pass use spirv_std::num_traits::Float; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(i: f32, o: &mut f32) { diff --git a/tests/ui/lang/issue-415.rs b/tests/ui/lang/issue-415.rs index 09958df7c1..d689f91f33 100644 --- a/tests/ui/lang/issue-415.rs +++ b/tests/ui/lang/issue-415.rs @@ -1,7 +1,7 @@ // Test that zero sized unions don't ICE (even if unions are generally not supported yet) // build-pass -use spirv_std as _; +use spirv_std::spirv; union U { a: (), diff --git a/tests/ui/lang/issue-836.rs b/tests/ui/lang/issue-836.rs index 9cced028c4..5af1cdbe1b 100644 --- a/tests/ui/lang/issue-836.rs +++ b/tests/ui/lang/issue-836.rs @@ -2,7 +2,7 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; struct Newtype(T); diff --git a/tests/ui/lang/panic/builtin.rs b/tests/ui/lang/panic/builtin.rs index 6e6e2bf2f2..fca1b971bc 100644 --- a/tests/ui/lang/panic/builtin.rs +++ b/tests/ui/lang/panic/builtin.rs @@ -1,7 +1,7 @@ // Test panics coming from the Rust language such as `1 / 0`. // build-pass -use spirv_std as _; +use spirv_std::spirv; fn int_div(x: usize) -> usize { 1 / x diff --git a/tests/ui/lang/panic/builtin_bounds_check.rs b/tests/ui/lang/panic/builtin_bounds_check.rs index 42168cf078..0b94fedbdf 100644 --- a/tests/ui/lang/panic/builtin_bounds_check.rs +++ b/tests/ui/lang/panic/builtin_bounds_check.rs @@ -1,7 +1,7 @@ // Test that bounds checking causes panics. // build-pass -use spirv_std as _; +use spirv_std::spirv; fn array_bounds_check(x: [u32; 4], i: usize) -> u32 { x[i] diff --git a/tests/ui/lang/panic/simple.rs b/tests/ui/lang/panic/simple.rs index 5b80682cf9..8405097916 100644 --- a/tests/ui/lang/panic/simple.rs +++ b/tests/ui/lang/panic/simple.rs @@ -1,7 +1,7 @@ // Test that calling `panic!` works. // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main() { diff --git a/tests/ui/lang/panic/track_caller.rs b/tests/ui/lang/panic/track_caller.rs index 319fb83c18..436136876c 100644 --- a/tests/ui/lang/panic/track_caller.rs +++ b/tests/ui/lang/panic/track_caller.rs @@ -2,7 +2,7 @@ // build-pass -use spirv_std as _; +use spirv_std::spirv; #[track_caller] fn track_caller_maybe_panic(x: u32) { diff --git a/tests/ui/spirv-attr/all-builtins.rs b/tests/ui/spirv-attr/all-builtins.rs index 215e6cdf00..d4df7b93ea 100644 --- a/tests/ui/spirv-attr/all-builtins.rs +++ b/tests/ui/spirv-attr/all-builtins.rs @@ -3,6 +3,7 @@ // compile-flags: -Ctarget-feature=+DeviceGroup,+DrawParameters,+FragmentBarycentricNV,+FragmentDensityEXT,+FragmentFullyCoveredEXT,+Geometry,+GroupNonUniform,+GroupNonUniformBallot,+MeshShadingNV,+MultiView,+MultiViewport,+RayTracingKHR,+SampleRateShading,+ShaderSMBuiltinsNV,+ShaderStereoViewNV,+StencilExportEXT,+Tessellation,+ext:SPV_AMD_shader_explicit_vertex_parameter,+ext:SPV_EXT_fragment_fully_covered,+ext:SPV_EXT_fragment_invocation_density,+ext:SPV_EXT_shader_stencil_export,+ext:SPV_KHR_ray_tracing,+ext:SPV_NV_fragment_shader_barycentric,+ext:SPV_NV_mesh_shader,+ext:SPV_NV_shader_sm_builtins,+ext:SPV_NV_stereo_view_rendering use spirv_std::glam::*; +use spirv_std::spirv; #[derive(Clone, Copy)] #[spirv(matrix)] diff --git a/tests/ui/spirv-attr/bad-infer-storage-class.rs b/tests/ui/spirv-attr/bad-infer-storage-class.rs index 22cba464b9..fbbfbbcf11 100644 --- a/tests/ui/spirv-attr/bad-infer-storage-class.rs +++ b/tests/ui/spirv-attr/bad-infer-storage-class.rs @@ -1,7 +1,7 @@ // Tests that storage class inference fails correctly // build-fail -use spirv_std::Image; +use spirv_std::{spirv, Image}; #[spirv(vertex)] pub fn main( diff --git a/tests/ui/spirv-attr/bool-inputs-err.rs b/tests/ui/spirv-attr/bool-inputs-err.rs index 1137fca9c4..d157703a06 100644 --- a/tests/ui/spirv-attr/bool-inputs-err.rs +++ b/tests/ui/spirv-attr/bool-inputs-err.rs @@ -1,6 +1,6 @@ // build-fail -use spirv_std as _; +use spirv_std::spirv; pub struct Boolthing { x: u32, diff --git a/tests/ui/spirv-attr/bool-inputs.rs b/tests/ui/spirv-attr/bool-inputs.rs index bc7b4762cf..c0d74df93b 100644 --- a/tests/ui/spirv-attr/bool-inputs.rs +++ b/tests/ui/spirv-attr/bool-inputs.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -Ctarget-feature=+FragmentFullyCoveredEXT,+ext:SPV_EXT_fragment_fully_covered -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn fragment( diff --git a/tests/ui/spirv-attr/int-without-flat.rs b/tests/ui/spirv-attr/int-without-flat.rs index 9269933c00..5536f1a2b9 100644 --- a/tests/ui/spirv-attr/int-without-flat.rs +++ b/tests/ui/spirv-attr/int-without-flat.rs @@ -1,6 +1,6 @@ // build-fail -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn fragment(int: u32, double: f64) {} diff --git a/tests/ui/spirv-attr/invalid-matrix-type-empty.rs b/tests/ui/spirv-attr/invalid-matrix-type-empty.rs index 7f443761cc..d43ec4ce3d 100644 --- a/tests/ui/spirv-attr/invalid-matrix-type-empty.rs +++ b/tests/ui/spirv-attr/invalid-matrix-type-empty.rs @@ -1,7 +1,7 @@ // Tests that matrix type inference fails correctly, for empty struct // build-fail -use spirv_std as _; +use spirv_std::spirv; #[spirv(matrix)] pub struct _EmptyStruct {} diff --git a/tests/ui/spirv-attr/invalid-matrix-type.rs b/tests/ui/spirv-attr/invalid-matrix-type.rs index 38175459b9..1fba8e60af 100644 --- a/tests/ui/spirv-attr/invalid-matrix-type.rs +++ b/tests/ui/spirv-attr/invalid-matrix-type.rs @@ -1,7 +1,7 @@ // Tests that matrix type inference fails correctly // build-fail -use spirv_std as _; +use spirv_std::spirv; #[spirv(matrix)] pub struct _FewerFields { diff --git a/tests/ui/spirv-attr/invalid-storage-class.rs b/tests/ui/spirv-attr/invalid-storage-class.rs index 0de1d6c7a7..9cb86bf6ae 100644 --- a/tests/ui/spirv-attr/invalid-storage-class.rs +++ b/tests/ui/spirv-attr/invalid-storage-class.rs @@ -2,7 +2,7 @@ // build-fail -use spirv_std as _; +use spirv_std::spirv; #[spirv(vertex)] fn _entry( diff --git a/tests/ui/spirv-attr/invalid-target.rs b/tests/ui/spirv-attr/invalid-target.rs index 393f29b9ee..d2da09b36c 100644 --- a/tests/ui/spirv-attr/invalid-target.rs +++ b/tests/ui/spirv-attr/invalid-target.rs @@ -1,4 +1,4 @@ -// Tests that `#[spirv(...)]` attributes cannot be applied to the wrong "targets" +// Tests that `#[rust_gpu::spirv(...)]` attributes cannot be applied to the wrong "targets" // (i.e. various kinds of definitions and other syntactic categories). // build-fail @@ -11,15 +11,15 @@ )] // NOTE(eddyb) in the interest of keeping this test manageable, only one of -// each of the following categories of `#[spirv(...)]` attributes is used: +// each of the following categories of `#[rust_gpu::spirv(...)]` attributes is used: // * entry: `vertex` // * storage class: `uniform` // * builtin: `position` // NOTE(eddyb) accounting for the number of errors this test actually produces: // * 473 errors, all "attribute is only valid on" (see `invalid-target.stderr`) -// * 41 uses of `#[spirv(...)]` in this test -// * at most 12 attributes per `#[spirv(...)]`, so an upper bound of `41*12 = 492` +// * 41 uses of `#[rust_gpu::spirv(...)]` in this test +// * at most 12 attributes per `#[rust_gpu::spirv(...)]`, so an upper bound of `41*12 = 492` // * the difference between 492 and 473 is 19, i.e. valid attributes, made up of: // * 4 on `_Struct` // * 8 on functions, i.e. 2 on each of: @@ -30,9 +30,9 @@ // * 6 on `_entry_param` // * 1 on `_closure` -//use spirv_std::spirv; +// NOTE(shesp) Directly using `#[rust_gpu::spirv(...)]` because macro attributes are invalid in most contexts -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -42,7 +42,7 @@ macro_rules! _macro { () => {}; } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -50,7 +50,7 @@ macro_rules! _macro { )] extern crate spirv_std as _; -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -58,7 +58,7 @@ extern crate spirv_std as _; )] use spirv_std as _; -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -66,14 +66,14 @@ use spirv_std as _; )] mod _mod {} -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] extern "C" { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -81,7 +81,7 @@ extern "C" { )] type _ForeignTy; - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -89,7 +89,7 @@ extern "C" { )] static _FOREIGN_STATIC: (); - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -98,7 +98,7 @@ extern "C" { fn _foreign_fn(); } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -106,7 +106,7 @@ extern "C" { )] static _STATIC: () = (); -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -114,7 +114,7 @@ static _STATIC: () = (); )] const _CONST: () = (); -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -122,7 +122,7 @@ const _CONST: () = (); )] type _TyAlias = (); -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -134,21 +134,21 @@ fn _opaque_ty_definer() -> _OpaqueTy { () } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] enum _Enum { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] _Variant { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -158,14 +158,14 @@ enum _Enum { }, } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] union _Union { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -174,13 +174,13 @@ union _Union { _field: (), } -#[spirv( +#[rust_gpu::spirv( vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] struct _Struct { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -189,14 +189,14 @@ struct _Struct { _field: (), } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] impl _Struct { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -204,14 +204,14 @@ impl _Struct { )] const _INHERENT_ASSOC_CONST: () = (); - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only )] fn _inherent_method() {} } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -219,14 +219,14 @@ impl _Struct { )] trait _TraitAlias = Copy; -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] trait _Trait { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -234,7 +234,7 @@ trait _Trait { )] type _AssocTy; - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -242,7 +242,7 @@ trait _Trait { )] const _TRAIT_ASSOC_CONST: (); - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -250,21 +250,21 @@ trait _Trait { )] fn _trait_method(); - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only )] fn _trait_method_with_default() {} } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] impl _Trait for () { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -272,7 +272,7 @@ impl _Trait for () { )] type _AssocTy = (); - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -280,26 +280,26 @@ impl _Trait for () { )] const _TRAIT_ASSOC_CONST: () = (); - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only )] fn _trait_method() {} } -#[spirv( +#[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only )] fn _fn( - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only unroll_loops, // fn/closure-only )] _entry_param: (), ) { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -307,7 +307,7 @@ fn _fn( )] let _statement = (); - let _closure = #[spirv( + let _closure = #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -315,7 +315,7 @@ fn _fn( || {}; ( - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -325,7 +325,7 @@ fn _fn( ); match () { - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only @@ -336,19 +336,19 @@ fn _fn( } fn _fn_with_generics< - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] '_lifetime_param, - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only unroll_loops, // fn/closure-only )] _TyParam, - #[spirv( + #[rust_gpu::spirv( sampler, block, sampled_image, generic_image_type, // struct-only vertex, // fn-only uniform, position, descriptor_set = 0, binding = 0, flat, invariant, // param-only diff --git a/tests/ui/spirv-attr/invariant-invalid.rs b/tests/ui/spirv-attr/invariant-invalid.rs index 8179896fb1..73634a2aa2 100644 --- a/tests/ui/spirv-attr/invariant-invalid.rs +++ b/tests/ui/spirv-attr/invariant-invalid.rs @@ -1,7 +1,7 @@ // Tests that the invariant attribute can't be applied on inputs // build-fail -use spirv_std as _; +use spirv_std::spirv; #[spirv(vertex)] pub fn main(#[spirv(invariant)] input: f32) {} diff --git a/tests/ui/spirv-attr/invariant.rs b/tests/ui/spirv-attr/invariant.rs index 137b864b28..37e7a698ec 100644 --- a/tests/ui/spirv-attr/invariant.rs +++ b/tests/ui/spirv-attr/invariant.rs @@ -1,7 +1,7 @@ // Tests that the invariant attribute works // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(vertex)] pub fn main(#[spirv(invariant)] output: &mut f32) {} diff --git a/tests/ui/spirv-attr/matrix-type.rs b/tests/ui/spirv-attr/matrix-type.rs index bd41941030..ef8ca60349 100644 --- a/tests/ui/spirv-attr/matrix-type.rs +++ b/tests/ui/spirv-attr/matrix-type.rs @@ -1,7 +1,7 @@ // build-pass // compile-flags: -Ctarget-feature=+RayTracingKHR,+ext:SPV_KHR_ray_tracing -use spirv_std as _; +use spirv_std::spirv; #[derive(Clone, Copy)] #[spirv(matrix)] diff --git a/tests/ui/spirv-attr/multiple.rs b/tests/ui/spirv-attr/multiple.rs index 2be5fa5811..e99a56563a 100644 --- a/tests/ui/spirv-attr/multiple.rs +++ b/tests/ui/spirv-attr/multiple.rs @@ -3,7 +3,7 @@ // build-fail -use spirv_std as _; +use spirv_std::spirv; #[spirv(sampler, sampler)] struct _SameIntrinsicType {} diff --git a/tests/ui/storage_class/push_constant.rs b/tests/ui/storage_class/push_constant.rs index 0aa04ccef2..3dd63231e0 100644 --- a/tests/ui/storage_class/push_constant.rs +++ b/tests/ui/storage_class/push_constant.rs @@ -1,7 +1,7 @@ // Test that using push constants passes (Vulkan) validation. // build-pass -use spirv_std as _; +use spirv_std::spirv; #[derive(Copy, Clone)] pub struct ShaderConstants { diff --git a/tests/ui/storage_class/runtime_descriptor_array.rs b/tests/ui/storage_class/runtime_descriptor_array.rs index 0d72415fa7..0596b56725 100644 --- a/tests/ui/storage_class/runtime_descriptor_array.rs +++ b/tests/ui/storage_class/runtime_descriptor_array.rs @@ -1,6 +1,7 @@ // build-pass // compile-flags: -C target-feature=+RuntimeDescriptorArray,+ext:SPV_EXT_descriptor_indexing +use spirv_std::spirv; use spirv_std::{Image, RuntimeArray, Sampler}; #[spirv(fragment)] diff --git a/tests/ui/storage_class/runtime_descriptor_array_error.rs b/tests/ui/storage_class/runtime_descriptor_array_error.rs index 0d8ef187f7..24fcd044ec 100644 --- a/tests/ui/storage_class/runtime_descriptor_array_error.rs +++ b/tests/ui/storage_class/runtime_descriptor_array_error.rs @@ -1,6 +1,6 @@ // build-fail -use spirv_std::{Image, RuntimeArray}; +use spirv_std::{spirv, Image, RuntimeArray}; #[spirv(fragment)] pub fn main( diff --git a/tests/ui/storage_class/storage_buffer-dst.rs b/tests/ui/storage_class/storage_buffer-dst.rs index 03dab3b3c4..8f9176ee73 100644 --- a/tests/ui/storage_class/storage_buffer-dst.rs +++ b/tests/ui/storage_class/storage_buffer-dst.rs @@ -1,7 +1,7 @@ // Test that using DST (i.e. slice) storage buffers passes (Vulkan) validation. // build-pass -use spirv_std as _; +use spirv_std::spirv; #[spirv(fragment)] pub fn main(#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] slice: &mut [f32]) { diff --git a/tests/ui/target_features_err.rs b/tests/ui/target_features_err.rs index 30169eb8b7..f6def31c4f 100644 --- a/tests/ui/target_features_err.rs +++ b/tests/ui/target_features_err.rs @@ -1,7 +1,7 @@ // build-fail // compile-flags: -Ctarget-feature=+rayTracingKHR,+ext:SPV_KHR_ray_tracing -use spirv_std as _; +use spirv_std::spirv; #[spirv(any_hit)] pub fn main() {