Rust-GPU / Rust-GPU/rust-gpu

u64 with `trailing_zeros` returns incorrect values

Abierto
#501 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug
Lenguaje dominante
Rust
Estrellas
3.4k
Forks
126
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Expected Behaviour

We expect the trailing_zeros() function on u64 values to match the behavior of Rust's standard library implementation, returning the count of trailing zero bits.

For example:

  • 0x0000000000000001_u64.trailing_zeros() should return 0
  • 0x0000000100000000_u64.trailing_zeros() should return 32
  • 0x8000000000000000_u64.trailing_zeros() should return 63
Example & Steps To Reproduce
  • 0x0000000000000001 Expected: 0, Result: 32
  • 0x0000000100000000 Expected: 32, Result: 0
  • 0x8000000000000000 Expected: 63, Result: 31

Run a shader that calculates trailing zeros on a u64. I am creating a pull request that contains test to validate the function and a fix for this issue.

#![no_std]
use spirv_std::spirv;

#[spirv(compute(threads(1)))]
pub fn main_cs(
    #[spirv(storage_buffer, descriptor_set = 0, binding = 0)] output: &mut [u32],
) {
    // Expected: 0, Actual: 32
    output[0] = 0x0000000000000001_u64.trailing_zeros();
    
    // Expected: 32, Actual: 0  
    output[1] = 0x0000000100000000_u64.trailing_zeros();
}

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza rastreando el punto de entrada u64 trailing_zeros() utilizado al compilar el shader y compara su comportamiento con la implementación de la biblioteca estándar de Rust. Ejecuta la reproducción del shader con los tres valores u64 indicados y añade o utiliza pruebas que cubran los resultados 0, 32 y 63. Se considera completado cuando todos los ejemplos devuelven el número esperado de bits cero finales.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
compilers, computer-graphics
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.