Expand description

Core functions, traits, and more that make up a “standard library” for SPIR-V for use in rust-gpu.


pub extern crate spirv_std_macros as macros;
pub use byte_addressable_buffer::ByteAddressableBuffer;
pub use num_traits;
pub use glam;


SPIR-V Instrinics

Container for an untyped blob of data.

Traits and helper functions related to floats.

Image types

Traits related to integers.

Types for handling memory ordering constraints for concurrent memory access.

Ray-tracing data types

Traits related to scalars.

Traits related to vectors.


A macro for creating SPIR-V OpTypeImage types. Always produces a spirv_std::image::Image<...> type.

Constructs an uninitialized ray query variable. Using the syntax let (mut)? <name>. Where name is the name of the ray query variable.


Dynamically-sized arrays in Rust carry around their length as the second half of a tuple. Unfortunately, sometimes SPIR-V provides an unsized array with no way of obtaining its length. Hence, this type represents something very similar to a slice, but with no way of knowing its length.

An opaque reference to settings that describe how to access, filter, or sample an image.