diff --git a/src/tint/lang/wgsl/reader/parser/parser.cc b/src/tint/lang/wgsl/reader/parser/parser.cc
index 6a10c72..8cc0bba 100644
--- a/src/tint/lang/wgsl/reader/parser/parser.cc
+++ b/src/tint/lang/wgsl/reader/parser/parser.cc
@@ -3088,6 +3088,8 @@
             return create<ast::BindingAttribute>(t.source(), args[0]);
         case core::Attribute::kBuiltin:
             return create<ast::BuiltinAttribute>(t.source(), args[0]);
+        case core::Attribute::kColor:
+            return create<ast::ColorAttribute>(t.source(), args[0]);
         case core::Attribute::kCompute:
             return create<ast::StageAttribute>(t.source(), ast::PipelineStage::kCompute);
         case core::Attribute::kFragment:
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl
new file mode 100644
index 0000000..ae672fe
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl
@@ -0,0 +1,11 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0) uv : vec4f,
+}
+
+fn g(a : f32, b : f32, c : f32) {}
+
+@fragment fn f(@builtin(position) pos : vec4f, @color(0) fbf : vec4f, in : In) {
+  g(pos.x, fbf.x, in.uv.x);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..753dc33
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  uv : vec4f,
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @color(0) fbf : vec4f, tint_symbol : In) {
+  g(pos.x, fbf.x, tint_symbol.uv.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/a.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..753dc33
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  uv : vec4f,
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @color(0) fbf : vec4f, tint_symbol : In) {
+  g(pos.x, fbf.x, tint_symbol.uv.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/a.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.glsl
new file mode 100644
index 0000000..119b567
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.glsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  uv : vec4f,
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @color(0) fbf : vec4f, tint_symbol : In) {
+  g(pos.x, fbf.x, tint_symbol.uv.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/a.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.msl
new file mode 100644
index 0000000..46454ec
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.msl
@@ -0,0 +1,25 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct In {
+  float4 uv;
+};
+
+void g(float a, float b, float c) {
+}
+
+struct tint_symbol_1 {
+  float4 fbf [[color(0)]];
+  float4 uv [[user(locn0)]];
+};
+
+void f_inner(float4 pos, float4 fbf, In in) {
+  g(pos[0], fbf[0], in.uv[0]);
+}
+
+fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
+  In const tint_symbol_2 = {.uv=tint_symbol.uv};
+  f_inner(pos, tint_symbol.fbf, tint_symbol_2);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.spvasm
new file mode 100644
index 0000000..670875d
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  uv : vec4f,
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @color(0) fbf : vec4f, in : In) {
+  g(pos.x, fbf.x, in.uv.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/a.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.wgsl
new file mode 100644
index 0000000..977732a
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.wgsl
@@ -0,0 +1,14 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  uv : vec4f,
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @color(0) fbf : vec4f, in : In) {
+  g(pos.x, fbf.x, in.uv.x);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl
new file mode 100644
index 0000000..86afcc0
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl
@@ -0,0 +1,7 @@
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : f32, b : f32, c : f32) {}
+
+@fragment fn f(@builtin(position) pos : vec4f, @location(0) uv : vec4f, @color(0) fbf : vec4f) {
+  g(pos.x, uv.x, fbf.x);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..e099cd7
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.dxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @location(0) uv : vec4f, @color(0) fbf : vec4f) {
+  g(pos.x, uv.x, fbf.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/b.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..e099cd7
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.fxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @location(0) uv : vec4f, @color(0) fbf : vec4f) {
+  g(pos.x, uv.x, fbf.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/b.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.glsl
new file mode 100644
index 0000000..d173bd8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @location(0) uv : vec4f, @color(0) fbf : vec4f) {
+  g(pos.x, uv.x, fbf.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/b.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.msl
new file mode 100644
index 0000000..9428553
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.msl
@@ -0,0 +1,20 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void g(float a, float b, float c) {
+}
+
+struct tint_symbol_1 {
+  float4 fbf [[color(0)]];
+  float4 uv [[user(locn0)]];
+};
+
+void f_inner(float4 pos, float4 uv, float4 fbf) {
+  g(pos[0], uv[0], fbf[0]);
+}
+
+fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
+  f_inner(pos, tint_symbol.uv, tint_symbol.fbf);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.spvasm
new file mode 100644
index 0000000..52f165c
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.spvasm
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @location(0) uv : vec4f, @color(0) fbf : vec4f) {
+  g(pos.x, uv.x, fbf.x);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/b.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.wgsl
new file mode 100644
index 0000000..1aab2e5
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.wgsl
@@ -0,0 +1,9 @@
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+@fragment
+fn f(@builtin(position) pos : vec4f, @location(0) uv : vec4f, @color(0) fbf : vec4f) {
+  g(pos.x, uv.x, fbf.x);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl
new file mode 100644
index 0000000..b4b18fe
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl
@@ -0,0 +1,14 @@
+// flags: --pixel_local_attachments 0=1,1=6,2=3
+enable chromium_experimental_pixel_local;
+
+fn g(a : f32, b : f32, c : f32) {}
+
+struct In {
+  @builtin(position) pos : vec4f,
+  @location(0) uv : vec4f,
+  @color(0) fbf : vec4f,
+}
+
+@fragment fn f(in : In) {
+  g(in.pos.x, in.uv.x, in.fbf.y);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c6972a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,6 @@
+SKIP: FAILED
+
+extensions/texel_fetch/additional_params/c.wgsl:9:4 error: use of @color requires enabling extension 'chromium_experimental_framebuffer_fetch'
+  @color(0) fbf : vec4f,
+   ^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c6972a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,6 @@
+SKIP: FAILED
+
+extensions/texel_fetch/additional_params/c.wgsl:9:4 error: use of @color requires enabling extension 'chromium_experimental_framebuffer_fetch'
+  @color(0) fbf : vec4f,
+   ^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.glsl
new file mode 100644
index 0000000..c6972a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.glsl
@@ -0,0 +1,6 @@
+SKIP: FAILED
+
+extensions/texel_fetch/additional_params/c.wgsl:9:4 error: use of @color requires enabling extension 'chromium_experimental_framebuffer_fetch'
+  @color(0) fbf : vec4f,
+   ^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..c6972a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.spvasm
@@ -0,0 +1,6 @@
+SKIP: FAILED
+
+extensions/texel_fetch/additional_params/c.wgsl:9:4 error: use of @color requires enabling extension 'chromium_experimental_framebuffer_fetch'
+  @color(0) fbf : vec4f,
+   ^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.msl
new file mode 100644
index 0000000..c6972a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.msl
@@ -0,0 +1,6 @@
+SKIP: FAILED
+
+extensions/texel_fetch/additional_params/c.wgsl:9:4 error: use of @color requires enabling extension 'chromium_experimental_framebuffer_fetch'
+  @color(0) fbf : vec4f,
+   ^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.spvasm
new file mode 100644
index 0000000..c6972a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.spvasm
@@ -0,0 +1,6 @@
+SKIP: FAILED
+
+extensions/texel_fetch/additional_params/c.wgsl:9:4 error: use of @color requires enabling extension 'chromium_experimental_framebuffer_fetch'
+  @color(0) fbf : vec4f,
+   ^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.wgsl
new file mode 100644
index 0000000..c6972a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.wgsl
@@ -0,0 +1,6 @@
+SKIP: FAILED
+
+extensions/texel_fetch/additional_params/c.wgsl:9:4 error: use of @color requires enabling extension 'chromium_experimental_framebuffer_fetch'
+  @color(0) fbf : vec4f,
+   ^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl
new file mode 100644
index 0000000..befe42f
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl
@@ -0,0 +1,11 @@
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : i32, b : f32, c : f32, d : u32) {}
+
+struct In {
+  @builtin(position) pos : vec4f,
+}
+
+@fragment fn f(@color(2) fbf_2 : vec4i, in : In, @location(0) uv : vec4f, @color(0) fbf_0 : vec4u) {
+  g(fbf_2.z, in.pos.x, uv.x, fbf_0.y);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..20d76e7
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : i32, b : f32, c : f32, d : u32) {
+}
+
+struct In {
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(@color(2) fbf_2 : vec4i, tint_symbol : In, @location(0) uv : vec4f, @color(0) fbf_0 : vec4u) {
+  g(fbf_2.z, tint_symbol.pos.x, uv.x, fbf_0.y);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/d.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..20d76e7
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : i32, b : f32, c : f32, d : u32) {
+}
+
+struct In {
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(@color(2) fbf_2 : vec4i, tint_symbol : In, @location(0) uv : vec4f, @color(0) fbf_0 : vec4u) {
+  g(fbf_2.z, tint_symbol.pos.x, uv.x, fbf_0.y);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/d.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.glsl
new file mode 100644
index 0000000..c8a2335
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.glsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : i32, b : f32, c : f32, d : u32) {
+}
+
+struct In {
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(@color(2) fbf_2 : vec4i, tint_symbol : In, @location(0) uv : vec4f, @color(0) fbf_0 : vec4u) {
+  g(fbf_2.z, tint_symbol.pos.x, uv.x, fbf_0.y);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/d.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.msl
new file mode 100644
index 0000000..dc88585
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.msl
@@ -0,0 +1,26 @@
+#include <metal_stdlib>
+
+using namespace metal;
+void g(int a, float b, float c, uint d) {
+}
+
+struct In {
+  float4 pos;
+};
+
+struct tint_symbol_1 {
+  uint4 fbf_0 [[color(0)]];
+  int4 fbf_2 [[color(2)]];
+  float4 uv [[user(locn0)]];
+};
+
+void f_inner(int4 fbf_2, In in, float4 uv, uint4 fbf_0) {
+  g(fbf_2[2], in.pos[0], uv[0], fbf_0[1]);
+}
+
+fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
+  In const tint_symbol_2 = {.pos=pos};
+  f_inner(tint_symbol.fbf_2, tint_symbol_2, tint_symbol.uv, tint_symbol.fbf_0);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.spvasm
new file mode 100644
index 0000000..fd3dc47
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : i32, b : f32, c : f32, d : u32) {
+}
+
+struct In {
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(@color(2) fbf_2 : vec4i, in : In, @location(0) uv : vec4f, @color(0) fbf_0 : vec4u) {
+  g(fbf_2.z, in.pos.x, uv.x, fbf_0.y);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/d.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.wgsl
new file mode 100644
index 0000000..30455a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.wgsl
@@ -0,0 +1,14 @@
+enable chromium_experimental_framebuffer_fetch;
+
+fn g(a : i32, b : f32, c : f32, d : u32) {
+}
+
+struct In {
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(@color(2) fbf_2 : vec4i, in : In, @location(0) uv : vec4f, @color(0) fbf_0 : vec4u) {
+  g(fbf_2.z, in.pos.x, uv.x, fbf_0.y);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl
new file mode 100644
index 0000000..f8e825c
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @color(3) fbf : vec4i,
+  @builtin(position) pos : vec4f,
+}
+
+@fragment fn f(in : In) {
+  g(in.fbf.w, in.pos.x);
+}
+
+fn g(a : i32, b : f32) {}
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..11c7c51
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @color(3)
+  fbf : vec4i,
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(tint_symbol : In) {
+  g(tint_symbol.fbf.w, tint_symbol.pos.x);
+}
+
+fn g(a : i32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/e.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..11c7c51
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @color(3)
+  fbf : vec4i,
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(tint_symbol : In) {
+  g(tint_symbol.fbf.w, tint_symbol.pos.x);
+}
+
+fn g(a : i32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/e.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.glsl
new file mode 100644
index 0000000..27921a9
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.glsl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @color(3)
+  fbf : vec4i,
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(tint_symbol : In) {
+  g(tint_symbol.fbf.w, tint_symbol.pos.x);
+}
+
+fn g(a : i32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/e.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..744df99
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.spvasm
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 30
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %f "f" %f_Input %f_position_Input
+               OpExecutionMode %f OriginUpperLeft
+               OpName %f_Input "f_Input"
+               OpName %f_position_Input "f_position_Input"
+               OpName %g "g"
+               OpName %a "a"
+               OpName %b "b"
+               OpName %f_inner "f_inner"
+               OpMemberName %In 0 "fbf"
+               OpMemberName %In 1 "pos"
+               OpName %In "In"
+               OpName %in "in"
+               OpName %f "f"
+               OpDecorate %f_position_Input BuiltIn FragCoord
+               OpMemberDecorate %In 0 Offset 0
+               OpMemberDecorate %In 1 Offset 16
+        %int = OpTypeInt 32 1
+      %v4int = OpTypeVector %int 4
+%_ptr_Input_v4int = OpTypePointer Input %v4int
+    %f_Input = OpVariable %_ptr_Input_v4int Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%f_position_Input = OpVariable %_ptr_Input_v4float Input
+       %void = OpTypeVoid
+         %13 = OpTypeFunction %void %int %float
+         %In = OpTypeStruct %v4int %v4float
+         %18 = OpTypeFunction %void %In
+         %24 = OpTypeFunction %void
+          %g = OpFunction %void None %13
+          %a = OpFunctionParameter %int
+          %b = OpFunctionParameter %float
+         %14 = OpLabel
+               OpReturn
+               OpFunctionEnd
+    %f_inner = OpFunction %void None %18
+         %in = OpFunctionParameter %In
+         %19 = OpLabel
+         %20 = OpCompositeExtract %int %in 0 3
+         %21 = OpCompositeExtract %float %in 1 0
+         %22 = OpFunctionCall %void %g %20 %21
+               OpReturn
+               OpFunctionEnd
+          %f = OpFunction %void None %24
+         %25 = OpLabel
+         %26 = OpLoad %v4int %f_Input
+         %27 = OpLoad %v4float %f_position_Input
+         %28 = OpCompositeConstruct %In %26 %27
+         %29 = OpFunctionCall %void %f_inner %28
+               OpReturn
+               OpFunctionEnd
+1:1: [VUID-StandaloneSpirv-Flat-04744] Fragment OpEntryPoint operand 1 with Input interfaces with integer or float type must have a Flat decoration for Entry Point id 23.
+  %f_Input = OpVariable %_ptr_Input_v4int Input
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.msl
new file mode 100644
index 0000000..a589874
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.msl
@@ -0,0 +1,25 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct In {
+  int4 fbf;
+  float4 pos;
+};
+
+struct tint_symbol_1 {
+  int4 fbf [[color(3)]];
+};
+
+void g(int a, float b) {
+}
+
+void f_inner(In in) {
+  g(in.fbf[3], in.pos[0]);
+}
+
+fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
+  In const tint_symbol_2 = {.fbf=tint_symbol.fbf, .pos=pos};
+  f_inner(tint_symbol_2);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.spvasm
new file mode 100644
index 0000000..99999f3
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.spvasm
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @color(3)
+  fbf : vec4i,
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(in : In) {
+  g(in.fbf.w, in.pos.x);
+}
+
+fn g(a : i32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/e.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.wgsl
new file mode 100644
index 0000000..cfe0281
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @color(3)
+  fbf : vec4i,
+  @builtin(position)
+  pos : vec4f,
+}
+
+@fragment
+fn f(in : In) {
+  g(in.fbf.w, in.pos.x);
+}
+
+fn g(a : i32, b : f32) {
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl
new file mode 100644
index 0000000..f2ea210
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl
@@ -0,0 +1,11 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @invariant @builtin(position) pos : vec4f,
+}
+
+fn g(a : f32, b : f32) {}
+
+@fragment fn f(in : In, @color(2) fbf : vec4f) {
+  g(in.pos.x, fbf.g);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..a7c9651
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @invariant @builtin(position)
+  pos : vec4f,
+}
+
+fn g(a : f32, b : f32) {
+}
+
+@fragment
+fn f(tint_symbol : In, @color(2) fbf : vec4f) {
+  g(tint_symbol.pos.x, fbf.g);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/f.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..a7c9651
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @invariant @builtin(position)
+  pos : vec4f,
+}
+
+fn g(a : f32, b : f32) {
+}
+
+@fragment
+fn f(tint_symbol : In, @color(2) fbf : vec4f) {
+  g(tint_symbol.pos.x, fbf.g);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/f.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.glsl
new file mode 100644
index 0000000..eba0419
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.glsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @invariant @builtin(position)
+  pos : vec4f,
+}
+
+fn g(a : f32, b : f32) {
+}
+
+@fragment
+fn f(tint_symbol : In, @color(2) fbf : vec4f) {
+  g(tint_symbol.pos.x, fbf.g);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/f.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.msl
new file mode 100644
index 0000000..7d2e28a
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.msl
@@ -0,0 +1,24 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct In {
+  float4 pos;
+};
+
+void g(float a, float b) {
+}
+
+struct tint_symbol_1 {
+  float4 fbf [[color(2)]];
+};
+
+void f_inner(In in, float4 fbf) {
+  g(in.pos[0], fbf[1]);
+}
+
+fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
+  In const tint_symbol_2 = {.pos=pos};
+  f_inner(tint_symbol_2, tint_symbol.fbf);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.spvasm
new file mode 100644
index 0000000..b7bd71e
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.spvasm
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @invariant @builtin(position)
+  pos : vec4f,
+}
+
+fn g(a : f32, b : f32) {
+}
+
+@fragment
+fn f(in : In, @color(2) fbf : vec4f) {
+  g(in.pos.x, fbf.g);
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/f.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.wgsl
new file mode 100644
index 0000000..7691f85
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.wgsl
@@ -0,0 +1,14 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @invariant @builtin(position)
+  pos : vec4f,
+}
+
+fn g(a : f32, b : f32) {
+}
+
+@fragment
+fn f(in : In, @color(2) fbf : vec4f) {
+  g(in.pos.x, fbf.g);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl
new file mode 100644
index 0000000..bbf3335
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl
@@ -0,0 +1,7 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment fn f(@color(3) fbf : vec4f, @builtin(position) pos : vec4f) {
+  g(fbf.w, pos.x);
+}
+
+fn g(a : f32, b : f32) {}
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..3aed149
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.dxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(3) fbf : vec4f, @builtin(position) pos : vec4f) {
+  g(fbf.w, pos.x);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/g.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..3aed149
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.fxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(3) fbf : vec4f, @builtin(position) pos : vec4f) {
+  g(fbf.w, pos.x);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/g.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.glsl
new file mode 100644
index 0000000..7dd5b30
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(3) fbf : vec4f, @builtin(position) pos : vec4f) {
+  g(fbf.w, pos.x);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/g.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.msl
new file mode 100644
index 0000000..e097cea
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.msl
@@ -0,0 +1,19 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol_1 {
+  float4 fbf [[color(3)]];
+};
+
+void g(float a, float b) {
+}
+
+void f_inner(float4 fbf, float4 pos) {
+  g(fbf[3], pos[0]);
+}
+
+fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
+  f_inner(tint_symbol.fbf, pos);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.spvasm
new file mode 100644
index 0000000..cff04e1
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.spvasm
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(3) fbf : vec4f, @builtin(position) pos : vec4f) {
+  g(fbf.w, pos.x);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/g.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.wgsl
new file mode 100644
index 0000000..6701f9e
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.wgsl
@@ -0,0 +1,9 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(3) fbf : vec4f, @builtin(position) pos : vec4f) {
+  g(fbf.w, pos.x);
+}
+
+fn g(a : f32, b : f32) {
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl
new file mode 100644
index 0000000..dc79549
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct FBF {
+  @color(1) c1 : vec4f,
+  @color(3) c3 : vec4i,
+}
+
+@fragment fn f(@invariant @builtin(position) pos : vec4f, fbf : FBF) {
+  g(fbf.c1.x, pos.y, fbf.c3.z);
+}
+
+fn g(a : f32, b : f32, c : i32) {}
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..664d484
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.dxc.hlsl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct FBF {
+  @color(1)
+  c1 : vec4f,
+  @color(3)
+  c3 : vec4i,
+}
+
+@fragment
+fn f(@invariant @builtin(position) pos : vec4f, fbf : FBF) {
+  g(fbf.c1.x, pos.y, fbf.c3.z);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/h.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..664d484
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.fxc.hlsl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct FBF {
+  @color(1)
+  c1 : vec4f,
+  @color(3)
+  c3 : vec4i,
+}
+
+@fragment
+fn f(@invariant @builtin(position) pos : vec4f, fbf : FBF) {
+  g(fbf.c1.x, pos.y, fbf.c3.z);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/h.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.glsl
new file mode 100644
index 0000000..c286f7e
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.glsl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct FBF {
+  @color(1)
+  c1 : vec4f,
+  @color(3)
+  c3 : vec4i,
+}
+
+@fragment
+fn f(@invariant @builtin(position) pos : vec4f, fbf : FBF) {
+  g(fbf.c1.x, pos.y, fbf.c3.z);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/h.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..aa0dbfa
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.spvasm
@@ -0,0 +1,72 @@
+SKIP: FAILED
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %f "f" %f_position_Input %f_Input %f_Input_0
+               OpExecutionMode %f OriginUpperLeft
+               OpName %f_position_Input "f_position_Input"
+               OpName %f_Input "f_Input"
+               OpName %f_Input_0 "f_Input"
+               OpName %g "g"
+               OpName %a "a"
+               OpName %b "b"
+               OpName %c "c"
+               OpName %f_inner "f_inner"
+               OpName %pos "pos"
+               OpMemberName %FBF 0 "c1"
+               OpMemberName %FBF 1 "c3"
+               OpName %FBF "FBF"
+               OpName %fbf "fbf"
+               OpName %f "f"
+               OpDecorate %f_position_Input BuiltIn FragCoord
+               OpDecorate %f_position_Input Invariant
+               OpMemberDecorate %FBF 0 Offset 0
+               OpMemberDecorate %FBF 1 Offset 16
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%f_position_Input = OpVariable %_ptr_Input_v4float Input
+    %f_Input = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
+      %v4int = OpTypeVector %int 4
+%_ptr_Input_v4int = OpTypePointer Input %v4int
+  %f_Input_0 = OpVariable %_ptr_Input_v4int Input
+       %void = OpTypeVoid
+         %15 = OpTypeFunction %void %float %float %int
+        %FBF = OpTypeStruct %v4float %v4int
+         %21 = OpTypeFunction %void %v4float %FBF
+         %28 = OpTypeFunction %void
+          %g = OpFunction %void None %15
+          %a = OpFunctionParameter %float
+          %b = OpFunctionParameter %float
+          %c = OpFunctionParameter %int
+         %16 = OpLabel
+               OpReturn
+               OpFunctionEnd
+    %f_inner = OpFunction %void None %21
+        %pos = OpFunctionParameter %v4float
+        %fbf = OpFunctionParameter %FBF
+         %22 = OpLabel
+         %23 = OpCompositeExtract %float %fbf 0 0
+         %24 = OpCompositeExtract %float %pos 1
+         %25 = OpCompositeExtract %int %fbf 1 2
+         %26 = OpFunctionCall %void %g %23 %24 %25
+               OpReturn
+               OpFunctionEnd
+          %f = OpFunction %void None %28
+         %29 = OpLabel
+         %30 = OpLoad %v4float %f_position_Input
+         %31 = OpLoad %v4float %f_Input
+         %32 = OpLoad %v4int %f_Input_0
+         %33 = OpCompositeConstruct %FBF %31 %32
+         %34 = OpFunctionCall %void %f_inner %30 %33
+               OpReturn
+               OpFunctionEnd
+1:1: [VUID-StandaloneSpirv-Flat-04744] Fragment OpEntryPoint operand 6 with Input interfaces with integer or float type must have a Flat decoration for Entry Point id 27.
+  %f_Input_0 = OpVariable %_ptr_Input_v4int Input
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.msl
new file mode 100644
index 0000000..5ccc5c8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.msl
@@ -0,0 +1,26 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct FBF {
+  float4 c1;
+  int4 c3;
+};
+
+struct tint_symbol_1 {
+  float4 c1 [[color(1)]];
+  int4 c3 [[color(3)]];
+};
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(float4 pos, FBF fbf) {
+  g(fbf.c1[0], pos[1], fbf.c3[2]);
+}
+
+fragment void f(float4 pos [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
+  FBF const tint_symbol_2 = {.c1=tint_symbol.c1, .c3=tint_symbol.c3};
+  f_inner(pos, tint_symbol_2);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.spvasm
new file mode 100644
index 0000000..2870e8b
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.spvasm
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct FBF {
+  @color(1)
+  c1 : vec4f,
+  @color(3)
+  c3 : vec4i,
+}
+
+@fragment
+fn f(@invariant @builtin(position) pos : vec4f, fbf : FBF) {
+  g(fbf.c1.x, pos.y, fbf.c3.z);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/h.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.wgsl
new file mode 100644
index 0000000..19f94d5
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct FBF {
+  @color(1)
+  c1 : vec4f,
+  @color(3)
+  c3 : vec4i,
+}
+
+@fragment
+fn f(@invariant @builtin(position) pos : vec4f, fbf : FBF) {
+  g(fbf.c1.x, pos.y, fbf.c3.z);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl
new file mode 100644
index 0000000..6c90ae1
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl
@@ -0,0 +1,13 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0) a : vec4f,
+  @interpolate(flat) @location(1) b : vec4f,
+  @color(1) fbf : vec4i,
+}
+
+@fragment fn f(in : In) {
+  g(in.a.x, in.b.y, in.fbf.x);
+}
+
+fn g(a : f32, b : f32, c : i32) {}
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8920f28
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  a : vec4f,
+  @interpolate(flat) @location(1)
+  b : vec4f,
+  @color(1)
+  fbf : vec4i,
+}
+
+@fragment
+fn f(tint_symbol : In) {
+  g(tint_symbol.a.x, tint_symbol.b.y, tint_symbol.fbf.x);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/i.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..8920f28
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  a : vec4f,
+  @interpolate(flat) @location(1)
+  b : vec4f,
+  @color(1)
+  fbf : vec4i,
+}
+
+@fragment
+fn f(tint_symbol : In) {
+  g(tint_symbol.a.x, tint_symbol.b.y, tint_symbol.fbf.x);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/i.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.glsl
new file mode 100644
index 0000000..b67cdd4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  a : vec4f,
+  @interpolate(flat) @location(1)
+  b : vec4f,
+  @color(1)
+  fbf : vec4i,
+}
+
+@fragment
+fn f(tint_symbol : In) {
+  g(tint_symbol.a.x, tint_symbol.b.y, tint_symbol.fbf.x);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/i.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..8ea6617
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.spvasm
@@ -0,0 +1,73 @@
+SKIP: FAILED
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %f "f" %f_loc0_Input %f_loc1_Input %f_Input
+               OpExecutionMode %f OriginUpperLeft
+               OpName %f_loc0_Input "f_loc0_Input"
+               OpName %f_loc1_Input "f_loc1_Input"
+               OpName %f_Input "f_Input"
+               OpName %g "g"
+               OpName %a "a"
+               OpName %b "b"
+               OpName %c "c"
+               OpName %f_inner "f_inner"
+               OpMemberName %In 0 "a"
+               OpMemberName %In 1 "b"
+               OpMemberName %In 2 "fbf"
+               OpName %In "In"
+               OpName %in "in"
+               OpName %f "f"
+               OpDecorate %f_loc0_Input Location 0
+               OpDecorate %f_loc1_Input Location 1
+               OpDecorate %f_loc1_Input Flat
+               OpMemberDecorate %In 0 Offset 0
+               OpMemberDecorate %In 1 Offset 16
+               OpMemberDecorate %In 2 Offset 32
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%f_loc0_Input = OpVariable %_ptr_Input_v4float Input
+%f_loc1_Input = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
+      %v4int = OpTypeVector %int 4
+%_ptr_Input_v4int = OpTypePointer Input %v4int
+    %f_Input = OpVariable %_ptr_Input_v4int Input
+       %void = OpTypeVoid
+         %15 = OpTypeFunction %void %float %float %int
+         %In = OpTypeStruct %v4float %v4float %v4int
+         %20 = OpTypeFunction %void %In
+         %27 = OpTypeFunction %void
+          %g = OpFunction %void None %15
+          %a = OpFunctionParameter %float
+          %b = OpFunctionParameter %float
+          %c = OpFunctionParameter %int
+         %16 = OpLabel
+               OpReturn
+               OpFunctionEnd
+    %f_inner = OpFunction %void None %20
+         %in = OpFunctionParameter %In
+         %21 = OpLabel
+         %22 = OpCompositeExtract %float %in 0 0
+         %23 = OpCompositeExtract %float %in 1 1
+         %24 = OpCompositeExtract %int %in 2 0
+         %25 = OpFunctionCall %void %g %22 %23 %24
+               OpReturn
+               OpFunctionEnd
+          %f = OpFunction %void None %27
+         %28 = OpLabel
+         %29 = OpLoad %v4float %f_loc0_Input
+         %30 = OpLoad %v4float %f_loc1_Input
+         %31 = OpLoad %v4int %f_Input
+         %32 = OpCompositeConstruct %In %29 %30 %31
+         %33 = OpFunctionCall %void %f_inner %32
+               OpReturn
+               OpFunctionEnd
+1:1: [VUID-StandaloneSpirv-Flat-04744] Fragment OpEntryPoint operand 6 with Input interfaces with integer or float type must have a Flat decoration for Entry Point id 26.
+  %f_Input = OpVariable %_ptr_Input_v4int Input
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.msl
new file mode 100644
index 0000000..b520c20
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.msl
@@ -0,0 +1,28 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct In {
+  float4 a;
+  float4 b;
+  int4 fbf;
+};
+
+struct tint_symbol_1 {
+  int4 fbf [[color(1)]];
+  float4 a [[user(locn0)]];
+  float4 b [[user(locn1)]] [[flat]];
+};
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(In in) {
+  g(in.a[0], in.b[1], in.fbf[0]);
+}
+
+fragment void f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  In const tint_symbol_2 = {.a=tint_symbol.a, .b=tint_symbol.b, .fbf=tint_symbol.fbf};
+  f_inner(tint_symbol_2);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.spvasm
new file mode 100644
index 0000000..914f34d
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.spvasm
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  a : vec4f,
+  @interpolate(flat) @location(1)
+  b : vec4f,
+  @color(1)
+  fbf : vec4i,
+}
+
+@fragment
+fn f(in : In) {
+  g(in.a.x, in.b.y, in.fbf.x);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/i.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.wgsl
new file mode 100644
index 0000000..363209a
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct In {
+  @location(0)
+  a : vec4f,
+  @interpolate(flat) @location(1)
+  b : vec4f,
+  @color(1)
+  fbf : vec4i,
+}
+
+@fragment
+fn f(in : In) {
+  g(in.a.x, in.b.y, in.fbf.x);
+}
+
+fn g(a : f32, b : f32, c : i32) {
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl
new file mode 100644
index 0000000..3d2df70
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl
@@ -0,0 +1,7 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment fn f(@location(0) a : vec4f, @interpolate(flat) @location(1) b : vec4f, @color(0) fbf : vec4f) {
+  g(a.x, b.y, fbf.x);
+}
+
+fn g(a : f32, b : f32, c : f32) {}
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..13c910f
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.dxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@location(0) a : vec4f, @interpolate(flat) @location(1) b : vec4f, @color(0) fbf : vec4f) {
+  g(a.x, b.y, fbf.x);
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/j.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..13c910f
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.fxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@location(0) a : vec4f, @interpolate(flat) @location(1) b : vec4f, @color(0) fbf : vec4f) {
+  g(a.x, b.y, fbf.x);
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/j.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.glsl
new file mode 100644
index 0000000..e27f1e7
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@location(0) a : vec4f, @interpolate(flat) @location(1) b : vec4f, @color(0) fbf : vec4f) {
+  g(a.x, b.y, fbf.x);
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/j.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.msl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.msl
new file mode 100644
index 0000000..8316d8f
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.msl
@@ -0,0 +1,21 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol_1 {
+  float4 fbf [[color(0)]];
+  float4 a [[user(locn0)]];
+  float4 b [[user(locn1)]] [[flat]];
+};
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 a, float4 b, float4 fbf) {
+  g(a[0], b[1], fbf[0]);
+}
+
+fragment void f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  f_inner(tint_symbol.a, tint_symbol.b, tint_symbol.fbf);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.spvasm
new file mode 100644
index 0000000..cfdd418
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.spvasm
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@location(0) a : vec4f, @interpolate(flat) @location(1) b : vec4f, @color(0) fbf : vec4f) {
+  g(a.x, b.y, fbf.x);
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/additional_params/j.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.wgsl
new file mode 100644
index 0000000..d6d0379
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.wgsl
@@ -0,0 +1,9 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@location(0) a : vec4f, @interpolate(flat) @location(1) b : vec4f, @color(0) fbf : vec4f) {
+  g(a.x, b.y, fbf.x);
+}
+
+fn g(a : f32, b : f32, c : f32) {
+}
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl
new file mode 100644
index 0000000..d88872c
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl
@@ -0,0 +1,11 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0) x : vec4f,
+  @location(2) y : vec4f,
+  @location(4) z : vec4f,
+}
+
+@fragment fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> Out {
+  return Out(fbf_1, vec4f(20), fbf_3);
+}
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..fd054d5
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.dxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(4)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> Out {
+  return Out(fbf_1, vec4f(20), fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..fd054d5
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.fxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(4)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> Out {
+  return Out(fbf_1, vec4f(20), fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.glsl
new file mode 100644
index 0000000..b5f4820
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(4)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> Out {
+  return Out(fbf_1, vec4f(20), fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.msl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.msl
new file mode 100644
index 0000000..da10707
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct Out {
+  float4 x;
+  float4 y;
+  float4 z;
+};
+
+struct tint_symbol_1 {
+  float4 fbf_1 [[color(1)]];
+  float4 fbf_3 [[color(3)]];
+};
+
+struct tint_symbol_2 {
+  float4 x [[color(0)]];
+  float4 y [[color(2)]];
+  float4 z [[color(4)]];
+};
+
+Out f_inner(float4 fbf_1, float4 fbf_3) {
+  Out const tint_symbol_3 = {.x=fbf_1, .y=float4(20.0f), .z=fbf_3};
+  return tint_symbol_3;
+}
+
+fragment tint_symbol_2 f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  Out const inner_result = f_inner(tint_symbol.fbf_1, tint_symbol.fbf_3);
+  tint_symbol_2 wrapper_result = {};
+  wrapper_result.x = inner_result.x;
+  wrapper_result.y = inner_result.y;
+  wrapper_result.z = inner_result.z;
+  return wrapper_result;
+}
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.spvasm
new file mode 100644
index 0000000..1e459a3
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.spvasm
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(4)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> Out {
+  return Out(fbf_1, vec4f(20), fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.wgsl
new file mode 100644
index 0000000..aa428a8
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(4)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> Out {
+  return Out(fbf_1, vec4f(20), fbf_3);
+}
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl
new file mode 100644
index 0000000..4205e58
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl
@@ -0,0 +1,11 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0) x : vec4f,
+  @location(2) y : vec4f,
+  @location(3) z : vec4f,
+}
+
+@fragment fn f(@color(0) fbf : vec4f) -> Out {
+  return Out(vec4f(10), fbf, vec4f(30));
+}
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..2b24196
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.dxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(3)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> Out {
+  return Out(vec4f(10), fbf, vec4f(30));
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/single_input.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..2b24196
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.fxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(3)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> Out {
+  return Out(vec4f(10), fbf, vec4f(30));
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/single_input.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.glsl
new file mode 100644
index 0000000..7c55049
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(3)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> Out {
+  return Out(vec4f(10), fbf, vec4f(30));
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/single_input.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.msl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.msl
new file mode 100644
index 0000000..e6176a5
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.msl
@@ -0,0 +1,33 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct Out {
+  float4 x;
+  float4 y;
+  float4 z;
+};
+
+struct tint_symbol_1 {
+  float4 fbf [[color(0)]];
+};
+
+struct tint_symbol_2 {
+  float4 x [[color(0)]];
+  float4 y [[color(2)]];
+  float4 z [[color(3)]];
+};
+
+Out f_inner(float4 fbf) {
+  Out const tint_symbol_3 = {.x=float4(10.0f), .y=fbf, .z=float4(30.0f)};
+  return tint_symbol_3;
+}
+
+fragment tint_symbol_2 f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  Out const inner_result = f_inner(tint_symbol.fbf);
+  tint_symbol_2 wrapper_result = {};
+  wrapper_result.x = inner_result.x;
+  wrapper_result.y = inner_result.y;
+  wrapper_result.z = inner_result.z;
+  return wrapper_result;
+}
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.spvasm
new file mode 100644
index 0000000..d4cad14
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.spvasm
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(3)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> Out {
+  return Out(vec4f(10), fbf, vec4f(30));
+}
+
+Failed to generate: extensions/texel_fetch/multiple_outputs/single_input.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.wgsl
new file mode 100644
index 0000000..5326e5a
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_framebuffer_fetch;
+
+struct Out {
+  @location(0)
+  x : vec4f,
+  @location(2)
+  y : vec4f,
+  @location(3)
+  z : vec4f,
+}
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> Out {
+  return Out(vec4f(10), fbf, vec4f(30));
+}
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl
new file mode 100644
index 0000000..df955ab
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl
@@ -0,0 +1,5 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> @location(0) vec4f {
+  return fbf_1 + fbf_3;
+}
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..5738e9c
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.dxc.hlsl
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> @location(0) vec4f {
+  return (fbf_1 + fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/one_output/multiple_inputs.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..5738e9c
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.fxc.hlsl
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> @location(0) vec4f {
+  return (fbf_1 + fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/one_output/multiple_inputs.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.glsl
new file mode 100644
index 0000000..2626d64
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> @location(0) vec4f {
+  return (fbf_1 + fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/one_output/multiple_inputs.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.msl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.msl
new file mode 100644
index 0000000..158fe48
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.msl
@@ -0,0 +1,23 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol_1 {
+  float4 fbf_1 [[color(1)]];
+  float4 fbf_3 [[color(3)]];
+};
+
+struct tint_symbol_2 {
+  float4 value [[color(0)]];
+};
+
+float4 f_inner(float4 fbf_1, float4 fbf_3) {
+  return (fbf_1 + fbf_3);
+}
+
+fragment tint_symbol_2 f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  float4 const inner_result = f_inner(tint_symbol.fbf_1, tint_symbol.fbf_3);
+  tint_symbol_2 wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.spvasm
new file mode 100644
index 0000000..cef34e2
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.spvasm
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> @location(0) vec4f {
+  return (fbf_1 + fbf_3);
+}
+
+Failed to generate: extensions/texel_fetch/one_output/multiple_inputs.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.wgsl
new file mode 100644
index 0000000..54fbed3
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.wgsl
@@ -0,0 +1,6 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) -> @location(0) vec4f {
+  return (fbf_1 + fbf_3);
+}
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl
new file mode 100644
index 0000000..0dc6592
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl
@@ -0,0 +1,5 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment fn f(@color(0) fbf : vec4f) -> @location(0) vec4f {
+  return fbf;
+}
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..1f7c39d
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.dxc.hlsl
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> @location(0) vec4f {
+  return fbf;
+}
+
+Failed to generate: extensions/texel_fetch/one_output/single_input.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..1f7c39d
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.fxc.hlsl
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> @location(0) vec4f {
+  return fbf;
+}
+
+Failed to generate: extensions/texel_fetch/one_output/single_input.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.glsl
new file mode 100644
index 0000000..0e9e1f5
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> @location(0) vec4f {
+  return fbf;
+}
+
+Failed to generate: extensions/texel_fetch/one_output/single_input.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.msl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.msl
new file mode 100644
index 0000000..1cfa087
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.msl
@@ -0,0 +1,22 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol_1 {
+  float4 fbf [[color(0)]];
+};
+
+struct tint_symbol_2 {
+  float4 value [[color(0)]];
+};
+
+float4 f_inner(float4 fbf) {
+  return fbf;
+}
+
+fragment tint_symbol_2 f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  float4 const inner_result = f_inner(tint_symbol.fbf);
+  tint_symbol_2 wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.spvasm
new file mode 100644
index 0000000..b99dc57
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.spvasm
@@ -0,0 +1,14 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> @location(0) vec4f {
+  return fbf;
+}
+
+Failed to generate: extensions/texel_fetch/one_output/single_input.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.wgsl
new file mode 100644
index 0000000..644e957
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.wgsl
@@ -0,0 +1,6 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) -> @location(0) vec4f {
+  return fbf;
+}
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl
new file mode 100644
index 0000000..dc9daed
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl
@@ -0,0 +1,7 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) {
+  g(fbf_1.r, fbf_3.g);
+}
+
+fn g(a : f32, b : f32) {}
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..fdbfaa4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.dxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) {
+  g(fbf_1.r, fbf_3.g);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..fdbfaa4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.fxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) {
+  g(fbf_1.r, fbf_3.g);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.glsl
new file mode 100644
index 0000000..eb1df13
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) {
+  g(fbf_1.r, fbf_3.g);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.msl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.msl
new file mode 100644
index 0000000..00943a1
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.msl
@@ -0,0 +1,20 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol_1 {
+  float4 fbf_1 [[color(1)]];
+  float4 fbf_3 [[color(3)]];
+};
+
+void g(float a, float b) {
+}
+
+void f_inner(float4 fbf_1, float4 fbf_3) {
+  g(fbf_1[0], fbf_3[1]);
+}
+
+fragment void f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  f_inner(tint_symbol.fbf_1, tint_symbol.fbf_3);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.spvasm
new file mode 100644
index 0000000..9f066d1
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.spvasm
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) {
+  g(fbf_1.r, fbf_3.g);
+}
+
+fn g(a : f32, b : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.wgsl
new file mode 100644
index 0000000..1e076f5
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.wgsl
@@ -0,0 +1,9 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(1) fbf_1 : vec4f, @color(3) fbf_3 : vec4f) {
+  g(fbf_1.r, fbf_3.g);
+}
+
+fn g(a : f32, b : f32) {
+}
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl
new file mode 100644
index 0000000..b41aed6
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl
@@ -0,0 +1,7 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment fn f(@color(0) fbf : vec4f) {
+  g(fbf.y);
+}
+
+fn g(a : f32) {}
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.dxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..783f662
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.dxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) {
+  g(fbf.y);
+}
+
+fn g(a : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/single_input.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.fxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..783f662
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.fxc.hlsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) {
+  g(fbf.y);
+}
+
+fn g(a : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/single_input.wgsl:1:8 error: HLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.glsl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.glsl
new file mode 100644
index 0000000..3e3d5d3
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) {
+  g(fbf.y);
+}
+
+fn g(a : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/single_input.wgsl:1:8 error: GLSL backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.spvasm b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.spvasm
new file mode 100644
index 0000000..9ab80a4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.msl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.msl
new file mode 100644
index 0000000..23cbfa2
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.msl
@@ -0,0 +1,19 @@
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol_1 {
+  float4 fbf [[color(0)]];
+};
+
+void g(float a) {
+}
+
+void f_inner(float4 fbf) {
+  g(fbf[1]);
+}
+
+fragment void f(tint_symbol_1 tint_symbol [[stage_in]]) {
+  f_inner(tint_symbol.fbf);
+  return;
+}
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.spvasm b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.spvasm
new file mode 100644
index 0000000..55a7ec4
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.spvasm
@@ -0,0 +1,17 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) {
+  g(fbf.y);
+}
+
+fn g(a : f32) {
+}
+
+Failed to generate: extensions/texel_fetch/zero_outputs/single_input.wgsl:1:8 error: SPIR-V backend does not support extension 'chromium_experimental_framebuffer_fetch'
+enable chromium_experimental_framebuffer_fetch;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.wgsl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.wgsl
new file mode 100644
index 0000000..3206c8d
--- /dev/null
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.wgsl
@@ -0,0 +1,9 @@
+enable chromium_experimental_framebuffer_fetch;
+
+@fragment
+fn f(@color(0) fbf : vec4f) {
+  g(fbf.y);
+}
+
+fn g(a : f32) {
+}
