#include <metal_stdlib>

using namespace metal;
void textureSample_7fd8cb(depthcube_array<float, access::sample> tint_symbol, sampler tint_symbol_1, device float* const tint_symbol_2) {
  float3 arg_2 = float3(1.0f);
  uint arg_3 = 1u;
  float res = tint_symbol.sample(tint_symbol_1, arg_2, arg_3);
  *(tint_symbol_2) = res;
}

fragment void fragment_main(depthcube_array<float, access::sample> tint_symbol_3 [[texture(0)]], sampler tint_symbol_4 [[sampler(0)]], device float* tint_symbol_5 [[buffer(0)]]) {
  textureSample_7fd8cb(tint_symbol_3, tint_symbol_4, tint_symbol_5);
  return;
}

