SKIP: FAILED

#version 310 es
precision mediump float;

uint x_1 = 0u;
void main_1() {
  uint x_2 = x_1;
  return;
}

struct tint_symbol_2 {
  uint x_1_param;
};

void tint_symbol_inner(uint x_1_param) {
  x_1 = x_1_param;
  main_1();
}

void tint_symbol(tint_symbol_2 tint_symbol_1) {
  tint_symbol_inner(tint_symbol_1.x_1_param);
  return;
}


void main() {
  tint_symbol_2 inputs;
  inputs.x_1_param = uint(gl_SampleID);
  tint_symbol(inputs);
}

Error parsing GLSL shader:
ERROR: 0:27: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
ERROR: 0:27: '' : compilation terminated 
ERROR: 2 compilation errors.  No code generated.



