mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-14 03:11:29 +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>
34 lines
588 B
WebGPU Shading Language
34 lines
588 B
WebGPU Shading Language
struct Inner {
|
|
x : i32;
|
|
};
|
|
|
|
[[block]]
|
|
struct S {
|
|
a : vec3<i32>;
|
|
b : i32;
|
|
c : vec3<u32>;
|
|
d : u32;
|
|
e : vec3<f32>;
|
|
f : f32;
|
|
g : mat2x3<f32>;
|
|
h : mat3x2<f32>;
|
|
i : Inner;
|
|
j : [[stride(16)]] array<Inner, 4>;
|
|
};
|
|
|
|
[[binding(0), group(0)]] var<storage, write> s : S;
|
|
|
|
[[stage(compute), workgroup_size(1)]]
|
|
fn main() {
|
|
s.a = vec3<i32>();
|
|
s.b = i32();
|
|
s.c = vec3<u32>();
|
|
s.d = u32();
|
|
s.e = vec3<f32>();
|
|
s.f = f32();
|
|
s.g = mat2x3<f32>();
|
|
s.h = mat3x2<f32>();
|
|
s.i = Inner();
|
|
s.j = [[stride(16)]] array<Inner, 4>();
|
|
}
|