Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

u64 with `trailing_zeros` returns incorrect values

Aberta
#501 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
48/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
rust

Direção de pesquisa

Comece rastreando o ponto de entrada u64 trailing_zeros() usado ao compilar o shader e compare seu comportamento com a implementação da biblioteca padrão do Rust. Execute a reprodução do shader com os três valores u64 listados e adicione ou use testes que cubram os resultados 0, 32 e 63. A tarefa estará concluída quando todos os exemplos retornarem a quantidade esperada de bits zero à direita.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug
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();
}
Linguagem predominante
Rust
Estrelas
3.4k
Forks
132
Merge médio
1d 58min
PRs com merge (30d)
12

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Rust-GPU/rust-gpu

Todas as issues de Rust-GPU/rust-gpu

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.