#include <metal_stdlib>
using namespace metal;

struct tint_module_vars_struct {
  device packed_float3* prevent_dce;
};

float3 fwidthFine_523fdc() {
  float3 arg_0 = float3(1.0f);
  float3 const v = arg_0;
  float3 const v_1 = dfdx(v);
  float3 const v_2 = dfdy(v);
  float3 const v_3 = abs(v_1);
  float3 res = (v_3 + abs(v_2));
  return res;
}

fragment void fragment_main(device packed_float3* prevent_dce [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce};
  (*tint_module_vars.prevent_dce) = packed_float3(fwidthFine_523fdc());
}
