From 4d36557bcea70269f3492a5e65367e59e6ee2b1c Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Fri, 8 Apr 2022 14:18:28 +0000 Subject: [PATCH] Normalize all line endings to LF And force shader code to always use LF endings. Post merge, there were a number of files that crept in with CRLF endings. Some Tint end-to-end tests take objection to CRLF endings. CRLF endings can be detected with: ``` git grep -I --files-with-matches --perl-regexp '\r' HEAD ``` And fixed with: ``` find . -type f -exec dos2unix {} \; ``` Bug: dawn:1339 Change-Id: Iee054bafd15875de744b86e28393cd8229bd3cfa Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86140 Kokoro-Run: Ben Clayton Reviewed-by: Antonio Maiorano Commit-Queue: Ben Clayton --- .gitattributes | 13 +- CMakeSettings.json | 200 ++++----- src/tint/tint.natvis | 378 +++++++++--------- test/tint/bug/dawn/947.wgsl | 126 +++--- .../fxc/gradient_in_varying_loop/1112.wgsl | 56 +-- .../1206.wgsl | 46 +-- .../local_assign_scalar_x.wgsl | 24 +- .../local_assign_scalar_xy.wgsl | 24 +- .../local_assign_scalar_y.wgsl | 26 +- .../local_assign_vector.wgsl | 24 +- .../module_assign_scalar_x.wgsl | 26 +- .../module_assign_scalar_xy.wgsl | 26 +- .../module_assign_scalar_y.wgsl | 26 +- .../module_assign_vector.wgsl | 26 +- test/tint/bug/tint/1118.wgsl | 234 +++++------ test/tint/bug/tint/534.wgsl | 96 ++--- test/tint/let/global/global.wgsl | 48 +-- test/tint/let/inferred/function.wgsl | 78 ++-- .../in_for_loop_body.wgsl | 44 +- .../in_for_loop_continuing.wgsl | 44 +- .../in_for_loop_init.wgsl | 44 +- .../indexing_with_side_effect_func.wgsl | 62 +-- .../struct_array.wgsl | 42 +- .../struct_array_array.wgsl | 42 +- .../struct_array_struct.wgsl | 48 +-- .../struct_array_struct_array.wgsl | 50 +-- .../struct_dynamic_array.wgsl | 40 +- .../struct_dynamic_array_struct_array.wgsl | 50 +-- .../struct_matrix.wgsl | 32 +- .../struct_multiple_arrays.wgsl | 44 +- .../struct_struct_array.wgsl | 48 +-- .../struct_vector.wgsl | 30 +- .../vector_assign.wgsl | 42 +- .../via_pointer.wgsl | 42 +- .../via_pointer_arg.wgsl | 42 +- test/tint/statements/switch/common.wgsl | 40 +- .../statements/switch/only_default_case.wgsl | 22 +- test/tint/var/inferred/function.wgsl | 78 ++-- .../0-opt.spvasm.expected.hlsl | 10 +- .../0-opt.wgsl.expected.hlsl | 10 +- .../0-opt.spvasm.expected.hlsl | 10 +- .../0-opt.wgsl.expected.hlsl | 10 +- .../0-opt.spvasm.expected.hlsl | 10 +- .../0-opt.wgsl.expected.hlsl | 10 +- .../0-opt.spvasm.expected.hlsl | 2 +- .../0-opt.wgsl.expected.hlsl | 2 +- .../0.spvasm.expected.hlsl | 10 +- .../0.wgsl.expected.hlsl | 10 +- .../0-opt.spvasm.expected.hlsl | 10 +- .../0-opt.wgsl.expected.hlsl | 10 +- .../0.spvasm.expected.hlsl | 2 +- .../0.wgsl.expected.hlsl | 2 +- .../0-opt.spvasm.expected.hlsl | 10 +- .../0-opt.wgsl.expected.hlsl | 10 +- 54 files changed, 1248 insertions(+), 1243 deletions(-) diff --git a/.gitattributes b/.gitattributes index d31b156d20..5333936d7e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,9 @@ -* text=auto -*.sh eol=lf -*.gn eol=lf -*.gni eol=lf +* text=auto +*.glsl eol=lf +*.gn eol=lf +*.gni eol=lf +*.hlsl eol=lf +*.msl eol=lf +*.sh eol=lf +*.spvasm eol=lf +*.wgsl eol=lf diff --git a/CMakeSettings.json b/CMakeSettings.json index ee3ee56fd8..3eb93c25ba 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -1,100 +1,100 @@ -{ - "configurations": [ - { - "name": "x64-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "variables": [] - }, - { - "name": "x64-Release", - "generator": "Ninja", - "configurationType": "RelWithDebInfo", - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "msvc_x64_x64" ], - "variables": [] - }, - { - "name": "x86-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "msvc_x86" ], - "variables": [] - }, - { - "name": "x86-Release", - "generator": "Ninja", - "configurationType": "RelWithDebInfo", - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "msvc_x86" ], - "variables": [] - }, - { - "name": "x64-Clang-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "clang_cl_x64_x64" ], - "variables": [] - }, - { - "name": "x64-Clang-Release", - "generator": "Ninja", - "configurationType": "RelWithDebInfo", - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "clang_cl_x64_x64" ], - "variables": [] - }, - { - "name": "x86-Clang-Debug", - "generator": "Ninja", - "configurationType": "Debug", - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "clang_cl_x86" ], - "variables": [] - }, - { - "name": "x86-Clang-Release", - "generator": "Ninja", - "configurationType": "RelWithDebInfo", - "buildRoot": "${projectDir}\\out\\build\\${name}", - "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "clang_cl_x86" ], - "variables": [] - } - ] -} \ No newline at end of file +{ + "configurations": [ + { + "name": "x64-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": ["msvc_x64_x64"], + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "variables": [] + }, + { + "name": "x64-Release", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": ["msvc_x64_x64"], + "variables": [] + }, + { + "name": "x86-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": ["msvc_x86"], + "variables": [] + }, + { + "name": "x86-Release", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": ["msvc_x86"], + "variables": [] + }, + { + "name": "x64-Clang-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": ["clang_cl_x64_x64"], + "variables": [] + }, + { + "name": "x64-Clang-Release", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": ["clang_cl_x64_x64"], + "variables": [] + }, + { + "name": "x86-Clang-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": ["clang_cl_x86"], + "variables": [] + }, + { + "name": "x86-Clang-Release", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": ["clang_cl_x86"], + "variables": [] + } + ] +} diff --git a/src/tint/tint.natvis b/src/tint/tint.natvis index 2687196fad..c1fd1f398e 100644 --- a/src/tint/tint.natvis +++ b/src/tint/tint.natvis @@ -1,189 +1,189 @@ - - - - - - - {debug_name_,sb} - - - - {*lhs} = {*rhs}; - - *lhs - *rhs - - - - - if ({*condition}) {*body} - if ({*condition}) {*body} {*else_statements[0]} - if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} - if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} {*else_statements[2]} - if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} {*else_statements[2]} else {else_statements.size()-3} more... - - - - else {*body} - else if ({*condition}) {*body} - - - - {{ {*statements[0]} }} - {{ {*statements[0]} {*statements[1]} }} - {{ {*statements[0]} {*statements[1]} {*statements[2]} }} - {{ {*statements[0]} {*statements[1]} {*statements[2]} {statements.size()-3} more... }} - - - - return; - return {*value}; - - - - fn {symbol}() -> {*return_type} {*body} - fn {symbol}({*params[0]}) -> {*return_type} {*body} - fn {symbol}({*params[0]} {*params[1]}) -> {*return_type} {*body} - fn {symbol}({*params[0]} {*params[1]} {*params[2]}) -> {*return_type} {*body} - fn {symbol}({*params[0]} {*params[1]} {*params[2]} {params.size()-3} more...) -> {*return_type} {*body} - - - - - {symbol} - - symbol - - - - - {*object}[{*index}] - - *object - *index - - - - - {*structure}.{*member} - - *structure - *member - - - - - - {symbol} : {*type} - - let {symbol} : {*type} = {*constructor} - let {symbol} = {*constructor} - var {symbol} : {*type} = {*constructor} - var {symbol} = {*constructor} - var {symbol} - - - - {*variable}; - - - - {value} - - - - {value} - - - - {value} - - - - void - - - - &({expr}) - ~({expr}) - *({expr}) - -({expr}) - !({expr}) - - - - ({*lhs} NONE {*rhs}) - ({*lhs} & {*rhs}) - ({*lhs} | {*rhs}) - ({*lhs} ^ {*rhs}) - ({*lhs} && {*rhs}) - ({*lhs} || {*rhs}) - ({*lhs} == {*rhs}) - ({*lhs} != {*rhs}) - ({*lhs} < {*rhs}) - ({*lhs} > {*rhs}) - ({*lhs} <= {*rhs}) - ({*lhs} >= {*rhs}) - ({*lhs} << {*rhs}) - ({*lhs} >> {*rhs}) - ({*lhs} + {*rhs}) - ({*lhs} - {*rhs}) - ({*lhs} * {*rhs}) - ({*lhs} / {*rhs}) - ({*lhs} % {*rhs}) - - - - {target}() - {target}({*args[0]}) - {target}({*args[0]}, {*args[1]}) - {target}({*args[0]}, {*args[1]}, {*args[2]}) - {target}({*args[0]}, {*args[1]}, {*args[2]}, {args.size()-3} more...) - - - - - {*name} - {*type} - - - - array<{*type},{*count}> - array<{*type}> - - - - {name} - - - - bool - - - - i32 - - - - u32 - - - - f32 - - - + + + + + + + {debug_name_,sb} + + + + {*lhs} = {*rhs}; + + *lhs + *rhs + + + + + if ({*condition}) {*body} + if ({*condition}) {*body} {*else_statements[0]} + if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} + if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} {*else_statements[2]} + if ({*condition}) {*body} {*else_statements[0]} {*else_statements[1]} {*else_statements[2]} else {else_statements.size()-3} more... + + + + else {*body} + else if ({*condition}) {*body} + + + + {{ {*statements[0]} }} + {{ {*statements[0]} {*statements[1]} }} + {{ {*statements[0]} {*statements[1]} {*statements[2]} }} + {{ {*statements[0]} {*statements[1]} {*statements[2]} {statements.size()-3} more... }} + + + + return; + return {*value}; + + + + fn {symbol}() -> {*return_type} {*body} + fn {symbol}({*params[0]}) -> {*return_type} {*body} + fn {symbol}({*params[0]} {*params[1]}) -> {*return_type} {*body} + fn {symbol}({*params[0]} {*params[1]} {*params[2]}) -> {*return_type} {*body} + fn {symbol}({*params[0]} {*params[1]} {*params[2]} {params.size()-3} more...) -> {*return_type} {*body} + + + + + {symbol} + + symbol + + + + + {*object}[{*index}] + + *object + *index + + + + + {*structure}.{*member} + + *structure + *member + + + + + + {symbol} : {*type} + + let {symbol} : {*type} = {*constructor} + let {symbol} = {*constructor} + var {symbol} : {*type} = {*constructor} + var {symbol} = {*constructor} + var {symbol} + + + + {*variable}; + + + + {value} + + + + {value} + + + + {value} + + + + void + + + + &({expr}) + ~({expr}) + *({expr}) + -({expr}) + !({expr}) + + + + ({*lhs} NONE {*rhs}) + ({*lhs} & {*rhs}) + ({*lhs} | {*rhs}) + ({*lhs} ^ {*rhs}) + ({*lhs} && {*rhs}) + ({*lhs} || {*rhs}) + ({*lhs} == {*rhs}) + ({*lhs} != {*rhs}) + ({*lhs} < {*rhs}) + ({*lhs} > {*rhs}) + ({*lhs} <= {*rhs}) + ({*lhs} >= {*rhs}) + ({*lhs} << {*rhs}) + ({*lhs} >> {*rhs}) + ({*lhs} + {*rhs}) + ({*lhs} - {*rhs}) + ({*lhs} * {*rhs}) + ({*lhs} / {*rhs}) + ({*lhs} % {*rhs}) + + + + {target}() + {target}({*args[0]}) + {target}({*args[0]}, {*args[1]}) + {target}({*args[0]}, {*args[1]}, {*args[2]}) + {target}({*args[0]}, {*args[1]}, {*args[2]}, {args.size()-3} more...) + + + + + {*name} + {*type} + + + + array<{*type},{*count}> + array<{*type}> + + + + {name} + + + + bool + + + + i32 + + + + u32 + + + + f32 + + + diff --git a/test/tint/bug/dawn/947.wgsl b/test/tint/bug/dawn/947.wgsl index deeb46734d..f89542ff94 100644 --- a/test/tint/bug/dawn/947.wgsl +++ b/test/tint/bug/dawn/947.wgsl @@ -1,63 +1,63 @@ - struct Uniforms { - u_scale : vec2, - u_offset : vec2, -}; -@binding(0) @group(0) var uniforms : Uniforms; - -struct VertexOutputs { - @location(0) texcoords : vec2, - @builtin(position) position : vec4, -}; - -@stage(vertex) fn vs_main( - @builtin(vertex_index) VertexIndex : u32 -) -> VertexOutputs { - var texcoord = array, 3>( - vec2(-0.5, 0.0), - vec2( 1.5, 0.0), - vec2( 0.5, 2.0)); - - var output : VertexOutputs; - output.position = vec4((texcoord[VertexIndex] * 2.0 - vec2(1.0, 1.0)), 0.0, 1.0); - - // Y component of scale is calculated by the copySizeHeight / textureHeight. Only - // flipY case can get negative number. - var flipY = uniforms.u_scale.y < 0.0; - - // Texture coordinate takes top-left as origin point. We need to map the - // texture to triangle carefully. - if (flipY) { - // We need to get the mirror positions(mirrored based on y = 0.5) on flip cases. - // Adopt transform to src texture and then mapping it to triangle coord which - // do a +1 shift on Y dimension will help us got that mirror position perfectly. - output.texcoords = (texcoord[VertexIndex] * uniforms.u_scale + uniforms.u_offset) * - vec2(1.0, -1.0) + vec2(0.0, 1.0); - } else { - // For the normal case, we need to get the exact position. - // So mapping texture to triangle firstly then adopt the transform. - output.texcoords = (texcoord[VertexIndex] * - vec2(1.0, -1.0) + vec2(0.0, 1.0)) * - uniforms.u_scale + uniforms.u_offset; - } - - return output; -} - -@binding(1) @group(0) var mySampler: sampler; -@binding(2) @group(0) var myTexture: texture_2d; - -@stage(fragment) fn fs_main( - @location(0) texcoord : vec2 -) -> @location(0) vec4 { - // Clamp the texcoord and discard the out-of-bound pixels. - var clampedTexcoord = - clamp(texcoord, vec2(0.0, 0.0), vec2(1.0, 1.0)); - if (!all(clampedTexcoord == texcoord)) { - discard; - } - - var srcColor = textureSample(myTexture, mySampler, texcoord); - // Swizzling of texture formats when sampling / rendering is handled by the - // hardware so we don't need special logic in this shader. This is covered by tests. - return srcColor; -} + struct Uniforms { + u_scale : vec2, + u_offset : vec2, +}; +@binding(0) @group(0) var uniforms : Uniforms; + +struct VertexOutputs { + @location(0) texcoords : vec2, + @builtin(position) position : vec4, +}; + +@stage(vertex) fn vs_main( + @builtin(vertex_index) VertexIndex : u32 +) -> VertexOutputs { + var texcoord = array, 3>( + vec2(-0.5, 0.0), + vec2( 1.5, 0.0), + vec2( 0.5, 2.0)); + + var output : VertexOutputs; + output.position = vec4((texcoord[VertexIndex] * 2.0 - vec2(1.0, 1.0)), 0.0, 1.0); + + // Y component of scale is calculated by the copySizeHeight / textureHeight. Only + // flipY case can get negative number. + var flipY = uniforms.u_scale.y < 0.0; + + // Texture coordinate takes top-left as origin point. We need to map the + // texture to triangle carefully. + if (flipY) { + // We need to get the mirror positions(mirrored based on y = 0.5) on flip cases. + // Adopt transform to src texture and then mapping it to triangle coord which + // do a +1 shift on Y dimension will help us got that mirror position perfectly. + output.texcoords = (texcoord[VertexIndex] * uniforms.u_scale + uniforms.u_offset) * + vec2(1.0, -1.0) + vec2(0.0, 1.0); + } else { + // For the normal case, we need to get the exact position. + // So mapping texture to triangle firstly then adopt the transform. + output.texcoords = (texcoord[VertexIndex] * + vec2(1.0, -1.0) + vec2(0.0, 1.0)) * + uniforms.u_scale + uniforms.u_offset; + } + + return output; +} + +@binding(1) @group(0) var mySampler: sampler; +@binding(2) @group(0) var myTexture: texture_2d; + +@stage(fragment) fn fs_main( + @location(0) texcoord : vec2 +) -> @location(0) vec4 { + // Clamp the texcoord and discard the out-of-bound pixels. + var clampedTexcoord = + clamp(texcoord, vec2(0.0, 0.0), vec2(1.0, 1.0)); + if (!all(clampedTexcoord == texcoord)) { + discard; + } + + var srcColor = textureSample(myTexture, mySampler, texcoord); + // Swizzling of texture formats when sampling / rendering is handled by the + // hardware so we don't need special logic in this shader. This is covered by tests. + return srcColor; +} diff --git a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl index bc9a36c5d9..a18d525655 100644 --- a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl +++ b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl @@ -1,28 +1,28 @@ -// 1112.wgsl -@group(0) @binding(0) var Sampler: sampler; -@group(0) @binding(1) var randomTexture: texture_2d; -@group(0) @binding(2) var depthTexture: texture_2d; - -@stage(fragment) -fn main(@location(0) vUV : vec2) -> @location(0) vec4 { - let random: vec3 = textureSample(randomTexture, Sampler, vUV).rgb; - - var i = 0; - loop { - if (i < 1) { - } else { - break; - } - let offset : vec3 = vec3(random.x); - - if (offset.x < 0.0 || offset.y < 0.0 || offset.x > 1.0 || offset.y > 1.0) { - i = i + 1; - continue; - } - - let sampleDepth : f32 = textureSample(depthTexture, Sampler, offset.xy).r; - i = i + 1; - } - - return vec4(1.0); -} +// 1112.wgsl +@group(0) @binding(0) var Sampler: sampler; +@group(0) @binding(1) var randomTexture: texture_2d; +@group(0) @binding(2) var depthTexture: texture_2d; + +@stage(fragment) +fn main(@location(0) vUV : vec2) -> @location(0) vec4 { + let random: vec3 = textureSample(randomTexture, Sampler, vUV).rgb; + + var i = 0; + loop { + if (i < 1) { + } else { + break; + } + let offset : vec3 = vec3(random.x); + + if (offset.x < 0.0 || offset.y < 0.0 || offset.x > 1.0 || offset.y > 1.0) { + i = i + 1; + continue; + } + + let sampleDepth : f32 = textureSample(depthTexture, Sampler, offset.xy).r; + i = i + 1; + } + + return vec4(1.0); +} diff --git a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl index e439d7805a..4ac0a51ce2 100644 --- a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl +++ b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl @@ -1,23 +1,23 @@ -struct Simulation { - i : u32, -}; - -struct Particle { - position : array, 8>, - lifetime : f32, - color : vec4, - velocity : vec3, -}; - -struct Particles { - p : array, -}; - -@group(1) @binding(3) var particles : Particles; -@group(1) @binding(4) var sim : Simulation; - -@stage(compute) @workgroup_size(1) -fn main() { - var particle = particles.p[0]; - particle.position[sim.i] = particle.position[sim.i]; -} +struct Simulation { + i : u32, +}; + +struct Particle { + position : array, 8>, + lifetime : f32, + color : vec4, + velocity : vec3, +}; + +struct Particles { + p : array, +}; + +@group(1) @binding(3) var particles : Particles; +@group(1) @binding(4) var sim : Simulation; + +@stage(compute) @workgroup_size(1) +fn main() { + var particle = particles.p[0]; + particle.position[sim.i] = particle.position[sim.i]; +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl index 6168492e30..2e7870bfb2 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl @@ -1,12 +1,12 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var m1 : mat2x4; - m1[uniforms.i][0] = 1.0; -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var m1 : mat2x4; + m1[uniforms.i][0] = 1.0; +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl index 4321cfe4fe..11678921c3 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl @@ -1,12 +1,12 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var m1 : mat2x4; - m1[uniforms.i][uniforms.j] = 1.0; -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var m1 : mat2x4; + m1[uniforms.i][uniforms.j] = 1.0; +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl index d40d4e571b..138c9a7c34 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl @@ -1,13 +1,13 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -var m1 : mat2x4; - -@stage(compute) @workgroup_size(1) -fn main() { - m1[0][uniforms.j] = 1.0; -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +var m1 : mat2x4; + +@stage(compute) @workgroup_size(1) +fn main() { + m1[0][uniforms.j] = 1.0; +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl index de88c76432..e531d92d9c 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl @@ -1,12 +1,12 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var m1 : mat2x4; - m1[uniforms.i] = vec4(1.0); -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var m1 : mat2x4; + m1[uniforms.i] = vec4(1.0); +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl index 70c6a82b90..0ec75d9e54 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl @@ -1,13 +1,13 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -var m1 : mat2x4; - -@stage(compute) @workgroup_size(1) -fn main() { - m1[uniforms.i][0] = 1.0; -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +var m1 : mat2x4; + +@stage(compute) @workgroup_size(1) +fn main() { + m1[uniforms.i][0] = 1.0; +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl index 4cffbb20bc..89630b73a6 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl @@ -1,13 +1,13 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -var m1 : mat2x4; - -@stage(compute) @workgroup_size(1) -fn main() { - m1[uniforms.i][uniforms.j] = 1.0; -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +var m1 : mat2x4; + +@stage(compute) @workgroup_size(1) +fn main() { + m1[uniforms.i][uniforms.j] = 1.0; +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl index d40d4e571b..138c9a7c34 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl @@ -1,13 +1,13 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -var m1 : mat2x4; - -@stage(compute) @workgroup_size(1) -fn main() { - m1[0][uniforms.j] = 1.0; -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +var m1 : mat2x4; + +@stage(compute) @workgroup_size(1) +fn main() { + m1[0][uniforms.j] = 1.0; +} diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl index 7fab9b7d24..31cee85a6f 100644 --- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl +++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl @@ -1,13 +1,13 @@ - struct Uniforms { - i : u32, - j : u32, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -var m1 : mat2x4; - -@stage(compute) @workgroup_size(1) -fn main() { - m1[uniforms.i] = vec4(1.0); -} + struct Uniforms { + i : u32, + j : u32, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +var m1 : mat2x4; + +@stage(compute) @workgroup_size(1) +fn main() { + m1[uniforms.i] = vec4(1.0); +} diff --git a/test/tint/bug/tint/1118.wgsl b/test/tint/bug/tint/1118.wgsl index 0e689f178c..c8e3d046b7 100644 --- a/test/tint/bug/tint/1118.wgsl +++ b/test/tint/bug/tint/1118.wgsl @@ -1,117 +1,117 @@ -struct Scene { - vEyePosition : vec4, -}; - -struct Material { - vDiffuseColor : vec4, - vAmbientColor : vec3, - dummy: f32, - vEmissiveColor : vec3, - dummy2: f32, -}; - -struct Mesh { - visibility : f32, -}; - -var fClipDistance3 : f32; - -var fClipDistance4 : f32; - -@group(0) @binding(0) var x_29 : Scene; - -@group(0) @binding(1) var x_49 : Material; - -@group(0) @binding(2) var x_137 : Mesh; - -var glFragColor : vec4; - -fn main_1() { - var viewDirectionW : vec3; - var baseColor : vec4; - var diffuseColor : vec3; - var alpha : f32; - var normalW : vec3; - var uvOffset : vec2; - var baseAmbientColor : vec3; - var glossiness : f32; - var diffuseBase : vec3; - var shadow : f32; - var refractionColor : vec4; - var reflectionColor : vec4; - var emissiveColor : vec3; - var finalDiffuse : vec3; - var finalSpecular : vec3; - var color : vec4; - let x_9 : f32 = fClipDistance3; - if ((x_9 > 0.0)) { - discard; - } - let x_17 : f32 = fClipDistance4; - if ((x_17 > 0.0)) { - discard; - } - let x_34 : vec4 = x_29.vEyePosition; - let x_38 : vec3 = vec3(0., 0., 0.); - viewDirectionW = normalize((vec3(x_34.x, x_34.y, x_34.z) - x_38)); - baseColor = vec4(1.0, 1.0, 1.0, 1.0); - let x_52 : vec4 = x_49.vDiffuseColor; - diffuseColor = vec3(x_52.x, x_52.y, x_52.z); - let x_60 : f32 = x_49.vDiffuseColor.w; - alpha = x_60; - let x_62 : vec3 = vec3(0., 0., 0.); - let x_64 : vec3 = vec3(0., 0., 0.); - normalW = normalize(-(cross(dpdx(x_62), dpdy(x_64)))); - uvOffset = vec2(0.0, 0.0); - let x_74 : vec4 = vec4(0., 0., 0., 0.); - let x_76 : vec4 = baseColor; - let x_78 : vec3 = (vec3(x_76.x, x_76.y, x_76.z) * vec3(x_74.x, x_74.y, x_74.z)); - let x_79 : vec4 = baseColor; - baseColor = vec4(x_78.x, x_78.y, x_78.z, x_79.w); - baseAmbientColor = vec3(1.0, 1.0, 1.0); - glossiness = 0.0; - diffuseBase = vec3(0.0, 0.0, 0.0); - shadow = 1.0; - refractionColor = vec4(0.0, 0.0, 0.0, 1.0); - reflectionColor = vec4(0.0, 0.0, 0.0, 1.0); - let x_94 : vec3 = x_49.vEmissiveColor; - emissiveColor = x_94; - let x_96 : vec3 = diffuseBase; - let x_97 : vec3 = diffuseColor; - let x_99 : vec3 = emissiveColor; - let x_103 : vec3 = x_49.vAmbientColor; - let x_108 : vec4 = baseColor; - finalDiffuse = (clamp((((x_96 * x_97) + x_99) + x_103), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)) * vec3(x_108.x, x_108.y, x_108.z)); - finalSpecular = vec3(0.0, 0.0, 0.0); - let x_113 : vec3 = finalDiffuse; - let x_114 : vec3 = baseAmbientColor; - let x_116 : vec3 = finalSpecular; - let x_118 : vec4 = reflectionColor; - let x_121 : vec4 = refractionColor; - let x_123 : vec3 = ((((x_113 * x_114) + x_116) + vec3(x_118.x, x_118.y, x_118.z)) + vec3(x_121.x, x_121.y, x_121.z)); - let x_124 : f32 = alpha; - color = vec4(x_123.x, x_123.y, x_123.z, x_124); - let x_129 : vec4 = color; - let x_132 : vec3 = max(vec3(x_129.x, x_129.y, x_129.z), vec3(0.0, 0.0, 0.0)); - let x_133 : vec4 = color; - color = vec4(x_132.x, x_132.y, x_132.z, x_133.w); - let x_140 : f32 = x_137.visibility; - let x_142 : f32 = color.w; - color.w = (x_142 * x_140); - let x_147 : vec4 = color; - glFragColor = x_147; - return; -} - -struct main_out { - @location(0) - glFragColor_1 : vec4, -}; - -@stage(fragment) -fn main(@location(2) fClipDistance3_param : f32, @location(3) fClipDistance4_param : f32) -> main_out { - fClipDistance3 = fClipDistance3_param; - fClipDistance4 = fClipDistance4_param; - main_1(); - return main_out(glFragColor); -} +struct Scene { + vEyePosition : vec4, +}; + +struct Material { + vDiffuseColor : vec4, + vAmbientColor : vec3, + dummy: f32, + vEmissiveColor : vec3, + dummy2: f32, +}; + +struct Mesh { + visibility : f32, +}; + +var fClipDistance3 : f32; + +var fClipDistance4 : f32; + +@group(0) @binding(0) var x_29 : Scene; + +@group(0) @binding(1) var x_49 : Material; + +@group(0) @binding(2) var x_137 : Mesh; + +var glFragColor : vec4; + +fn main_1() { + var viewDirectionW : vec3; + var baseColor : vec4; + var diffuseColor : vec3; + var alpha : f32; + var normalW : vec3; + var uvOffset : vec2; + var baseAmbientColor : vec3; + var glossiness : f32; + var diffuseBase : vec3; + var shadow : f32; + var refractionColor : vec4; + var reflectionColor : vec4; + var emissiveColor : vec3; + var finalDiffuse : vec3; + var finalSpecular : vec3; + var color : vec4; + let x_9 : f32 = fClipDistance3; + if ((x_9 > 0.0)) { + discard; + } + let x_17 : f32 = fClipDistance4; + if ((x_17 > 0.0)) { + discard; + } + let x_34 : vec4 = x_29.vEyePosition; + let x_38 : vec3 = vec3(0., 0., 0.); + viewDirectionW = normalize((vec3(x_34.x, x_34.y, x_34.z) - x_38)); + baseColor = vec4(1.0, 1.0, 1.0, 1.0); + let x_52 : vec4 = x_49.vDiffuseColor; + diffuseColor = vec3(x_52.x, x_52.y, x_52.z); + let x_60 : f32 = x_49.vDiffuseColor.w; + alpha = x_60; + let x_62 : vec3 = vec3(0., 0., 0.); + let x_64 : vec3 = vec3(0., 0., 0.); + normalW = normalize(-(cross(dpdx(x_62), dpdy(x_64)))); + uvOffset = vec2(0.0, 0.0); + let x_74 : vec4 = vec4(0., 0., 0., 0.); + let x_76 : vec4 = baseColor; + let x_78 : vec3 = (vec3(x_76.x, x_76.y, x_76.z) * vec3(x_74.x, x_74.y, x_74.z)); + let x_79 : vec4 = baseColor; + baseColor = vec4(x_78.x, x_78.y, x_78.z, x_79.w); + baseAmbientColor = vec3(1.0, 1.0, 1.0); + glossiness = 0.0; + diffuseBase = vec3(0.0, 0.0, 0.0); + shadow = 1.0; + refractionColor = vec4(0.0, 0.0, 0.0, 1.0); + reflectionColor = vec4(0.0, 0.0, 0.0, 1.0); + let x_94 : vec3 = x_49.vEmissiveColor; + emissiveColor = x_94; + let x_96 : vec3 = diffuseBase; + let x_97 : vec3 = diffuseColor; + let x_99 : vec3 = emissiveColor; + let x_103 : vec3 = x_49.vAmbientColor; + let x_108 : vec4 = baseColor; + finalDiffuse = (clamp((((x_96 * x_97) + x_99) + x_103), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)) * vec3(x_108.x, x_108.y, x_108.z)); + finalSpecular = vec3(0.0, 0.0, 0.0); + let x_113 : vec3 = finalDiffuse; + let x_114 : vec3 = baseAmbientColor; + let x_116 : vec3 = finalSpecular; + let x_118 : vec4 = reflectionColor; + let x_121 : vec4 = refractionColor; + let x_123 : vec3 = ((((x_113 * x_114) + x_116) + vec3(x_118.x, x_118.y, x_118.z)) + vec3(x_121.x, x_121.y, x_121.z)); + let x_124 : f32 = alpha; + color = vec4(x_123.x, x_123.y, x_123.z, x_124); + let x_129 : vec4 = color; + let x_132 : vec3 = max(vec3(x_129.x, x_129.y, x_129.z), vec3(0.0, 0.0, 0.0)); + let x_133 : vec4 = color; + color = vec4(x_132.x, x_132.y, x_132.z, x_133.w); + let x_140 : f32 = x_137.visibility; + let x_142 : f32 = color.w; + color.w = (x_142 * x_140); + let x_147 : vec4 = color; + glFragColor = x_147; + return; +} + +struct main_out { + @location(0) + glFragColor_1 : vec4, +}; + +@stage(fragment) +fn main(@location(2) fClipDistance3_param : f32, @location(3) fClipDistance4_param : f32) -> main_out { + fClipDistance3 = fClipDistance3_param; + fClipDistance4 = fClipDistance4_param; + main_1(); + return main_out(glFragColor); +} diff --git a/test/tint/bug/tint/534.wgsl b/test/tint/bug/tint/534.wgsl index 131116e311..6a41cc417b 100644 --- a/test/tint/bug/tint/534.wgsl +++ b/test/tint/bug/tint/534.wgsl @@ -1,48 +1,48 @@ - struct Uniforms { - dstTextureFlipY : u32, - isFloat16 : u32, - isRGB10A2Unorm : u32, - channelCount : u32, -}; - struct OutputBuf { - result : array, -}; -@group(0) @binding(0) var src : texture_2d; -@group(0) @binding(1) var dst : texture_2d; -@group(0) @binding(2) var output : OutputBuf; -@group(0) @binding(3) var uniforms : Uniforms; -//@builtin(global_invocation_id) var GlobalInvocationID : vec3; -// Fp16 logic -// Infinity and NaN won't happen in this test case. -fn ConvertToFp16FloatValue(fp32 : f32) -> u32 { - return 1u; -} - -@stage(compute) @workgroup_size(1, 1, 1) -fn main(@builtin(global_invocation_id) GlobalInvocationID : vec3) { - var size : vec2 = textureDimensions(src); - var dstTexCoord : vec2 = vec2(GlobalInvocationID.xy); - var srcTexCoord : vec2 = dstTexCoord; - if (uniforms.dstTextureFlipY == 1u) { - srcTexCoord.y = size.y - dstTexCoord.y - 1; - } - - var srcColor : vec4 = textureLoad(src, srcTexCoord, 0); - var dstColor : vec4 = textureLoad(dst, dstTexCoord, 0); - var success : bool = true; - - var srcColorBits : vec4; - var dstColorBits : vec4 = vec4(dstColor); - - for (var i : u32 = 0u; i < uniforms.channelCount; i = i + 1u) { - srcColorBits[i] = ConvertToFp16FloatValue(srcColor[i]); - success = success && (srcColorBits[i] == dstColorBits[i]); - } - - var outputIndex : u32 = GlobalInvocationID.y * u32(size.x) + GlobalInvocationID.x; - if (success) { - output.result[outputIndex] = u32(1); - } else { - output.result[outputIndex] = u32(0); - } -} + struct Uniforms { + dstTextureFlipY : u32, + isFloat16 : u32, + isRGB10A2Unorm : u32, + channelCount : u32, +}; + struct OutputBuf { + result : array, +}; +@group(0) @binding(0) var src : texture_2d; +@group(0) @binding(1) var dst : texture_2d; +@group(0) @binding(2) var output : OutputBuf; +@group(0) @binding(3) var uniforms : Uniforms; +//@builtin(global_invocation_id) var GlobalInvocationID : vec3; +// Fp16 logic +// Infinity and NaN won't happen in this test case. +fn ConvertToFp16FloatValue(fp32 : f32) -> u32 { + return 1u; +} + +@stage(compute) @workgroup_size(1, 1, 1) +fn main(@builtin(global_invocation_id) GlobalInvocationID : vec3) { + var size : vec2 = textureDimensions(src); + var dstTexCoord : vec2 = vec2(GlobalInvocationID.xy); + var srcTexCoord : vec2 = dstTexCoord; + if (uniforms.dstTextureFlipY == 1u) { + srcTexCoord.y = size.y - dstTexCoord.y - 1; + } + + var srcColor : vec4 = textureLoad(src, srcTexCoord, 0); + var dstColor : vec4 = textureLoad(dst, dstTexCoord, 0); + var success : bool = true; + + var srcColorBits : vec4; + var dstColorBits : vec4 = vec4(dstColor); + + for (var i : u32 = 0u; i < uniforms.channelCount; i = i + 1u) { + srcColorBits[i] = ConvertToFp16FloatValue(srcColor[i]); + success = success && (srcColorBits[i] == dstColorBits[i]); + } + + var outputIndex : u32 = GlobalInvocationID.y * u32(size.x) + GlobalInvocationID.x; + if (success) { + output.result[outputIndex] = u32(1); + } else { + output.result[outputIndex] = u32(0); + } +} diff --git a/test/tint/let/global/global.wgsl b/test/tint/let/global/global.wgsl index cbe6b2f1f0..9f4597ba4f 100644 --- a/test/tint/let/global/global.wgsl +++ b/test/tint/let/global/global.wgsl @@ -1,24 +1,24 @@ -struct MyStruct { - f1 : f32, -}; - -type MyArray = array; - -// Global lets -let v1 = 1; -let v2 = 1u; -let v3 = 1.0; - -let v4 = vec3(1, 1, 1); -let v5 = vec3(1u, 1u, 1u); -let v6 = vec3(1.0, 1.0, 1.0); - -let v7 = mat3x3(vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0)); - -let v8 = MyStruct(); -let v9 = MyArray(); - -@stage(fragment) -fn main() -> @location(0) vec4 { - return vec4(0.0,0.0,0.0,0.0); -} +struct MyStruct { + f1 : f32, +}; + +type MyArray = array; + +// Global lets +let v1 = 1; +let v2 = 1u; +let v3 = 1.0; + +let v4 = vec3(1, 1, 1); +let v5 = vec3(1u, 1u, 1u); +let v6 = vec3(1.0, 1.0, 1.0); + +let v7 = mat3x3(vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0), vec3(1.0, 1.0, 1.0)); + +let v8 = MyStruct(); +let v9 = MyArray(); + +@stage(fragment) +fn main() -> @location(0) vec4 { + return vec4(0.0,0.0,0.0,0.0); +} diff --git a/test/tint/let/inferred/function.wgsl b/test/tint/let/inferred/function.wgsl index 7430504894..48ab6f034b 100644 --- a/test/tint/let/inferred/function.wgsl +++ b/test/tint/let/inferred/function.wgsl @@ -1,39 +1,39 @@ -struct MyStruct { - f1 : f32, -}; - -type MyArray = array; - -fn ret_i32() -> i32 { return 1; } -fn ret_u32() -> u32 { return 1u; } -fn ret_f32() -> f32 { return 1.0; } -fn ret_MyStruct() -> MyStruct { return MyStruct(); } -fn ret_MyArray() -> MyArray { return MyArray(); } - -// Local lets -fn let_decls() { - let v1 = 1; - let v2 = 1u; - let v3 = 1.0; - - let v4 = vec3(1, 1, 1); - let v5 = vec3(1u, 1u, 1u); - let v6 = vec3(1.0, 1.0, 1.0); - - let v7 = mat3x3(v6, v6, v6); - - let v8 = MyStruct(1.0); - let v9 = MyArray(); - - let v10 = ret_i32(); - let v11 = ret_u32(); - let v12 = ret_f32(); - let v13 = ret_MyStruct(); - let v14 = ret_MyStruct(); - let v15 = ret_MyArray(); -} - -@stage(fragment) -fn main() -> @location(0) vec4 { - return vec4(0.0,0.0,0.0,0.0); -} +struct MyStruct { + f1 : f32, +}; + +type MyArray = array; + +fn ret_i32() -> i32 { return 1; } +fn ret_u32() -> u32 { return 1u; } +fn ret_f32() -> f32 { return 1.0; } +fn ret_MyStruct() -> MyStruct { return MyStruct(); } +fn ret_MyArray() -> MyArray { return MyArray(); } + +// Local lets +fn let_decls() { + let v1 = 1; + let v2 = 1u; + let v3 = 1.0; + + let v4 = vec3(1, 1, 1); + let v5 = vec3(1u, 1u, 1u); + let v6 = vec3(1.0, 1.0, 1.0); + + let v7 = mat3x3(v6, v6, v6); + + let v8 = MyStruct(1.0); + let v9 = MyArray(); + + let v10 = ret_i32(); + let v11 = ret_u32(); + let v12 = ret_f32(); + let v13 = ret_MyStruct(); + let v14 = ret_MyStruct(); + let v15 = ret_MyArray(); +} + +@stage(fragment) +fn main() -> @location(0) vec4 { + return vec4(0.0,0.0,0.0,0.0); +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl index 4eb6e16ffa..3535da95ff 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl @@ -1,22 +1,22 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - for (var i: i32 = 0; i < 4; i = i + 1) { - s1.a1[uniforms.i] = v; - } -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + for (var i: i32 = 0; i < 4; i = i + 1) { + s1.a1[uniforms.i] = v; + } +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl index 3156a9f2f2..2e4d57b7d6 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl @@ -1,22 +1,22 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - for (var i: i32 = 0; i < 4; s1.a1[uniforms.i] = v) { - i = i + 1; - } -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + for (var i: i32 = 0; i < 4; s1.a1[uniforms.i] = v) { + i = i + 1; + } +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl index 81f000083d..c2f9b7f7b3 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl @@ -1,22 +1,22 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - var i: i32 = 0; - for (s1.a1[uniforms.i] = v; i < 4; i = i + 1) { - } -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + var i: i32 = 0; + for (s1.a1[uniforms.i] = v; i < 4; i = i + 1) { + } +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl index 1edb64c540..6bd7876f8b 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl @@ -1,31 +1,31 @@ -struct Uniforms { - i : u32, - j : u32, -}; - -struct InnerS { - v : i32, -}; - -struct S1 { - a2 : array, -}; - -struct OuterS { - a1 : array, -}; - -var nextIndex : u32; -fn getNextIndex() -> u32 { - nextIndex = nextIndex + 1u; - return nextIndex; -} - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s : OuterS; - s.a1[getNextIndex()].a2[uniforms.j] = v; -} +struct Uniforms { + i : u32, + j : u32, +}; + +struct InnerS { + v : i32, +}; + +struct S1 { + a2 : array, +}; + +struct OuterS { + a1 : array, +}; + +var nextIndex : u32; +fn getNextIndex() -> u32 { + nextIndex = nextIndex + 1u; + return nextIndex; +} + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s : OuterS; + s.a1[getNextIndex()].a2[uniforms.j] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl index 18e43a5744..32f96032fb 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl @@ -1,21 +1,21 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - s1.a1[uniforms.i] = v; - //s1.a1[0] = v; -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + s1.a1[uniforms.i] = v; + //s1.a1[0] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl index 2a6ef83c40..76bed78f81 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl @@ -1,21 +1,21 @@ -struct Uniforms { - i : u32, - j : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, 8>, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - s1.a1[uniforms.i][uniforms.j] = v; -} +struct Uniforms { + i : u32, + j : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, 8>, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + s1.a1[uniforms.i][uniforms.j] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl index 7cda241d2e..ea9bdb3fa7 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl @@ -1,24 +1,24 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct S1 { - s2 : InnerS, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - s1.a1[uniforms.i].s2 = v; -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct S1 { + s2 : InnerS, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + s1.a1[uniforms.i].s2 = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl index 785dc38378..feadd47c29 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl @@ -1,25 +1,25 @@ -struct Uniforms { - i : u32, - j : u32, -}; - -struct InnerS { - v : i32, -}; - -struct S1 { - a2 : array, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s : OuterS; - s.a1[uniforms.i].a2[uniforms.j] = v; -} +struct Uniforms { + i : u32, + j : u32, +}; + +struct InnerS { + v : i32, +}; + +struct S1 { + a2 : array, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s : OuterS; + s.a1[uniforms.i].a2[uniforms.j] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl index dcab24a2d3..82aaf7f320 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl @@ -1,20 +1,20 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; -@binding(0) @group(0) var s1 : OuterS; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - s1.a1[uniforms.i] = v; -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; +@binding(0) @group(0) var s1 : OuterS; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + s1.a1[uniforms.i] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl index c904a1278f..639acf24b3 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl @@ -1,25 +1,25 @@ -struct Uniforms { - i : u32, - j : u32, -}; - -struct InnerS { - v : i32, -}; - -struct S1 { - a2 : array, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; -@binding(0) @group(0) var s : OuterS; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - s.a1[uniforms.i].a2[uniforms.j] = v; -} +struct Uniforms { + i : u32, + j : u32, +}; + +struct InnerS { + v : i32, +}; + +struct S1 { + a2 : array, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; +@binding(0) @group(0) var s : OuterS; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + s.a1[uniforms.i].a2[uniforms.j] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl index a4cdc43616..5065ae43cc 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl @@ -1,16 +1,16 @@ -struct Uniforms { - i : u32, -}; - -struct OuterS { - m1 : mat2x4, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var s1 : OuterS; - s1.m1[uniforms.i] = vec4(1.0); - s1.m1[uniforms.i][uniforms.i] = 1.0; -} +struct Uniforms { + i : u32, +}; + +struct OuterS { + m1 : mat2x4, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var s1 : OuterS; + s1.m1[uniforms.i] = vec4(1.0); + s1.m1[uniforms.i][uniforms.i] = 1.0; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl index d32b5c2ec5..8e838306ab 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl @@ -1,22 +1,22 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, - a2 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - s1.a1[uniforms.i] = v; - s1.a2[uniforms.i] = v; -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, + a2 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + s1.a1[uniforms.i] = v; + s1.a2[uniforms.i] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl index 18d77ad76c..f782c62b00 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl @@ -1,24 +1,24 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct S1 { - a : array, -}; - -struct OuterS { - s2 : S1, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - s1.s2.a[uniforms.i] = v; -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct S1 { + a : array, +}; + +struct OuterS { + s2 : S1, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + s1.s2.a[uniforms.i] = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl index f1bf8c67e5..99c85a995d 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl @@ -1,15 +1,15 @@ -struct Uniforms { - i : u32, -}; - -struct OuterS { - v1 : vec3, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var s1 : OuterS; - s1.v1[uniforms.i] = 1.0; -} +struct Uniforms { + i : u32, +}; + +struct OuterS { + v1 : vec3, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var s1 : OuterS; + s1.v1[uniforms.i] = 1.0; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl index 9fb13ae92b..639300ee79 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl @@ -1,21 +1,21 @@ -struct Uniforms { - i : u32, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -fn f(i: u32) -> u32 { - return i + 1u; -} - -@stage(compute) @workgroup_size(1) -fn main() { - var s1 : OuterS; - var v : vec3; - v[s1.a1[uniforms.i]] = 1.0; - v[f(s1.a1[uniforms.i])] = 1.0; -} +struct Uniforms { + i : u32, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +fn f(i: u32) -> u32 { + return i + 1u; +} + +@stage(compute) @workgroup_size(1) +fn main() { + var s1 : OuterS; + var v : vec3; + v[s1.a1[uniforms.i]] = 1.0; + v[f(s1.a1[uniforms.i])] = 1.0; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl index bffac61589..7776cd23c3 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl @@ -1,21 +1,21 @@ -struct Uniforms { - i : u32, -}; - -struct InnerS { - v : i32, -}; - -struct OuterS { - a1 : array, -}; - -@group(1) @binding(4) var uniforms : Uniforms; - -@stage(compute) @workgroup_size(1) -fn main() { - var v : InnerS; - var s1 : OuterS; - let p = &(s1.a1[uniforms.i]); - *p = v; -} +struct Uniforms { + i : u32, +}; + +struct InnerS { + v : i32, +}; + +struct OuterS { + a1 : array, +}; + +@group(1) @binding(4) var uniforms : Uniforms; + +@stage(compute) @workgroup_size(1) +fn main() { + var v : InnerS; + var s1 : OuterS; + let p = &(s1.a1[uniforms.i]); + *p = v; +} diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl index 0ecd7e4a1e..fa1ad43fec 100644 --- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl +++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl @@ -1,21 +1,21 @@ -struct Uniforms { - i : u32, -}; -struct InnerS { - v : i32, -}; -struct OuterS { - a1 : array, -}; -@group(1) @binding(4) var uniforms : Uniforms; - -fn f(p : ptr) { - var v : InnerS; - (*p).a1[uniforms.i] = v; -} - -@stage(compute) @workgroup_size(1) -fn main() { - var s1 : OuterS; - f(&s1); -} +struct Uniforms { + i : u32, +}; +struct InnerS { + v : i32, +}; +struct OuterS { + a1 : array, +}; +@group(1) @binding(4) var uniforms : Uniforms; + +fn f(p : ptr) { + var v : InnerS; + (*p).a1[uniforms.i] = v; +} + +@stage(compute) @workgroup_size(1) +fn main() { + var s1 : OuterS; + f(&s1); +} diff --git a/test/tint/statements/switch/common.wgsl b/test/tint/statements/switch/common.wgsl index bed7942008..6b8735d1ac 100644 --- a/test/tint/statements/switch/common.wgsl +++ b/test/tint/statements/switch/common.wgsl @@ -1,20 +1,20 @@ -@stage(compute) @workgroup_size(1) -fn f() { - var i : i32; - var result : i32; - switch(i) { - case 0: { - result = 10; - } - case 1: { - result = 22; - } - case 2: { - result = 33; - } - default: { - result = 44; - break; - } - } -} +@stage(compute) @workgroup_size(1) +fn f() { + var i : i32; + var result : i32; + switch(i) { + case 0: { + result = 10; + } + case 1: { + result = 22; + } + case 2: { + result = 33; + } + default: { + result = 44; + break; + } + } +} diff --git a/test/tint/statements/switch/only_default_case.wgsl b/test/tint/statements/switch/only_default_case.wgsl index 0f61d18bda..dcecc4d8ed 100644 --- a/test/tint/statements/switch/only_default_case.wgsl +++ b/test/tint/statements/switch/only_default_case.wgsl @@ -1,11 +1,11 @@ -@stage(compute) @workgroup_size(1) -fn f() { - var i : i32; - var result : i32; - switch(i) { - default: { - result = 44; - break; - } - } -} +@stage(compute) @workgroup_size(1) +fn f() { + var i : i32; + var result : i32; + switch(i) { + default: { + result = 44; + break; + } + } +} diff --git a/test/tint/var/inferred/function.wgsl b/test/tint/var/inferred/function.wgsl index dcf1d759bc..fe9f6fd31f 100644 --- a/test/tint/var/inferred/function.wgsl +++ b/test/tint/var/inferred/function.wgsl @@ -1,39 +1,39 @@ -struct MyStruct { - f1 : f32, -}; - -type MyArray = array; - -fn ret_i32() -> i32 { return 1; } -fn ret_u32() -> u32 { return 1u; } -fn ret_f32() -> f32 { return 1.0; } -fn ret_MyStruct() -> MyStruct { return MyStruct(); } -fn ret_MyArray() -> MyArray { return MyArray(); } - -// Local variables -fn var_decls() { - var v1 = 1; - var v2 = 1u; - var v3 = 1.0; - - var v4 = vec3(1, 1, 1); - var v5 = vec3(1u, 1u, 1u); - var v6 = vec3(1.0, 1.0, 1.0); - - var v7 = mat3x3(v6, v6, v6); - - var v8 = MyStruct(1.0); - var v9 = MyArray(); - - var v10 = ret_i32(); - var v11 = ret_u32(); - var v12 = ret_f32(); - var v13 = ret_MyStruct(); - var v14 = ret_MyStruct(); - var v15 = ret_MyArray(); -} - -@stage(fragment) -fn main() -> @location(0) vec4 { - return vec4(0.0,0.0,0.0,0.0); -} +struct MyStruct { + f1 : f32, +}; + +type MyArray = array; + +fn ret_i32() -> i32 { return 1; } +fn ret_u32() -> u32 { return 1u; } +fn ret_f32() -> f32 { return 1.0; } +fn ret_MyStruct() -> MyStruct { return MyStruct(); } +fn ret_MyArray() -> MyArray { return MyArray(); } + +// Local variables +fn var_decls() { + var v1 = 1; + var v2 = 1u; + var v3 = 1.0; + + var v4 = vec3(1, 1, 1); + var v5 = vec3(1u, 1u, 1u); + var v6 = vec3(1.0, 1.0, 1.0); + + var v7 = mat3x3(v6, v6, v6); + + var v8 = MyStruct(1.0); + var v9 = MyArray(); + + var v10 = ret_i32(); + var v11 = ret_u32(); + var v12 = ret_f32(); + var v13 = ret_MyStruct(); + var v14 = ret_MyStruct(); + var v15 = ret_MyArray(); +} + +@stage(fragment) +fn main() -> @location(0) vec4 { + return vec4(0.0,0.0,0.0,0.0); +} diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.hlsl index fbd491a865..8c99b40998 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.hlsl @@ -82,9 +82,9 @@ tint_symbol_2 main(tint_symbol_1 tint_symbol) { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u1jmg.0:77: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u1jmg.0:77: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.hlsl index 8eaa7c8afb..3f39b8282d 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.hlsl @@ -82,9 +82,9 @@ tint_symbol_2 main(tint_symbol_1 tint_symbol) { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u1v1c.0:77: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u1v1c.0:77: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.hlsl index 4317cbed87..cc34599170 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.hlsl @@ -93,9 +93,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u1r54.0:88: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u1r54.0:88: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.hlsl index 4f9ecd68c1..ed4dfc753f 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.hlsl @@ -93,9 +93,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\usgc.0:88: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\usgc.0:88: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.hlsl index 232826e760..3607e5c69a 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.hlsl @@ -67,9 +67,9 @@ tint_symbol_2 main(tint_symbol_1 tint_symbol) { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u17p0.0:62: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u17p0.0:62: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.hlsl index 52d72d68df..fa21c5b8ec 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.hlsl @@ -67,9 +67,9 @@ tint_symbol_2 main(tint_symbol_1 tint_symbol) { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\uvqg.0:62: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\uvqg.0:62: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.hlsl index 7dc5ef7f96..783fde6895 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.hlsl @@ -115,5 +115,5 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 +Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.hlsl index 7dc5ef7f96..783fde6895 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.hlsl @@ -115,5 +115,5 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 +Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.hlsl index e2ee6458b6..033e5654eb 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.hlsl @@ -45,9 +45,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u11r8.0:40: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u11r8.0:40: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.hlsl index 89d932e51f..6c8fdc5770 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.hlsl @@ -45,9 +45,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u1v50.0:40: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u1v50.0:40: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.hlsl index 0bd5e2f973..8e7733c31d 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.hlsl @@ -50,9 +50,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u1f84.0:45: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u1f84.0:45: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.hlsl index dea1e99e4f..f6f72ef944 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.hlsl @@ -50,9 +50,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\uk3k.0:45: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\uk3k.0:45: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.hlsl index 88749bc78c..9ad694fd6b 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.hlsl @@ -54,5 +54,5 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 +Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.hlsl index 88749bc78c..9ad694fd6b 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.hlsl @@ -54,5 +54,5 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 +Internal compiler error: access violation. Attempted to read from address 0x0000000000000048 diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.hlsl index 8d28303c0c..71191e1266 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.hlsl @@ -98,9 +98,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\umdw.0:93: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\umdw.0:93: error: Loop must have break. +Validation failed. + + diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.hlsl index 4498f291a6..e51bffee8b 100755 --- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.hlsl +++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.hlsl @@ -110,9 +110,9 @@ tint_symbol main() { wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1; return wrapper_result; } -error: validation errors -C:\src\temp\u1tig.0:105: error: Loop must have break. -Validation failed. - - +error: validation errors +C:\src\temp\u1tig.0:105: error: Loop must have break. +Validation failed. + +