struct FSIn { @builtin(front_facing) sk_Clockwise: bool, }; struct FSOut { @location(0) sk_FragColor: vec4, }; struct _GlobalUniforms { f1: f32, f2: f32, f3: f32, h1: f32, h2: f32, h3: f32, v1: vec2, v2: vec2, v3: vec2, hv1: vec2, hv2: vec2, hv3: vec2, m1: mat2x2, m2: mat2x2, m3: mat2x2, hm1: mat2x2, hm2: mat2x2, hm3: mat2x2, colorGreen: vec4, colorRed: vec4, }; @binding(0) @group(0) var _globalUniforms: _GlobalUniforms; fn mat2x2f32_eq_mat2x2f32(left: mat2x2, right: mat2x2) -> bool { return all(left[0] == right[0]) && all(left[1] == right[1]); } fn main() -> vec4 { var ok: bool = true; ok = ok && _globalUniforms.f1 == _globalUniforms.f2; ok = ok && _globalUniforms.h1 == _globalUniforms.h2; ok = ok && _globalUniforms.f1 == f32(_globalUniforms.h2); ok = ok && f32(_globalUniforms.h1) == _globalUniforms.f2; ok = ok && _globalUniforms.f1 != _globalUniforms.f3; ok = ok && _globalUniforms.h1 != _globalUniforms.h3; ok = ok && _globalUniforms.f1 != f32(_globalUniforms.h3); ok = ok && f32(_globalUniforms.h1) != _globalUniforms.f3; ok = ok && all(_globalUniforms.v1 == _globalUniforms.v2); ok = ok && all(_globalUniforms.hv1 == _globalUniforms.hv2); ok = ok && all(_globalUniforms.v1 == vec2(_globalUniforms.hv2)); ok = ok && all(vec2(_globalUniforms.hv1) == _globalUniforms.v2); ok = ok && any(_globalUniforms.v1 != _globalUniforms.v3); ok = ok && any(_globalUniforms.hv1 != _globalUniforms.hv3); ok = ok && any(_globalUniforms.v1 != vec2(_globalUniforms.hv3)); ok = ok && any(vec2(_globalUniforms.hv1) != _globalUniforms.v3); ok = ok && mat2x2f32_eq_mat2x2f32(_globalUniforms.m1, _globalUniforms.m2); ok = ok && mat2x2f32_eq_mat2x2f32(_globalUniforms.hm1, _globalUniforms.hm2); ok = ok && mat2x2f32_eq_mat2x2f32(_globalUniforms.m1, mat2x2(_globalUniforms.hm2)); ok = ok && mat2x2f32_eq_mat2x2f32(mat2x2(_globalUniforms.hm1), _globalUniforms.m2); ok = ok && !mat2x2f32_eq_mat2x2f32(_globalUniforms.m1, _globalUniforms.m3); ok = ok && !mat2x2f32_eq_mat2x2f32(_globalUniforms.hm1, _globalUniforms.hm3); ok = ok && !mat2x2f32_eq_mat2x2f32(_globalUniforms.m1, mat2x2(_globalUniforms.hm3)); ok = ok && !mat2x2f32_eq_mat2x2f32(mat2x2(_globalUniforms.hm1), _globalUniforms.m3); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(ok)); } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; _stageOut.sk_FragColor = main(); return _stageOut; }