Using an array as a slice causes a compiler error
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 38/100
Direzione di ricerca
Inizia compilando l'esempio minimo in Rust riportato nell'issue, concentrandoti sulla chiamata a do_work che passa &data a un parametro &[u32]. Traccia la gestione da parte del compilatore della conversione da array a slice e verifica che l'esempio venga compilato correttamente con l'entry point del compute shader.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm surprised I haven't hit this earlier, but it's not possible to pass an array as a slice. Is this a known limitation? Is there an easy workaround?
Expected Behaviour
I would expect to be able to pass an array like [u32; 3] as a parameter to a function that takes a slice.
Example & Steps To Reproduce
Here is a minimal reproducible example:
#![no_std]
#![allow(unexpected_cfgs)]
fn do_work(data: &[u32], slab: &mut [u32]) {
slab[0] = data[0];
slab[1] = data[1];
slab[2] = data[2];
}
#[spirv(compute(threads(16)))]
pub fn compute_shader(
#[spirv(storage_buffer, descriptor_set = 0, binding = 0)] slab: &mut [u32],
#[spirv(global_invocation_id)] global_id: glam::UVec3,
) {
let data = [global_id.x, global_id.y, global_id.z];
do_work(&data, slab);
}
System Info
- Rustc version:
1.90 - spirv-std: from the latest
main,b3eda4df9814b6176d3c0844eb67f70a22ebb378as of this writing - SPIR-V version:
❯ spirv-val --version SPIRV-Tools v2025.3 unknown hash, 2025-06-23T19:59:33+00:00 Targets: SPIR-V 1.0 SPIR-V 1.1 SPIR-V 1.2 SPIR-V 1.3 SPIR-V 1.4 SPIR-V 1.5 SPIR-V 1.6 SPIR-V 1.2 (under OpenCL 2.2 Full Profile semantics) SPIR-V 1.0 (under Vulkan 1.0 semantics) SPIR-V 1.3 (under Vulkan 1.1 semantics) SPIR-V 1.4 (under Vulkan 1.1 semantics) SPIR-V 1.5 (under Vulkan 1.2 semantics) SPIR-V 1.6 (under Vulkan 1.3 semantics) SPIR-V 1.6 (under Vulkan 1.4 semantics)
- Lingua principale
- Rust
- Stelle
- 3.4k
- Fork
- 126
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Rust-GPU/rust-gpu
-
enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
enhancement
Rust-GPU/rust-gpu#643 · 2 commenti · 1 reazione · 1 assegnatario ·
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
-
async functions cause ICE Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Tutte le issue di Rust-GPU/rust-gpu
Issue simili
-
risk:low runtime status:in-progress type:test
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
zeroclaw-labs/zeroclaw#11023 ·
-
good first issue refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
EricSpencer00/Resilient#4835 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
bisq-network/bisq-musig#204 ·
-
agent:ready documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
cesarferreira/stax#890 ·