Search across packages, versions, files, declarations, and comments. Use multiple terms to narrow results (AND), and add @vertex, @fragment, or @compute to filter by shader stage.
1// Copy the base mip (level 0) from a source cubemap to a destination cubemap,
2// performing format conversion if needed (the destination is always rgba16float).
3// The alpha channel is filled with 1.0.
5@group(0) @binding(0) var src_cubemap: texture_2d_array<f32>;
6@group(0) @binding(1) var dst_cubemap: texture_storage_2d_array<rgba16float, write>;
8@compute
9@workgroup_size(8, 8, 1)
10fn copy(@builtin(global_invocation_id) global_id: vec3u) {
11 let size = textureDimensions(src_cubemap).xy;
13 // Bounds check
14 if (any(global_id.xy >= size)) {
15 return;
16 }
18 let color = textureLoad(src_cubemap, vec2u(global_id.xy), global_id.z, 0);
20 textureStore(dst_cubemap, vec2u(global_id.xy), global_id.z, vec4f(color.rgb, 1.0));
21}
Contents