Skip to content

Self-hosted backend runtime error on Rust SEE (wgpu) #25565

@felipeasimos

Description

@felipeasimos

Zig Version

0.16.0-dev.728+87c18945c

Steps to Reproduce and Observed Behavior

Using zig version 0.16.0-dev.728+87c18945c, 0.15.1 or 0.15.2, in wgpu_native_zig, execute the tests through zig build compute-tests or zig build test.

Observed Behavior

When building with the self-hosted backend, a runtime error happens on the Rust side when calling _mm_movemask_epi8:

compute-tests
└─ run test compute-test-c failure
General protection exception (no address available)
/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/../../stdarch/crates/core_arch/src/x86/sse2.rs:1469:0: 0x194d704 in _mm_movemask_epi8 (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.07)
/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/src/control/group/sse2.rs:87:21: 0x18f8d63 in match_tag (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.04)
/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/src/raw/mod.rs:1916:24: 0x1970942 in find_inner (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.07)
/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/src/map.rs:1231:29: 0x1a054da in entry<usize, usize, foldhash::fast::RandomState, allocator_api2::stable::alloc::global::Global> (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.13)
src/gles/egl.rs:491:6: 0x1a1bd44 in initialize_display (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.14)
src/gles/egl.rs:527:23: 0x1a1c07f in create (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.14)
src/gles/egl.rs:941:21: 0x1a21f30 in init (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.14)
src/instance.rs:130:24: 0x16b38d6 in try_add_hal<wgpu_hal::gles::Api> (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-core/src/lib.rs/@/wgpu_core.e57fd6bd304fe8aa-cgu.06)
src/instance.rs:105:9: 0x16b35b3 in new (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-core/src/lib.rs/@/wgpu_core.e57fd6bd304fe8aa-cgu.06)
src/global.rs:38:23: 0x1811f16 in new (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-core/src/lib.rs/@/wgpu_core.e57fd6bd304fe8aa-cgu.13)
src/lib.rs:661:27: 0x14d2eeb in wgpuCreateInstance (src/lib.rs/@/4nkz1z2c0kej01eepxo04n4mb)
/home/asimos/Projects/wgpu_native_zig/tests/compute_c.zig:52:45: 0x13485d3 in compute_collatz (compute_c.zig)
    const instance = wgpu.wgpuCreateInstance(null);
                                            ^
/home/asimos/Projects/wgpu_native_zig/tests/compute_c.zig:216:35: 0x13483a0 in test.compute functionality (compute_c.zig)
    const values = compute_collatz();
                                  ^
/home/asimos/.zvm/master/lib/compiler/test_runner.zig:138:29: 0x146a5fb in mainServer (test_runner.zig)
                test_fn.func() catch |err| switch (err) {
                            ^
/home/asimos/.zvm/master/lib/compiler/test_runner.zig:67:26: 0x146b3bd in main (test_runner.zig)
        return mainServer() catch @panic("internal test runner failure");
                         ^
/home/asimos/.zvm/master/lib/std/start.zig:618:22: 0x1466fdb in callMain (std.zig)
            root.main();
                     ^
???:?:?: 0x7f2a1c4feca7 in ??? (/lib/x86_64-linux-gnu/libc.so.6)
???:?:?: 0x7f2a1c4fed64 in ??? (/lib/x86_64-linux-gnu/libc.so.6)
???:?:?: 0x14b9990 in ??? (???)
error: while executing test 'compute_c.test.compute functionality', the following command terminated with signal 6 (expected exited with code 0):
./.zig-cache/o/6a7277bf00740f7e8da197d97bb4be84/compute-test-c --cache-dir=./.zig-cache --seed=0xed8c83d7 --listen=-
compute-tests
└─ run test compute-test failure
General protection exception (no address available)
/rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/../../stdarch/crates/core_arch/src/x86/sse2.rs:1469:0: 0x194e654 in _mm_movemask_epi8 (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.07)
/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/src/control/group/sse2.rs:87:21: 0x18f9cb3 in match_tag (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.04)
/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/src/raw/mod.rs:1916:24: 0x1971892 in find_inner (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.07)
/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/src/map.rs:1231:29: 0x1a0642a in entry<usize, usize, foldhash::fast::RandomState, allocator_api2::stable::alloc::global::Global> (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.13)
src/gles/egl.rs:491:6: 0x1a1cc94 in initialize_display (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.14)
src/gles/egl.rs:527:23: 0x1a1cfcf in create (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.14)
src/gles/egl.rs:941:21: 0x1a22e80 in init (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-hal/src/lib.rs/@/wgpu_hal.69a417fa83e768bf-cgu.14)
src/instance.rs:130:24: 0x16b4826 in try_add_hal<wgpu_hal::gles::Api> (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-core/src/lib.rs/@/wgpu_core.e57fd6bd304fe8aa-cgu.06)
src/instance.rs:105:9: 0x16b4503 in new (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-core/src/lib.rs/@/wgpu_core.e57fd6bd304fe8aa-cgu.06)
src/global.rs:38:23: 0x1812e66 in new (/root/.cargo/git/checkouts/wgpu-045f9a3b3e40a5c0/f35cf94/wgpu-core/src/lib.rs/@/wgpu_core.e57fd6bd304fe8aa-cgu.13)
src/lib.rs:661:27: 0x14d3e3b in wgpuCreateInstance (src/lib.rs/@/4nkz1z2c0kej01eepxo04n4mb)
/home/asimos/Projects/wgpu_native_zig/src/instance.zig:218:34: 0x134848e in create (compute.zig)
        return wgpuCreateInstance(descriptor);
                                 ^
/home/asimos/Projects/wgpu_native_zig/tests/compute.zig:129:39: 0x1349c00 in test.compute functionality (compute.zig)
    const values = try compute_collatz();
                                      ^
/home/asimos/.zvm/master/lib/compiler/test_runner.zig:138:29: 0x146b74b in mainServer (test_runner.zig)
                test_fn.func() catch |err| switch (err) {
                            ^
/home/asimos/.zvm/master/lib/compiler/test_runner.zig:67:26: 0x146c50d in main (test_runner.zig)
        return mainServer() catch @panic("internal test runner failure");
                         ^
/home/asimos/.zvm/master/lib/std/start.zig:618:22: 0x146812b in callMain (std.zig)
            root.main();
                     ^
???:?:?: 0x7fbfe3c6bca7 in ??? (/lib/x86_64-linux-gnu/libc.so.6)
???:?:?: 0x7fbfe3c6bd64 in ??? (/lib/x86_64-linux-gnu/libc.so.6)
???:?:?: 0x14ba8e0 in ??? (???)
error: while executing test 'compute.test.compute functionality', the following command terminated with signal 6 (expected exited with code 0):
./.zig-cache/o/31c969b93a4eed655c02ab5561290f4a/compute-test --cache-dir=./.zig-cache --seed=0xed8c83d7 --listen=-

Build Summary: 3/6 steps succeeded; 2 failed; 2/2 tests passed
compute-tests transitive failure
├─ run test compute-test failure
└─ run test compute-test-c failure

error: the following build command failed with exit code 1:
.zig-cache/o/8932d5f184be07c48c88fbcf8004e788/build /home/asimos/.zvm/master/zig /home/asimos/.zvm/master/lib /home/asimos/Projects/wgpu_native_zig .zig-cache /home/asimos/.cache/zig --seed 0xed8c83d7 -Zdc4f83fd68b09b38 compute-tests

No error is observed when using LLVM for building

Expected Behavior

No error for both LLVM and the self-hosted backend

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugObserved behavior contradicts documented or intended behaviorlinkingmiscompilationThe compiler reports success but produces semantically incorrect code.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions