dawn-cmake/test/tint/benchmark/animometer.wgsl
dan sinclair b29892be09 Update src/tint unittests to new @stage format.
This CL updates all of the Tint unittests to the new @stage shorter
syntax. This also updates the WGSL writer to emit the new short forms
instead of using the deprecated form.

Bug: tint:1503
Change-Id: I8c49e5319a19cccb5b4b5078f3ab39c50f31a9a8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92483
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-06-07 13:55:34 +00:00

49 lines
1.2 KiB
WebGPU Shading Language

struct Time {
value : f32,
}
struct Uniforms {
scale : f32,
offsetX : f32,
offsetY : f32,
scalar : f32,
scalarOffset : f32,
}
@binding(0) @group(0) var<uniform> time : Time;
@binding(1) @group(0) var<uniform> uniforms : Uniforms;
struct VertexOutput {
@builtin(position)
Position : vec4<f32>,
@location(0)
v_color : vec4<f32>,
}
@vertex
fn vert_main(@location(0) position : vec4<f32>, @location(1) color : vec4<f32>) -> VertexOutput {
var fade : f32 = ((uniforms.scalarOffset + ((time.value * uniforms.scalar) / 10.0)) % 1.0);
if ((fade < 0.5)) {
fade = (fade * 2.0);
} else {
fade = ((1.0 - fade) * 2.0);
}
var xpos : f32 = (position.x * uniforms.scale);
var ypos : f32 = (position.y * uniforms.scale);
var angle : f32 = ((3.141590118 * 2.0) * fade);
var xrot : f32 = ((xpos * cos(angle)) - (ypos * sin(angle)));
var yrot : f32 = ((xpos * sin(angle)) + (ypos * cos(angle)));
xpos = (xrot + uniforms.offsetX);
ypos = (yrot + uniforms.offsetY);
var output : VertexOutput;
output.v_color = (vec4<f32>(fade, (1.0 - fade), 0.0, 1.0) + color);
output.Position = vec4<f32>(xpos, ypos, 0.0, 1.0);
return output;
}
@fragment
fn frag_main(@location(0) v_color : vec4<f32>) -> @location(0) vec4<f32> {
return v_color;
}