diff --git a/wgpu-core/src/device/life.rs b/wgpu-core/src/device/life.rs index c4694b2c3b..c903781e13 100644 --- a/wgpu-core/src/device/life.rs +++ b/wgpu-core/src/device/life.rs @@ -700,6 +700,12 @@ impl LifetimeTracker { resource::BufferMapState::Waiting(pending_mapping) => pending_mapping, // Mapping cancelled resource::BufferMapState::Idle => continue, + // Mapping queued at least twice by map -> unmap -> map + // and was already successfully mapped below + active @ resource::BufferMapState::Active { .. } => { + buffer.map_state = active; + continue; + } _ => panic!("No pending mapping."), }; let status = if mapping.range.start != mapping.range.end {