vyre-driver-wgpu 0.6.2

wgpu backend for vyre IR - implements VyreBackend, owns GPU runtime, buffer pool, pipeline cache
Documentation
use crate::numeric::usize_to_u64;
use vyre_driver::BackendError;

pub(super) fn pool_backend_error(error: impl std::fmt::Display) -> BackendError {
    BackendError::new(format!(
        "GPU buffer pool acquisition failed: {error}. Fix: restart the process if the pool lock was poisoned, or reduce concurrent dispatch pressure."
    ))
}

pub(super) fn write_padded_input(
    queue: &wgpu::Queue,
    buffer: &wgpu::Buffer,
    bytes: &[u8],
    size: usize,
) -> Result<Option<(u64, u64)>, BackendError> {
    let zero_start = crate::padded_upload::write_padded_prefix(
        queue,
        buffer,
        bytes,
        "padded input tail offset",
    )?;

    if size > zero_start {
        Ok(Some((
            usize_to_u64(zero_start, "padded input zero-fill start")?,
            usize_to_u64(size - zero_start, "padded input zero-fill length")?,
        )))
    } else {
        Ok(None)
    }
}