mirror of
https://github.com/bevyengine/bevy
synced 2024-11-25 06:00:20 +00:00
08b41878d7
# Objective
- It's pretty common for users to want to read data back from the gpu
and into the main world
## Solution
- Add a simple example that shows how to read data back from the gpu and
send it to the main world using a channel.
- The example is largely based on this wgpu example but adapted to bevy
-
fb305b85f6/examples/src/repeated_compute/mod.rs
---------
Co-authored-by: stormy <120167078+stowmyy@users.noreply.github.com>
Co-authored-by: Torstein Grindvik <52322338+torsteingrindvik@users.noreply.github.com>
12 lines
469 B
WebGPU Shading Language
12 lines
469 B
WebGPU Shading Language
// This shader is used for the gpu_readback example
|
|
// The actual work it does is not important for the example
|
|
|
|
// This is the data that lives in the gpu only buffer
|
|
@group(0) @binding(0) var<storage, read_write> data: array<u32>;
|
|
|
|
@compute @workgroup_size(1)
|
|
fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|
// We use the global_id to index the array to make sure we don't
|
|
// access data used in another workgroup
|
|
data[global_id.x] += 1u;
|
|
}
|