[spirv-writer] Add support for read-write textures
Bug: tint:2007
Change-Id: Id62985478ce287fe3c516871f41ebd344a42bdb1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/146244
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Alan Baker <alanbaker@google.com>
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm
index 8b9abbc..4b32af0 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
-
-fn textureStore_031506() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_031506();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_031506();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_031506();
-}
-
-Failed to generate: builtins/gen/var/textureStore/031506.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_031506 "textureStore_031506"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_031506 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_031506
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_031506
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_031506
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm
index dfedbea..08cb318 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
-
-fn textureStore_036d0e() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_036d0e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_036d0e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_036d0e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/036d0e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_036d0e "textureStore_036d0e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_036d0e = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_036d0e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_036d0e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_036d0e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm
index deb25c1..0809f51 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
-
-fn textureStore_03e7a0() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_03e7a0();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_03e7a0();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_03e7a0();
-}
-
-Failed to generate: builtins/gen/var/textureStore/03e7a0.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_03e7a0 "textureStore_03e7a0"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_03e7a0 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_03e7a0
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_03e7a0
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_03e7a0
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm
index 1ad3148..a40be19 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
-
-fn textureStore_042b06() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_042b06();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_042b06();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_042b06();
-}
-
-Failed to generate: builtins/gen/var/textureStore/042b06.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_042b06 "textureStore_042b06"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %39 = OpTypeFunction %v4float
+%textureStore_042b06 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2uint %arg_1
+ %34 = OpCompositeExtract %uint %33 0
+ %35 = OpCompositeExtract %uint %33 1
+ %36 = OpLoad %uint %arg_2
+ %37 = OpCompositeConstruct %v3uint %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_042b06
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_042b06
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_042b06
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm
index e15f630..90a843f 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
-
-fn textureStore_052a4e() {
- var arg_1 = 1u;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_052a4e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_052a4e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_052a4e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/052a4e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_052a4e "textureStore_052a4e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_052a4e = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %uint %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_052a4e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_052a4e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_052a4e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm
index 1e2489b..ffae8d0 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
-
-fn textureStore_053664() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_053664();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_053664();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_053664();
-}
-
-Failed to generate: builtins/gen/var/textureStore/053664.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_053664 "textureStore_053664"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %39 = OpTypeFunction %v4float
+%textureStore_053664 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2int %arg_1
+ %34 = OpCompositeExtract %int %33 0
+ %35 = OpCompositeExtract %int %33 1
+ %36 = OpLoad %int %arg_2
+ %37 = OpCompositeConstruct %v3int %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_053664
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_053664
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_053664
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm
index 1b32b58..c7b561b 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
-
-fn textureStore_09e4d5() {
- var arg_1 = 1u;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_09e4d5();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_09e4d5();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_09e4d5();
-}
-
-Failed to generate: builtins/gen/var/textureStore/09e4d5.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_09e4d5 "textureStore_09e4d5"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %30 = OpTypeFunction %v4float
+%textureStore_09e4d5 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %uint %arg_1
+ %28 = OpLoad %v4float %arg_2
+ %29 = OpVectorShuffle %v4float %28 %28 2 1 0 3
+ OpImageWrite %26 %27 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_09e4d5
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %38 = OpLabel
+ %39 = OpFunctionCall %void %textureStore_09e4d5
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_09e4d5
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm
index 4496659..bba7fef 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
-
-fn textureStore_0ade9a() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_0ade9a();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_0ade9a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_0ade9a();
-}
-
-Failed to generate: builtins/gen/var/textureStore/0ade9a.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_0ade9a "textureStore_0ade9a"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %30 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_0ade9a = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2uint %arg_1
+ %35 = OpCompositeExtract %uint %34 0
+ %36 = OpCompositeExtract %uint %34 1
+ %37 = OpLoad %uint %arg_2
+ %38 = OpCompositeConstruct %v3uint %35 %36 %37
+ %39 = OpLoad %v4uint %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_0ade9a
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_0ade9a
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_0ade9a
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm
index 8bfd4be..d22736f 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
-
-fn textureStore_0ff97a() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_0ff97a();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_0ff97a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_0ff97a();
-}
-
-Failed to generate: builtins/gen/var/textureStore/0ff97a.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_0ff97a "textureStore_0ff97a"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %39 = OpTypeFunction %v4float
+%textureStore_0ff97a = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2uint %arg_1
+ %34 = OpCompositeExtract %uint %33 0
+ %35 = OpCompositeExtract %uint %33 1
+ %36 = OpLoad %uint %arg_2
+ %37 = OpCompositeConstruct %v3uint %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_0ff97a
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_0ff97a
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_0ff97a
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm
index 8457a29..6797647 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
-
-fn textureStore_101325() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_101325();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_101325();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_101325();
-}
-
-Failed to generate: builtins/gen/var/textureStore/101325.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_101325 "textureStore_101325"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_101325 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_101325
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_101325
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_101325
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm
index 7f0d259..57f6425 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
-
-fn textureStore_145061() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_145061();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_145061();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_145061();
-}
-
-Failed to generate: builtins/gen/var/textureStore/145061.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_145061 "textureStore_145061"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_145061 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_145061
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_145061
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_145061
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm
index 5fa60ca..19109ce 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
-
-fn textureStore_178e69() {
- var arg_1 = 1i;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_178e69();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_178e69();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_178e69();
-}
-
-Failed to generate: builtins/gen/var/textureStore/178e69.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_178e69 "textureStore_178e69"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %30 = OpTypeFunction %v4float
+%textureStore_178e69 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %int %arg_1
+ %28 = OpLoad %v4float %arg_2
+ %29 = OpVectorShuffle %v4float %28 %28 2 1 0 3
+ OpImageWrite %26 %27 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_178e69
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %38 = OpLabel
+ %39 = OpFunctionCall %void %textureStore_178e69
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_178e69
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm
index d04bce6..745f75f 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
-
-fn textureStore_195d1b() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_195d1b();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_195d1b();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_195d1b();
-}
-
-Failed to generate: builtins/gen/var/textureStore/195d1b.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_195d1b "textureStore_195d1b"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_195d1b = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_195d1b
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_195d1b
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_195d1b
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm
index 0ccda80..0f209da 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
-
-fn textureStore_197637() {
- var arg_1 = 1i;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_197637();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_197637();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_197637();
-}
-
-Failed to generate: builtins/gen/var/textureStore/197637.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_197637 "textureStore_197637"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_197637 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %int %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_197637
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_197637
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_197637
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm
index 1fadd2a..c1e3c39 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
-
-fn textureStore_1a6c0b() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_1a6c0b();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_1a6c0b();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_1a6c0b();
-}
-
-Failed to generate: builtins/gen/var/textureStore/1a6c0b.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_1a6c0b "textureStore_1a6c0b"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %26 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_1a6c0b = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %39 = OpLoad %uint %arg_2
+ %40 = OpCompositeConstruct %v3uint %37 %38 %39
+ %41 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_1a6c0b
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_1a6c0b
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_1a6c0b
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm
index c01a31d..4db27e1 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
-
-fn textureStore_1af236() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_1af236();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_1af236();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_1af236();
-}
-
-Failed to generate: builtins/gen/var/textureStore/1af236.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_1af236 "textureStore_1af236"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %39 = OpTypeFunction %v4float
+%textureStore_1af236 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2int %arg_1
+ %34 = OpCompositeExtract %int %33 0
+ %35 = OpCompositeExtract %int %33 1
+ %36 = OpLoad %int %arg_2
+ %37 = OpCompositeConstruct %v3int %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_1af236
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_1af236
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_1af236
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm
index 4905990..94d1f93 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
-
-fn textureStore_1e9fbd() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_1e9fbd();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_1e9fbd();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_1e9fbd();
-}
-
-Failed to generate: builtins/gen/var/textureStore/1e9fbd.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_1e9fbd "textureStore_1e9fbd"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_1e9fbd = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_1e9fbd
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_1e9fbd
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_1e9fbd
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm
index de499ec..9ae7b00 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
-
-fn textureStore_1fef04() {
- var arg_1 = 1u;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_1fef04();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_1fef04();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_1fef04();
-}
-
-Failed to generate: builtins/gen/var/textureStore/1fef04.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_1fef04 "textureStore_1fef04"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %21 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_1fef04 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %uint %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_1fef04
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_1fef04
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_1fef04
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm
index 66d42e5..13aa3f0 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
-
-fn textureStore_2046db() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_2046db();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_2046db();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_2046db();
-}
-
-Failed to generate: builtins/gen/var/textureStore/2046db.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_2046db "textureStore_2046db"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+%textureStore_2046db = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2uint %arg_1
+ %36 = OpCompositeExtract %uint %35 0
+ %37 = OpCompositeExtract %uint %35 1
+ %39 = OpLoad %int %arg_2
+ %38 = OpBitcast %uint %39
+ %40 = OpCompositeConstruct %v3uint %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_2046db
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_2046db
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_2046db
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm
index d9b5794..ff5554c 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
-
-fn textureStore_2173fd() {
- var arg_1 = 1u;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_2173fd();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_2173fd();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_2173fd();
-}
-
-Failed to generate: builtins/gen/var/textureStore/2173fd.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_2173fd "textureStore_2173fd"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %25 = OpConstantNull %v4uint
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_2173fd = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %uint %arg_1
+ %29 = OpLoad %v4uint %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_2173fd
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_2173fd
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_2173fd
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm
index edc6e07..4bce298 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
-
-fn textureStore_24e6b7() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_24e6b7();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_24e6b7();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_24e6b7();
-}
-
-Failed to generate: builtins/gen/var/textureStore/24e6b7.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_24e6b7 "textureStore_24e6b7"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_24e6b7 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_24e6b7
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_24e6b7
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_24e6b7
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm
index 2fcfb6d..f98ca4d 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
-
-fn textureStore_26a26d() {
- var arg_1 = 1u;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_26a26d();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_26a26d();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_26a26d();
-}
-
-Failed to generate: builtins/gen/var/textureStore/26a26d.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_26a26d "textureStore_26a26d"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_26a26d = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %uint %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_26a26d
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_26a26d
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_26a26d
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm
index beea9a3..9d45fe5 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
-
-fn textureStore_28e109() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_28e109();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_28e109();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_28e109();
-}
-
-Failed to generate: builtins/gen/var/textureStore/28e109.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_28e109 "textureStore_28e109"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_28e109 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_28e109
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_28e109
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_28e109
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm
index f518718..7cd5c73 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
-
-fn textureStore_2a60c9() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_2a60c9();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_2a60c9();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_2a60c9();
-}
-
-Failed to generate: builtins/gen/var/textureStore/2a60c9.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_2a60c9 "textureStore_2a60c9"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %26 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_2a60c9 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %39 = OpLoad %uint %arg_2
+ %40 = OpCompositeConstruct %v3uint %37 %38 %39
+ %41 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_2a60c9
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_2a60c9
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_2a60c9
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm
index 090c92d..b2fb061 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
-
-fn textureStore_2addd6() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_2addd6();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_2addd6();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_2addd6();
-}
-
-Failed to generate: builtins/gen/var/textureStore/2addd6.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_2addd6 "textureStore_2addd6"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %30 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_2addd6 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2uint %arg_1
+ %35 = OpCompositeExtract %uint %34 0
+ %36 = OpCompositeExtract %uint %34 1
+ %37 = OpLoad %uint %arg_2
+ %38 = OpCompositeConstruct %v3uint %35 %36 %37
+ %39 = OpLoad %v4uint %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_2addd6
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_2addd6
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_2addd6
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm
index c6cc758..347df9f 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
-
-fn textureStore_2c76db() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_2c76db();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_2c76db();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_2c76db();
-}
-
-Failed to generate: builtins/gen/var/textureStore/2c76db.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_2c76db "textureStore_2c76db"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_2c76db = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_2c76db
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_2c76db
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_2c76db
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm
index 9087e48..1ab7227 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
-
-fn textureStore_2f29ea() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_2f29ea();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_2f29ea();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_2f29ea();
-}
-
-Failed to generate: builtins/gen/var/textureStore/2f29ea.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_2f29ea "textureStore_2f29ea"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_2f29ea = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_2f29ea
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_2f29ea
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_2f29ea
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm
index a4f7c59..a605648 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
-
-fn textureStore_312f27() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_312f27();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_312f27();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_312f27();
-}
-
-Failed to generate: builtins/gen/var/textureStore/312f27.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_312f27 "textureStore_312f27"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+%textureStore_312f27 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2int %arg_1
+ %36 = OpCompositeExtract %int %35 0
+ %37 = OpCompositeExtract %int %35 1
+ %39 = OpLoad %uint %arg_2
+ %38 = OpBitcast %int %39
+ %40 = OpCompositeConstruct %v3int %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_312f27
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_312f27
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_312f27
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm
index 06abe1f..d558235 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
-
-fn textureStore_32d3d6() {
- var arg_1 = 1u;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_32d3d6();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_32d3d6();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_32d3d6();
-}
-
-Failed to generate: builtins/gen/var/textureStore/32d3d6.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_32d3d6 "textureStore_32d3d6"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %25 = OpConstantNull %v4uint
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_32d3d6 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %uint %arg_1
+ %29 = OpLoad %v4uint %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_32d3d6
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_32d3d6
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_32d3d6
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm
index e5b24bd..4ed9e78 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
-
-fn textureStore_3310d3() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_3310d3();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_3310d3();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_3310d3();
-}
-
-Failed to generate: builtins/gen/var/textureStore/3310d3.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_3310d3 "textureStore_3310d3"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %39 = OpTypeFunction %v4float
+%textureStore_3310d3 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2int %arg_1
+ %34 = OpCompositeExtract %int %33 0
+ %35 = OpCompositeExtract %int %33 1
+ %36 = OpLoad %int %arg_2
+ %37 = OpCompositeConstruct %v3int %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_3310d3
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_3310d3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_3310d3
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm
index 5fa8a9b..1c844f7 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
-
-fn textureStore_345332() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_345332();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_345332();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_345332();
-}
-
-Failed to generate: builtins/gen/var/textureStore/345332.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_345332 "textureStore_345332"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_345332 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_345332
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_345332
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_345332
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm
index 82a94ac..14edceb 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
-
-fn textureStore_3d1ebe() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_3d1ebe();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_3d1ebe();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_3d1ebe();
-}
-
-Failed to generate: builtins/gen/var/textureStore/3d1ebe.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_3d1ebe "textureStore_3d1ebe"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_3d1ebe = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_3d1ebe
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_3d1ebe
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_3d1ebe
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm
index 062bac3..7cd6419 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
-
-fn textureStore_3d96a4() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_3d96a4();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_3d96a4();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_3d96a4();
-}
-
-Failed to generate: builtins/gen/var/textureStore/3d96a4.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_3d96a4 "textureStore_3d96a4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %23 = OpConstantNull %v3uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_3d96a4 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_3d96a4
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_3d96a4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_3d96a4
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm
index 92c9690..1fe0f56 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
-
-fn textureStore_3e0dc4() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_3e0dc4();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_3e0dc4();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_3e0dc4();
-}
-
-Failed to generate: builtins/gen/var/textureStore/3e0dc4.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_3e0dc4 "textureStore_3e0dc4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+%textureStore_3e0dc4 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2int %arg_1
+ %36 = OpCompositeExtract %int %35 0
+ %37 = OpCompositeExtract %int %35 1
+ %39 = OpLoad %uint %arg_2
+ %38 = OpBitcast %int %39
+ %40 = OpCompositeConstruct %v3int %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_3e0dc4
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_3e0dc4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_3e0dc4
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm
index 9fe0305..fa51ad0 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
-
-fn textureStore_3f61ca() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_3f61ca();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_3f61ca();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_3f61ca();
-}
-
-Failed to generate: builtins/gen/var/textureStore/3f61ca.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_3f61ca "textureStore_3f61ca"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_3f61ca = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_3f61ca
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_3f61ca
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_3f61ca
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm
index 3abba41..728f930 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
-
-fn textureStore_441222() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_441222();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_441222();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_441222();
-}
-
-Failed to generate: builtins/gen/var/textureStore/441222.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_441222 "textureStore_441222"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_441222 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_441222
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_441222
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_441222
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm
index 50c3b6b..af672d7 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
-
-fn textureStore_4483e7() {
- var arg_1 = 1u;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_4483e7();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_4483e7();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_4483e7();
-}
-
-Failed to generate: builtins/gen/var/textureStore/4483e7.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_4483e7 "textureStore_4483e7"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %21 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_4483e7 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %uint %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_4483e7
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_4483e7
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_4483e7
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm
index 2d7e7b1..7a97cae 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
-
-fn textureStore_44b372() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_44b372();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_44b372();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_44b372();
-}
-
-Failed to generate: builtins/gen/var/textureStore/44b372.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_44b372 "textureStore_44b372"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_44b372 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_44b372
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_44b372
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_44b372
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm
index 210efab..9bf6ed8 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
-
-fn textureStore_473ead() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_473ead();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_473ead();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_473ead();
-}
-
-Failed to generate: builtins/gen/var/textureStore/473ead.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_473ead "textureStore_473ead"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_473ead = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_473ead
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_473ead
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_473ead
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm
index 5b5c733..84ea216 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
-
-fn textureStore_47bd70() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_47bd70();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_47bd70();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_47bd70();
-}
-
-Failed to generate: builtins/gen/var/textureStore/47bd70.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_47bd70 "textureStore_47bd70"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_47bd70 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_47bd70
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_47bd70
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_47bd70
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm
index c6d1a15..0697c19 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
-
-fn textureStore_48cb56() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_48cb56();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_48cb56();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_48cb56();
-}
-
-Failed to generate: builtins/gen/var/textureStore/48cb56.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_48cb56 "textureStore_48cb56"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %26 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_48cb56 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %39 = OpLoad %uint %arg_2
+ %40 = OpCompositeConstruct %v3uint %37 %38 %39
+ %41 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_48cb56
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_48cb56
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_48cb56
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm
index be054c5..a7f5e9e 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
-
-fn textureStore_4bf1fd() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_4bf1fd();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_4bf1fd();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_4bf1fd();
-}
-
-Failed to generate: builtins/gen/var/textureStore/4bf1fd.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_4bf1fd "textureStore_4bf1fd"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_4bf1fd = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_4bf1fd
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_4bf1fd
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_4bf1fd
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm
index 09360fb..de18d92 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
-
-fn textureStore_4c76b7() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_4c76b7();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_4c76b7();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_4c76b7();
-}
-
-Failed to generate: builtins/gen/var/textureStore/4c76b7.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_4c76b7 "textureStore_4c76b7"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+%textureStore_4c76b7 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2uint %arg_1
+ %36 = OpCompositeExtract %uint %35 0
+ %37 = OpCompositeExtract %uint %35 1
+ %39 = OpLoad %int %arg_2
+ %38 = OpBitcast %uint %39
+ %40 = OpCompositeConstruct %v3uint %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ %42 = OpVectorShuffle %v4float %41 %41 2 1 0 3
+ OpImageWrite %33 %40 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_4c76b7
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_4c76b7
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_4c76b7
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm
index d22d913..a273921 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
-
-fn textureStore_4cce74() {
- var arg_1 = 1i;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_4cce74();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_4cce74();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_4cce74();
-}
-
-Failed to generate: builtins/gen/var/textureStore/4cce74.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_4cce74 "textureStore_4cce74"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %21 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_4cce74 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %int %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_4cce74
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_4cce74
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_4cce74
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm
index 45bccde..b7e3ac1 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
-
-fn textureStore_4ddf52() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_4ddf52();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_4ddf52();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_4ddf52();
-}
-
-Failed to generate: builtins/gen/var/textureStore/4ddf52.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_4ddf52 "textureStore_4ddf52"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_4ddf52 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_4ddf52
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_4ddf52
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_4ddf52
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm
index 9a458fd..b01b1a8 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.spvasm
@@ -1,34 +1,94 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
-
-fn textureStore_4e2b3a() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_4e2b3a();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_4e2b3a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_4e2b3a();
-}
-
-Failed to generate: builtins/gen/var/textureStore/4e2b3a.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_4e2b3a "textureStore_4e2b3a"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %39 = OpTypeFunction %v4float
+%textureStore_4e2b3a = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2int %arg_1
+ %34 = OpCompositeExtract %int %33 0
+ %35 = OpCompositeExtract %int %33 1
+ %36 = OpLoad %int %arg_2
+ %37 = OpCompositeConstruct %v3int %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_4e2b3a
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_4e2b3a
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_4e2b3a
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm
index 6344b0f..bed4764 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.spvasm
@@ -1,34 +1,94 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
-
-fn textureStore_5030f5() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5030f5();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5030f5();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5030f5();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5030f5.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 53
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5030f5 "textureStore_5030f5"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %40 = OpTypeFunction %v4float
+%textureStore_5030f5 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2uint %arg_1
+ %34 = OpCompositeExtract %uint %33 0
+ %35 = OpCompositeExtract %uint %33 1
+ %36 = OpLoad %uint %arg_2
+ %37 = OpCompositeConstruct %v3uint %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ %39 = OpVectorShuffle %v4float %38 %38 2 1 0 3
+ OpImageWrite %31 %37 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_5030f5
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %48 = OpLabel
+ %49 = OpFunctionCall %void %textureStore_5030f5
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_5030f5
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm
index 8aeb5ff..9056d75 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
-
-fn textureStore_51ec82() {
- var arg_1 = 1i;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_51ec82();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_51ec82();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_51ec82();
-}
-
-Failed to generate: builtins/gen/var/textureStore/51ec82.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_51ec82 "textureStore_51ec82"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_51ec82 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %int %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_51ec82
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_51ec82
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_51ec82
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm
index 4b6785c..661cd97 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
-
-fn textureStore_5246b4() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5246b4();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5246b4();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5246b4();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5246b4.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5246b4 "textureStore_5246b4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_5246b4 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_5246b4
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_5246b4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_5246b4
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm
index 10a17ed..08413ec 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
-
-fn textureStore_53a68b() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_53a68b();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_53a68b();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_53a68b();
-}
-
-Failed to generate: builtins/gen/var/textureStore/53a68b.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_53a68b "textureStore_53a68b"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %23 = OpConstantNull %v3int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_53a68b = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_53a68b
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_53a68b
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_53a68b
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm
index 0eaafbb..37393f9 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.spvasm
@@ -1,33 +1,88 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
-
-fn textureStore_5425ab() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5425ab();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5425ab();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5425ab();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5425ab.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5425ab "textureStore_5425ab"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_5425ab = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_5425ab
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_5425ab
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_5425ab
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm
index 0aef0ee..24678e6 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
-
-fn textureStore_544f06() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_544f06();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_544f06();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_544f06();
-}
-
-Failed to generate: builtins/gen/var/textureStore/544f06.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 45
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_544f06 "textureStore_544f06"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %32 = OpTypeFunction %v4float
+%textureStore_544f06 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
+ OpImageWrite %28 %29 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_544f06
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_544f06
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_544f06
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm
index 394af5a..723b3ed 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
-
-fn textureStore_55f9dc() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_55f9dc();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_55f9dc();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_55f9dc();
-}
-
-Failed to generate: builtins/gen/var/textureStore/55f9dc.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_55f9dc "textureStore_55f9dc"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %39 = OpTypeFunction %v4float
+%textureStore_55f9dc = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2uint %arg_1
+ %34 = OpCompositeExtract %uint %33 0
+ %35 = OpCompositeExtract %uint %33 1
+ %36 = OpLoad %uint %arg_2
+ %37 = OpCompositeConstruct %v3uint %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_55f9dc
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_55f9dc
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_55f9dc
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm
index 591b347..5a43a8d 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
-
-fn textureStore_574a31() {
- var arg_1 = 1u;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_574a31();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_574a31();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_574a31();
-}
-
-Failed to generate: builtins/gen/var/textureStore/574a31.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_574a31 "textureStore_574a31"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %21 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_574a31 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %uint %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_574a31
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_574a31
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_574a31
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm
index d44d048..9e5a84e 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
-
-fn textureStore_579b93() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_579b93();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_579b93();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_579b93();
-}
-
-Failed to generate: builtins/gen/var/textureStore/579b93.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_579b93 "textureStore_579b93"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_579b93 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_579b93
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_579b93
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_579b93
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm
index 761b238..195ff6c 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
-
-fn textureStore_58fc35() {
- var arg_1 = 1u;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_58fc35();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_58fc35();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_58fc35();
-}
-
-Failed to generate: builtins/gen/var/textureStore/58fc35.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_58fc35 "textureStore_58fc35"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_58fc35 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %uint %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_58fc35
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_58fc35
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_58fc35
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm
index 34b71df..d27da4b 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
-
-fn textureStore_5a8b41() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5a8b41();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5a8b41();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5a8b41();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5a8b41.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5a8b41 "textureStore_5a8b41"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+%textureStore_5a8b41 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2uint %arg_1
+ %36 = OpCompositeExtract %uint %35 0
+ %37 = OpCompositeExtract %uint %35 1
+ %39 = OpLoad %int %arg_2
+ %38 = OpBitcast %uint %39
+ %40 = OpCompositeConstruct %v3uint %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_5a8b41
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_5a8b41
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_5a8b41
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm
index 34086bd..6ca9ea0 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
-
-fn textureStore_5b17eb() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5b17eb();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5b17eb();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5b17eb();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5b17eb.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5b17eb "textureStore_5b17eb"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_5b17eb = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_5b17eb
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_5b17eb
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_5b17eb
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm
index af196e0..9495b90 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
-
-fn textureStore_5b4522() {
- var arg_1 = 1u;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5b4522();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5b4522();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5b4522();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5b4522.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5b4522 "textureStore_5b4522"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %25 = OpConstantNull %v4uint
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_5b4522 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %uint %arg_1
+ %29 = OpLoad %v4uint %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_5b4522
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_5b4522
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_5b4522
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm
index 0283b87..ef99bf9 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
-
-fn textureStore_5ec6b2() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5ec6b2();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5ec6b2();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5ec6b2();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5ec6b2.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5ec6b2 "textureStore_5ec6b2"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_5ec6b2 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_5ec6b2
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_5ec6b2
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_5ec6b2
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm
index 5ec7f4e..ac603a1 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.spvasm
@@ -1,34 +1,94 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
-
-fn textureStore_5ee194() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_5ee194();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_5ee194();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_5ee194();
-}
-
-Failed to generate: builtins/gen/var/textureStore/5ee194.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_5ee194 "textureStore_5ee194"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %39 = OpTypeFunction %v4float
+%textureStore_5ee194 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2uint %arg_1
+ %34 = OpCompositeExtract %uint %33 0
+ %35 = OpCompositeExtract %uint %33 1
+ %36 = OpLoad %uint %arg_2
+ %37 = OpCompositeConstruct %v3uint %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_5ee194
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_5ee194
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_5ee194
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm
index 1e6b6fc..963058d 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
-
-fn textureStore_614b58() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_614b58();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_614b58();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_614b58();
-}
-
-Failed to generate: builtins/gen/var/textureStore/614b58.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_614b58 "textureStore_614b58"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_614b58 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_614b58
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_614b58
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_614b58
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm
index 0f2ec40..0afc7e1 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
-
-fn textureStore_635584() {
- var arg_1 = 1u;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_635584();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_635584();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_635584();
-}
-
-Failed to generate: builtins/gen/var/textureStore/635584.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_635584 "textureStore_635584"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_635584 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %uint %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_635584
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_635584
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_635584
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm
index 37d6fb6..b7104c2 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.spvasm
@@ -1,33 +1,88 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
-
-fn textureStore_63f34a() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_63f34a();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_63f34a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_63f34a();
-}
-
-Failed to generate: builtins/gen/var/textureStore/63f34a.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_63f34a "textureStore_63f34a"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_63f34a = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_63f34a
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_63f34a
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_63f34a
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm
index 71cba6d..5c1f657 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
-
-fn textureStore_646dbc() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_646dbc();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_646dbc();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_646dbc();
-}
-
-Failed to generate: builtins/gen/var/textureStore/646dbc.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_646dbc "textureStore_646dbc"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_646dbc = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_646dbc
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_646dbc
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_646dbc
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm
index 30361ae..467c086 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
-
-fn textureStore_65b6aa() {
- var arg_1 = 1i;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_65b6aa();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_65b6aa();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_65b6aa();
-}
-
-Failed to generate: builtins/gen/var/textureStore/65b6aa.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_65b6aa "textureStore_65b6aa"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %25 = OpConstantNull %v4int
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_65b6aa = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %int %arg_1
+ %29 = OpLoad %v4int %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_65b6aa
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_65b6aa
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_65b6aa
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm
index fa7d417..3100cb2 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
-
-fn textureStore_6be9e0() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_6be9e0();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_6be9e0();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_6be9e0();
-}
-
-Failed to generate: builtins/gen/var/textureStore/6be9e0.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_6be9e0 "textureStore_6be9e0"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_6be9e0 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_6be9e0
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_6be9e0
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_6be9e0
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm
index 76c69ef..723d3de 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
-
-fn textureStore_6c4a70() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_6c4a70();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_6c4a70();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_6c4a70();
-}
-
-Failed to generate: builtins/gen/var/textureStore/6c4a70.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_6c4a70 "textureStore_6c4a70"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_6c4a70 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_6c4a70
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_6c4a70
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_6c4a70
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm
index 50fe74f..646a6a4 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
-
-fn textureStore_6d1809() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_6d1809();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_6d1809();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_6d1809();
-}
-
-Failed to generate: builtins/gen/var/textureStore/6d1809.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_6d1809 "textureStore_6d1809"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %39 = OpTypeFunction %v4float
+%textureStore_6d1809 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2uint %arg_1
+ %34 = OpCompositeExtract %uint %33 0
+ %35 = OpCompositeExtract %uint %33 1
+ %36 = OpLoad %uint %arg_2
+ %37 = OpCompositeConstruct %v3uint %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_6d1809
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_6d1809
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_6d1809
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm
index 9439056..8c61767 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
-
-fn textureStore_6d259f() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_6d259f();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_6d259f();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_6d259f();
-}
-
-Failed to generate: builtins/gen/var/textureStore/6d259f.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_6d259f "textureStore_6d259f"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_6d259f = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_6d259f
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_6d259f
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_6d259f
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm
index b1a82eb..cb124ff 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
-
-fn textureStore_6e6cc0() {
- var arg_1 = 1i;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_6e6cc0();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_6e6cc0();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_6e6cc0();
-}
-
-Failed to generate: builtins/gen/var/textureStore/6e6cc0.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_6e6cc0 "textureStore_6e6cc0"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_6e6cc0 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %int %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_6e6cc0
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_6e6cc0
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_6e6cc0
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm
index 5514ec0..d21ef9b 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
-
-fn textureStore_6f3542() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_6f3542();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_6f3542();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_6f3542();
-}
-
-Failed to generate: builtins/gen/var/textureStore/6f3542.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_6f3542 "textureStore_6f3542"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %23 = OpConstantNull %v3int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_6f3542 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_6f3542
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_6f3542
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_6f3542
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm
index 4675af0..8f8cbf1 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
-
-fn textureStore_6fb99b() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_6fb99b();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_6fb99b();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_6fb99b();
-}
-
-Failed to generate: builtins/gen/var/textureStore/6fb99b.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_6fb99b "textureStore_6fb99b"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_6fb99b = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_6fb99b
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_6fb99b
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_6fb99b
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm
index 1a09d6b..b570fd9 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
-
-fn textureStore_704e1f() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_704e1f();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_704e1f();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_704e1f();
-}
-
-Failed to generate: builtins/gen/var/textureStore/704e1f.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_704e1f "textureStore_704e1f"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %39 = OpTypeFunction %v4float
+%textureStore_704e1f = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2int %arg_1
+ %34 = OpCompositeExtract %int %33 0
+ %35 = OpCompositeExtract %int %33 1
+ %36 = OpLoad %int %arg_2
+ %37 = OpCompositeConstruct %v3int %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_704e1f
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_704e1f
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_704e1f
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm
index 502da5b..a1b95ba 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
-
-fn textureStore_706236() {
- var arg_1 = 1i;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_706236();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_706236();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_706236();
-}
-
-Failed to generate: builtins/gen/var/textureStore/706236.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_706236 "textureStore_706236"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_706236 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %int %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_706236
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_706236
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_706236
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm
index aabe4d7..0a9d808 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
-
-fn textureStore_706560() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_706560();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_706560();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_706560();
-}
-
-Failed to generate: builtins/gen/var/textureStore/706560.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_706560 "textureStore_706560"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_706560 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_706560
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_706560
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_706560
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm
index d8c04fe..08ed1fa 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
-
-fn textureStore_726d6d() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_726d6d();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_726d6d();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_726d6d();
-}
-
-Failed to generate: builtins/gen/var/textureStore/726d6d.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_726d6d "textureStore_726d6d"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_726d6d = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_726d6d
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_726d6d
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_726d6d
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm
index 5a08673..7619bde 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
-
-fn textureStore_73a735() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_73a735();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_73a735();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_73a735();
-}
-
-Failed to generate: builtins/gen/var/textureStore/73a735.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_73a735 "textureStore_73a735"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_73a735 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_73a735
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_73a735
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_73a735
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm
index 68abb5d..72cce47 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
-
-fn textureStore_751256() {
- var arg_1 = 1i;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_751256();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_751256();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_751256();
-}
-
-Failed to generate: builtins/gen/var/textureStore/751256.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_751256 "textureStore_751256"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %21 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_751256 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %int %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_751256
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_751256
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_751256
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm
index 75cae03..7cab00e 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.spvasm
@@ -1,34 +1,99 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
-
-fn textureStore_75bbd5() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_75bbd5();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_75bbd5();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_75bbd5();
-}
-
-Failed to generate: builtins/gen/var/textureStore/75bbd5.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_75bbd5 "textureStore_75bbd5"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_75bbd5 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_75bbd5
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_75bbd5
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_75bbd5
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm
index 2571ae9..5abedbd 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.spvasm
@@ -1,33 +1,88 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
-
-fn textureStore_7792fa() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_7792fa();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_7792fa();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_7792fa();
-}
-
-Failed to generate: builtins/gen/var/textureStore/7792fa.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_7792fa "textureStore_7792fa"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %23 = OpConstantNull %v3uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_7792fa = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_7792fa
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_7792fa
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_7792fa
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm
index 0223c6e..710cce0 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
-
-fn textureStore_7b8f86() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_7b8f86();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_7b8f86();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_7b8f86();
-}
-
-Failed to generate: builtins/gen/var/textureStore/7b8f86.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_7b8f86 "textureStore_7b8f86"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_7b8f86 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_7b8f86
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_7b8f86
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_7b8f86
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm
index b7b99b5..a77daf6 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
-
-fn textureStore_7d10e0() {
- var arg_1 = 1u;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_7d10e0();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_7d10e0();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_7d10e0();
-}
-
-Failed to generate: builtins/gen/var/textureStore/7d10e0.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_7d10e0 "textureStore_7d10e0"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_7d10e0 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %uint %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_7d10e0
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_7d10e0
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_7d10e0
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm
index a8847c2..a97b3dd 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
-
-fn textureStore_7dd042() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_7dd042();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_7dd042();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_7dd042();
-}
-
-Failed to generate: builtins/gen/var/textureStore/7dd042.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_7dd042 "textureStore_7dd042"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %30 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_7dd042 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2int %arg_1
+ %35 = OpCompositeExtract %int %34 0
+ %36 = OpCompositeExtract %int %34 1
+ %37 = OpLoad %int %arg_2
+ %38 = OpCompositeConstruct %v3int %35 %36 %37
+ %39 = OpLoad %v4int %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_7dd042
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_7dd042
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_7dd042
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm
index 789244d..ee7bcc6 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
-
-fn textureStore_7e787a() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_7e787a();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_7e787a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_7e787a();
-}
-
-Failed to generate: builtins/gen/var/textureStore/7e787a.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_7e787a "textureStore_7e787a"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_7e787a = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_7e787a
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_7e787a
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_7e787a
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm
index e53b055..9294ad9 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
-
-fn textureStore_80bf1d() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_80bf1d();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_80bf1d();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_80bf1d();
-}
-
-Failed to generate: builtins/gen/var/textureStore/80bf1d.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_80bf1d "textureStore_80bf1d"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_80bf1d = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_80bf1d
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_80bf1d
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_80bf1d
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm
index 6349349..04b0bfa 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
-
-fn textureStore_818df6() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_818df6();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_818df6();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_818df6();
-}
-
-Failed to generate: builtins/gen/var/textureStore/818df6.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_818df6 "textureStore_818df6"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_818df6 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_818df6
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_818df6
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_818df6
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm
index f334d48..bc711d4 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
-
-fn textureStore_81ae31() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_81ae31();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_81ae31();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_81ae31();
-}
-
-Failed to generate: builtins/gen/var/textureStore/81ae31.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_81ae31 "textureStore_81ae31"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %39 = OpTypeFunction %v4float
+%textureStore_81ae31 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2int %arg_1
+ %34 = OpCompositeExtract %int %33 0
+ %35 = OpCompositeExtract %int %33 1
+ %36 = OpLoad %int %arg_2
+ %37 = OpCompositeConstruct %v3int %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_81ae31
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_81ae31
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_81ae31
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm
index 6df6ab6..a7acb14 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.spvasm
@@ -1,34 +1,99 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
-
-fn textureStore_820272() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_820272();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_820272();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_820272();
-}
-
-Failed to generate: builtins/gen/var/textureStore/820272.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_820272 "textureStore_820272"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_820272 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_820272
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_820272
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_820272
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm
index adb6309..0f21799 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
-
-fn textureStore_84d435() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_84d435();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_84d435();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_84d435();
-}
-
-Failed to generate: builtins/gen/var/textureStore/84d435.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_84d435 "textureStore_84d435"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %30 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_84d435 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2int %arg_1
+ %35 = OpCompositeExtract %int %34 0
+ %36 = OpCompositeExtract %int %34 1
+ %37 = OpLoad %int %arg_2
+ %38 = OpCompositeConstruct %v3int %35 %36 %37
+ %39 = OpLoad %v4int %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_84d435
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_84d435
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_84d435
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm
index 4432dd4..d59277d 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
-
-fn textureStore_84f4f4() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_84f4f4();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_84f4f4();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_84f4f4();
-}
-
-Failed to generate: builtins/gen/var/textureStore/84f4f4.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_84f4f4 "textureStore_84f4f4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_84f4f4 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_84f4f4
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_84f4f4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_84f4f4
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm
index e2e2177..cd4a550 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
-
-fn textureStore_8676c9() {
- var arg_1 = 1i;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8676c9();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8676c9();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8676c9();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8676c9.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8676c9 "textureStore_8676c9"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %21 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_8676c9 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %int %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_8676c9
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_8676c9
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_8676c9
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm
index 911105b..275e1cd 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
-
-fn textureStore_86f713() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_86f713();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_86f713();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_86f713();
-}
-
-Failed to generate: builtins/gen/var/textureStore/86f713.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_86f713 "textureStore_86f713"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_86f713 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_86f713
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_86f713
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_86f713
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm
index c721438..71895e6 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
-
-fn textureStore_877c92() {
- var arg_1 = 1i;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_877c92();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_877c92();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_877c92();
-}
-
-Failed to generate: builtins/gen/var/textureStore/877c92.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_877c92 "textureStore_877c92"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_877c92 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %int %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_877c92
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_877c92
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_877c92
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm
index 54cfcba..d90ee4d 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
-
-fn textureStore_8815b1() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8815b1();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8815b1();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8815b1();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8815b1.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8815b1 "textureStore_8815b1"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_8815b1 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_8815b1
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_8815b1
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_8815b1
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm
index dbcb01f..ec767a1 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
-
-fn textureStore_885921() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_885921();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_885921();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_885921();
-}
-
-Failed to generate: builtins/gen/var/textureStore/885921.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_885921 "textureStore_885921"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_885921 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_885921
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_885921
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_885921
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm
index 048bc8f..86f7c7b 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
-
-fn textureStore_88ce7e() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_88ce7e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_88ce7e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_88ce7e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/88ce7e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_88ce7e "textureStore_88ce7e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_88ce7e = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_88ce7e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_88ce7e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_88ce7e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm
index 7abdf8a..c916935 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
-
-fn textureStore_8a16b0() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8a16b0();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8a16b0();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8a16b0();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8a16b0.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8a16b0 "textureStore_8a16b0"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %26 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_8a16b0 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %39 = OpLoad %int %arg_2
+ %40 = OpCompositeConstruct %v3int %37 %38 %39
+ %41 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_8a16b0
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_8a16b0
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_8a16b0
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm
index e655184..54f7b680b 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
-
-fn textureStore_8a46ff() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8a46ff();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8a46ff();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8a46ff();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8a46ff.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8a46ff "textureStore_8a46ff"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_8a46ff = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_8a46ff
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_8a46ff
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_8a46ff
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm
index 17d2da7..d55a66e 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
-
-fn textureStore_8a85b9() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8a85b9();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8a85b9();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8a85b9();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8a85b9.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8a85b9 "textureStore_8a85b9"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %30 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_8a85b9 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2int %arg_1
+ %35 = OpCompositeExtract %int %34 0
+ %36 = OpCompositeExtract %int %34 1
+ %37 = OpLoad %int %arg_2
+ %38 = OpCompositeConstruct %v3int %35 %36 %37
+ %39 = OpLoad %v4int %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_8a85b9
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_8a85b9
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_8a85b9
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm
index 8ae4b69..87dcdce 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
-
-fn textureStore_8a8681() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8a8681();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8a8681();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8a8681();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8a8681.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8a8681 "textureStore_8a8681"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_8a8681 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_8a8681
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_8a8681
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_8a8681
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm
index b3a46ba..36012d1 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
-
-fn textureStore_8ae0bc() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8ae0bc();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8ae0bc();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8ae0bc();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8ae0bc.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8ae0bc "textureStore_8ae0bc"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+%textureStore_8ae0bc = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2int %arg_1
+ %36 = OpCompositeExtract %int %35 0
+ %37 = OpCompositeExtract %int %35 1
+ %39 = OpLoad %uint %arg_2
+ %38 = OpBitcast %int %39
+ %40 = OpCompositeConstruct %v3int %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_8ae0bc
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_8ae0bc
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_8ae0bc
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm
index b1f0201..3e0c6b6 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
-
-fn textureStore_8cd841() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8cd841();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8cd841();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8cd841();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8cd841.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8cd841 "textureStore_8cd841"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_8cd841 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_8cd841
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_8cd841
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_8cd841
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm
index 7cf1eb8..d28bd08 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.spvasm
@@ -1,34 +1,93 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
-
-fn textureStore_8ebdc9() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_8ebdc9();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_8ebdc9();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_8ebdc9();
-}
-
-Failed to generate: builtins/gen/var/textureStore/8ebdc9.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 52
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_8ebdc9 "textureStore_8ebdc9"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %39 = OpTypeFunction %v4float
+%textureStore_8ebdc9 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2uint %arg_1
+ %34 = OpCompositeExtract %uint %33 0
+ %35 = OpCompositeExtract %uint %33 1
+ %36 = OpLoad %uint %arg_2
+ %37 = OpCompositeConstruct %v3uint %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ OpImageWrite %31 %37 %38
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %39
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_8ebdc9
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %44 = OpLabel
+ %45 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %45
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %void %textureStore_8ebdc9
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_8ebdc9
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm
index 93d95d5..c35032b 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
-
-fn textureStore_90960e() {
- var arg_1 = 1i;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_90960e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_90960e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_90960e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/90960e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_90960e "textureStore_90960e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_90960e = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %int %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_90960e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_90960e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_90960e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm
index feaacb5..f9e16ad 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
-
-fn textureStore_90a553() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_90a553();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_90a553();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_90a553();
-}
-
-Failed to generate: builtins/gen/var/textureStore/90a553.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_90a553 "textureStore_90a553"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_90a553 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_90a553
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_90a553
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_90a553
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm
index d0d2804..9e6eef3 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
-
-fn textureStore_976636() {
- var arg_1 = 1u;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_976636();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_976636();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_976636();
-}
-
-Failed to generate: builtins/gen/var/textureStore/976636.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_976636 "textureStore_976636"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %21 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_976636 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %uint %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_976636
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_976636
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_976636
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm
index 910f9df..2532480 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
-
-fn textureStore_9ba5c1() {
- var arg_1 = 1u;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_9ba5c1();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_9ba5c1();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_9ba5c1();
-}
-
-Failed to generate: builtins/gen/var/textureStore/9ba5c1.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_9ba5c1 "textureStore_9ba5c1"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %25 = OpConstantNull %v4uint
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_9ba5c1 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %uint %arg_1
+ %29 = OpLoad %v4uint %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_9ba5c1
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_9ba5c1
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_9ba5c1
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm
index 29655a9..d5dfa98 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
-
-fn textureStore_9cea9e() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_9cea9e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_9cea9e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_9cea9e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/9cea9e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_9cea9e "textureStore_9cea9e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_9cea9e = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_9cea9e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_9cea9e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_9cea9e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm
index 472f2bd..fe486da 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
-
-fn textureStore_9d7c62() {
- var arg_1 = 1i;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_9d7c62();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_9d7c62();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_9d7c62();
-}
-
-Failed to generate: builtins/gen/var/textureStore/9d7c62.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_9d7c62 "textureStore_9d7c62"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %21 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_9d7c62 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %int %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_9d7c62
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_9d7c62
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_9d7c62
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm
index 48e7df5..047c1fa 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
-
-fn textureStore_a0022f() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a0022f();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a0022f();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a0022f();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a0022f.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a0022f "textureStore_a0022f"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %30 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a0022f = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2int %arg_1
+ %35 = OpCompositeExtract %int %34 0
+ %36 = OpCompositeExtract %int %34 1
+ %37 = OpLoad %int %arg_2
+ %38 = OpCompositeConstruct %v3int %35 %36 %37
+ %39 = OpLoad %v4int %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_a0022f
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_a0022f
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_a0022f
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm
index c0a6592..520edbe 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
-
-fn textureStore_a14041() {
- var arg_1 = 1i;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a14041();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a14041();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a14041();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a14041.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a14041 "textureStore_a14041"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %25 = OpConstantNull %v4int
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a14041 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %int %arg_1
+ %29 = OpLoad %v4int %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_a14041
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_a14041
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_a14041
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm
index 9f8d8e2..a8658a1 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
-
-fn textureStore_a19a12() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a19a12();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a19a12();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a19a12();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a19a12.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a19a12 "textureStore_a19a12"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %23 = OpConstantNull %v3int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a19a12 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_a19a12
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_a19a12
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_a19a12
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm
index d2cfbbd..ec084e1 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
-
-fn textureStore_a24491() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a24491();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a24491();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a24491();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a24491.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a24491 "textureStore_a24491"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a24491 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_a24491
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_a24491
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_a24491
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm
index 24e5dfa..4a64952 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
-
-fn textureStore_a5b88e() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a5b88e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a5b88e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a5b88e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a5b88e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a5b88e "textureStore_a5b88e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %23 = OpConstantNull %v3uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a5b88e = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_a5b88e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_a5b88e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_a5b88e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm
index f875c08..b87df48 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
-
-fn textureStore_a5c925() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a5c925();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a5c925();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a5c925();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a5c925.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a5c925 "textureStore_a5c925"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %23 = OpConstantNull %v3uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a5c925 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_a5c925
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_a5c925
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_a5c925
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm
index fa9cb9e..532130c 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
-
-fn textureStore_a66ca4() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a66ca4();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a66ca4();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a66ca4();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a66ca4.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 45
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a66ca4 "textureStore_a66ca4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %32 = OpTypeFunction %v4float
+%textureStore_a66ca4 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
+ OpImageWrite %28 %29 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_a66ca4
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_a66ca4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_a66ca4
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm
index c8ba72d..9ddfba6 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
-
-fn textureStore_a702b6() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a702b6();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a702b6();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a702b6();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a702b6.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a702b6 "textureStore_a702b6"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %26 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a702b6 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %39 = OpLoad %int %arg_2
+ %40 = OpCompositeConstruct %v3int %37 %38 %39
+ %41 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_a702b6
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_a702b6
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_a702b6
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm
index e4c9934..73a0ae8 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
-
-fn textureStore_a9298c() {
- var arg_1 = 1u;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_a9298c();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_a9298c();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_a9298c();
-}
-
-Failed to generate: builtins/gen/var/textureStore/a9298c.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_a9298c "textureStore_a9298c"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %22 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %25 = OpConstantNull %v4uint
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_a9298c = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %25
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %uint %arg_1
+ %29 = OpLoad %v4uint %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_a9298c
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_a9298c
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_a9298c
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm
index 461ce8c..093b795 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
-
-fn textureStore_ab03b6() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_ab03b6();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_ab03b6();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_ab03b6();
-}
-
-Failed to generate: builtins/gen/var/textureStore/ab03b6.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_ab03b6 "textureStore_ab03b6"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %23 = OpConstantNull %v3int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_ab03b6 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_ab03b6
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_ab03b6
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_ab03b6
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm
index f152955..9d2d7b9 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
-
-fn textureStore_ab788e() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_ab788e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_ab788e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_ab788e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/ab788e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_ab788e "textureStore_ab788e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_ab788e = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_ab788e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_ab788e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_ab788e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm
index 0f72415..bf859a0 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
-
-fn textureStore_abdd21() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_abdd21();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_abdd21();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_abdd21();
-}
-
-Failed to generate: builtins/gen/var/textureStore/abdd21.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_abdd21 "textureStore_abdd21"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %30 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_abdd21 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2uint %arg_1
+ %35 = OpCompositeExtract %uint %34 0
+ %36 = OpCompositeExtract %uint %34 1
+ %37 = OpLoad %uint %arg_2
+ %38 = OpCompositeConstruct %v3uint %35 %36 %37
+ %39 = OpLoad %v4uint %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_abdd21
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_abdd21
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_abdd21
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm
index f5aaf57..48334a0 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
-
-fn textureStore_ac0a55() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_ac0a55();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_ac0a55();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_ac0a55();
-}
-
-Failed to generate: builtins/gen/var/textureStore/ac0a55.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_ac0a55 "textureStore_ac0a55"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %30 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_ac0a55 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2uint %arg_1
+ %35 = OpCompositeExtract %uint %34 0
+ %36 = OpCompositeExtract %uint %34 1
+ %37 = OpLoad %uint %arg_2
+ %38 = OpCompositeConstruct %v3uint %35 %36 %37
+ %39 = OpLoad %v4uint %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_ac0a55
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_ac0a55
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_ac0a55
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm
index 82807a3..e053f9f 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
-
-fn textureStore_aedea3() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_aedea3();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_aedea3();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_aedea3();
-}
-
-Failed to generate: builtins/gen/var/textureStore/aedea3.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_aedea3 "textureStore_aedea3"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_aedea3 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_aedea3
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_aedea3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_aedea3
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm
index de9c2f9..7a2e226 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
-
-fn textureStore_b16110() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b16110();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b16110();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b16110();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b16110.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b16110 "textureStore_b16110"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %26 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_b16110 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %39 = OpLoad %uint %arg_2
+ %40 = OpCompositeConstruct %v3uint %37 %38 %39
+ %41 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_b16110
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_b16110
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_b16110
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm
index 4ad196d..49c29ef 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
-
-fn textureStore_b286b4() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b286b4();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b286b4();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b286b4();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b286b4.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b286b4 "textureStore_b286b4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %26 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_b286b4 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %39 = OpLoad %int %arg_2
+ %40 = OpCompositeConstruct %v3int %37 %38 %39
+ %41 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_b286b4
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_b286b4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_b286b4
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm
index a006c37..cc592fd 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
-
-fn textureStore_b36bc1() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b36bc1();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b36bc1();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b36bc1();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b36bc1.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b36bc1 "textureStore_b36bc1"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_b36bc1 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_b36bc1
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_b36bc1
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_b36bc1
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm
index 3b725de..178dbb5 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
-
-fn textureStore_b4389e() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b4389e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b4389e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b4389e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b4389e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 45
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b4389e "textureStore_b4389e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %32 = OpTypeFunction %v4float
+%textureStore_b4389e = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
+ OpImageWrite %28 %29 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_b4389e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_b4389e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_b4389e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm
index c2985e7..e35d946 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
-
-fn textureStore_b71c13() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b71c13();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b71c13();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b71c13();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b71c13.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b71c13 "textureStore_b71c13"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+%textureStore_b71c13 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2uint %arg_1
+ %36 = OpCompositeExtract %uint %35 0
+ %37 = OpCompositeExtract %uint %35 1
+ %39 = OpLoad %int %arg_2
+ %38 = OpBitcast %uint %39
+ %40 = OpCompositeConstruct %v3uint %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_b71c13
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_b71c13
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_b71c13
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm
index b425347..d4265c0 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.spvasm
@@ -1,33 +1,82 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
-
-fn textureStore_b7232c() {
- var arg_1 = 1u;
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b7232c();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b7232c();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b7232c();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b7232c.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b7232c "textureStore_b7232c"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %20 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %22 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %29 = OpTypeFunction %v4float
+%textureStore_b7232c = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %22
+ %26 = OpLoad %11 %arg_0
+ %27 = OpLoad %uint %arg_1
+ %28 = OpLoad %v4float %arg_2
+ OpImageWrite %26 %27 %28
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %29
+ %31 = OpLabel
+ %32 = OpFunctionCall %void %textureStore_b7232c
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %34 = OpLabel
+ %35 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %35
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %void %textureStore_b7232c
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_b7232c
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm
index 90643d6..1a8374c 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
-
-fn textureStore_b89ffb() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b89ffb();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b89ffb();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b89ffb();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b89ffb.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b89ffb "textureStore_b89ffb"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+%textureStore_b89ffb = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2int %arg_1
+ %36 = OpCompositeExtract %int %35 0
+ %37 = OpCompositeExtract %int %35 1
+ %39 = OpLoad %uint %arg_2
+ %38 = OpBitcast %int %39
+ %40 = OpCompositeConstruct %v3int %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ %42 = OpVectorShuffle %v4float %41 %41 2 1 0 3
+ OpImageWrite %33 %40 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_b89ffb
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_b89ffb
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_b89ffb
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm
index b01961f..00770da 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.spvasm
@@ -1,33 +1,88 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
-
-fn textureStore_b9c81a() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b9c81a();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b9c81a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b9c81a();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b9c81a.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b9c81a "textureStore_b9c81a"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %23 = OpConstantNull %v3int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_b9c81a = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_b9c81a
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_b9c81a
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_b9c81a
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm
index 32d9a68..753f6ee 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
-
-fn textureStore_b9d863() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_b9d863();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_b9d863();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_b9d863();
-}
-
-Failed to generate: builtins/gen/var/textureStore/b9d863.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_b9d863 "textureStore_b9d863"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %26 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_b9d863 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %39 = OpLoad %int %arg_2
+ %40 = OpCompositeConstruct %v3int %37 %38 %39
+ %41 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_b9d863
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_b9d863
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_b9d863
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm
index 9e4cefe..5c7e07b 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
-
-fn textureStore_bc1423() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_bc1423();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_bc1423();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_bc1423();
-}
-
-Failed to generate: builtins/gen/var/textureStore/bc1423.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_bc1423 "textureStore_bc1423"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_bc1423 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_bc1423
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_bc1423
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_bc1423
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm
index 8ec2c25..dd737b4 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
-
-fn textureStore_bcc97a() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_bcc97a();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_bcc97a();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_bcc97a();
-}
-
-Failed to generate: builtins/gen/var/textureStore/bcc97a.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_bcc97a "textureStore_bcc97a"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_bcc97a = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v2int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_bcc97a
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_bcc97a
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_bcc97a
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm
index 2b59eba..6a2e18c 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.spvasm
@@ -1,34 +1,99 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
-
-fn textureStore_bd6602() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_bd6602();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_bd6602();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_bd6602();
-}
-
-Failed to generate: builtins/gen/var/textureStore/bd6602.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_bd6602 "textureStore_bd6602"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_bd6602 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_bd6602
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_bd6602
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_bd6602
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm
index 4166167..8809876 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.spvasm
@@ -1,34 +1,94 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
-
-fn textureStore_c06463() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_c06463();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_c06463();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_c06463();
-}
-
-Failed to generate: builtins/gen/var/textureStore/c06463.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 53
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_c06463 "textureStore_c06463"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %27 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %40 = OpTypeFunction %v4float
+%textureStore_c06463 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %31 = OpLoad %11 %arg_0
+ %33 = OpLoad %v2int %arg_1
+ %34 = OpCompositeExtract %int %33 0
+ %35 = OpCompositeExtract %int %33 1
+ %36 = OpLoad %int %arg_2
+ %37 = OpCompositeConstruct %v3int %34 %35 %36
+ %38 = OpLoad %v4float %arg_3
+ %39 = OpVectorShuffle %v4float %38 %38 2 1 0 3
+ OpImageWrite %31 %37 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_c06463
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %48 = OpLabel
+ %49 = OpFunctionCall %void %textureStore_c06463
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_c06463
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm
index c7c00e3..fe285de 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
-
-fn textureStore_c1c664() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_c1c664();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_c1c664();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_c1c664();
-}
-
-Failed to generate: builtins/gen/var/textureStore/c1c664.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_c1c664 "textureStore_c1c664"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_c1c664 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_c1c664
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_c1c664
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_c1c664
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm
index 2f105cf..a17b6a5 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
-
-fn textureStore_c1f760() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_c1f760();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_c1f760();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_c1f760();
-}
-
-Failed to generate: builtins/gen/var/textureStore/c1f760.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_c1f760 "textureStore_c1f760"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %25 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %27 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %30 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_c1f760 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2uint %arg_1
+ %35 = OpCompositeExtract %uint %34 0
+ %36 = OpCompositeExtract %uint %34 1
+ %37 = OpLoad %uint %arg_2
+ %38 = OpCompositeConstruct %v3uint %35 %36 %37
+ %39 = OpLoad %v4uint %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_c1f760
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_c1f760
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_c1f760
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm
index bfe788c..8814631 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
-
-fn textureStore_c33478() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_c33478();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_c33478();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_c33478();
-}
-
-Failed to generate: builtins/gen/var/textureStore/c33478.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_c33478 "textureStore_c33478"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_c33478 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_c33478
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_c33478
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_c33478
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm
index c34ac79..a3cb616 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
-
-fn textureStore_c35268() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_c35268();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_c35268();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_c35268();
-}
-
-Failed to generate: builtins/gen/var/textureStore/c35268.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_c35268 "textureStore_c35268"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_c35268 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_c35268
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_c35268
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_c35268
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm
index 9e5980d..ed15473 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
-
-fn textureStore_c63f05() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_c63f05();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_c63f05();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_c63f05();
-}
-
-Failed to generate: builtins/gen/var/textureStore/c63f05.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_c63f05 "textureStore_c63f05"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_c63f05 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_c63f05
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_c63f05
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_c63f05
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm
index 27cd0d3..9c249d6 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
-
-fn textureStore_c79451() {
- var arg_1 = 1u;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_c79451();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_c79451();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_c79451();
-}
-
-Failed to generate: builtins/gen/var/textureStore/c79451.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_c79451 "textureStore_c79451"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %21 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_c79451 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %uint_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %uint %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_c79451
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_c79451
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_c79451
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm
index e25e001..742abef 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
-
-fn textureStore_ccac20() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_ccac20();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_ccac20();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_ccac20();
-}
-
-Failed to generate: builtins/gen/var/textureStore/ccac20.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_ccac20 "textureStore_ccac20"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_ccac20 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_ccac20
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_ccac20
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_ccac20
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm
index 91d16a5..8595694 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
-
-fn textureStore_ceb832() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_ceb832();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_ceb832();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_ceb832();
-}
-
-Failed to generate: builtins/gen/var/textureStore/ceb832.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_ceb832 "textureStore_ceb832"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %26 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_ceb832 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %39 = OpLoad %uint %arg_2
+ %40 = OpCompositeConstruct %v3uint %37 %38 %39
+ %41 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_ceb832
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_ceb832
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_ceb832
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm
index 1b7789e..6972b81 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
-
-fn textureStore_d0d62c() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_d0d62c();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_d0d62c();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_d0d62c();
-}
-
-Failed to generate: builtins/gen/var/textureStore/d0d62c.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_d0d62c "textureStore_d0d62c"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %26 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %29 = OpConstantNull %v4uint
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_d0d62c = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2int %arg_1
+ %33 = OpLoad %v4uint %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_d0d62c
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_d0d62c
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_d0d62c
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm
index 733c11a..d38fb22 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
-
-fn textureStore_d0fadc() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_d0fadc();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_d0fadc();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_d0fadc();
-}
-
-Failed to generate: builtins/gen/var/textureStore/d0fadc.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_d0fadc "textureStore_d0fadc"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+%textureStore_d0fadc = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2int %arg_1
+ %36 = OpCompositeExtract %int %35 0
+ %37 = OpCompositeExtract %int %35 1
+ %39 = OpLoad %uint %arg_2
+ %38 = OpBitcast %int %39
+ %40 = OpCompositeConstruct %v3int %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_d0fadc
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_d0fadc
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_d0fadc
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm
index 4c49211..fb45c5e 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
-
-fn textureStore_d19db4() {
- var arg_1 = vec3<i32>(1i);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_d19db4();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_d19db4();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_d19db4();
-}
-
-Failed to generate: builtins/gen/var/textureStore/d19db4.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_d19db4 "textureStore_d19db4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3int = OpTypeVector %int 3
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v3int %int_1 %int_1 %int_1
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %22 = OpConstantNull %v3int
+ %v4int = OpTypeVector %int 4
+ %24 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %27 = OpConstantNull %v4int
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_d19db4 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3int %arg_1
+ %31 = OpLoad %v4int %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_d19db4
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_d19db4
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_d19db4
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm
index 81d5e52..d097f90 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
-
-fn textureStore_d1ab82() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_d1ab82();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_d1ab82();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_d1ab82();
-}
-
-Failed to generate: builtins/gen/var/textureStore/d1ab82.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_d1ab82 "textureStore_d1ab82"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_d1ab82 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_d1ab82
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_d1ab82
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_d1ab82
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm
index 9cb6ced..4076f36 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
-
-fn textureStore_d3a22b() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_d3a22b();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_d3a22b();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_d3a22b();
-}
-
-Failed to generate: builtins/gen/var/textureStore/d3a22b.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_d3a22b "textureStore_d3a22b"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %v4uint = OpTypeVector %uint 4
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_d3a22b = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %v3uint %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_d3a22b
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_d3a22b
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_d3a22b
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm
index 2695bba..54d9134 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
-
-fn textureStore_d86d33() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_d86d33();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_d86d33();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_d86d33();
-}
-
-Failed to generate: builtins/gen/var/textureStore/d86d33.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_d86d33 "textureStore_d86d33"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+%textureStore_d86d33 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2uint %arg_1
+ %36 = OpCompositeExtract %uint %35 0
+ %37 = OpCompositeExtract %uint %35 1
+ %39 = OpLoad %int %arg_2
+ %38 = OpBitcast %uint %39
+ %40 = OpCompositeConstruct %v3uint %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_d86d33
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_d86d33
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_d86d33
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm
index 4eb6507..fb2406a 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
-
-fn textureStore_da530c() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_da530c();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_da530c();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_da530c();
-}
-
-Failed to generate: builtins/gen/var/textureStore/da530c.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_da530c "textureStore_da530c"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_da530c = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v2uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_da530c
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_da530c
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_da530c
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm
index 8bd4e04..667094e 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
-
-fn textureStore_db5128() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_db5128();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_db5128();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_db5128();
-}
-
-Failed to generate: builtins/gen/var/textureStore/db5128.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_db5128 "textureStore_db5128"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_db5128 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_db5128
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_db5128
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_db5128
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm
index 7ec1c72..2ae73a7 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
-
-fn textureStore_dce0e2() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_dce0e2();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_dce0e2();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_dce0e2();
-}
-
-Failed to generate: builtins/gen/var/textureStore/dce0e2.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_dce0e2 "textureStore_dce0e2"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+%textureStore_dce0e2 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2uint %arg_1
+ %36 = OpCompositeExtract %uint %35 0
+ %37 = OpCompositeExtract %uint %35 1
+ %39 = OpLoad %int %arg_2
+ %38 = OpBitcast %uint %39
+ %40 = OpCompositeConstruct %v3uint %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_dce0e2
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_dce0e2
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_dce0e2
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm
index 866dceb..9f349c6 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.spvasm
@@ -1,34 +1,97 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
-
-fn textureStore_dd8b29() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_dd8b29();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_dd8b29();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_dd8b29();
-}
-
-Failed to generate: builtins/gen/var/textureStore/dd8b29.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 56
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_dd8b29 "textureStore_dd8b29"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %20 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %23 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %26 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_dd8b29 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %26
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %39 = OpLoad %int %arg_2
+ %40 = OpCompositeConstruct %v3int %37 %38 %39
+ %41 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_dd8b29
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %51 = OpLabel
+ %52 = OpFunctionCall %void %textureStore_dd8b29
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %54 = OpLabel
+ %55 = OpFunctionCall %void %textureStore_dd8b29
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm
index b00e3d4..aabd3fc 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
-
-fn textureStore_de38e5() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_de38e5();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_de38e5();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_de38e5();
-}
-
-Failed to generate: builtins/gen/var/textureStore/de38e5.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_de38e5 "textureStore_de38e5"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %22 = OpConstantNull %v3uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_de38e5 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v3uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_de38e5
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_de38e5
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_de38e5
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm
index c48bba1..6625d92 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.spvasm
@@ -1,33 +1,87 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
-
-fn textureStore_df0c51() {
- var arg_1 = vec3<u32>(1u);
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_df0c51();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_df0c51();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_df0c51();
-}
-
-Failed to generate: builtins/gen/var/textureStore/df0c51.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 48
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_df0c51 "textureStore_df0c51"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %23 = OpConstantNull %v3uint
+ %v4int = OpTypeVector %int 4
+ %int_1 = OpConstant %int 1
+ %26 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %29 = OpConstantNull %v4int
+ %34 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_df0c51 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v3uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %29
+ OpStore %arg_1 %20
+ OpStore %arg_2 %26
+ %31 = OpLoad %11 %arg_0
+ %32 = OpLoad %v3uint %arg_1
+ %33 = OpLoad %v4int %arg_2
+ OpImageWrite %31 %32 %33
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %34
+ %36 = OpLabel
+ %37 = OpFunctionCall %void %textureStore_df0c51
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %40
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_df0c51
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %46 = OpLabel
+ %47 = OpFunctionCall %void %textureStore_df0c51
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm
index 2360c4e..85243d5 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.spvasm
@@ -1,33 +1,85 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
-
-fn textureStore_e077e7() {
- var arg_1 = 1i;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_e077e7();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_e077e7();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_e077e7();
-}
-
-Failed to generate: builtins/gen/var/textureStore/e077e7.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_e077e7 "textureStore_e077e7"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %25 = OpConstantNull %v4int
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_e077e7 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %int %arg_1
+ %29 = OpLoad %v4int %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_e077e7
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_e077e7
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_e077e7
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm
index d34ab5b..4377457 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
-
-fn textureStore_e1784d() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_e1784d();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_e1784d();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_e1784d();
-}
-
-Failed to generate: builtins/gen/var/textureStore/e1784d.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_e1784d "textureStore_e1784d"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+%textureStore_e1784d = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2int %arg_1
+ %36 = OpCompositeExtract %int %35 0
+ %37 = OpCompositeExtract %int %35 1
+ %39 = OpLoad %uint %arg_2
+ %38 = OpBitcast %int %39
+ %40 = OpCompositeConstruct %v3int %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_e1784d
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_e1784d
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_e1784d
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm
index 80616e2..440b67b 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
-
-fn textureStore_e46fd8() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_e46fd8();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_e46fd8();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_e46fd8();
-}
-
-Failed to generate: builtins/gen/var/textureStore/e46fd8.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 45
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_e46fd8 "textureStore_e46fd8"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %32 = OpTypeFunction %v4float
+%textureStore_e46fd8 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2uint %arg_1
+ %30 = OpLoad %v4float %arg_2
+ %31 = OpVectorShuffle %v4float %30 %30 2 1 0 3
+ OpImageWrite %28 %29 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_e46fd8
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %40 = OpLabel
+ %41 = OpFunctionCall %void %textureStore_e46fd8
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %43 = OpLabel
+ %44 = OpFunctionCall %void %textureStore_e46fd8
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm
index 5c53d46..023ca77 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
-
-fn textureStore_e72bdc() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_e72bdc();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_e72bdc();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_e72bdc();
-}
-
-Failed to generate: builtins/gen/var/textureStore/e72bdc.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_e72bdc "textureStore_e72bdc"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3int = OpTypeVector %int 3
+ %42 = OpTypeFunction %v4float
+%textureStore_e72bdc = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2int %arg_1
+ %36 = OpCompositeExtract %int %35 0
+ %37 = OpCompositeExtract %int %35 1
+ %39 = OpLoad %uint %arg_2
+ %38 = OpBitcast %int %39
+ %40 = OpCompositeConstruct %v3int %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_e72bdc
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_e72bdc
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_e72bdc
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm
index 50d651a..dd9e201 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
-
-fn textureStore_e87f6e() {
- var arg_1 = 1i;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_e87f6e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_e87f6e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_e87f6e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/e87f6e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_e87f6e "textureStore_e87f6e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %25 = OpConstantNull %v4int
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_e87f6e = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %int %arg_1
+ %29 = OpLoad %v4int %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_e87f6e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_e87f6e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_e87f6e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm
index d7f4115..dbb62c1 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.spvasm
@@ -1,34 +1,99 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
-
-fn textureStore_ea30d2() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_ea30d2();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_ea30d2();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_ea30d2();
-}
-
-Failed to generate: builtins/gen/var/textureStore/ea30d2.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpCapability StorageImageExtendedFormats
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_ea30d2 "textureStore_ea30d2"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %20 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %23 = OpConstantNull %v2uint
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_ea30d2 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %23
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %20
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_ea30d2
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_ea30d2
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_ea30d2
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm
index 6a29292..133f07d 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
-
-fn textureStore_f05928() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1u;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_f05928();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_f05928();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_f05928();
-}
-
-Failed to generate: builtins/gen/var/textureStore/f05928.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_f05928 "textureStore_f05928"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %uint = OpTypeInt 32 0
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %27 = OpConstantNull %uint
+ %v4int = OpTypeVector %int 4
+ %29 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %32 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_f05928 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_uint Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %uint_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2int %arg_1
+ %37 = OpCompositeExtract %int %36 0
+ %38 = OpCompositeExtract %int %36 1
+ %40 = OpLoad %uint %arg_2
+ %39 = OpBitcast %int %40
+ %41 = OpCompositeConstruct %v3int %37 %38 %39
+ %42 = OpLoad %v4int %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_f05928
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_f05928
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_f05928
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm
index 1127738..67cfecf 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.spvasm
@@ -1,33 +1,84 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
-
-fn textureStore_f64d69() {
- var arg_1 = 1i;
- var arg_2 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_f64d69();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_f64d69();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_f64d69();
-}
-
-Failed to generate: builtins/gen/var/textureStore/f64d69.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_f64d69 "textureStore_f64d69"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %20 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %22 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %25 = OpConstantNull %v4int
+ %30 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_f64d69 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %20
+ %arg_2 = OpVariable %_ptr_Function_v4int Function %25
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %22
+ %27 = OpLoad %11 %arg_0
+ %28 = OpLoad %int %arg_1
+ %29 = OpLoad %v4int %arg_2
+ OpImageWrite %27 %28 %29
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %30
+ %32 = OpLabel
+ %33 = OpFunctionCall %void %textureStore_f64d69
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %35 = OpLabel
+ %36 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %36
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_f64d69
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_f64d69
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm
index d12421b..aa52e09 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.spvasm
@@ -1,34 +1,96 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
-
-fn textureStore_f6f392() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_f6f392();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_f6f392();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_f6f392();
-}
-
-Failed to generate: builtins/gen/var/textureStore/f6f392.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 55
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_f6f392 "textureStore_f6f392"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %float_1 = OpConstant %float 1
+ %29 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %v3uint = OpTypeVector %uint 3
+ %42 = OpTypeFunction %v4float
+%textureStore_f6f392 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %33 = OpLoad %11 %arg_0
+ %35 = OpLoad %v2uint %arg_1
+ %36 = OpCompositeExtract %uint %35 0
+ %37 = OpCompositeExtract %uint %35 1
+ %39 = OpLoad %int %arg_2
+ %38 = OpBitcast %uint %39
+ %40 = OpCompositeConstruct %v3uint %36 %37 %38
+ %41 = OpLoad %v4float %arg_3
+ OpImageWrite %33 %40 %41
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %42
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_f6f392
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %47 = OpLabel
+ %48 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %48
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %50 = OpLabel
+ %51 = OpFunctionCall %void %textureStore_f6f392
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %53 = OpLabel
+ %54 = OpFunctionCall %void %textureStore_f6f392
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm
index e7d1fcd..4fda3bb 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.spvasm
@@ -1,34 +1,95 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
-
-fn textureStore_f8aaf9() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = 1i;
- var arg_3 = vec4<i32>(1i);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_f8aaf9();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_f8aaf9();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_f8aaf9();
-}
-
-Failed to generate: builtins/gen/var/textureStore/f8aaf9.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 54
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_f8aaf9 "textureStore_f8aaf9"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %11 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+%_ptr_Function_int = OpTypePointer Function %int
+ %25 = OpConstantNull %int
+ %v4int = OpTypeVector %int 4
+ %27 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %30 = OpConstantNull %v4int
+ %v3int = OpTypeVector %int 3
+ %40 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_f8aaf9 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %25
+ %arg_3 = OpVariable %_ptr_Function_v4int Function %30
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %27
+ %32 = OpLoad %11 %arg_0
+ %34 = OpLoad %v2int %arg_1
+ %35 = OpCompositeExtract %int %34 0
+ %36 = OpCompositeExtract %int %34 1
+ %37 = OpLoad %int %arg_2
+ %38 = OpCompositeConstruct %v3int %35 %36 %37
+ %39 = OpLoad %v4int %arg_3
+ OpImageWrite %32 %38 %39
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %40
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_f8aaf9
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %45 = OpLabel
+ %46 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %46
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %49 = OpLabel
+ %50 = OpFunctionCall %void %textureStore_f8aaf9
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_f8aaf9
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm
index 267616a..097afeb 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.spvasm
@@ -1,33 +1,83 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
-
-fn textureStore_f975a0() {
- var arg_1 = vec2<i32>(1i);
- var arg_2 = vec4<f32>(1.0f);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_f975a0();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_f975a0();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_f975a0();
-}
-
-Failed to generate: builtins/gen/var/textureStore/f975a0.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_f975a0 "textureStore_f975a0"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %11 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %12 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %int_1 = OpConstant %int 1
+ %19 = OpConstantComposite %v2int %int_1 %int_1
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %22 = OpConstantNull %v2int
+ %float_1 = OpConstant %float 1
+ %24 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+ %31 = OpTypeFunction %v4float
+%textureStore_f975a0 = OpFunction %void None %12
+ %15 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %22
+ %arg_2 = OpVariable %_ptr_Function_v4float Function %5
+ OpStore %arg_1 %19
+ OpStore %arg_2 %24
+ %28 = OpLoad %11 %arg_0
+ %29 = OpLoad %v2int %arg_1
+ %30 = OpLoad %v4float %arg_2
+ OpImageWrite %28 %29 %30
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+ %33 = OpLabel
+ %34 = OpFunctionCall %void %textureStore_f975a0
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %12
+ %36 = OpLabel
+ %37 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %37
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %12
+ %39 = OpLabel
+ %40 = OpFunctionCall %void %textureStore_f975a0
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %12
+ %42 = OpLabel
+ %43 = OpFunctionCall %void %textureStore_f975a0
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm
index fc6665c..9c897fe 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.spvasm
@@ -1,34 +1,98 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
-
-fn textureStore_fc916e() {
- var arg_1 = vec2<u32>(1u);
- var arg_2 = 1i;
- var arg_3 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2, arg_3);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_fc916e();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_fc916e();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_fc916e();
-}
-
-Failed to generate: builtins/gen/var/textureStore/fc916e.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 57
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_fc916e "textureStore_fc916e"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %arg_3 "arg_3"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %v2uint = OpTypeVector %uint 2
+ %uint_1 = OpConstant %uint 1
+ %19 = OpConstantComposite %v2uint %uint_1 %uint_1
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %22 = OpConstantNull %v2uint
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %27 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %29 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %32 = OpConstantNull %v4uint
+ %v3uint = OpTypeVector %uint 3
+ %43 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_fc916e = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2uint Function %22
+ %arg_2 = OpVariable %_ptr_Function_int Function %27
+ %arg_3 = OpVariable %_ptr_Function_v4uint Function %32
+ OpStore %arg_1 %19
+ OpStore %arg_2 %int_1
+ OpStore %arg_3 %29
+ %34 = OpLoad %11 %arg_0
+ %36 = OpLoad %v2uint %arg_1
+ %37 = OpCompositeExtract %uint %36 0
+ %38 = OpCompositeExtract %uint %36 1
+ %40 = OpLoad %int %arg_2
+ %39 = OpBitcast %uint %40
+ %41 = OpCompositeConstruct %v3uint %37 %38 %39
+ %42 = OpLoad %v4uint %arg_3
+ OpImageWrite %34 %41 %42
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %43
+ %45 = OpLabel
+ %46 = OpFunctionCall %void %textureStore_fc916e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %48 = OpLabel
+ %49 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %49
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %52 = OpLabel
+ %53 = OpFunctionCall %void %textureStore_fc916e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %55 = OpLabel
+ %56 = OpFunctionCall %void %textureStore_fc916e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm
index ac81333..633030b 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.spvasm
@@ -1,33 +1,86 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_read_write_storage_texture;
-
-@group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
-
-fn textureStore_ff23b3() {
- var arg_1 = 1i;
- var arg_2 = vec4<u32>(1u);
- textureStore(arg_0, arg_1, arg_2);
-}
-
-@vertex
-fn vertex_main() -> @builtin(position) vec4<f32> {
- textureStore_ff23b3();
- return vec4<f32>();
-}
-
-@fragment
-fn fragment_main() {
- textureStore_ff23b3();
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
- textureStore_ff23b3();
-}
-
-Failed to generate: builtins/gen/var/textureStore/ff23b3.wgsl:24:8 error: SPIR-V backend does not support extension 'chromium_experimental_read_write_storage_texture'
-enable chromium_experimental_read_write_storage_texture;
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 46
+; Schema: 0
+ OpCapability Shader
+ OpCapability Image1D
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %arg_0 "arg_0"
+ OpName %textureStore_ff23b3 "textureStore_ff23b3"
+ OpName %arg_1 "arg_1"
+ OpName %arg_2 "arg_2"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ OpDecorate %arg_0 DescriptorSet 1
+ OpDecorate %arg_0 Binding 0
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %11 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %void = OpTypeVoid
+ %13 = OpTypeFunction %void
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %21 = OpConstantNull %int
+ %v4uint = OpTypeVector %uint 4
+ %uint_1 = OpConstant %uint 1
+ %24 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %27 = OpConstantNull %v4uint
+ %32 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%textureStore_ff23b3 = OpFunction %void None %13
+ %16 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_int Function %21
+ %arg_2 = OpVariable %_ptr_Function_v4uint Function %27
+ OpStore %arg_1 %int_1
+ OpStore %arg_2 %24
+ %29 = OpLoad %11 %arg_0
+ %30 = OpLoad %int %arg_1
+ %31 = OpLoad %v4uint %arg_2
+ OpImageWrite %29 %30 %31
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %32
+ %34 = OpLabel
+ %35 = OpFunctionCall %void %textureStore_ff23b3
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %13
+ %37 = OpLabel
+ %38 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %38
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %13
+ %41 = OpLabel
+ %42 = OpFunctionCall %void %textureStore_ff23b3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %13
+ %44 = OpLabel
+ %45 = OpFunctionCall %void %textureStore_ff23b3
+ OpReturn
+ OpFunctionEnd