rust-gpu
rust-gpu copied to clipboard
🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
"Zombies" are a form of deferred errors (mostly to ignore errors caused in unused code), for both: - concepts representable in SPIR-V, but not legal (e.g. OpenCL-only pointer operations) -...
Hi, I have a dummy compute kernel: ``` #[spirv(compute(threads(768)))] pub fn main_cs( #[spirv(global_invocation_id)] id: UVec3, #[spirv(storage_buffer, descriptor_set = 0, binding = 0)] prime_indices: &mut [u32], ) { let index =...
I was writing up this SPIR-T issue when I realized we can do much better than I ever thought we can: * https://github.com/EmbarkStudios/spirt/issues/11 ### The "subgroup reconvergence"/"loop merges" problem statement...
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/HitTriangleVertexPositionsKHR.html Is it planned, or is there any way to use such a extension?
https://github.com/EmbarkStudios/rust-gpu/blob/e87c324bfda6bea144fe2635586281c4ef144f0d/crates/spirv-std/src/byte_addressable_buffer.rs#L73-L78 ```rust if byte_index + mem::size_of::() as u32 > (mem::size_of:: * self.data.len()) as u32 ``` Isn't the right-hand side multiplied by 4 because `data` is `&[u32]`?
### Expected Behaviour rust-gpu compiling for any `spirv-unknown-vulkan1.X` target should not implicitly emit `OpCapability VulkanMemoryModel` in the resulting spv, instead one would need to call `SpirvBuilder.capability(Capability::VulkanMemoryModel)` to enable the `VulkanMemoryModel`...
While debugging an issue with nested loops I simplified my shader to one loop as a sanity check and then hit this compiler panic. It seems to be caused by...
Hi, Compiling this code: ```rust #[spirv(compute(threads(8, 8)))] pub fn main(#[spirv(descriptor_set = 0, binding = 0)] out: TexRgba32f) { let mut value = vec3(0.1, 0.2, 0.3); let mut i = 0;...
### Expected Behaviour Successful compilation of [`bevy-pbr-rust`](https://github.com/bevy-rust-gpu/bevy-pbr-rust) with `--spirt-passes=reduce` enabled via `RUSTGPU_CODEGEN_ARGS`. This was done using the `v0.5.0` tag as a preliminary test before upgrading to `v0.6.0`, under advisement of...
As far as I can tell, the workgroup/shared memory ([context](https://github.com/EmbarkStudios/rust-gpu/issues/695)) can not be declared as to be zero-initialized and one has to do it manually. https://github.com/KhronosGroup/Vulkan-Docs/issues/1457 has a bunch of...