You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Features that have been removed in a bullet list
17
+
Toolchain: `nightly-2026-04-11` (rustc 1.96.0)
27
18
28
-
### Fixed 🩹
29
-
- Bug fixes in a bullet list
19
+
### Added ⭐
30
20
31
-
### Security 🔐
32
-
- Changes/fixes related to security vulnerabilities in a bullet list
21
+
-[PR#493](https://github.com/Rust-GPU/rust-gpu/pull/493) add `spirv-unknown-naga-wgsl` target to transpile to wgsl with naga 29
22
+
-[PR#271](https://github.com/Rust-GPU/rust-gpu/pull/271) added new targets: `vulkan1.3`, `vulkan1.4`, `spv1.6`
23
+
-[PR#177](https://github.com/Rust-GPU/rust-gpu/pull/177) added `NonUniform` SPIR-V decoration for every image and buffer access when `NonUniform` capability is enabled
24
+
-[PR#394](https://github.com/Rust-GPU/rust-gpu/pull/394) remove unsafe from safe SPIR-V intrinsic functions
25
+
-[PR#44](https://github.com/Rust-GPU/rust-gpu/pull/44) added [mesh shaders](https://www.khronos.org/blog/mesh-shading-for-vulkan) with task shaders and per-primitive output attributes
26
+
27
+
- entry point:
28
+
-[PR#514](https://github.com/Rust-GPU/rust-gpu/pull/514) allowed zero-sized types in entry point input/output positions
29
+
-[PR#509](https://github.com/Rust-GPU/rust-gpu/pull/509) added validation for incorrect `LocalInvocationIndex` type, must be `u32`
-[PR#441](https://github.com/Rust-GPU/rust-gpu/pull/441) added `ScalarComposite` trait and derive macro, enabling composite types (scalars, vectors, arrays, structs, repr-int enums) in subgroup intrinsics
39
+
40
+
- ray tracing:
41
+
-[PR#391](https://github.com/Rust-GPU/rust-gpu/pull/391) added `Matrix4x3` type for ray tracing intrinsics
42
+
-[PR#343](https://github.com/Rust-GPU/rust-gpu/pull/343) added `RayQuery::get_intersection_triangle_vertex_positions()` for ray tracing
43
+
-[PR#339](https://github.com/Rust-GPU/rust-gpu/pull/339) added `HitTriangleVertexPositionsKHR` built-in for ray tracing pipelines
44
+
45
+
-`spirv-builder`
46
+
-[PR#477](https://github.com/Rust-GPU/rust-gpu/pull/477) removed the need for `crate-type = ["dylib"]` in shader crate `Cargo.toml`
47
+
-[PR#488](https://github.com/Rust-GPU/rust-gpu/pull/488) replaced `enum MetadataPrintout` with `struct BuildScriptConfig`; shader compilation warnings now properly forwarded to build output
48
+
-[PR#265](https://github.com/Rust-GPU/rust-gpu/pull/265) added `#[non_exhaustive]` on `SpirvBuilder` and dependent structs; use builder patterns instead of direct construction
49
+
-[PR#13](https://github.com/Rust-GPU/rust-gpu/pull/13) allowed cargo features and default-features to be passed to the shader crate
50
+
-[PR#422](https://github.com/Rust-GPU/rust-gpu/pull/422) redesigned the `spirv-builder` watch API: simpler `Watcher` returning `CompileResult` directly from `recv()`, with `try_recv()` for non-blocking polling
51
+
-[PR#223](https://github.com/Rust-GPU/rust-gpu/pull/223) added `SpirvBuilder::target_dir_path` to set the target directory explicitly
52
+
-[PR#188](https://github.com/Rust-GPU/rust-gpu/pull/188) added `RUSTGPU_CARGOFLAGS` environment variable for passing extra cargo flags
53
+
54
+
-`cargo-gpu`
55
+
- added `cargo-gpu` to allow CPU code to be compiled by a stable toolchain
56
+
-[PR#131](https://github.com/Rust-GPU/cargo-gpu/pull/131) added `cargo gpu clippy` and `cargo gpu check` for linting/checking shader code
57
+
-[PR#109](https://github.com/Rust-GPU/cargo-gpu/pull/109) added `--package`/`-p` akin to `cargo`
58
+
-[PR#16](https://github.com/Rust-GPU/cargo-gpu/pull/16) added `[package.metadata.rust-gpu]` support in `Cargo.toml` for declarative build configuration
59
+
-[PR#42](https://github.com/Rust-GPU/cargo-gpu/pull/42) added `--watch` flag for auto-recompilation on source changes
60
+
-[PR#71](https://github.com/Rust-GPU/cargo-gpu/pull/71) refactored cargo-gpu from a binary into a library with a public API that's usable from build scripts
61
+
-[PR#132](https://github.com/Rust-GPU/cargo-gpu/pull/132) extracted install logic into a separate `cargo-gpu-install` crate, reducing dependency count by ~30 crates for library consumers
33
62
34
-
-->
63
+
### Changed 🛠
35
64
36
-
## [Unreleased]
65
+
- Updated Rust nightly toolchain to `nightly-2026-04-11`
66
+
-[PR#249](https://github.com/Rust-GPU/rust-gpu/pull/249) updated to Rust 2024 edition
67
+
-[PR#380](https://github.com/Rust-GPU/rust-gpu/pull/380)`glam` types have the same layout on GPU and CPU to prevent sutle UB bugs with `Vec3`, requires at least glam `0.30.8`
68
+
-[PR#395](https://github.com/Rust-GPU/rust-gpu/pull/395) make many APIs explicitly use `glam` types instead of generics
37
69
38
-
### Changed 🛠
70
+
-`ByteAddressableBuffer`:
71
+
-[PR#17](https://github.com/Rust-GPU/rust-gpu/pull/17) refactored `ByteAddressableBuffer` to allow reading from read-only buffers
72
+
-[PR#430](https://github.com/Rust-GPU/rust-gpu/pull/430) fix `ByteAddressableBuffer` stores of scalar pair types
73
+
-[PR#353](https://github.com/Rust-GPU/rust-gpu/pull/353) soundness fix: respect `read_scalar` errors instead of silently corrupting data
39
74
40
-
-[PR#170](https://github.com/Rust-GPU/rust-gpu/pull/170) updated toolchain to `nightly-2024-11-22`
41
-
-[PR#44](https://github.com/Rust-GPU/rust-gpu/pull/44) added support for [mesh shaders](https://www.khronos.org/blog/mesh-shading-for-vulkan)
42
-
-[PR#17](https://github.com/Rust-GPU/rust-gpu/pull/17) refactored [`ByteAddressableBuffer`](https://rust-gpu.github.io/rust-gpu/api/spirv_std/byte_addressable_buffer/struct.ByteAddressableBuffer.html) to allow reading from read-only buffers
-[PR#13](https://github.com/Rust-GPU/rust-gpu/pull/13) allowed cargo features to be passed to the shader crate
50
-
-[PR#9](https://github.com/Rust-GPU/rust-gpu/pull/9) relaxed `glam` version requirements (`>=0.22, <=0.29`)
51
-
-[PR#1127](https://github.com/EmbarkStudios/rust-gpu/pull/1127) updated `spirv-tools` to `0.10.0`, which follows `vulkan-sdk-1.3.275`
52
-
-[PR#1101](https://github.com/EmbarkStudios/rust-gpu/pull/1101) added `ignore` and `no_run` to documentation to make `cargo test` pass
53
-
-[PR#1112](https://github.com/EmbarkStudios/rust-gpu/pull/1112) updated wgpu and winit in example runners
75
+
- image:
76
+
-[PR#281](https://github.com/Rust-GPU/rust-gpu/pull/281) allow `SampledImage` to access `query_size_lod` and `query_size`
77
+
-[PR#361](https://github.com/Rust-GPU/rust-gpu/pull/361) added `Image::fetch_with_lod` shortcut for `Image::fetch_with(..., lod(...))`
78
+
-[PR#490](https://github.com/Rust-GPU/rust-gpu/pull/490) made `Image::fetch()` implicitly declare LOD 0
79
+
-[PR#474](https://github.com/Rust-GPU/rust-gpu/pull/474) allow `Image::write()` to write scalar values into scalar images
54
80
55
81
### Fixed 🩹
56
82
57
-
-[PR#200](https://github.com/Rust-GPU/rust-gpu/pull/200) fixed [#199](https://github.com/Rust-GPU/rust-gpu/issues/199) by correctly generating an `fmul` in the `log10` intrinsic
58
-
-[PR#174](https://github.com/Rust-GPU/rust-gpu/pull/174) fixed [#169](https://github.com/Rust-GPU/rust-gpu/issues/169) by handling signed integers in the `bswap` intrinsic
59
-
-[PR#1129](https://github.com/EmbarkStudios/rust-gpu/pull/1129) fixed [#1062](https://github.com/EmbarkStudios/rust-gpu/issues/1062) by not flipping the comparison of the rotate amount with zero
83
+
-[PR#552](https://github.com/Rust-GPU/rust-gpu/pull/552) massive speedups for mem2reg linker step
84
+
-[PR#364](https://github.com/Rust-GPU/rust-gpu/pull/364) fixed `libm` intrinsics for versions newer than `0.2.11`
85
+
-[PR#233](https://github.com/Rust-GPU/rust-gpu/pull/233) fixed array of array types
86
+
-[PR#167](https://github.com/Rust-GPU/rust-gpu/pull/167) fixed `debug_printf` macros not escaping `{` and `}` correctly
87
+
88
+
- codegen:
89
+
-[PR#15](https://github.com/Rust-GPU/rust-gpu/pull/15) fixed signed `for` loops
90
+
-[PR#213](https://github.com/Rust-GPU/rust-gpu/pull/213) fixed `leading_zeros`, `trailing_zeros` and `count_ones` intrinsics
91
+
-[PR#174](https://github.com/Rust-GPU/rust-gpu/pull/174) added support for signed integer `bswap`
92
+
-[PR#363](https://github.com/Rust-GPU/rust-gpu/pull/363) allow `std::hint::black_box` to be a no-op on GPU
93
+
-[PR#518](https://github.com/Rust-GPU/rust-gpu/pull/518) replace `num_traits::Float::powi` implementation with `GLSL.std.450 Pow` intrinsics
-[PR#1129](https://github.com/EmbarkStudios/rust-gpu/pull/1129) fixed bit rotates being completely broken
96
+
-[PR#227](https://github.com/Rust-GPU/rust-gpu/pull/227) fixed array init with `0i32` incorrectly using `0u32`
97
+
-[PR#224](https://github.com/Rust-GPU/rust-gpu/pull/224) fixed typo swapping logical operations on bools
98
+
-[PR#302](https://github.com/Rust-GPU/rust-gpu/pull/302) optimize constant casts to avoid requiring `Int64` capabilities
99
+
100
+
- spirv-val:
101
+
-[PR#512](https://github.com/Rust-GPU/rust-gpu/pull/512) fixed validation failures with newer `spirv-val` (v2025.5+) by folding `OpLoad` from `Private` variables with constant initializers
0 commit comments