snuk182: ```rust
// Device::queue_submit()
let (mut texture_view_guard, mut token) = hub.texture_views.write(&mut token);
let (sampler_guard, _) =
hub.samplers.read(&mut token);
// finish all the command buffers first
for &cmb_id in command_buffer_ids {
let comb = &mut command_buffer_guard[cmb_id];
if let Some((view_id, fbo)) = comb.used_swap_chain.take() {
match texture_view_guard[view_id.value].inner { // crashes here
resource::TextureViewInner::Native { .. } => unreachable!(),
resource::TextureViewInner::SwapChain {
ref source_id,
ref mut framebuffers,
..
} => {
if framebuffers.is_empty() {
let sem = &swap_chain_guard[source_id.value].semaphore;
signal_semaphores.push(sem);
}
framebuffers.push(fbo);
}
};
}
```