@group(1) @binding(0) var arg_0 : texture_depth_cube_array;

@group(1) @binding(1) var arg_1 : sampler_comparison;

fn textureSampleCompareLevel_958c87() {
  var res : f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.0f), 1u, 1.0f);
}

@vertex
fn vertex_main() -> @builtin(position) vec4<f32> {
  textureSampleCompareLevel_958c87();
  return vec4<f32>();
}

@fragment
fn fragment_main() {
  textureSampleCompareLevel_958c87();
}

@compute @workgroup_size(1)
fn compute_main() {
  textureSampleCompareLevel_958c87();
}
