emilk/egui · error

Failed to get mapped range

Error message

Failed to get mapped range

What it means

Error "Failed to get mapped range" thrown in emilk/egui.

Source

Thrown at crates/egui_kittest/src/texture_to_image.rs:63

    // Note that we're not calling `.await` here.
    let buffer_slice = output_buffer.slice(..);
    // Sets the buffer up for mapping, sending over the result of the mapping back to us when it is finished.
    let (sender, receiver) = channel();
    buffer_slice.map_async(wgpu::MapMode::Read, move |v| drop(sender.send(v)));

    // Poll the device in a blocking manner so that our future resolves.
    device
        .poll(wgpu::PollType::Wait {
            submission_index: Some(submission_index),
            timeout: Some(WAIT_TIMEOUT),
        })
        .expect("Failed to poll device");

    receiver.recv().unwrap().unwrap();
    let buffer_slice = output_buffer.slice(..);
    let data = buffer_slice
        .get_mapped_range()
        .expect("Failed to get mapped range");
    let data = data
        .chunks_exact(buffer_dimensions.padded_bytes_per_row)
        .flat_map(|row| row.iter().take(buffer_dimensions.unpadded_bytes_per_row))
        .copied()
        .collect::<Vec<_>>();

    RgbaImage::from_raw(texture.width(), texture.height(), data).expect("Failed to create image")
}

struct BufferDimensions {
    height: usize,
    unpadded_bytes_per_row: usize,
    padded_bytes_per_row: usize,
}

impl BufferDimensions {
    fn new(width: usize, height: usize) -> Self {
        let bytes_per_pixel = size_of::<u32>();

View on GitHub (pinned to b9a0723d88)

Solutions

  1. The buffer was not mapped before reading: call map_async and wait for the callback before get_mapped_range.

Example fix

buffer_slice.map_async(wgpu::MapMode::Read, |_| {}); device.poll(wgpu::Maintain::Wait); let view = buffer_slice.get_mapped_range();

When it happens

Trigger: Thrown at crates/egui_kittest/src/texture_to_image.rs:63 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of emilk/egui@b9a0723d88 (2026-08-19). Data as JSON: /api/errors/bee3408cb7270b3a. Report an issue: GitHub.