mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-12 21:23:02 +00:00
The parallel build skipped a non-map pipeline whose creation raised an error, so with new_with_format (errors logged, compositor still returned) its key was missing from kit.pipelines and the first draw panicked on the `self.kit.pipelines[&(kernel, acc)]` index. As before the PR, a failed non-map pipeline now keeps its invalid handle (draws report GPU errors); only a failed effect-map pipeline is skipped (all maps go to the CPU). Test: a_compositor_with_failed_pipelines_draws_without_panicking builds new_with_format(Rgb9e5Ufloat) on a device with an uncaptured-error handler and renders: it panicked at the index without the fix. The PR's test moves into tests/it (one test binary) and takes GPU_LOCK. Co-authored-by: 00xJS <56056764+00xJS@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
13 lines
408 B
Rust
13 lines
408 B
Rust
//! The crate's integration tests, linked into one test binary.
|
|
|
|
/// Concurrent wgpu instances in one process segfault on some drivers (RADV), so every test that
|
|
/// creates a device takes this lock and holds it until the device is dropped.
|
|
static GPU_LOCK: std::sync::Mutex<()> = std::sync::Mutex::new(());
|
|
|
|
mod device_loss;
|
|
mod parity;
|
|
mod pipeline_errors;
|
|
mod timing;
|
|
mod uniform_limits;
|
|
mod vector_mask;
|