Using an array as a slice causes a compiler error
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 38/100
Línea de trabajo
Comienza compilando el ejemplo mínimo de Rust incluido en el issue, centrándote en la llamada a do_work que pasa &data a un parámetro &[u32]. Sigue cómo gestiona el compilador la conversión de array a slice y verifica que el ejemplo se compile correctamente con el punto de entrada del compute shader.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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)
- Lenguaje dominante
- Rust
- Estrellas
- 3.4k
- Forks
- 126
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Rust-GPU/rust-gpu
-
enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
glam v0.33.6 breaks `Vec3A` Abiertobug
-
enhancement
Rust-GPU/rust-gpu#643 · 3 comentarios · 1 reacción · 1 asignado ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
Todos los issues de Rust-GPU/rust-gpu
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
bug core
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
JIT-compiled number -> Decimal conversion silently overflows instead of raising DECIMAL_OVERFLOW Abiertofuzz
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
ClickHouse/ClickHouse#122114 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
linebender/vello_svg#90 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100