mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-14 19:31:25 +00:00
Use the new semantic constant value information to significantly reduce the complex indexing logic emitted for UBO accesses. This will dramatically reduce the number of `for` loops that are decayed to `while` loops. Change-Id: I1b0adb5edde2b4ed39c6beafc2e28106b86e0edd Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/57701 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: James Price <jrprice@google.com>
32 lines
704 B
WebGPU Shading Language
32 lines
704 B
WebGPU Shading Language
struct Inner {
|
|
a : vec3<i32>;
|
|
b : i32;
|
|
c : vec3<u32>;
|
|
d : u32;
|
|
e : vec3<f32>;
|
|
f : f32;
|
|
g : mat2x3<f32>;
|
|
h : mat3x2<f32>;
|
|
i : [[stride(16)]] array<vec4<i32>, 4>;
|
|
};
|
|
|
|
[[block]]
|
|
struct S {
|
|
arr : array<Inner>;
|
|
};
|
|
|
|
[[binding(0), group(0)]] var<storage, read_write> s : S;
|
|
|
|
[[stage(compute), workgroup_size(1)]]
|
|
fn main([[builtin(local_invocation_index)]] idx : u32) {
|
|
s.arr[idx].a = vec3<i32>();
|
|
s.arr[idx].b = i32();
|
|
s.arr[idx].c = vec3<u32>();
|
|
s.arr[idx].d = u32();
|
|
s.arr[idx].e = vec3<f32>();
|
|
s.arr[idx].f = f32();
|
|
s.arr[idx].g = mat2x3<f32>();
|
|
s.arr[idx].h = mat3x2<f32>();
|
|
s.arr[idx].i = [[stride(16)]] array<vec4<i32>, 4>();
|
|
}
|