[msl] Print @color attributes as [[color(n)]]
This completes support for the chromium_experimental_framebuffer_fetch
extension.
Bug: 42251016
Change-Id: Iab3a3b9a0fb0572d4e0838bd5f3760b3e2d70e32
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/196966
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/msl/writer/printer/printer.cc b/src/tint/lang/msl/writer/printer/printer.cc
index 3a232f5..6719802 100644
--- a/src/tint/lang/msl/writer/printer/printer.cc
+++ b/src/tint/lang/msl/writer/printer/printer.cc
@@ -1370,6 +1370,10 @@
}
}
+ if (auto color = attributes.color) {
+ out << " [[color(" << color.value() << ")]]";
+ }
+
if (auto interpolation = attributes.interpolation) {
auto name = InterpolationToAttribute(interpolation->type, interpolation->sampling);
if (name.empty()) {
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl
index b8b4fc8..e9948ba 100644
--- a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct In {
+ float4 uv;
+};
+
+struct f_inputs {
+ float4 fbf [[color(0)]];
+ float4 In_uv [[user(locn0)]];
+};
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 pos, float4 fbf, In in) {
+ g(pos[0u], fbf[0u], in.uv[0u]);
+}
+
+fragment void f(float4 pos [[position]], f_inputs inputs [[stage_in]]) {
+ f_inner(pos, inputs.fbf, In{.uv=inputs.In_uv});
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl
index b8b4fc8..ec4f7df 100644
--- a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct f_inputs {
+ float4 uv [[user(locn0)]];
+ float4 fbf [[color(0)]];
+};
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 pos, float4 uv, float4 fbf) {
+ g(pos[0u], uv[0u], fbf[0u]);
+}
+
+fragment void f(float4 pos [[position]], f_inputs inputs [[stage_in]]) {
+ f_inner(pos, inputs.uv, inputs.fbf);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl
index 5cb271d..41d6c4a 100644
--- a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/utils/containers/slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
-********************************************************************
-* 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. *
-********************************************************************
+struct In {
+ float4 pos;
+ float4 uv;
+ float4 fbf;
+};
+
+struct f_inputs {
+ float4 In_uv [[user(locn0)]];
+ float4 In_fbf [[color(0)]];
+};
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(In in) {
+ g(in.pos[0u], in.uv[0u], in.fbf[1u]);
+}
+
+fragment void f(float4 In_pos [[position]], f_inputs inputs [[stage_in]]) {
+ f_inner(In{.pos=In_pos, .uv=inputs.In_uv, .fbf=inputs.In_fbf});
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl
index b8b4fc8..3522649 100644
--- a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct In {
+ float4 pos;
+};
+
+struct f_inputs {
+ int4 fbf_2 [[color(2)]];
+ float4 uv [[user(locn0)]];
+ uint4 fbf_0 [[color(0)]];
+};
+
+void g(int a, float b, float c, uint d) {
+}
+
+void f_inner(int4 fbf_2, In in, float4 uv, uint4 fbf_0) {
+ g(fbf_2[2u], in.pos[0u], uv[0u], fbf_0[1u]);
+}
+
+fragment void f(f_inputs inputs [[stage_in]], float4 In_pos [[position]]) {
+ f_inner(inputs.fbf_2, In{.pos=In_pos}, inputs.uv, inputs.fbf_0);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl
index 5cb271d..b93cb32 100644
--- a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/utils/containers/slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
-********************************************************************
-* 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. *
-********************************************************************
+struct In {
+ int4 fbf;
+ float4 pos;
+};
+
+struct f_inputs {
+ int4 In_fbf [[color(3)]];
+};
+
+void g(int a, float b) {
+}
+
+void f_inner(In in) {
+ g(in.fbf[3u], in.pos[0u]);
+}
+
+fragment void f(f_inputs inputs [[stage_in]], float4 In_pos [[position]]) {
+ f_inner(In{.fbf=inputs.In_fbf, .pos=In_pos});
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl
index b8b4fc8..89a8791 100644
--- a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct In {
+ float4 pos;
+};
+
+struct f_inputs {
+ float4 fbf [[color(2)]];
+};
+
+void g(float a, float b) {
+}
+
+void f_inner(In in, float4 fbf) {
+ g(in.pos[0u], fbf[1u]);
+}
+
+fragment void f(float4 In_pos [[position]], f_inputs inputs [[stage_in]]) {
+ f_inner(In{.pos=In_pos}, inputs.fbf);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl
index b8b4fc8..ebeb721 100644
--- a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct f_inputs {
+ float4 fbf [[color(3)]];
+};
+
+void g(float a, float b) {
+}
+
+void f_inner(float4 fbf, float4 pos) {
+ g(fbf[3u], pos[0u]);
+}
+
+fragment void f(f_inputs inputs [[stage_in]], float4 pos [[position]]) {
+ f_inner(inputs.fbf, pos);
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl
index 5cb271d..c9d1663 100644
--- a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/utils/containers/slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
-********************************************************************
-* 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. *
-********************************************************************
+struct FBF {
+ float4 c1;
+ int4 c3;
+};
+
+struct f_inputs {
+ float4 FBF_c1 [[color(1)]];
+ int4 FBF_c3 [[color(3)]];
+};
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(float4 pos, FBF fbf) {
+ g(fbf.c1[0u], pos[1u], fbf.c3[2u]);
+}
+
+fragment void f(float4 pos [[position]], f_inputs inputs [[stage_in]]) {
+ f_inner(pos, FBF{.c1=inputs.FBF_c1, .c3=inputs.FBF_c3});
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl
index 5cb271d..d4dbf7a 100644
--- a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/utils/containers/slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
-********************************************************************
-* 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. *
-********************************************************************
+struct In {
+ float4 a;
+ float4 b;
+ int4 fbf;
+};
+
+struct f_inputs {
+ float4 In_a [[user(locn0)]];
+ float4 In_b [[user(locn1)]] [[flat]];
+ int4 In_fbf [[color(1)]];
+};
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(In in) {
+ g(in.a[0u], in.b[1u], in.fbf[0u]);
+}
+
+fragment void f(f_inputs inputs [[stage_in]]) {
+ f_inner(In{.a=inputs.In_a, .b=inputs.In_b, .fbf=inputs.In_fbf});
+}
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl
index b8b4fc8..9554a0d 100644
--- a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct f_inputs {
+ float4 a [[user(locn0)]];
+ float4 b [[user(locn1)]] [[flat]];
+ float4 fbf [[color(0)]];
+};
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 a, float4 b, float4 fbf) {
+ g(a[0u], b[1u], fbf[0u]);
+}
+
+fragment void f(f_inputs inputs [[stage_in]]) {
+ f_inner(inputs.a, inputs.b, inputs.fbf);
+}
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl
index b8b4fc8..3fdbf09 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct Out {
+ float4 x;
+ float4 y;
+ float4 z;
+};
+
+struct f_outputs {
+ float4 Out_x [[color(0)]];
+ float4 Out_y [[color(2)]];
+ float4 Out_z [[color(4)]];
+};
+
+struct f_inputs {
+ float4 fbf_1 [[color(1)]];
+ float4 fbf_3 [[color(3)]];
+};
+
+Out f_inner(float4 fbf_1, float4 fbf_3) {
+ return Out{.x=fbf_1, .y=float4(20.0f), .z=fbf_3};
+}
+
+fragment f_outputs f(f_inputs inputs [[stage_in]]) {
+ Out const v = f_inner(inputs.fbf_1, inputs.fbf_3);
+ return f_outputs{.Out_x=v.x, .Out_y=v.y, .Out_z=v.z};
+}
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl
index b8b4fc8..52023c4 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct Out {
+ float4 x;
+ float4 y;
+ float4 z;
+};
+
+struct f_outputs {
+ float4 Out_x [[color(0)]];
+ float4 Out_y [[color(2)]];
+ float4 Out_z [[color(3)]];
+};
+
+struct f_inputs {
+ float4 fbf [[color(0)]];
+};
+
+Out f_inner(float4 fbf) {
+ return Out{.x=float4(10.0f), .y=fbf, .z=float4(30.0f)};
+}
+
+fragment f_outputs f(f_inputs inputs [[stage_in]]) {
+ Out const v = f_inner(inputs.fbf);
+ return f_outputs{.Out_x=v.x, .Out_y=v.y, .Out_z=v.z};
+}
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl
index b8b4fc8..e88d408 100644
--- a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct f_outputs {
+ float4 tint_symbol [[color(0)]];
+};
+
+struct f_inputs {
+ float4 fbf_1 [[color(1)]];
+ float4 fbf_3 [[color(3)]];
+};
+
+float4 f_inner(float4 fbf_1, float4 fbf_3) {
+ return (fbf_1 + fbf_3);
+}
+
+fragment f_outputs f(f_inputs inputs [[stage_in]]) {
+ return f_outputs{.tint_symbol=f_inner(inputs.fbf_1, inputs.fbf_3)};
+}
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl
index b8b4fc8..ff99056 100644
--- a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct f_outputs {
+ float4 tint_symbol [[color(0)]];
+};
+
+struct f_inputs {
+ float4 fbf [[color(0)]];
+};
+
+float4 f_inner(float4 fbf) {
+ return fbf;
+}
+
+fragment f_outputs f(f_inputs inputs [[stage_in]]) {
+ return f_outputs{.tint_symbol=f_inner(inputs.fbf)};
+}
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl
index b8b4fc8..312c5cd 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct f_inputs {
+ 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[0u], fbf_3[1u]);
+}
+
+fragment void f(f_inputs inputs [[stage_in]]) {
+ f_inner(inputs.fbf_1, inputs.fbf_3);
+}
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl
index b8b4fc8..490ca7a 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 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. *
-********************************************************************
+struct f_inputs {
+ float4 fbf [[color(0)]];
+};
+
+void g(float a) {
+}
+
+void f_inner(float4 fbf) {
+ g(fbf[1u]);
+}
+
+fragment void f(f_inputs inputs [[stage_in]]) {
+ f_inner(inputs.fbf);
+}