#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) {
  float res = tint_symbol.sample(tint_symbol_1, float3(1.0f), 1u);
  *(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;
}

