#[cfg(target_arch = "nvptx64")]
pub use memory_nvptx::*;
#[cfg(not(target_arch = "nvptx64"))]
pub use spirv_std::memory::*;
#[cfg(target_arch = "nvptx64")]
pub mod memory_nvptx {
#[derive(Copy, Clone)]
#[repr(u32)]
pub enum Scope {
CrossDevice = 0,
Device = 1,
Workgroup = 2,
Subgroup = 3,
Invocation = 4,
QueueFamily = 5,
}
#[derive(Copy, Clone)]
pub struct Semantics(u32);
impl Semantics {
pub const NONE: Self = Self(0);
pub const ACQUIRE: Self = Self(0x2);
pub const RELEASE: Self = Self(0x4);
pub const ACQUIRE_RELEASE: Self = Self(0x8);
pub const UNIFORM_MEMORY: Self = Self(0x40);
pub const WORKGROUP_MEMORY: Self = Self(0x100);
pub const fn bits(self) -> u32 {
self.0
}
}
impl core::ops::BitOr for Semantics {
type Output = Self;
fn bitor(self, rhs: Self) -> Self {
Self(self.0 | rhs.0)
}
}
}