u64 with `trailing_zeros` returns incorrect values
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- rust
- Lĩnh vực
- compilers, computer-graphics
Hướng nghiên cứu
Bắt đầu bằng cách lần theo entry point u64 trailing_zeros() được sử dụng khi biên dịch shader, đồng thời so sánh hành vi của nó với phần triển khai của thư viện chuẩn Rust. Chạy bản tái hiện shader với ba giá trị u64 được liệt kê và thêm hoặc sử dụng các bài kiểm thử bao phủ các kết quả 0, 32 và 63. Hoàn tất khi tất cả các ví dụ trả về số bit 0 ở cuối như mong đợi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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 00x0000000100000000_u64.trailing_zeros()should return 320x8000000000000000_u64.trailing_zeros()should return 63
Example & Steps To Reproduce
0x0000000000000001Expected: 0, Result: 320x0000000100000000Expected: 32, Result: 00x8000000000000000Expected: 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();
}
- Ngôn ngữ chính
- Rust
- Star
- 3.4k
- Fork
- 126
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Rust-GPU/rust-gpu
-
enhancement
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
-
glam v0.33.6 breaks `Vec3A` Đang mởbug
-
enhancement
Rust-GPU/rust-gpu#643 · 3 bình luận · 1 reaction · 1 người được giao ·
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
Tất cả issue của Rust-GPU/rust-gpu
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
bug core
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
-
JIT-compiled number -> Decimal conversion silently overflows instead of raising DECIMAL_OVERFLOW Đang mởfuzz
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
ClickHouse/ClickHouse#122114 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
linebender/vello_svg#90 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100