x/mobile/gl: fix building if gldebug tag is specified

in gldebug.go, Enum value TIMEOUT_IGNORED requires uint64 length
to handle it. On the other hand, Enum is declared as uint32, it causes
build error because of overflow.

Since GL_TIMEOUT_IGNORED is not a kind of GLenum, it should not be
listed in that switch statement. Introduce white list for available
Enum value to exclude such variables they cannot be classified as Enum
because of its variable length.

Fixes golang/go#17075

Change-Id: Ic1a4ee72b313861e48fe3e1cfaec91c91da6ddb3
Reviewed-on: https://go-review.googlesource.com/53531
Reviewed-by: Elias Naur <elias.naur@gmail.com>
diff --git a/gl/gendebug.go b/gl/gendebug.go
index 936accb..6d0d6b0 100644
--- a/gl/gendebug.go
+++ b/gl/gendebug.go
@@ -24,6 +24,614 @@
 	"strconv"
 )
 
+var enumWhitelist = []string{
+	"POINTS",
+	"LINES",
+	"LINE_LOOP",
+	"LINE_STRIP",
+	"TRIANGLES",
+	"TRIANGLE_STRIP",
+	"TRIANGLE_FAN",
+	"SRC_COLOR",
+	"ONE_MINUS_SRC_COLOR",
+	"SRC_ALPHA",
+	"ONE_MINUS_SRC_ALPHA",
+	"DST_ALPHA",
+	"ONE_MINUS_DST_ALPHA",
+	"DST_COLOR",
+	"ONE_MINUS_DST_COLOR",
+	"SRC_ALPHA_SATURATE",
+	"FUNC_ADD",
+	"BLEND_EQUATION",
+	"BLEND_EQUATION_RGB",
+	"BLEND_EQUATION_ALPHA",
+	"FUNC_SUBTRACT",
+	"FUNC_REVERSE_SUBTRACT",
+	"BLEND_DST_RGB",
+	"BLEND_SRC_RGB",
+	"BLEND_DST_ALPHA",
+	"BLEND_SRC_ALPHA",
+	"CONSTANT_COLOR",
+	"ONE_MINUS_CONSTANT_COLOR",
+	"CONSTANT_ALPHA",
+	"ONE_MINUS_CONSTANT_ALPHA",
+	"BLEND_COLOR",
+	"ARRAY_BUFFER",
+	"ELEMENT_ARRAY_BUFFER",
+	"ARRAY_BUFFER_BINDING",
+	"ELEMENT_ARRAY_BUFFER_BINDING",
+	"STREAM_DRAW",
+	"STATIC_DRAW",
+	"DYNAMIC_DRAW",
+	"BUFFER_SIZE",
+	"BUFFER_USAGE",
+	"CURRENT_VERTEX_ATTRIB",
+	"FRONT",
+	"BACK",
+	"FRONT_AND_BACK",
+	"TEXTURE_2D",
+	"CULL_FACE",
+	"BLEND",
+	"DITHER",
+	"STENCIL_TEST",
+	"DEPTH_TEST",
+	"SCISSOR_TEST",
+	"POLYGON_OFFSET_FILL",
+	"SAMPLE_ALPHA_TO_COVERAGE",
+	"SAMPLE_COVERAGE",
+	"INVALID_ENUM",
+	"INVALID_VALUE",
+	"INVALID_OPERATION",
+	"OUT_OF_MEMORY",
+	"CW",
+	"CCW",
+	"LINE_WIDTH",
+	"ALIASED_POINT_SIZE_RANGE",
+	"ALIASED_LINE_WIDTH_RANGE",
+	"CULL_FACE_MODE",
+	"FRONT_FACE",
+	"DEPTH_RANGE",
+	"DEPTH_WRITEMASK",
+	"DEPTH_CLEAR_VALUE",
+	"DEPTH_FUNC",
+	"STENCIL_CLEAR_VALUE",
+	"STENCIL_FUNC",
+	"STENCIL_FAIL",
+	"STENCIL_PASS_DEPTH_FAIL",
+	"STENCIL_PASS_DEPTH_PASS",
+	"STENCIL_REF",
+	"STENCIL_VALUE_MASK",
+	"STENCIL_WRITEMASK",
+	"STENCIL_BACK_FUNC",
+	"STENCIL_BACK_FAIL",
+	"STENCIL_BACK_PASS_DEPTH_FAIL",
+	"STENCIL_BACK_PASS_DEPTH_PASS",
+	"STENCIL_BACK_REF",
+	"STENCIL_BACK_VALUE_MASK",
+	"STENCIL_BACK_WRITEMASK",
+	"VIEWPORT",
+	"SCISSOR_BOX",
+	"COLOR_CLEAR_VALUE",
+	"COLOR_WRITEMASK",
+	"UNPACK_ALIGNMENT",
+	"PACK_ALIGNMENT",
+	"MAX_TEXTURE_SIZE",
+	"MAX_VIEWPORT_DIMS",
+	"SUBPIXEL_BITS",
+	"RED_BITS",
+	"GREEN_BITS",
+	"BLUE_BITS",
+	"ALPHA_BITS",
+	"DEPTH_BITS",
+	"STENCIL_BITS",
+	"POLYGON_OFFSET_UNITS",
+	"POLYGON_OFFSET_FACTOR",
+	"TEXTURE_BINDING_2D",
+	"SAMPLE_BUFFERS",
+	"SAMPLES",
+	"SAMPLE_COVERAGE_VALUE",
+	"SAMPLE_COVERAGE_INVERT",
+	"NUM_COMPRESSED_TEXTURE_FORMATS",
+	"COMPRESSED_TEXTURE_FORMATS",
+	"DONT_CARE",
+	"FASTEST",
+	"NICEST",
+	"GENERATE_MIPMAP_HINT",
+	"BYTE",
+	"UNSIGNED_BYTE",
+	"SHORT",
+	"UNSIGNED_SHORT",
+	"INT",
+	"UNSIGNED_INT",
+	"FLOAT",
+	"FIXED",
+	"DEPTH_COMPONENT",
+	"ALPHA",
+	"RGB",
+	"RGBA",
+	"LUMINANCE",
+	"LUMINANCE_ALPHA",
+	"UNSIGNED_SHORT_4_4_4_4",
+	"UNSIGNED_SHORT_5_5_5_1",
+	"UNSIGNED_SHORT_5_6_5",
+	"MAX_VERTEX_ATTRIBS",
+	"MAX_VERTEX_UNIFORM_VECTORS",
+	"MAX_VARYING_VECTORS",
+	"MAX_COMBINED_TEXTURE_IMAGE_UNITS",
+	"MAX_VERTEX_TEXTURE_IMAGE_UNITS",
+	"MAX_TEXTURE_IMAGE_UNITS",
+	"MAX_FRAGMENT_UNIFORM_VECTORS",
+	"SHADER_TYPE",
+	"DELETE_STATUS",
+	"LINK_STATUS",
+	"VALIDATE_STATUS",
+	"ATTACHED_SHADERS",
+	"ACTIVE_UNIFORMS",
+	"ACTIVE_UNIFORM_MAX_LENGTH",
+	"ACTIVE_ATTRIBUTES",
+	"ACTIVE_ATTRIBUTE_MAX_LENGTH",
+	"SHADING_LANGUAGE_VERSION",
+	"CURRENT_PROGRAM",
+	"NEVER",
+	"LESS",
+	"EQUAL",
+	"LEQUAL",
+	"GREATER",
+	"NOTEQUAL",
+	"GEQUAL",
+	"ALWAYS",
+	"KEEP",
+	"REPLACE",
+	"INCR",
+	"DECR",
+	"INVERT",
+	"INCR_WRAP",
+	"DECR_WRAP",
+	"VENDOR",
+	"RENDERER",
+	"VERSION",
+	"EXTENSIONS",
+	"NEAREST",
+	"LINEAR",
+	"NEAREST_MIPMAP_NEAREST",
+	"LINEAR_MIPMAP_NEAREST",
+	"NEAREST_MIPMAP_LINEAR",
+	"LINEAR_MIPMAP_LINEAR",
+	"TEXTURE_MAG_FILTER",
+	"TEXTURE_MIN_FILTER",
+	"TEXTURE_WRAP_S",
+	"TEXTURE_WRAP_T",
+	"TEXTURE",
+	"TEXTURE_CUBE_MAP",
+	"TEXTURE_BINDING_CUBE_MAP",
+	"TEXTURE_CUBE_MAP_POSITIVE_X",
+	"TEXTURE_CUBE_MAP_NEGATIVE_X",
+	"TEXTURE_CUBE_MAP_POSITIVE_Y",
+	"TEXTURE_CUBE_MAP_NEGATIVE_Y",
+	"TEXTURE_CUBE_MAP_POSITIVE_Z",
+	"TEXTURE_CUBE_MAP_NEGATIVE_Z",
+	"MAX_CUBE_MAP_TEXTURE_SIZE",
+	"TEXTURE0",
+	"TEXTURE1",
+	"TEXTURE2",
+	"TEXTURE3",
+	"TEXTURE4",
+	"TEXTURE5",
+	"TEXTURE6",
+	"TEXTURE7",
+	"TEXTURE8",
+	"TEXTURE9",
+	"TEXTURE10",
+	"TEXTURE11",
+	"TEXTURE12",
+	"TEXTURE13",
+	"TEXTURE14",
+	"TEXTURE15",
+	"TEXTURE16",
+	"TEXTURE17",
+	"TEXTURE18",
+	"TEXTURE19",
+	"TEXTURE20",
+	"TEXTURE21",
+	"TEXTURE22",
+	"TEXTURE23",
+	"TEXTURE24",
+	"TEXTURE25",
+	"TEXTURE26",
+	"TEXTURE27",
+	"TEXTURE28",
+	"TEXTURE29",
+	"TEXTURE30",
+	"TEXTURE31",
+	"ACTIVE_TEXTURE",
+	"REPEAT",
+	"CLAMP_TO_EDGE",
+	"MIRRORED_REPEAT",
+	"VERTEX_ATTRIB_ARRAY_ENABLED",
+	"VERTEX_ATTRIB_ARRAY_SIZE",
+	"VERTEX_ATTRIB_ARRAY_STRIDE",
+	"VERTEX_ATTRIB_ARRAY_TYPE",
+	"VERTEX_ATTRIB_ARRAY_NORMALIZED",
+	"VERTEX_ATTRIB_ARRAY_POINTER",
+	"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",
+	"IMPLEMENTATION_COLOR_READ_TYPE",
+	"IMPLEMENTATION_COLOR_READ_FORMAT",
+	"COMPILE_STATUS",
+	"INFO_LOG_LENGTH",
+	"SHADER_SOURCE_LENGTH",
+	"SHADER_COMPILER",
+	"SHADER_BINARY_FORMATS",
+	"NUM_SHADER_BINARY_FORMATS",
+	"LOW_FLOAT",
+	"MEDIUM_FLOAT",
+	"HIGH_FLOAT",
+	"LOW_INT",
+	"MEDIUM_INT",
+	"HIGH_INT",
+	"FRAMEBUFFER",
+	"RENDERBUFFER",
+	"RGBA4",
+	"RGB5_A1",
+	"RGB565",
+	"DEPTH_COMPONENT16",
+	"STENCIL_INDEX8",
+	"RENDERBUFFER_WIDTH",
+	"RENDERBUFFER_HEIGHT",
+	"RENDERBUFFER_INTERNAL_FORMAT",
+	"RENDERBUFFER_RED_SIZE",
+	"RENDERBUFFER_GREEN_SIZE",
+	"RENDERBUFFER_BLUE_SIZE",
+	"RENDERBUFFER_ALPHA_SIZE",
+	"RENDERBUFFER_DEPTH_SIZE",
+	"RENDERBUFFER_STENCIL_SIZE",
+	"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",
+	"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",
+	"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",
+	"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",
+	"COLOR_ATTACHMENT0",
+	"DEPTH_ATTACHMENT",
+	"STENCIL_ATTACHMENT",
+	"FRAMEBUFFER_COMPLETE",
+	"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",
+	"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",
+	"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",
+	"FRAMEBUFFER_UNSUPPORTED",
+	"FRAMEBUFFER_BINDING",
+	"RENDERBUFFER_BINDING",
+	"MAX_RENDERBUFFER_SIZE",
+	"INVALID_FRAMEBUFFER_OPERATION",
+	"DEPTH_BUFFER_BIT",
+	"STENCIL_BUFFER_BIT",
+	"COLOR_BUFFER_BIT",
+	"FLOAT_VEC2",
+	"FLOAT_VEC3",
+	"FLOAT_VEC4",
+	"INT_VEC2",
+	"INT_VEC3",
+	"INT_VEC4",
+	"BOOL",
+	"BOOL_VEC2",
+	"BOOL_VEC3",
+	"BOOL_VEC4",
+	"FLOAT_MAT2",
+	"FLOAT_MAT3",
+	"FLOAT_MAT4",
+	"SAMPLER_2D",
+	"SAMPLER_CUBE",
+	"FRAGMENT_SHADER",
+	"VERTEX_SHADER",
+	"FALSE",
+	"TRUE",
+	"ZERO",
+	"ONE",
+	"NO_ERROR",
+	"NONE",
+	"ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH",
+	"ACTIVE_UNIFORM_BLOCKS",
+	"ALREADY_SIGNALED",
+	"ANY_SAMPLES_PASSED",
+	"ANY_SAMPLES_PASSED_CONSERVATIVE",
+	"BLUE",
+	"BUFFER_ACCESS_FLAGS",
+	"BUFFER_MAP_LENGTH",
+	"BUFFER_MAP_OFFSET",
+	"BUFFER_MAPPED",
+	"BUFFER_MAP_POINTER",
+	"COLOR",
+	"COLOR_ATTACHMENT10",
+	"COLOR_ATTACHMENT1",
+	"COLOR_ATTACHMENT11",
+	"COLOR_ATTACHMENT12",
+	"COLOR_ATTACHMENT13",
+	"COLOR_ATTACHMENT14",
+	"COLOR_ATTACHMENT15",
+	"COLOR_ATTACHMENT2",
+	"COLOR_ATTACHMENT3",
+	"COLOR_ATTACHMENT4",
+	"COLOR_ATTACHMENT5",
+	"COLOR_ATTACHMENT6",
+	"COLOR_ATTACHMENT7",
+	"COLOR_ATTACHMENT8",
+	"COLOR_ATTACHMENT9",
+	"COMPARE_REF_TO_TEXTURE",
+	"COMPRESSED_R11_EAC",
+	"COMPRESSED_RG11_EAC",
+	"COMPRESSED_RGB8_ETC2",
+	"COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",
+	"COMPRESSED_RGBA8_ETC2_EAC",
+	"COMPRESSED_SIGNED_R11_EAC",
+	"COMPRESSED_SIGNED_RG11_EAC",
+	"COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",
+	"COMPRESSED_SRGB8_ETC2",
+	"COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",
+	"CONDITION_SATISFIED",
+	"COPY_READ_BUFFER",
+	"COPY_READ_BUFFER_BINDING",
+	"COPY_WRITE_BUFFER",
+	"COPY_WRITE_BUFFER_BINDING",
+	"CURRENT_QUERY",
+	"DEPTH",
+	"DEPTH24_STENCIL8",
+	"DEPTH32F_STENCIL8",
+	"DEPTH_COMPONENT24",
+	"DEPTH_COMPONENT32F",
+	"DEPTH_STENCIL",
+	"DEPTH_STENCIL_ATTACHMENT",
+	"DRAW_BUFFER0",
+	"DRAW_BUFFER10",
+	"DRAW_BUFFER1",
+	"DRAW_BUFFER11",
+	"DRAW_BUFFER12",
+	"DRAW_BUFFER13",
+	"DRAW_BUFFER14",
+	"DRAW_BUFFER15",
+	"DRAW_BUFFER2",
+	"DRAW_BUFFER3",
+	"DRAW_BUFFER4",
+	"DRAW_BUFFER5",
+	"DRAW_BUFFER6",
+	"DRAW_BUFFER7",
+	"DRAW_BUFFER8",
+	"DRAW_BUFFER9",
+	"DRAW_FRAMEBUFFER",
+	"DRAW_FRAMEBUFFER_BINDING",
+	"DYNAMIC_COPY",
+	"DYNAMIC_READ",
+	"FLOAT_32_UNSIGNED_INT_24_8_REV",
+	"FLOAT_MAT2x3",
+	"FLOAT_MAT2x4",
+	"FLOAT_MAT3x2",
+	"FLOAT_MAT3x4",
+	"FLOAT_MAT4x2",
+	"FLOAT_MAT4x3",
+	"FRAGMENT_SHADER_DERIVATIVE_HINT",
+	"FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",
+	"FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",
+	"FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",
+	"FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",
+	"FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",
+	"FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",
+	"FRAMEBUFFER_ATTACHMENT_RED_SIZE",
+	"FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",
+	"FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",
+	"FRAMEBUFFER_DEFAULT",
+	"FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",
+	"FRAMEBUFFER_UNDEFINED",
+	"GREEN",
+	"HALF_FLOAT",
+	"INT_2_10_10_10_REV",
+	"INTERLEAVED_ATTRIBS",
+	"INT_SAMPLER_2D",
+	"INT_SAMPLER_2D_ARRAY",
+	"INT_SAMPLER_3D",
+	"INT_SAMPLER_CUBE",
+	"INVALID_INDEX",
+	"MAJOR_VERSION",
+	"MAP_FLUSH_EXPLICIT_BIT",
+	"MAP_INVALIDATE_BUFFER_BIT",
+	"MAP_INVALIDATE_RANGE_BIT",
+	"MAP_READ_BIT",
+	"MAP_UNSYNCHRONIZED_BIT",
+	"MAP_WRITE_BIT",
+	"MAX",
+	"MAX_3D_TEXTURE_SIZE",
+	"MAX_ARRAY_TEXTURE_LAYERS",
+	"MAX_COLOR_ATTACHMENTS",
+	"MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",
+	"MAX_COMBINED_UNIFORM_BLOCKS",
+	"MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",
+	"MAX_DRAW_BUFFERS",
+	"MAX_ELEMENT_INDEX",
+	"MAX_ELEMENTS_INDICES",
+	"MAX_ELEMENTS_VERTICES",
+	"MAX_FRAGMENT_INPUT_COMPONENTS",
+	"MAX_FRAGMENT_UNIFORM_BLOCKS",
+	"MAX_FRAGMENT_UNIFORM_COMPONENTS",
+	"MAX_PROGRAM_TEXEL_OFFSET",
+	"MAX_SAMPLES",
+	"MAX_SERVER_WAIT_TIMEOUT",
+	"MAX_TEXTURE_LOD_BIAS",
+	"MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",
+	"MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",
+	"MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",
+	"MAX_UNIFORM_BLOCK_SIZE",
+	"MAX_UNIFORM_BUFFER_BINDINGS",
+	"MAX_VARYING_COMPONENTS",
+	"MAX_VERTEX_OUTPUT_COMPONENTS",
+	"MAX_VERTEX_UNIFORM_BLOCKS",
+	"MAX_VERTEX_UNIFORM_COMPONENTS",
+	"MIN",
+	"MINOR_VERSION",
+	"MIN_PROGRAM_TEXEL_OFFSET",
+	"NUM_EXTENSIONS",
+	"NUM_PROGRAM_BINARY_FORMATS",
+	"NUM_SAMPLE_COUNTS",
+	"OBJECT_TYPE",
+	"PACK_ROW_LENGTH",
+	"PACK_SKIP_PIXELS",
+	"PACK_SKIP_ROWS",
+	"PIXEL_PACK_BUFFER",
+	"PIXEL_PACK_BUFFER_BINDING",
+	"PIXEL_UNPACK_BUFFER",
+	"PIXEL_UNPACK_BUFFER_BINDING",
+	"PRIMITIVE_RESTART_FIXED_INDEX",
+	"PROGRAM_BINARY_FORMATS",
+	"PROGRAM_BINARY_LENGTH",
+	"PROGRAM_BINARY_RETRIEVABLE_HINT",
+	"QUERY_RESULT",
+	"QUERY_RESULT_AVAILABLE",
+	"R11F_G11F_B10F",
+	"R16F",
+	"R16I",
+	"R16UI",
+	"R32F",
+	"R32I",
+	"R32UI",
+	"R8",
+	"R8I",
+	"R8_SNORM",
+	"R8UI",
+	"RASTERIZER_DISCARD",
+	"READ_BUFFER",
+	"READ_FRAMEBUFFER",
+	"READ_FRAMEBUFFER_BINDING",
+	"RED",
+	"RED_INTEGER",
+	"RENDERBUFFER_SAMPLES",
+	"RG",
+	"RG16F",
+	"RG16I",
+	"RG16UI",
+	"RG32F",
+	"RG32I",
+	"RG32UI",
+	"RG8",
+	"RG8I",
+	"RG8_SNORM",
+	"RG8UI",
+	"RGB10_A2",
+	"RGB10_A2UI",
+	"RGB16F",
+	"RGB16I",
+	"RGB16UI",
+	"RGB32F",
+	"RGB32I",
+	"RGB32UI",
+	"RGB8",
+	"RGB8I",
+	"RGB8_SNORM",
+	"RGB8UI",
+	"RGB9_E5",
+	"RGBA16F",
+	"RGBA16I",
+	"RGBA16UI",
+	"RGBA32F",
+	"RGBA32I",
+	"RGBA32UI",
+	"RGBA8",
+	"RGBA8I",
+	"RGBA8_SNORM",
+	"RGBA8UI",
+	"RGBA_INTEGER",
+	"RGB_INTEGER",
+	"RG_INTEGER",
+	"SAMPLER_2D_ARRAY",
+	"SAMPLER_2D_ARRAY_SHADOW",
+	"SAMPLER_2D_SHADOW",
+	"SAMPLER_3D",
+	"SAMPLER_BINDING",
+	"SAMPLER_CUBE_SHADOW",
+	"SEPARATE_ATTRIBS",
+	"SIGNALED",
+	"SIGNED_NORMALIZED",
+	"SRGB",
+	"SRGB8",
+	"SRGB8_ALPHA8",
+	"STATIC_COPY",
+	"STATIC_READ",
+	"STENCIL",
+	"STREAM_COPY",
+	"STREAM_READ",
+	"SYNC_CONDITION",
+	"SYNC_FENCE",
+	"SYNC_FLAGS",
+	"SYNC_FLUSH_COMMANDS_BIT",
+	"SYNC_GPU_COMMANDS_COMPLETE",
+	"SYNC_STATUS",
+	"TEXTURE_2D_ARRAY",
+	"TEXTURE_3D",
+	"TEXTURE_BASE_LEVEL",
+	"TEXTURE_BINDING_2D_ARRAY",
+	"TEXTURE_BINDING_3D",
+	"TEXTURE_COMPARE_FUNC",
+	"TEXTURE_COMPARE_MODE",
+	"TEXTURE_IMMUTABLE_FORMAT",
+	"TEXTURE_IMMUTABLE_LEVELS",
+	"TEXTURE_MAX_LEVEL",
+	"TEXTURE_MAX_LOD",
+	"TEXTURE_MIN_LOD",
+	"TEXTURE_SWIZZLE_A",
+	"TEXTURE_SWIZZLE_B",
+	"TEXTURE_SWIZZLE_G",
+	"TEXTURE_SWIZZLE_R",
+	"TEXTURE_WRAP_R",
+	"TIMEOUT_EXPIRED",
+	"TRANSFORM_FEEDBACK",
+	"TRANSFORM_FEEDBACK_ACTIVE",
+	"TRANSFORM_FEEDBACK_BINDING",
+	"TRANSFORM_FEEDBACK_BUFFER",
+	"TRANSFORM_FEEDBACK_BUFFER_BINDING",
+	"TRANSFORM_FEEDBACK_BUFFER_MODE",
+	"TRANSFORM_FEEDBACK_BUFFER_SIZE",
+	"TRANSFORM_FEEDBACK_BUFFER_START",
+	"TRANSFORM_FEEDBACK_PAUSED",
+	"TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",
+	"TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH",
+	"TRANSFORM_FEEDBACK_VARYINGS",
+	"UNIFORM_ARRAY_STRIDE",
+	"UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",
+	"UNIFORM_BLOCK_ACTIVE_UNIFORMS",
+	"UNIFORM_BLOCK_BINDING",
+	"UNIFORM_BLOCK_DATA_SIZE",
+	"UNIFORM_BLOCK_INDEX",
+	"UNIFORM_BLOCK_NAME_LENGTH",
+	"UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",
+	"UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",
+	"UNIFORM_BUFFER",
+	"UNIFORM_BUFFER_BINDING",
+	"UNIFORM_BUFFER_OFFSET_ALIGNMENT",
+	"UNIFORM_BUFFER_SIZE",
+	"UNIFORM_BUFFER_START",
+	"UNIFORM_IS_ROW_MAJOR",
+	"UNIFORM_MATRIX_STRIDE",
+	"UNIFORM_NAME_LENGTH",
+	"UNIFORM_OFFSET",
+	"UNIFORM_SIZE",
+	"UNIFORM_TYPE",
+	"UNPACK_IMAGE_HEIGHT",
+	"UNPACK_ROW_LENGTH",
+	"UNPACK_SKIP_IMAGES",
+	"UNPACK_SKIP_PIXELS",
+	"UNPACK_SKIP_ROWS",
+	"UNSIGNALED",
+	"UNSIGNED_INT_10F_11F_11F_REV",
+	"UNSIGNED_INT_2_10_10_10_REV",
+	"UNSIGNED_INT_24_8",
+	"UNSIGNED_INT_5_9_9_9_REV",
+	"UNSIGNED_INT_SAMPLER_2D",
+	"UNSIGNED_INT_SAMPLER_2D_ARRAY",
+	"UNSIGNED_INT_SAMPLER_3D",
+	"UNSIGNED_INT_SAMPLER_CUBE",
+	"UNSIGNED_INT_VEC2",
+	"UNSIGNED_INT_VEC3",
+	"UNSIGNED_INT_VEC4",
+	"UNSIGNED_NORMALIZED",
+	"VERTEX_ARRAY_BINDING",
+	"VERTEX_ATTRIB_ARRAY_DIVISOR",
+	"VERTEX_ATTRIB_ARRAY_INTEGER",
+	"WAIT_FAILED",
+}
+
 var outfile = flag.String("o", "", "result will be written to the file instead of stdout.")
 
 var fset = new(token.FileSet)
@@ -325,9 +933,18 @@
 	value uint64
 }
 
+func genWhitelistMap(whitelist []string) map[string]bool {
+	m := make(map[string]bool)
+	for _, v := range enumWhitelist {
+		m[v] = true
+	}
+	return m
+}
+
 // enum builds a list of all GL constants that make up the gl.Enum type.
 func enum(f *ast.File) []entry {
 	var entries []entry
+	whitelist := genWhitelistMap(enumWhitelist)
 	for _, d := range f.Decls {
 		gendecl, ok := d.(*ast.GenDecl)
 		if !ok {
@@ -344,6 +961,9 @@
 			if len(v.Names) != 1 || len(v.Values) != 1 {
 				continue
 			}
+			if _, ok := whitelist[v.Names[0].Name]; !ok {
+				continue
+			}
 			val, err := strconv.ParseUint(v.Values[0].(*ast.BasicLit).Value, 0, 64)
 			if err != nil {
 				log.Fatalf("enum %s: %v", v.Names[0].Name, err)
diff --git a/gl/gldebug.go b/gl/gldebug.go
index 6cb6fba..a8d5798 100644
--- a/gl/gldebug.go
+++ b/gl/gldebug.go
@@ -1123,8 +1123,6 @@
 		return "TEXTURE_WRAP_R"
 	case 0x911b:
 		return "TIMEOUT_EXPIRED"
-	case 0xffffffffffffffff:
-		return "TIMEOUT_IGNORED"
 	case 0x8e22:
 		return "TRANSFORM_FEEDBACK"
 	case 0x8e24: