-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Test prevent_invalid_ray_query_calls segfault on Mesa RADV driver #8530
Copy link
Copy link
Closed
Labels
area: correctnessWe're behaving incorrectlyWe're behaving incorrectlyexternal: driver-bugA driver is causing the bug, though we may still want to work around itA driver is causing the bug, though we may still want to work around itfeature: raytracingIssues with the Ray Tracing Native FeatureIssues with the Ray Tracing Native Featuretype: bugSomething isn't workingSomething isn't working
Description
Description
As requested by @Vecvec in #8527 , creating a issue for the test case wgpu_gpu::ray_tracing::shader::prevent_invalid_ray_query_calls which gets segfault on Mesa RADV driver.
Repro steps
Run the test using
cargo xtask test prevent_invalid_ray_query_calls Expected vs observed behavior
Expected: the test should be passed
Observed: SEGFAULT got in progress
Extra materials
stacktrace
#0 0x00007ffff6b75c53 in ?? () from /usr/lib/libvulkan_radeon.so
#1 0x00007ffff6736969 in ?? () from /usr/lib/libvulkan_radeon.so
#2 0x00007ffff6712d6f in ?? () from /usr/lib/libvulkan_radeon.so
#3 0x00007ffff6713342 in ?? () from /usr/lib/libvulkan_radeon.so
#4 0x00007ffff67136f9 in ?? () from /usr/lib/libvulkan_radeon.so
#5 0x00007ffff671392b in ?? () from /usr/lib/libvulkan_radeon.so
#6 0x00005555561abddb in ash::device::Device::create_compute_pipelines (self=0x5555570aa070, pipeline_cache=..., create_infos=...,
allocation_callbacks=...) at /home/deucalion/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ash-0.38.0+1.3.281/src/device.rs:2185
#7 0x0000555556241e2a in wgpu_hal::vulkan::device::{impl#4}::create_compute_pipeline (self=0x5555570a3bc0, desc=0x7fffffff7a28)
at wgpu-hal/src/vulkan/device.rs:2200
#8 0x0000555555f66277 in wgpu_hal::dynamic::device::{impl#0}::create_compute_pipeline<wgpu_hal::vulkan::Device> (self=0x5555570a3bc0,
desc=0x7fffffff82c0) at wgpu-hal/src/dynamic/device.rs:437
#9 0x0000555555eca50e in wgpu_core::device::resource::Device::create_compute_pipeline (self=0x7fffffff8850, desc=...)
at wgpu-core/src/device/resource.rs:3788
#10 0x00005555560d64f5 in wgpu_core::global::Global::device_create_compute_pipeline (self=0x55555707b660, device_id=..., desc=0x7fffffff8ee0, id_in=...)
at wgpu-core/src/device/global.rs:1623
#11 0x0000555555dcf8b9 in wgpu::backend::wgpu_core::{impl#12}::create_compute_pipeline (self=0x555557095b00, desc=0x7fffffff9560)
at wgpu/src/backend/wgpu_core.rs:1521
#12 0x0000555555ddcf55 in wgpu::api::device::Device::create_compute_pipeline (self=0x7fffffff9a78, desc=0x7fffffff9560) at wgpu/src/api/device.rs:262
#13 0x000055555577a5cb in wgpu_gpu::ray_tracing::shader::prevent_invalid_ray_query_calls (ctx=...) at tests/tests/wgpu-gpu/ray_tracing/shader.rs:157
#14 0x00005555558ba282 in core::ops::function::Fn::call<fn(wgpu_test::run::TestingContext), (wgpu_test::run::TestingContext)> ()
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:79
#15 0x00005555558591e9 in wgpu_test::config::{impl#0}::run_sync::{closure#0}::{async_block#0}<fn(wgpu_test::run::TestingContext)> ()
--Type <RET> for more, q to quit, c to continue without paging--
at tests/src/config.rs:98
#16 0x0000555555998e73 in core::future::future::{impl#1}::poll<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>> (self=..., cx=0x7fffffffbd68)
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124
#17 0x0000555555998253 in core::panic::unwind_safe::{impl#26}::poll<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>> (self=..., cx=0x7fffffffbd68)
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:297
#18 0x000055555599773e in futures_lite::future::{impl#11}::poll::{closure#0}<core::panic::unwind_safe::AssertUnwindSafe<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>>> ()
at /home/deucalion/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:653
#19 0x0000555555998274 in core::panic::unwind_safe::{impl#23}::call_once<core::task::poll::Poll<()>, futures_lite::future::{impl#11}::poll::{closure_env#0}<core::panic::unwind_safe::AssertUnwindSafe<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>>>> (self=...)
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272
#20 0x000055555599a381 in std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<futures_lite::future::{impl#11}::poll::{closure_env#0}<core::panic::unwind_safe::AssertUnwindSafe<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>>>>, core::task::poll::Poll<()>> (data=0x7fffffffa018)
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589
#21 0x0000555555998d6b in __rust_try ()
#22 0x0000555555998cf4 in std::panicking::try<core::task::poll::Poll<()>, core::panic::unwind_safe::AssertUnwindSafe<futures_lite::future::{impl#11}::poll::{closure_env#0}<core::panic::unwind_safe::AssertUnwindSafe<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>>>>> (f=...)
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552
--Type <RET> for more, q to quit, c to continue without paging--
#23 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<futures_lite::future::{impl#11}::poll::{closure_env#0}<core::panic::unwind_safe::AssertUnwindSafe<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>>>>, core::task::poll::Poll<()>> (f=...) at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359
#24 0x00005555559976a8 in futures_lite::future::{impl#11}::poll<core::panic::unwind_safe::AssertUnwindSafe<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>>> (self=..., cx=0x7fffffffbd68)
at /home/deucalion/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:653
#25 0x000055555597d53c in wgpu_test::run::execute_test::{async_fn#0} () at tests/src/run.rs:88
#26 0x0000555555992c34 in wgpu_test::native::{impl#0}::from_configuration::{async_block#0} () at tests/src/native.rs:60
#27 0x0000555555998e73 in core::future::future::{impl#1}::poll<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>> (self=..., cx=0x7fffffffbd68)
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124
#28 0x0000555555998c2a in pollster::block_on<core::pin::Pin<alloc::boxed::Box<(dyn core::future::future::Future<Output=()> + core::marker::Send), alloc::alloc::Global>>> (fut=...) at /home/deucalion/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pollster-0.4.0/src/lib.rs:126
#29 0x0000555555992d68 in wgpu_test::native::{impl#0}::into_trial::{closure#0} () at tests/src/native.rs:67
#30 0x0000555555995db9 in libtest_mimic::{impl#0}::test::{closure#0}<wgpu_test::native::{impl#0}::into_trial::{closure_env#0}, alloc::string::String> (
_test_mode=true) at /home/deucalion/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libtest-mimic-0.8.1/src/lib.rs:119
#31 0x0000555555969d22 in core::ops::function::FnOnce::call_once<libtest_mimic::{impl#0}::test::{closure_env#0}<wgpu_test::native::{impl#0}::into_trial::{closure_env#0}, alloc::string::String>, (bool)> ()
at /home/deucalion/.rustup/toolchains/1.88-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250
#32 0x00005555559b281d in alloc::boxed::{impl#28}::call_once<(bool), (dyn core::ops::function::FnOnce<(bool), Output=libtest_mimic::Outcome> + core::marker::Send), alloc::alloc::Global> (self=..., args=...) at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/alloc/src/boxed.rs:1966
#33 0x00005555559d7680 in libtest_mimic::run_single::{closure#0} () at src/lib.rs:576
#34 0x00005555559dbc60 in core::panic::unwind_safe::{impl#23}::call_once<libtest_mimic::Outcome, libtest_mimic::run_single::{closure_env#0}> (self=...)
--Type <RET> for more, q to quit, c to continue without paging--
at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/core/src/panic/unwind_safe.rs:272
#35 0x00005555559bc0a1 in std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<libtest_mimic::run_single::{closure_env#0}>, libtest_mimic::Outcome> (data=0x7fffffffbfd8) at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/std/src/panicking.rs:589
#36 0x00005555559c858b in __rust_try ()
#37 0x00005555559c518b in std::panicking::try<libtest_mimic::Outcome, core::panic::unwind_safe::AssertUnwindSafe<libtest_mimic::run_single::{closure_env#0}>> (f=...) at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/std/src/panicking.rs:552
#38 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<libtest_mimic::run_single::{closure_env#0}>, libtest_mimic::Outcome> (f=...)
at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/std/src/panic.rs:359
#39 0x00005555559d7631 in libtest_mimic::run_single (runner=..., test_mode=true) at src/lib.rs:576
#40 0x00005555559d64f5 in libtest_mimic::run (args=0x7fffffffc580, tests=...) at src/lib.rs:507
#41 0x0000555555993107 in wgpu_test::native::execute_native<core::iter::adapters::flatten::FlatMap<alloc::vec::into_iter::IntoIter<fn() -> wgpu_test::config::GpuTestConfiguration, alloc::alloc::Global>, core::iter::adapters::map::Map<core::iter::adapters::enumerate::Enumerate<core::slice::iter::Iter<wgpu_test::report::AdapterReport>>, wgpu_test::native::main::{closure#1}::{closure_env#0}>, wgpu_test::native::main::{closure_env#1}>> (tests=...)
at tests/src/native.rs:134
#42 0x0000555555966d2b in wgpu_test::native::main (tests=...) at tests/src/native.rs:113
#43 0x00005555558e3675 in wgpu_gpu::main () at tests/src/lib.rs:132
Rust trace log attached as file
Platform
OS: CachyOS as for 15.11.2025
GPU: AMD RX 9070 XT
Driver: Mesa radv 25.2.7-cachyos1.2
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area: correctnessWe're behaving incorrectlyWe're behaving incorrectlyexternal: driver-bugA driver is causing the bug, though we may still want to work around itA driver is causing the bug, though we may still want to work around itfeature: raytracingIssues with the Ray Tracing Native FeatureIssues with the Ray Tracing Native Featuretype: bugSomething isn't workingSomething isn't working