bevy_gpu_compute 0.1.2

Empowering anyone to leverage GPU-acceleration with as little barrier-to-entry as possible
Documentation
use bevy::{
    log::{self},
    render::renderer::RenderDevice,
};
use wgpu::{BufferUsages, util::BufferInitDescriptor};

use crate::task::lib::BevyGpuComputeTask;

pub fn update_input_buffers(task: &mut BevyGpuComputeTask, render_device: &RenderDevice) {
    task.buffers_mut().input.clear();
    let mut new_buffers = Vec::new();
    for s in task.configuration().inputs().arrays().iter() {
        let label = format!("{}-input-{}", task.name(), s.name.name());
        let buffer = render_device.create_buffer_with_data(&BufferInitDescriptor {
            label: Some(&label),
            contents: task
                .current_data()
                .input()
                .as_ref()
                .unwrap()
                .get_bytes(s.name.name())
                .unwrap(),
            usage: BufferUsages::STORAGE | BufferUsages::COPY_DST,
        });
        new_buffers.push(buffer);
        log::trace!(
            "Created input buffer for task {} with label {}",
            task.name(),
            label
        );
    }
    task.buffers_mut().input = new_buffers;
}