Merge "Allow in/out qualifiers in GLSL 440/450" into deqp-dev
diff --git a/android/cts/master/egl-master.txt b/android/cts/master/egl-master.txt
index 1c4fa8c..55861eb 100644
--- a/android/cts/master/egl-master.txt
+++ b/android/cts/master/egl-master.txt
@@ -2457,14 +2457,21 @@
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_draw_elements_base_vertex
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_draw_instanced
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_draw_transform_feedback
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_external_buffer
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_geometry_shader
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_instanced_arrays
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_memory_object
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_memory_object_fd
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_memory_object_win32
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_multi_draw_indirect
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_multiview_draw_buffers
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_occlusion_query_boolean
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_polygon_offset_clamp
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_primitive_bounding_box
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_raster_multisample
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_semaphore
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_semaphore_fd
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_semaphore_win32
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_separate_shader_objects
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_shader_pixel_local_storage2
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_sparse_texture
@@ -2473,6 +2480,7 @@
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_buffer
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_filter_minmax
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_view
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_win32_keyed_mutex
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_window_rectangles
 dEQP-EGL.functional.get_proc_address.extension.gl_img_bindless_texture
 dEQP-EGL.functional.get_proc_address.extension.gl_img_framebuffer_downsample
@@ -2523,6 +2531,7 @@
 dEQP-EGL.functional.get_proc_address.extension.gl_ovr_multiview_multisampled_render_to_texture
 dEQP-EGL.functional.get_proc_address.extension.gl_qcom_alpha_test
 dEQP-EGL.functional.get_proc_address.extension.gl_qcom_framebuffer_foveated
+dEQP-EGL.functional.get_proc_address.extension.gl_qcom_shader_framebuffer_fetch_noncoherent
 dEQP-EGL.functional.get_proc_address.core.egl
 dEQP-EGL.functional.get_proc_address.core.gles
 dEQP-EGL.functional.get_proc_address.core.gles2
diff --git a/android/cts/master/gles3-master.txt b/android/cts/master/gles3-master.txt
index 8e08302..218a7fa 100644
--- a/android/cts/master/gles3-master.txt
+++ b/android/cts/master/gles3-master.txt
@@ -796,6 +796,8 @@
 dEQP-GLES3.functional.shaders.preprocessor.basic.empty_function_fragment
 dEQP-GLES3.functional.shaders.preprocessor.basic.empty_directive_vertex
 dEQP-GLES3.functional.shaders.preprocessor.basic.empty_directive_fragment
+dEQP-GLES3.functional.shaders.preprocessor.basic.identifier_with_double_underscore_vertex
+dEQP-GLES3.functional.shaders.preprocessor.basic.identifier_with_double_underscore_fragment
 dEQP-GLES3.functional.shaders.preprocessor.definitions.define_value_and_function_vertex
 dEQP-GLES3.functional.shaders.preprocessor.definitions.define_value_and_function_fragment
 dEQP-GLES3.functional.shaders.preprocessor.definitions.undefine_object_invalid_syntax_vertex
@@ -1482,6 +1484,7 @@
 dEQP-GLES3.functional.shaders.linkage.varying.rules.type_mismatch_1
 dEQP-GLES3.functional.shaders.linkage.varying.rules.type_mismatch_2
 dEQP-GLES3.functional.shaders.linkage.varying.rules.type_mismatch_3
+dEQP-GLES3.functional.shaders.linkage.varying.rules.struct_type_mismatch_1
 dEQP-GLES3.functional.shaders.linkage.varying.rules.struct_type_mismatch_2
 dEQP-GLES3.functional.shaders.linkage.varying.rules.struct_type_mismatch_3
 dEQP-GLES3.functional.shaders.linkage.varying.rules.interpolation_mismatch_1
@@ -1537,6 +1540,7 @@
 dEQP-GLES3.functional.shaders.linkage.varying.struct.uvec3
 dEQP-GLES3.functional.shaders.linkage.varying.struct.uvec4
 dEQP-GLES3.functional.shaders.linkage.varying.struct.float_vec3
+dEQP-GLES3.functional.shaders.linkage.varying.struct.float_uvec2_vec3
 dEQP-GLES3.functional.shaders.linkage.varying.interpolation.smooth
 dEQP-GLES3.functional.shaders.linkage.varying.interpolation.centroid
 dEQP-GLES3.functional.shaders.linkage.varying.interpolation.flat
@@ -2826,6 +2830,8 @@
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_array_without_instance_name_1_fragment
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_array_without_instance_name_2_vertex
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_array_without_instance_name_2_fragment
+dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_vertex
+dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_fragment
 dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_vertex
 dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_fragment
 dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_xx_vertex
@@ -16921,8 +16927,30 @@
 dEQP-GLES3.functional.shaders.texture_functions.texelfetch.isampler3d_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texelfetch.usampler3d_vertex
 dEQP-GLES3.functional.shaders.texture_functions.texelfetch.usampler3d_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_fixed_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_fixed_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_float_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_float_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2d_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2d_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2d_vertex
 dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2d_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_fixed_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_fixed_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_float_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_float_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2darray_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2darray_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2darray_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2darray_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_fixed_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_fixed_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_float_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_float_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler3d_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler3d_fragment
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler3d_vertex
+dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler3d_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texturesize.sampler2d_fixed_vertex
 dEQP-GLES3.functional.shaders.texture_functions.texturesize.sampler2d_fixed_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texturesize.sampler2d_float_vertex
@@ -18721,8 +18749,11 @@
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat2x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat2x4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat3x2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat3x4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat4x2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_vertex.mat2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_vertex.mat2x3
@@ -18736,8 +18767,11 @@
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat2x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat2x4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat3x2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat3x4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat4x2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_vertex.mat2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_vertex.mat2x3
@@ -18751,8 +18785,11 @@
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat2x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat2x4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat3x2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat3x4
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat4x2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.outerproduct.lowp_vertex.mat2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.outerproduct.lowp_vertex.mat2x3
@@ -18818,8 +18855,11 @@
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_vertex.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_vertex.mat4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat2x3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat2x4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat3x2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat3x4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat4x2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat4
@@ -18833,8 +18873,11 @@
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_vertex.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_vertex.mat4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat2
+dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat2x3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat2x4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat3x2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat3
+dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat3x4
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat4x2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat4
@@ -23251,6 +23294,11 @@
 dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_linear_mirror_clamp
 dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_linear_mirror_repeat
 dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_linear_mirror_mirror
+dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_mirror
 dEQP-GLES3.functional.texture.filtering.cube.formats.rgba16f_nearest
 dEQP-GLES3.functional.texture.filtering.cube.formats.rgba16f_linear
 dEQP-GLES3.functional.texture.filtering.cube.formats.rgba16f_nearest_mipmap_nearest
@@ -23481,10 +23529,22 @@
 dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp
 dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_linear_mirror_repeat
 dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_linear_mirror_mirror
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_clamp
 dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_mirror
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_mirror
 dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_mirror
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_mirror
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_clamp
 dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp
 dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_clamp
+dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp
 dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest
 dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear
 dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest_mipmap_nearest
@@ -24955,22 +25015,28 @@
 dEQP-GLES3.functional.texture.specification.basic_copytexsubimage2d.cube_rgb
 dEQP-GLES3.functional.texture.specification.basic_copytexsubimage2d.cube_rgba
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba32f_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba32f_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba32i_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba32ui_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba16f_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba16i_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba16i_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba16ui_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba8_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba8i_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba8ui_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.srgb8_alpha8_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.srgb8_alpha8_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb10_a2_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb10_a2_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb10_a2ui_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb10_a2ui_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba4_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba4_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb5_a1_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba8_snorm_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb565_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb565_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r11f_g11f_b10f_2d_array
@@ -24982,7 +25048,9 @@
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb16ui_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8_snorm_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8i_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8i_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8ui_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8ui_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.srgb8_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb9_e5_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg32f_2d_array
@@ -24991,20 +25059,30 @@
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg16f_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg16i_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg16ui_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg16ui_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg8_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg8i_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg8i_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg8ui_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg8_snorm_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32f_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32f_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32i_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32i_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32ui_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32ui_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r16f_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r16f_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r16i_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r16ui_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r16ui_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8i_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8i_3d
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8ui_2d_array
 dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8_snorm_2d_array
+dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8_snorm_3d
 dEQP-GLES3.functional.texture.specification.teximage3d_unpack_params.rgb8_image_height
 dEQP-GLES3.functional.texture.specification.teximage3d_unpack_params.rgb8_row_length
 dEQP-GLES3.functional.texture.specification.teximage3d_unpack_params.rgb8_skip_images
@@ -25318,35 +25396,56 @@
 dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth_component16_2d_array
 dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth32f_stencil8_2d_array
 dEQP-GLES3.functional.texture.specification.texsubimage3d_depth.depth24_stencil8_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba32f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba32f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba32i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba32i_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba32ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba16f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba16f_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba16i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba16ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba16ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.srgb8_alpha8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.srgb8_alpha8_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb10_a2_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb10_a2_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb10_a2ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb10_a2ui_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba4_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba4_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb5_a1_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb5_a1_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8_snorm_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8_snorm_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb565_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb565_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.r11f_g11f_b10f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r11f_g11f_b10f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16ui_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8_snorm_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8ui_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.srgb8_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb9_e5_cube
@@ -25354,32 +25453,50 @@
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg32f_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg32i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg32i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg32ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg32ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8i_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8_snorm_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8_snorm_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r32f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r32f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.r32i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r32i_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r32ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r32ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16i_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16ui_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8i_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8i_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8ui_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8ui_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8_snorm_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8_snorm_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component32f_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component32f_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component24_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component24_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component16_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component16_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth32f_stencil8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth32f_stencil8_cube
+dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth24_stencil8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth24_stencil8_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.size.2d_1x1_1_levels
 dEQP-GLES3.functional.texture.specification.texstorage2d.size.2d_2x2_2_levels
@@ -25394,20 +25511,69 @@
 dEQP-GLES3.functional.texture.specification.texstorage2d.size.cube_57x57_6_levels
 dEQP-GLES3.functional.texture.specification.texstorage2d.size.cube_64x64_4_levels
 dEQP-GLES3.functional.texture.specification.texstorage2d.size.cube_64x64_7_levels
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba32f_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba32i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba32ui_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16f_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16i_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16ui_2d_array
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8i_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8ui_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.srgb8_alpha8_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb10_a2_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb10_a2_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb10_a2ui_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba4_2d_array
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba4_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb5_a1_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8_snorm_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb8_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb565_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.r11f_g11f_b10f_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r11f_g11f_b10f_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb32i_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb32ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16f_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16i_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb8i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb8ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.srgb8_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb9_e5_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32f_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32i_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32ui_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg16f_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg16i_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg16ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8_snorm_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8_snorm_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32f_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32i_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32i_3d
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32ui_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16f_2d_array
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16f_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16i_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8i_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8i_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8ui_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8_snorm_2d_array
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8_snorm_3d
+dEQP-GLES3.functional.texture.specification.texstorage3d.format.depth32f_stencil8_2d_array
 dEQP-GLES3.functional.texture.specification.texstorage3d.size.2d_array_1x1x1_1_levels
 dEQP-GLES3.functional.texture.specification.texstorage3d.size.2d_array_2x2x2_2_levels
 dEQP-GLES3.functional.texture.specification.texstorage3d.size.2d_array_64x32x3_7_levels
@@ -34134,6 +34300,7 @@
 dEQP-GLES3.functional.ubo.random.basic_arrays.12
 dEQP-GLES3.functional.ubo.random.basic_arrays.13
 dEQP-GLES3.functional.ubo.random.basic_arrays.14
+dEQP-GLES3.functional.ubo.random.basic_arrays.15
 dEQP-GLES3.functional.ubo.random.basic_arrays.16
 dEQP-GLES3.functional.ubo.random.basic_arrays.17
 dEQP-GLES3.functional.ubo.random.basic_arrays.18
@@ -34206,6 +34373,7 @@
 dEQP-GLES3.functional.ubo.random.nested_structs_arrays.11
 dEQP-GLES3.functional.ubo.random.nested_structs_arrays.12
 dEQP-GLES3.functional.ubo.random.nested_structs_arrays.13
+dEQP-GLES3.functional.ubo.random.nested_structs_arrays.14
 dEQP-GLES3.functional.ubo.random.nested_structs_arrays.15
 dEQP-GLES3.functional.ubo.random.nested_structs_arrays.16
 dEQP-GLES3.functional.ubo.random.nested_structs_arrays.17
@@ -34352,6 +34520,7 @@
 dEQP-GLES3.functional.ubo.random.all_shared_buffer.34
 dEQP-GLES3.functional.ubo.random.all_shared_buffer.35
 dEQP-GLES3.functional.ubo.random.all_shared_buffer.36
+dEQP-GLES3.functional.ubo.random.all_shared_buffer.37
 dEQP-GLES3.functional.ubo.random.all_shared_buffer.38
 dEQP-GLES3.functional.ubo.random.all_shared_buffer.39
 dEQP-GLES3.functional.ubo.random.all_shared_buffer.40
@@ -36596,6 +36765,7 @@
 dEQP-GLES3.functional.attribute_location.bind_hole.float
 dEQP-GLES3.functional.attribute_location.bind_hole.vec2
 dEQP-GLES3.functional.attribute_location.bind_hole.vec3
+dEQP-GLES3.functional.attribute_location.bind_hole.vec4
 dEQP-GLES3.functional.attribute_location.bind_hole.mat2
 dEQP-GLES3.functional.attribute_location.bind_hole.mat3
 dEQP-GLES3.functional.attribute_location.bind_hole.mat4
@@ -36770,6 +36940,54 @@
 dEQP-GLES3.functional.attribute_location.mixed_hole.mat4x2
 dEQP-GLES3.functional.attribute_location.mixed_hole.mat4x3
 dEQP-GLES3.functional.attribute_location.mixed_hole.mat4x4
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.float
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.vec2
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.vec3
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.vec4
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.int
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.ivec2
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.ivec3
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.ivec4
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.uint
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.uvec2
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.uvec3
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.uvec4
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2x2
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2x3
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2x4
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3x2
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3x3
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3x4
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4x2
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4x3
+dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4x4
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.float
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.vec2
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.vec3
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.vec4
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.int
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.ivec2
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.ivec3
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.ivec4
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uint
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uvec2
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uvec3
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uvec4
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2x2
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2x3
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2x4
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3x2
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3x3
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3x4
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4x2
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4x3
+dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4x4
 dEQP-GLES3.functional.fragment_out.basic.float.rgba32f_lowp_float
 dEQP-GLES3.functional.fragment_out.basic.float.rgba32f_lowp_vec2
 dEQP-GLES3.functional.fragment_out.basic.float.rgba32f_lowp_vec3
@@ -40949,14 +41167,23 @@
 dEQP-GLES3.functional.state_query.integers64.max_combined_fragment_uniform_components_getfloat
 dEQP-GLES3.functional.state_query.floats.depth_range_getboolean
 dEQP-GLES3.functional.state_query.floats.depth_range_getinteger
+dEQP-GLES3.functional.state_query.floats.depth_range_getinteger64
 dEQP-GLES3.functional.state_query.floats.depth_range_getfloat
 dEQP-GLES3.functional.state_query.floats.line_width_getboolean
+dEQP-GLES3.functional.state_query.floats.line_width_getinteger
+dEQP-GLES3.functional.state_query.floats.line_width_getinteger64
 dEQP-GLES3.functional.state_query.floats.line_width_getfloat
 dEQP-GLES3.functional.state_query.floats.polygon_offset_factor_getboolean
+dEQP-GLES3.functional.state_query.floats.polygon_offset_factor_getinteger
+dEQP-GLES3.functional.state_query.floats.polygon_offset_factor_getinteger64
 dEQP-GLES3.functional.state_query.floats.polygon_offset_factor_getfloat
 dEQP-GLES3.functional.state_query.floats.polygon_offset_units_getboolean
+dEQP-GLES3.functional.state_query.floats.polygon_offset_units_getinteger
+dEQP-GLES3.functional.state_query.floats.polygon_offset_units_getinteger64
 dEQP-GLES3.functional.state_query.floats.polygon_offset_units_getfloat
 dEQP-GLES3.functional.state_query.floats.sample_coverage_value_getboolean
+dEQP-GLES3.functional.state_query.floats.sample_coverage_value_getinteger
+dEQP-GLES3.functional.state_query.floats.sample_coverage_value_getinteger64
 dEQP-GLES3.functional.state_query.floats.sample_coverage_value_getfloat
 dEQP-GLES3.functional.state_query.floats.blend_color_getboolean
 dEQP-GLES3.functional.state_query.floats.blend_color_getinteger
@@ -41135,7 +41362,9 @@
 dEQP-GLES3.functional.state_query.sampler.sampler_texture_min_filter_getsamplerparameteri
 dEQP-GLES3.functional.state_query.sampler.sampler_texture_min_filter_getsamplerparameterf
 dEQP-GLES3.functional.state_query.sampler.sampler_texture_min_lod_getsamplerparameteri
+dEQP-GLES3.functional.state_query.sampler.sampler_texture_min_lod_getsamplerparameterf
 dEQP-GLES3.functional.state_query.sampler.sampler_texture_max_lod_getsamplerparameteri
+dEQP-GLES3.functional.state_query.sampler.sampler_texture_max_lod_getsamplerparameterf
 dEQP-GLES3.functional.state_query.sampler.sampler_texture_compare_mode_getsamplerparameteri
 dEQP-GLES3.functional.state_query.sampler.sampler_texture_compare_mode_getsamplerparameterf
 dEQP-GLES3.functional.state_query.sampler.sampler_texture_compare_func_getsamplerparameteri
@@ -41164,6 +41393,7 @@
 dEQP-GLES3.functional.state_query.fbo.framebuffer_attachment_x_size_texture
 dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_color_encoding
 dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_component_type
+dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_x_size_rbo
 dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_x_size_texture
 dEQP-GLES3.functional.state_query.rbo.renderbuffer_size
 dEQP-GLES3.functional.state_query.rbo.renderbuffer_internal_format
@@ -41185,13 +41415,16 @@
 dEQP-GLES3.functional.state_query.shader.program_validate_status
 dEQP-GLES3.functional.state_query.shader.program_attached_shaders
 dEQP-GLES3.functional.state_query.shader.program_active_uniform_name
+dEQP-GLES3.functional.state_query.shader.program_active_uniform_types
 dEQP-GLES3.functional.state_query.shader.program_active_uniform_blocks
 dEQP-GLES3.functional.state_query.shader.program_binary
 dEQP-GLES3.functional.state_query.shader.transform_feedback
 dEQP-GLES3.functional.state_query.shader.active_attributes
 dEQP-GLES3.functional.state_query.shader.vertex_attrib_size
+dEQP-GLES3.functional.state_query.shader.vertex_attrib_type
 dEQP-GLES3.functional.state_query.shader.vertex_attrib_stride
 dEQP-GLES3.functional.state_query.shader.vertex_attrib_normalized
+dEQP-GLES3.functional.state_query.shader.vertex_attrib_integer
 dEQP-GLES3.functional.state_query.shader.vertex_attrib_array_enabled
 dEQP-GLES3.functional.state_query.shader.vertex_attrib_array_divisor
 dEQP-GLES3.functional.state_query.shader.vertex_attrib_array_buffer_binding
diff --git a/android/cts/master/src/gles3-driver-issues.txt b/android/cts/master/src/gles3-driver-issues.txt
index 55962f4..99c22e6 100644
--- a/android/cts/master/src/gles3-driver-issues.txt
+++ b/android/cts/master/src/gles3-driver-issues.txt
@@ -24,55 +24,6 @@
 dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_src_dst_y
 
 # Bug 22760309
-dEQP-GLES3.functional.attribute_location.bind_hole.vec4
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.float
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.vec2
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.vec3
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.vec4
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.int
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.ivec2
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.ivec3
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.ivec4
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.uint
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.uvec2
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.uvec3
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.uvec4
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2x2
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2x3
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat2x4
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3x2
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3x3
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat3x4
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4x2
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4x3
-dEQP-GLES3.functional.attribute_location.bind_relink_hole.mat4x4
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.float
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.vec2
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.vec3
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.vec4
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.int
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.ivec2
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.ivec3
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.ivec4
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uint
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uvec2
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uvec3
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.uvec4
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2x2
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2x3
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat2x4
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3x2
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3x3
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat3x4
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4x2
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4x3
-dEQP-GLES3.functional.attribute_location.mixed_relink_hole.mat4x4
 dEQP-GLES3.functional.depth_stencil_clear.depth_stencil_scissored_masked
 dEQP-GLES3.functional.draw.random.50
 dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.red_unsigned_byte
@@ -157,29 +108,12 @@
 dEQP-GLES3.functional.shaders.builtin_functions.precision.faceforward.highp_vertex.vec2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.faceforward.highp_fragment.scalar
 dEQP-GLES3.functional.shaders.builtin_functions.precision.faceforward.highp_fragment.vec2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat3x2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat4x2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.lowp_fragment.mat4x3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat3x2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat4x2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.mediump_fragment.mat4x3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat3x2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat4x2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.matrixcompmult.highp_fragment.mat4x3
 dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_vertex.vec2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.lowp_fragment.vec2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_vertex.vec2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_fragment.vec2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.vec2
 dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.vec2
-dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat2x3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat2x4
-dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.lowp_fragment.mat3x4
-dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat2x3
-dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat2x4
-dEQP-GLES3.functional.shaders.builtin_functions.precision.transpose.mediump_fragment.mat3x4
-dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_vertex
-dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_fragment
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_out_vertex
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_out_fragment
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_const_vertex
@@ -455,8 +389,6 @@
 dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_2
 dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_3
 dEQP-GLES3.functional.shaders.linkage.uniform.basic.precision_conflict_4
-dEQP-GLES3.functional.shaders.linkage.varying.rules.struct_type_mismatch_1
-dEQP-GLES3.functional.shaders.linkage.varying.struct.float_uvec2_vec3
 dEQP-GLES3.functional.shaders.operator.unary_operator.pre_decrement_effect.lowp_uint_vertex
 dEQP-GLES3.functional.shaders.operator.unary_operator.pre_decrement_effect.lowp_uint_fragment
 dEQP-GLES3.functional.shaders.operator.unary_operator.pre_decrement_effect.mediump_uint_vertex
@@ -529,8 +461,6 @@
 dEQP-GLES3.functional.shaders.operator.unary_operator.pre_decrement_result.mediump_uvec4_fragment
 dEQP-GLES3.functional.shaders.operator.unary_operator.pre_decrement_result.highp_uvec4_vertex
 dEQP-GLES3.functional.shaders.operator.unary_operator.pre_decrement_result.highp_uvec4_fragment
-dEQP-GLES3.functional.shaders.preprocessor.basic.identifier_with_double_underscore_vertex
-dEQP-GLES3.functional.shaders.preprocessor.basic.identifier_with_double_underscore_fragment
 dEQP-GLES3.functional.shaders.preprocessor.comments.backslash_in_a_comment_1_vertex
 dEQP-GLES3.functional.shaders.preprocessor.comments.backslash_in_a_comment_1_fragment
 dEQP-GLES3.functional.shaders.random.all_features.fragment.48
@@ -561,28 +491,6 @@
 dEQP-GLES3.functional.shaders.struct.uniform.array_member_dynamic_index_vertex
 dEQP-GLES3.functional.shaders.struct.uniform.dynamic_loop_nested_struct_array_fragment
 dEQP-GLES3.functional.shaders.struct.uniform.sampler_nested_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_fixed_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_fixed_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_float_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2d_float_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2d_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2d_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_fixed_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_fixed_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_float_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler2darray_float_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2darray_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler2darray_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2darray_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler2darray_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_fixed_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_fixed_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_float_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.sampler3d_float_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler3d_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.isampler3d_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler3d_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texelfetchoffset.usampler3d_fragment
 dEQP-GLES3.functional.shaders.texture_functions.invalid.texture_sampler2darrayshadow_vec4_float_vertex
 dEQP-GLES3.functional.shaders.texture_functions.invalid.texture_sampler2darrayshadow_vec4_float_fragment
 dEQP-GLES3.functional.shaders.uniform_block.valid.member_layout_row_major_vec4_vertex
@@ -612,42 +520,10 @@
 dEQP-GLES3.functional.state_query.integers.draw_buffer_getinteger
 dEQP-GLES3.functional.state_query.integers.draw_buffer_getinteger64
 dEQP-GLES3.functional.state_query.integers.draw_buffer_getfloat
-dEQP-GLES3.functional.state_query.floats.depth_range_getinteger64
-dEQP-GLES3.functional.state_query.floats.line_width_getinteger
-dEQP-GLES3.functional.state_query.floats.line_width_getinteger64
-dEQP-GLES3.functional.state_query.floats.polygon_offset_factor_getinteger
-dEQP-GLES3.functional.state_query.floats.polygon_offset_factor_getinteger64
-dEQP-GLES3.functional.state_query.floats.polygon_offset_units_getinteger
-dEQP-GLES3.functional.state_query.floats.polygon_offset_units_getinteger64
-dEQP-GLES3.functional.state_query.floats.sample_coverage_value_getinteger
-dEQP-GLES3.functional.state_query.floats.sample_coverage_value_getinteger64
-dEQP-GLES3.functional.state_query.sampler.sampler_texture_min_lod_getsamplerparameterf
-dEQP-GLES3.functional.state_query.sampler.sampler_texture_max_lod_getsamplerparameterf
-dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_x_size_rbo
-dEQP-GLES3.functional.state_query.shader.program_active_uniform_types
-dEQP-GLES3.functional.state_query.shader.vertex_attrib_type
-dEQP-GLES3.functional.state_query.shader.vertex_attrib_integer
 dEQP-GLES3.functional.state_query.shader.uniform_value_boolean
 dEQP-GLES3.functional.state_query.internal_format.rgba_samples
 dEQP-GLES3.functional.state_query.internal_format.rgb_samples
 dEQP-GLES3.functional.state_query.string.extensions
-dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_clamp
-dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_mirror
-dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_clamp
-dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_clamp
-dEQP-GLES3.functional.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_mirror
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_mirror
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_mirror
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_mirror
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_clamp
-dEQP-GLES3.functional.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_clamp
 dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_clamp_clamp
 dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_clamp_mirror
 dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_mirror_clamp
@@ -669,121 +545,12 @@
 dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_mirror_mirror
 dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_repeat_clamp
 dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_repeat_mirror
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r16f_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r16ui_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32f_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32i_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r32ui_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8_snorm_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.r8i_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg16ui_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rg8i_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb10_a2_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb10_a2ui_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8i_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgb8ui_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba16i_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.rgba32f_3d
-dEQP-GLES3.functional.texture.specification.basic_teximage3d.srgb8_alpha8_3d
 dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth_component16_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth24_stencil8_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth32f_stencil8_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component16_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component24_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component32f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.r11f_g11f_b10f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.r16i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.r32i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8_snorm_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.r8ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg16ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg32ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8_snorm_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rg8i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb10_a2_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb10_a2ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb16ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb32ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgb8ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba16f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba16ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba32f_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba32i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8_snorm_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8i_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.rgba8ui_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.srgb8_alpha8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.size.2d_57x63_6_levels
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.depth32f_stencil8_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r11f_g11f_b10f_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16f_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16i_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r16ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32f_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32i_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r32ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8_snorm_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8_snorm_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8i_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.r8ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg16i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32f_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32i_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg32ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8_snorm_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8_snorm_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rg8ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb10_a2_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb10_a2_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16f_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16i_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb16ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb32i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb8_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb8i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgb8ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16f_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16i_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16i_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba16ui_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba32f_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba32ui_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8_snorm_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8i_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8ui_2d_array
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.rgba8ui_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.srgb8_3d
-dEQP-GLES3.functional.texture.specification.texstorage3d.format.srgb8_alpha8_3d
 dEQP-GLES3.functional.transform_feedback.random.separate.triangles.1
 dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.3
 dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.7
 dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.8
 dEQP-GLES3.functional.transform_feedback.random.interleaved.triangles.10
 dEQP-GLES3.functional.ubo.random.all_per_block_buffers.35
-dEQP-GLES3.functional.ubo.random.all_shared_buffer.37
-dEQP-GLES3.functional.ubo.random.basic_arrays.15
 dEQP-GLES3.functional.ubo.random.nested_structs_arrays.9
-dEQP-GLES3.functional.ubo.random.nested_structs_arrays.14
diff --git a/external/libpng/CMakeLists.txt b/external/libpng/CMakeLists.txt
index 0cbed64..7181ba4 100644
--- a/external/libpng/CMakeLists.txt
+++ b/external/libpng/CMakeLists.txt
@@ -53,7 +53,7 @@
 	add_definitions(-DPNG_DEBUG)
 endif ()
 
-if (DE_OS_IS_UNIX)
+if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
 	# for snprintf()
 	add_definitions(-D_XOPEN_SOURCE=600)
 endif ()
diff --git a/external/zlib/CMakeLists.txt b/external/zlib/CMakeLists.txt
index f59e023..40ca18d 100644
--- a/external/zlib/CMakeLists.txt
+++ b/external/zlib/CMakeLists.txt
@@ -60,7 +60,7 @@
 
 endif ()
 
-if (DE_OS_IS_UNIX)
+if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
 	add_definitions(-D_XOPEN_SOURCE=600)
 endif ()
 
diff --git a/framework/delibs/debase/CMakeLists.txt b/framework/delibs/debase/CMakeLists.txt
index 636d73e..800507e 100644
--- a/framework/delibs/debase/CMakeLists.txt
+++ b/framework/delibs/debase/CMakeLists.txt
@@ -29,7 +29,7 @@
 add_library(debase STATIC ${DEBASE_SRCS})
 
 # link debase to libm on unix systems
-if (DE_OS_IS_UNIX)
+if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
 	target_link_libraries(debase m)
 
 	add_definitions(-D_XOPEN_SOURCE=600)
diff --git a/framework/delibs/depool/CMakeLists.txt b/framework/delibs/depool/CMakeLists.txt
index 3a10ec2..1270d45 100644
--- a/framework/delibs/depool/CMakeLists.txt
+++ b/framework/delibs/depool/CMakeLists.txt
@@ -27,7 +27,7 @@
 	dePoolTest.h
 	)
 
-if (DE_OS_IS_UNIX)
+if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
 	# vsnprintf
 	add_definitions(-D_XOPEN_SOURCE=600)
 endif ()
diff --git a/framework/delibs/dethread/unix/deThreadUnix.c b/framework/delibs/dethread/unix/deThreadUnix.c
index 2e10168..2837291 100644
--- a/framework/delibs/dethread/unix/deThreadUnix.c
+++ b/framework/delibs/dethread/unix/deThreadUnix.c
@@ -35,7 +35,9 @@
 #include <unistd.h>
 #include <pthread.h>
 #include <sched.h>
-#include <sys/syscall.h>
+#if (DE_OS == DE_OS_UNIX) || (DE_OS == DE_OS_ANDROID)
+#	include <sys/syscall.h>
+#endif
 
 #if (DE_OS == DE_OS_OSX) || (DE_OS == DE_OS_IOS)
 #	if !defined(_SC_NPROCESSORS_CONF)
diff --git a/framework/delibs/deutil/CMakeLists.txt b/framework/delibs/deutil/CMakeLists.txt
index c98a1da..cee5409 100644
--- a/framework/delibs/deutil/CMakeLists.txt
+++ b/framework/delibs/deutil/CMakeLists.txt
@@ -41,7 +41,7 @@
 	set(DEUTIL_LIBS WS2_32)
 endif ()
 
-if (DE_OS_IS_UNIX)
+if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
 	add_definitions(-D_XOPEN_SOURCE=600)
 endif ()
 
diff --git a/framework/egl/egluStaticES20Library.inl b/framework/egl/egluStaticES20Library.inl
index 6b6bf5f..1e68aa2 100644
--- a/framework/egl/egluStaticES20Library.inl
+++ b/framework/egl/egluStaticES20Library.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 	{ "glActiveTexture",						(deFunctionPtr)glActiveTexture },
 	{ "glAttachShader",							(deFunctionPtr)glAttachShader },
diff --git a/framework/egl/egluStaticES30Library.inl b/framework/egl/egluStaticES30Library.inl
index f8da8be..a6cdd6c 100644
--- a/framework/egl/egluStaticES30Library.inl
+++ b/framework/egl/egluStaticES30Library.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 	{ "glActiveTexture",						(deFunctionPtr)glActiveTexture },
 	{ "glAttachShader",							(deFunctionPtr)glAttachShader },
diff --git a/framework/opengl/gluCallLogUtil.inl b/framework/opengl/gluCallLogUtil.inl
index b786409..9ca34af 100644
--- a/framework/opengl/gluCallLogUtil.inl
+++ b/framework/opengl/gluCallLogUtil.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 int getTextureParamNumArgs (int pname)
diff --git a/framework/opengl/gluCallLogWrapper.inl b/framework/opengl/gluCallLogWrapper.inl
index 4c02574..e90834b 100644
--- a/framework/opengl/gluCallLogWrapper.inl
+++ b/framework/opengl/gluCallLogWrapper.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 void CallLogWrapper::glActiveShaderProgram (glw::GLuint pipeline, glw::GLuint program)
@@ -618,6 +618,13 @@
 	m_gl.compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
 }
 
+void CallLogWrapper::glCompressedTexImage3DOES (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *data)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glCompressedTexImage3DOES(" << toHex(target) << ", " << level << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << border << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
+	m_gl.compressedTexImage3DOES(target, level, internalformat, width, height, depth, border, imageSize, data);
+}
+
 void CallLogWrapper::glCompressedTexSubImage1D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLsizei imageSize, const void *data)
 {
 	if (m_enableLog)
@@ -639,6 +646,13 @@
 	m_gl.compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
 }
 
+void CallLogWrapper::glCompressedTexSubImage3DOES (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glCompressedTexSubImage3DOES(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
+	m_gl.compressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
 void CallLogWrapper::glCompressedTextureImage1DEXT (glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLint border, glw::GLsizei imageSize, const void *bits)
 {
 	if (m_enableLog)
@@ -793,6 +807,13 @@
 	m_gl.copyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
 }
 
+void CallLogWrapper::glCopyTexSubImage3DOES (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glCopyTexSubImage3DOES(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
+	m_gl.copyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
 void CallLogWrapper::glCopyTextureImage1DEXT (glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLint border)
 {
 	if (m_enableLog)
@@ -1533,6 +1554,13 @@
 	m_gl.framebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
 }
 
+void CallLogWrapper::glFramebufferTexture3DOES (glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glFramebufferTexture3DOES(" << toHex(target) << ", " << toHex(attachment) << ", " << toHex(textarget) << ", " << texture << ", " << level << ", " << zoffset << ");" << TestLog::EndMessage;
+	m_gl.framebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
+}
+
 void CallLogWrapper::glFramebufferTextureLayer (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint layer)
 {
 	if (m_enableLog)
@@ -4810,6 +4838,13 @@
 	m_gl.texImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
 }
 
+void CallLogWrapper::glTexImage3DOES (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glTexImage3DOES(" << toHex(target) << ", " << level << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << border << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
+	m_gl.texImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels);
+}
+
 void CallLogWrapper::glTexPageCommitmentARB (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean commit)
 {
 	if (m_enableLog)
@@ -4915,6 +4950,13 @@
 	m_gl.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
 }
 
+void CallLogWrapper::glTexSubImage3DOES (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glTexSubImage3DOES(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
+	m_gl.texSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+}
+
 void CallLogWrapper::glTextureBarrier (void)
 {
 	if (m_enableLog)
diff --git a/framework/opengl/gluCallLogWrapperApi.inl b/framework/opengl/gluCallLogWrapperApi.inl
index 3ac2072..b86d641 100644
--- a/framework/opengl/gluCallLogWrapperApi.inl
+++ b/framework/opengl/gluCallLogWrapperApi.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 void					glActiveShaderProgram								(glw::GLuint pipeline, glw::GLuint program);
 void					glActiveTexture										(glw::GLenum texture);
@@ -89,9 +89,11 @@
 void					glCompressedTexImage1D								(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLint border, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexImage2D								(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLint border, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexImage3D								(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *data);
+void					glCompressedTexImage3DOES							(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexSubImage1D							(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexSubImage2D							(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexSubImage3D							(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data);
+void					glCompressedTexSubImage3DOES						(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data);
 void					glCompressedTextureImage1DEXT						(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLint border, glw::GLsizei imageSize, const void *bits);
 void					glCompressedTextureImage2DEXT						(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLint border, glw::GLsizei imageSize, const void *bits);
 void					glCompressedTextureImage3DEXT						(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *bits);
@@ -114,6 +116,7 @@
 void					glCopyTexSubImage1D									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint x, glw::GLint y, glw::GLsizei width);
 void					glCopyTexSubImage2D									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height);
 void					glCopyTexSubImage3D									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height);
+void					glCopyTexSubImage3DOES								(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height);
 void					glCopyTextureImage1DEXT								(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLint border);
 void					glCopyTextureImage2DEXT								(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height, glw::GLint border);
 void					glCopyTextureSubImage1D								(glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint x, glw::GLint y, glw::GLsizei width);
@@ -218,6 +221,7 @@
 void					glFramebufferTexture1D								(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level);
 void					glFramebufferTexture2D								(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level);
 void					glFramebufferTexture3D								(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset);
+void					glFramebufferTexture3DOES							(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset);
 void					glFramebufferTextureLayer							(glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint layer);
 void					glFrontFace											(glw::GLenum mode);
 void					glGenBuffers										(glw::GLsizei n, glw::GLuint *buffers);
@@ -656,6 +660,7 @@
 void					glTexImage2DMultisample								(glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLboolean fixedsamplelocations);
 void					glTexImage3D										(glw::GLenum target, glw::GLint level, glw::GLint internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexImage3DMultisample								(glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean fixedsamplelocations);
+void					glTexImage3DOES										(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexPageCommitmentARB								(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean commit);
 void					glTexParameterIiv									(glw::GLenum target, glw::GLenum pname, const glw::GLint *params);
 void					glTexParameterIuiv									(glw::GLenum target, glw::GLenum pname, const glw::GLuint *params);
@@ -671,6 +676,7 @@
 void					glTexSubImage1D										(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexSubImage2D										(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexSubImage3D										(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels);
+void					glTexSubImage3DOES									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTextureBarrier									(void);
 void					glTextureBuffer										(glw::GLuint texture, glw::GLenum internalformat, glw::GLuint buffer);
 void					glTextureBufferEXT									(glw::GLuint texture, glw::GLenum target, glw::GLenum internalformat, glw::GLuint buffer);
diff --git a/framework/opengl/gluES3PlusWrapperFuncs.inl b/framework/opengl/gluES3PlusWrapperFuncs.inl
index c70eb71..c0d7607 100644
--- a/framework/opengl/gluES3PlusWrapperFuncs.inl
+++ b/framework/opengl/gluES3PlusWrapperFuncs.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 dst->activeShaderProgram					= src.activeShaderProgram;
 dst->activeTexture							= src.activeTexture;
diff --git a/framework/opengl/gluQueryUtil.inl b/framework/opengl/gluQueryUtil.inl
index 7f30ea8..857af60 100644
--- a/framework/opengl/gluQueryUtil.inl
+++ b/framework/opengl/gluQueryUtil.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 int getBasicQueryNumArgsOut (int pname)
diff --git a/framework/opengl/gluStrUtil.inl b/framework/opengl/gluStrUtil.inl
index ef4d780..b32e4ec 100644
--- a/framework/opengl/gluStrUtil.inl
+++ b/framework/opengl/gluStrUtil.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 const char* getErrorName (int value)
diff --git a/framework/opengl/gluStrUtilPrototypes.inl b/framework/opengl/gluStrUtilPrototypes.inl
index 8cfbd72..d5374c7 100644
--- a/framework/opengl/gluStrUtilPrototypes.inl
+++ b/framework/opengl/gluStrUtilPrototypes.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 const char*							getErrorName							(int value);
 const char*							getTypeName								(int value);
diff --git a/framework/opengl/wrapper/glwApi.inl b/framework/opengl/wrapper/glwApi.inl
index c317eea..588cff2 100644
--- a/framework/opengl/wrapper/glwApi.inl
+++ b/framework/opengl/wrapper/glwApi.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 #define			glActiveShaderProgram								glwActiveShaderProgram
 #define			glActiveTexture										glwActiveTexture
@@ -89,9 +89,11 @@
 #define			glCompressedTexImage1D								glwCompressedTexImage1D
 #define			glCompressedTexImage2D								glwCompressedTexImage2D
 #define			glCompressedTexImage3D								glwCompressedTexImage3D
+#define			glCompressedTexImage3DOES							glwCompressedTexImage3DOES
 #define			glCompressedTexSubImage1D							glwCompressedTexSubImage1D
 #define			glCompressedTexSubImage2D							glwCompressedTexSubImage2D
 #define			glCompressedTexSubImage3D							glwCompressedTexSubImage3D
+#define			glCompressedTexSubImage3DOES						glwCompressedTexSubImage3DOES
 #define			glCompressedTextureImage1DEXT						glwCompressedTextureImage1DEXT
 #define			glCompressedTextureImage2DEXT						glwCompressedTextureImage2DEXT
 #define			glCompressedTextureImage3DEXT						glwCompressedTextureImage3DEXT
@@ -114,6 +116,7 @@
 #define			glCopyTexSubImage1D									glwCopyTexSubImage1D
 #define			glCopyTexSubImage2D									glwCopyTexSubImage2D
 #define			glCopyTexSubImage3D									glwCopyTexSubImage3D
+#define			glCopyTexSubImage3DOES								glwCopyTexSubImage3DOES
 #define			glCopyTextureImage1DEXT								glwCopyTextureImage1DEXT
 #define			glCopyTextureImage2DEXT								glwCopyTextureImage2DEXT
 #define			glCopyTextureSubImage1D								glwCopyTextureSubImage1D
@@ -218,6 +221,7 @@
 #define			glFramebufferTexture1D								glwFramebufferTexture1D
 #define			glFramebufferTexture2D								glwFramebufferTexture2D
 #define			glFramebufferTexture3D								glwFramebufferTexture3D
+#define			glFramebufferTexture3DOES							glwFramebufferTexture3DOES
 #define			glFramebufferTextureLayer							glwFramebufferTextureLayer
 #define			glFrontFace											glwFrontFace
 #define			glGenBuffers										glwGenBuffers
@@ -656,6 +660,7 @@
 #define			glTexImage2DMultisample								glwTexImage2DMultisample
 #define			glTexImage3D										glwTexImage3D
 #define			glTexImage3DMultisample								glwTexImage3DMultisample
+#define			glTexImage3DOES										glwTexImage3DOES
 #define			glTexPageCommitmentARB								glwTexPageCommitmentARB
 #define			glTexParameterIiv									glwTexParameterIiv
 #define			glTexParameterIuiv									glwTexParameterIuiv
@@ -671,6 +676,7 @@
 #define			glTexSubImage1D										glwTexSubImage1D
 #define			glTexSubImage2D										glwTexSubImage2D
 #define			glTexSubImage3D										glwTexSubImage3D
+#define			glTexSubImage3DOES									glwTexSubImage3DOES
 #define			glTextureBarrier									glwTextureBarrier
 #define			glTextureBuffer										glwTextureBuffer
 #define			glTextureBufferEXT									glwTextureBufferEXT
@@ -971,9 +977,11 @@
 void			glwCompressedTexImage1D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
 void			glwCompressedTexImage2D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
 void			glwCompressedTexImage3D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+void			glwCompressedTexImage3DOES							(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
 void			glwCompressedTexSubImage1D							(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
 void			glwCompressedTexSubImage2D							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
 void			glwCompressedTexSubImage3D							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+void			glwCompressedTexSubImage3DOES						(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
 void			glwCompressedTextureImage1DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
 void			glwCompressedTextureImage2DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
 void			glwCompressedTextureImage3DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
@@ -996,6 +1004,7 @@
 void			glwCopyTexSubImage1D								(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
 void			glwCopyTexSubImage2D								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 void			glwCopyTexSubImage3D								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void			glwCopyTexSubImage3DOES								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 void			glwCopyTextureImage1DEXT							(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
 void			glwCopyTextureImage2DEXT							(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
 void			glwCopyTextureSubImage1D							(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
@@ -1100,6 +1109,7 @@
 void			glwFramebufferTexture1D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 void			glwFramebufferTexture2D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 void			glwFramebufferTexture3D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void			glwFramebufferTexture3DOES							(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
 void			glwFramebufferTextureLayer							(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
 void			glwFrontFace										(GLenum mode);
 void			glwGenBuffers										(GLsizei n, GLuint *buffers);
@@ -1538,6 +1548,7 @@
 void			glwTexImage2DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
 void			glwTexImage3D										(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 void			glwTexImage3DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void			glwTexImage3DOES									(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 void			glwTexPageCommitmentARB								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
 void			glwTexParameterIiv									(GLenum target, GLenum pname, const GLint *params);
 void			glwTexParameterIuiv									(GLenum target, GLenum pname, const GLuint *params);
@@ -1553,6 +1564,7 @@
 void			glwTexSubImage1D									(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
 void			glwTexSubImage2D									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
 void			glwTexSubImage3D									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+void			glwTexSubImage3DOES									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
 void			glwTextureBarrier									();
 void			glwTextureBuffer									(GLuint texture, GLenum internalformat, GLuint buffer);
 void			glwTextureBufferEXT									(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
diff --git a/framework/opengl/wrapper/glwEnums.inl b/framework/opengl/wrapper/glwEnums.inl
index bb5d4b9..772bbbf 100644
--- a/framework/opengl/wrapper/glwEnums.inl
+++ b/framework/opengl/wrapper/glwEnums.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 #define GL_DEPTH_BUFFER_BIT												0x00000100
 #define GL_STENCIL_BUFFER_BIT											0x00000400
diff --git a/framework/opengl/wrapper/glwFunctionTypes.inl b/framework/opengl/wrapper/glwFunctionTypes.inl
index 077f8f5..2ae4b1f 100644
--- a/framework/opengl/wrapper/glwFunctionTypes.inl
+++ b/framework/opengl/wrapper/glwFunctionTypes.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 typedef GLW_APICALL void			(GLW_APIENTRY* glActiveShaderProgramFunc)								(GLuint pipeline, GLuint program);
 typedef GLW_APICALL void			(GLW_APIENTRY* glActiveTextureFunc)										(GLenum texture);
@@ -89,9 +89,11 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage1DFunc)								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage2DFunc)								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage3DFunc)								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage3DOESFunc)							(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage1DFunc)							(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage2DFunc)							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage3DFunc)							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage3DOESFunc)						(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTextureImage1DEXTFunc)						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTextureImage2DEXTFunc)						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTextureImage3DEXTFunc)						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
@@ -114,6 +116,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage1DFunc)									(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage2DFunc)									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage3DFunc)									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage3DOESFunc)								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTextureImage1DEXTFunc)								(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTextureImage2DEXTFunc)								(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTextureSubImage1DFunc)								(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
@@ -218,6 +221,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture1DFunc)								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture2DFunc)								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture3DFunc)								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture3DOESFunc)							(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTextureLayerFunc)							(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFrontFaceFunc)											(GLenum mode);
 typedef GLW_APICALL void			(GLW_APIENTRY* glGenBuffersFunc)										(GLsizei n, GLuint *buffers);
@@ -656,6 +660,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage2DMultisampleFunc)								(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage3DFunc)										(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage3DMultisampleFunc)								(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage3DOESFunc)										(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexPageCommitmentARBFunc)								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexParameterIivFunc)									(GLenum target, GLenum pname, const GLint *params);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexParameterIuivFunc)									(GLenum target, GLenum pname, const GLuint *params);
@@ -671,6 +676,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage1DFunc)										(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage2DFunc)										(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage3DFunc)										(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage3DOESFunc)									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTextureBarrierFunc)									(void);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTextureBufferFunc)										(GLuint texture, GLenum internalformat, GLuint buffer);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTextureBufferEXTFunc)									(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
diff --git a/framework/opengl/wrapper/glwFunctions.inl b/framework/opengl/wrapper/glwFunctions.inl
index 4b61f1d..d0dfd73 100644
--- a/framework/opengl/wrapper/glwFunctions.inl
+++ b/framework/opengl/wrapper/glwFunctions.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 glActiveShaderProgramFunc								activeShaderProgram;
 glActiveTextureFunc										activeTexture;
@@ -89,9 +89,11 @@
 glCompressedTexImage1DFunc								compressedTexImage1D;
 glCompressedTexImage2DFunc								compressedTexImage2D;
 glCompressedTexImage3DFunc								compressedTexImage3D;
+glCompressedTexImage3DOESFunc							compressedTexImage3DOES;
 glCompressedTexSubImage1DFunc							compressedTexSubImage1D;
 glCompressedTexSubImage2DFunc							compressedTexSubImage2D;
 glCompressedTexSubImage3DFunc							compressedTexSubImage3D;
+glCompressedTexSubImage3DOESFunc						compressedTexSubImage3DOES;
 glCompressedTextureImage1DEXTFunc						compressedTextureImage1DEXT;
 glCompressedTextureImage2DEXTFunc						compressedTextureImage2DEXT;
 glCompressedTextureImage3DEXTFunc						compressedTextureImage3DEXT;
@@ -114,6 +116,7 @@
 glCopyTexSubImage1DFunc									copyTexSubImage1D;
 glCopyTexSubImage2DFunc									copyTexSubImage2D;
 glCopyTexSubImage3DFunc									copyTexSubImage3D;
+glCopyTexSubImage3DOESFunc								copyTexSubImage3DOES;
 glCopyTextureImage1DEXTFunc								copyTextureImage1DEXT;
 glCopyTextureImage2DEXTFunc								copyTextureImage2DEXT;
 glCopyTextureSubImage1DFunc								copyTextureSubImage1D;
@@ -218,6 +221,7 @@
 glFramebufferTexture1DFunc								framebufferTexture1D;
 glFramebufferTexture2DFunc								framebufferTexture2D;
 glFramebufferTexture3DFunc								framebufferTexture3D;
+glFramebufferTexture3DOESFunc							framebufferTexture3DOES;
 glFramebufferTextureLayerFunc							framebufferTextureLayer;
 glFrontFaceFunc											frontFace;
 glGenBuffersFunc										genBuffers;
@@ -656,6 +660,7 @@
 glTexImage2DMultisampleFunc								texImage2DMultisample;
 glTexImage3DFunc										texImage3D;
 glTexImage3DMultisampleFunc								texImage3DMultisample;
+glTexImage3DOESFunc										texImage3DOES;
 glTexPageCommitmentARBFunc								texPageCommitmentARB;
 glTexParameterIivFunc									texParameterIiv;
 glTexParameterIuivFunc									texParameterIuiv;
@@ -671,6 +676,7 @@
 glTexSubImage1DFunc										texSubImage1D;
 glTexSubImage2DFunc										texSubImage2D;
 glTexSubImage3DFunc										texSubImage3D;
+glTexSubImage3DOESFunc									texSubImage3DOES;
 glTextureBarrierFunc									textureBarrier;
 glTextureBufferFunc										textureBuffer;
 glTextureBufferEXTFunc									textureBufferEXT;
diff --git a/framework/opengl/wrapper/glwImpl.inl b/framework/opengl/wrapper/glwImpl.inl
index 7c11b5a..2ff1bc9 100644
--- a/framework/opengl/wrapper/glwImpl.inl
+++ b/framework/opengl/wrapper/glwImpl.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 void glwActiveShaderProgram (GLuint pipeline, GLuint program)
@@ -692,6 +692,14 @@
 	gl->compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
 }
 
+void glwCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->compressedTexImage3DOES(target, level, internalformat, width, height, depth, border, imageSize, data);
+}
+
 void glwCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -716,6 +724,14 @@
 	gl->compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
 }
 
+void glwCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->compressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
 void glwCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -892,6 +908,14 @@
 	gl->copyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
 }
 
+void glwCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->copyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
 void glwCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -1724,6 +1748,14 @@
 	gl->framebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
 }
 
+void glwFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->framebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
+}
+
 void glwFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -5228,6 +5260,14 @@
 	gl->texImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
 }
 
+void glwTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->texImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels);
+}
+
 void glwTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -5348,6 +5388,14 @@
 	gl->texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
 }
 
+void glwTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->texSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+}
+
 void glwTextureBarrier (void)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
diff --git a/framework/opengl/wrapper/glwInitES20.inl b/framework/opengl/wrapper/glwInitES20.inl
index 921c26e..1a7fa9e 100644
--- a/framework/opengl/wrapper/glwInitES20.inl
+++ b/framework/opengl/wrapper/glwInitES20.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitES20Direct.inl b/framework/opengl/wrapper/glwInitES20Direct.inl
index d315267..eb54931 100644
--- a/framework/opengl/wrapper/glwInitES20Direct.inl
+++ b/framework/opengl/wrapper/glwInitES20Direct.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= &glActiveTexture;
 gl->attachShader						= &glAttachShader;
diff --git a/framework/opengl/wrapper/glwInitES30.inl b/framework/opengl/wrapper/glwInitES30.inl
index ba73a6a..13beaa7 100644
--- a/framework/opengl/wrapper/glwInitES30.inl
+++ b/framework/opengl/wrapper/glwInitES30.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitES30Direct.inl b/framework/opengl/wrapper/glwInitES30Direct.inl
index bac790a..71588dc 100644
--- a/framework/opengl/wrapper/glwInitES30Direct.inl
+++ b/framework/opengl/wrapper/glwInitES30Direct.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= &glActiveTexture;
 gl->attachShader						= &glAttachShader;
diff --git a/framework/opengl/wrapper/glwInitES31.inl b/framework/opengl/wrapper/glwInitES31.inl
index 5a63a36..e6a6fca 100644
--- a/framework/opengl/wrapper/glwInitES31.inl
+++ b/framework/opengl/wrapper/glwInitES31.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram					= (glActiveShaderProgramFunc)					loader->get("glActiveShaderProgram");
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitES31Direct.inl b/framework/opengl/wrapper/glwInitES31Direct.inl
index f2a44b7..0b6e02a 100644
--- a/framework/opengl/wrapper/glwInitES31Direct.inl
+++ b/framework/opengl/wrapper/glwInitES31Direct.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram					= &glActiveShaderProgram;
 gl->activeTexture						= &glActiveTexture;
diff --git a/framework/opengl/wrapper/glwInitES32.inl b/framework/opengl/wrapper/glwInitES32.inl
index 3ec0bb2..674e242 100644
--- a/framework/opengl/wrapper/glwInitES32.inl
+++ b/framework/opengl/wrapper/glwInitES32.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram					= (glActiveShaderProgramFunc)					loader->get("glActiveShaderProgram");
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitES32Direct.inl b/framework/opengl/wrapper/glwInitES32Direct.inl
index 4803493..cd12bdd 100644
--- a/framework/opengl/wrapper/glwInitES32Direct.inl
+++ b/framework/opengl/wrapper/glwInitES32Direct.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram					= &glActiveShaderProgram;
 gl->activeTexture						= &glActiveTexture;
diff --git a/framework/opengl/wrapper/glwInitExtES.inl b/framework/opengl/wrapper/glwInitExtES.inl
index b29d861..709cdaf 100644
--- a/framework/opengl/wrapper/glwInitExtES.inl
+++ b/framework/opengl/wrapper/glwInitExtES.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 if (de::contains(extSet, "GL_KHR_blend_equation_advanced"))
@@ -124,12 +124,12 @@
 
 if (de::contains(extSet, "GL_OES_texture_3D"))
 {
-	gl->compressedTexImage3D	= (glCompressedTexImage3DFunc)		loader->get("glCompressedTexImage3DOES");
-	gl->compressedTexSubImage3D	= (glCompressedTexSubImage3DFunc)	loader->get("glCompressedTexSubImage3DOES");
-	gl->copyTexSubImage3D		= (glCopyTexSubImage3DFunc)			loader->get("glCopyTexSubImage3DOES");
-	gl->framebufferTexture3D	= (glFramebufferTexture3DFunc)		loader->get("glFramebufferTexture3DOES");
-	gl->texImage3D				= (glTexImage3DFunc)				loader->get("glTexImage3DOES");
-	gl->texSubImage3D			= (glTexSubImage3DFunc)				loader->get("glTexSubImage3DOES");
+	gl->compressedTexImage3DOES		= (glCompressedTexImage3DOESFunc)		loader->get("glCompressedTexImage3DOES");
+	gl->compressedTexSubImage3DOES	= (glCompressedTexSubImage3DOESFunc)	loader->get("glCompressedTexSubImage3DOES");
+	gl->copyTexSubImage3DOES		= (glCopyTexSubImage3DOESFunc)			loader->get("glCopyTexSubImage3DOES");
+	gl->framebufferTexture3DOES		= (glFramebufferTexture3DOESFunc)		loader->get("glFramebufferTexture3DOES");
+	gl->texImage3DOES				= (glTexImage3DOESFunc)					loader->get("glTexImage3DOES");
+	gl->texSubImage3DOES			= (glTexSubImage3DOESFunc)				loader->get("glTexSubImage3DOES");
 }
 
 if (de::contains(extSet, "GL_OES_texture_storage_multisample_2d_array"))
@@ -177,3 +177,11 @@
 {
 	gl->getInternalformatSampleivNV	= (glGetInternalformatSampleivNVFunc)	loader->get("glGetInternalformatSampleivNV");
 }
+
+if (de::contains(extSet, "GL_OES_draw_elements_base_vertex"))
+{
+	gl->drawElementsBaseVertex			= (glDrawElementsBaseVertexFunc)			loader->get("glDrawElementsBaseVertexOES");
+	gl->drawElementsInstancedBaseVertex	= (glDrawElementsInstancedBaseVertexFunc)	loader->get("glDrawElementsInstancedBaseVertexOES");
+	gl->drawRangeElementsBaseVertex		= (glDrawRangeElementsBaseVertexFunc)		loader->get("glDrawRangeElementsBaseVertexOES");
+	gl->multiDrawElementsBaseVertex		= (glMultiDrawElementsBaseVertexFunc)		loader->get("glMultiDrawElementsBaseVertexOES");
+}
diff --git a/framework/opengl/wrapper/glwInitExtGL.inl b/framework/opengl/wrapper/glwInitExtGL.inl
index 7fd490a..50da75b 100644
--- a/framework/opengl/wrapper/glwInitExtGL.inl
+++ b/framework/opengl/wrapper/glwInitExtGL.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 if (de::contains(extSet, "GL_KHR_blend_equation_advanced"))
diff --git a/framework/opengl/wrapper/glwInitGL30.inl b/framework/opengl/wrapper/glwInitGL30.inl
index dcbd864..6ee285d 100644
--- a/framework/opengl/wrapper/glwInitGL30.inl
+++ b/framework/opengl/wrapper/glwInitGL30.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL31.inl b/framework/opengl/wrapper/glwInitGL31.inl
index 4ffbaf5..800bb4e 100644
--- a/framework/opengl/wrapper/glwInitGL31.inl
+++ b/framework/opengl/wrapper/glwInitGL31.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL32.inl b/framework/opengl/wrapper/glwInitGL32.inl
index 64b0b4e..2199baa 100644
--- a/framework/opengl/wrapper/glwInitGL32.inl
+++ b/framework/opengl/wrapper/glwInitGL32.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL33.inl b/framework/opengl/wrapper/glwInitGL33.inl
index ec4feb6..0225d86 100644
--- a/framework/opengl/wrapper/glwInitGL33.inl
+++ b/framework/opengl/wrapper/glwInitGL33.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL40.inl b/framework/opengl/wrapper/glwInitGL40.inl
index fb93dcf..35209c2 100644
--- a/framework/opengl/wrapper/glwInitGL40.inl
+++ b/framework/opengl/wrapper/glwInitGL40.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL41.inl b/framework/opengl/wrapper/glwInitGL41.inl
index 3772046..b3702fe 100644
--- a/framework/opengl/wrapper/glwInitGL41.inl
+++ b/framework/opengl/wrapper/glwInitGL41.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram					= (glActiveShaderProgramFunc)					loader->get("glActiveShaderProgram");
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL42.inl b/framework/opengl/wrapper/glwInitGL42.inl
index e331aa2..40d0f21 100644
--- a/framework/opengl/wrapper/glwInitGL42.inl
+++ b/framework/opengl/wrapper/glwInitGL42.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL43.inl b/framework/opengl/wrapper/glwInitGL43.inl
index afb6557..eaed3a1 100644
--- a/framework/opengl/wrapper/glwInitGL43.inl
+++ b/framework/opengl/wrapper/glwInitGL43.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL44.inl b/framework/opengl/wrapper/glwInitGL44.inl
index 3558eb6..fac353f 100644
--- a/framework/opengl/wrapper/glwInitGL44.inl
+++ b/framework/opengl/wrapper/glwInitGL44.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL45.inl b/framework/opengl/wrapper/glwInitGL45.inl
index 65d556e..fb0e831 100644
--- a/framework/opengl/wrapper/glwInitGL45.inl
+++ b/framework/opengl/wrapper/glwInitGL45.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwVersions.inl b/framework/opengl/wrapper/glwVersions.inl
index 2c1c845..00e207c 100644
--- a/framework/opengl/wrapper/glwVersions.inl
+++ b/framework/opengl/wrapper/glwVersions.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 #define GL_ES_VERSION_2_0	1
 #define GL_ES_VERSION_3_0	1
diff --git a/framework/platform/null/tcuNullRenderContextFuncs.inl b/framework/platform/null/tcuNullRenderContextFuncs.inl
index bf8bbe4..e38bb41 100644
--- a/framework/platform/null/tcuNullRenderContextFuncs.inl
+++ b/framework/platform/null/tcuNullRenderContextFuncs.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 
 GLW_APICALL void GLW_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program)
@@ -767,6 +767,20 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(internalformat);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(border);
+	DE_UNREF(imageSize);
+	DE_UNREF(data);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
 {
 	DE_UNREF(target);
@@ -809,6 +823,22 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(xoffset);
+	DE_UNREF(yoffset);
+	DE_UNREF(zoffset);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(format);
+	DE_UNREF(imageSize);
+	DE_UNREF(data);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits)
 {
 	DE_UNREF(texture);
@@ -1109,6 +1139,20 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(xoffset);
+	DE_UNREF(yoffset);
+	DE_UNREF(zoffset);
+	DE_UNREF(x);
+	DE_UNREF(y);
+	DE_UNREF(width);
+	DE_UNREF(height);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
 {
 	DE_UNREF(texture);
@@ -1923,6 +1967,17 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+	DE_UNREF(target);
+	DE_UNREF(attachment);
+	DE_UNREF(textarget);
+	DE_UNREF(texture);
+	DE_UNREF(level);
+	DE_UNREF(zoffset);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
 {
 	DE_UNREF(target);
@@ -5636,6 +5691,21 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(internalformat);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(border);
+	DE_UNREF(format);
+	DE_UNREF(type);
+	DE_UNREF(pixels);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
 {
 	DE_UNREF(target);
@@ -5793,6 +5863,22 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(xoffset);
+	DE_UNREF(yoffset);
+	DE_UNREF(zoffset);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(format);
+	DE_UNREF(type);
+	DE_UNREF(pixels);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glTextureBarrier (void)
 {
 
diff --git a/framework/platform/null/tcuNullRenderContextInitFuncs.inl b/framework/platform/null/tcuNullRenderContextInitFuncs.inl
index fe84c03..26efa10 100644
--- a/framework/platform/null/tcuNullRenderContextInitFuncs.inl
+++ b/framework/platform/null/tcuNullRenderContextInitFuncs.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
  */
 gl->activeShaderProgram								= glActiveShaderProgram;
 gl->activeTexture									= glActiveTexture;
@@ -89,9 +89,11 @@
 gl->compressedTexImage1D							= glCompressedTexImage1D;
 gl->compressedTexImage2D							= glCompressedTexImage2D;
 gl->compressedTexImage3D							= glCompressedTexImage3D;
+gl->compressedTexImage3DOES							= glCompressedTexImage3DOES;
 gl->compressedTexSubImage1D							= glCompressedTexSubImage1D;
 gl->compressedTexSubImage2D							= glCompressedTexSubImage2D;
 gl->compressedTexSubImage3D							= glCompressedTexSubImage3D;
+gl->compressedTexSubImage3DOES						= glCompressedTexSubImage3DOES;
 gl->compressedTextureImage1DEXT						= glCompressedTextureImage1DEXT;
 gl->compressedTextureImage2DEXT						= glCompressedTextureImage2DEXT;
 gl->compressedTextureImage3DEXT						= glCompressedTextureImage3DEXT;
@@ -114,6 +116,7 @@
 gl->copyTexSubImage1D								= glCopyTexSubImage1D;
 gl->copyTexSubImage2D								= glCopyTexSubImage2D;
 gl->copyTexSubImage3D								= glCopyTexSubImage3D;
+gl->copyTexSubImage3DOES							= glCopyTexSubImage3DOES;
 gl->copyTextureImage1DEXT							= glCopyTextureImage1DEXT;
 gl->copyTextureImage2DEXT							= glCopyTextureImage2DEXT;
 gl->copyTextureSubImage1D							= glCopyTextureSubImage1D;
@@ -218,6 +221,7 @@
 gl->framebufferTexture1D							= glFramebufferTexture1D;
 gl->framebufferTexture2D							= glFramebufferTexture2D;
 gl->framebufferTexture3D							= glFramebufferTexture3D;
+gl->framebufferTexture3DOES							= glFramebufferTexture3DOES;
 gl->framebufferTextureLayer							= glFramebufferTextureLayer;
 gl->frontFace										= glFrontFace;
 gl->genBuffers										= glGenBuffers;
@@ -656,6 +660,7 @@
 gl->texImage2DMultisample							= glTexImage2DMultisample;
 gl->texImage3D										= glTexImage3D;
 gl->texImage3DMultisample							= glTexImage3DMultisample;
+gl->texImage3DOES									= glTexImage3DOES;
 gl->texPageCommitmentARB							= glTexPageCommitmentARB;
 gl->texParameterIiv									= glTexParameterIiv;
 gl->texParameterIuiv								= glTexParameterIuiv;
@@ -671,6 +676,7 @@
 gl->texSubImage1D									= glTexSubImage1D;
 gl->texSubImage2D									= glTexSubImage2D;
 gl->texSubImage3D									= glTexSubImage3D;
+gl->texSubImage3DOES								= glTexSubImage3DOES;
 gl->textureBarrier									= glTextureBarrier;
 gl->textureBuffer									= glTextureBuffer;
 gl->textureBufferEXT								= glTextureBufferEXT;
diff --git a/framework/qphelper/CMakeLists.txt b/framework/qphelper/CMakeLists.txt
index 46b6a9f..e803cb9 100644
--- a/framework/qphelper/CMakeLists.txt
+++ b/framework/qphelper/CMakeLists.txt
@@ -25,7 +25,7 @@
 	${PNG_LIBRARY}
 	)
 
-if (DE_OS_IS_UNIX)
+if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
 	# For vsnprintf()
 	add_definitions(-D_XOPEN_SOURCE=600)
 endif ()
diff --git a/modules/egl/teglGLES2SharingThreadedTests.cpp b/modules/egl/teglGLES2SharingThreadedTests.cpp
index 7e0ef88..a51a674 100644
--- a/modules/egl/teglGLES2SharingThreadedTests.cpp
+++ b/modules/egl/teglGLES2SharingThreadedTests.cpp
@@ -3642,7 +3642,9 @@
 		int readyThreads = 0;
 		for (int threadNdx = 0; threadNdx < (int)m_threads.size(); threadNdx++)
 		{
-			if (m_threads[threadNdx]->getStatus() != tcu::ThreadUtil::Thread::THREADSTATUS_RUNNING)
+			const tcu::ThreadUtil::Thread::ThreadStatus status = m_threads[threadNdx]->getStatus();
+
+			if (status != tcu::ThreadUtil::Thread::THREADSTATUS_RUNNING && status != tcu::ThreadUtil::Thread::THREADSTATUS_NOT_STARTED)
 				readyThreads++;
 		}
 
diff --git a/modules/egl/teglGetProcAddressTests.inl b/modules/egl/teglGetProcAddressTests.inl
index acefb72..b140f81 100644
--- a/modules/egl/teglGetProcAddressTests.inl
+++ b/modules/egl/teglGetProcAddressTests.inl
@@ -1115,6 +1115,12 @@
 	"glDrawTransformFeedbackInstancedEXT",
 };
 
+static const char* s_GL_EXT_external_buffer[] =
+{
+	"glBufferStorageExternalEXT",
+	"glNamedBufferStorageExternalEXT",
+};
+
 static const char* s_GL_EXT_geometry_shader[] =
 {
 	"glFramebufferTextureEXT",
@@ -1127,6 +1133,38 @@
 	"glVertexAttribDivisorEXT",
 };
 
+static const char* s_GL_EXT_memory_object[] =
+{
+	"glBufferStorageMemEXT",
+	"glCreateMemoryObjectsEXT",
+	"glDeleteMemoryObjectsEXT",
+	"glGetMemoryObjectParameterivEXT",
+	"glGetUnsignedBytevEXT",
+	"glGetUnsignedBytei_vEXT",
+	"glIsMemoryObjectEXT",
+	"glMemoryObjectParameterivEXT",
+	"glNamedBufferStorageMemEXT",
+	"glTexStorageMem2DEXT",
+	"glTexStorageMem2DMultisampleEXT",
+	"glTexStorageMem3DEXT",
+	"glTexStorageMem3DMultisampleEXT",
+	"glTextureStorageMem2DEXT",
+	"glTextureStorageMem2DMultisampleEXT",
+	"glTextureStorageMem3DEXT",
+	"glTextureStorageMem3DMultisampleEXT",
+};
+
+static const char* s_GL_EXT_memory_object_fd[] =
+{
+	"glImportMemoryFdEXT",
+};
+
+static const char* s_GL_EXT_memory_object_win32[] =
+{
+	"glImportMemoryWin32HandleEXT",
+	"glImportMemoryWin32NameEXT",
+};
+
 static const char* s_GL_EXT_multi_draw_indirect[] =
 {
 	"glMultiDrawArraysIndirectEXT",
@@ -1166,6 +1204,30 @@
 	"glRasterSamplesEXT",
 };
 
+static const char* s_GL_EXT_semaphore[] =
+{
+	"glDeleteSemaphoresEXT",
+	"glGenSemaphoresEXT",
+	"glGetSemaphoreParameterui64vEXT",
+	"glGetUnsignedBytevEXT",
+	"glGetUnsignedBytei_vEXT",
+	"glIsSemaphoreEXT",
+	"glSemaphoreParameterui64vEXT",
+	"glSignalSemaphoreEXT",
+	"glWaitSemaphoreEXT",
+};
+
+static const char* s_GL_EXT_semaphore_fd[] =
+{
+	"glImportSemaphoreFdEXT",
+};
+
+static const char* s_GL_EXT_semaphore_win32[] =
+{
+	"glImportSemaphoreWin32HandleEXT",
+	"glImportSemaphoreWin32NameEXT",
+};
+
 static const char* s_GL_EXT_separate_shader_objects[] =
 {
 	"glActiveShaderProgramEXT",
@@ -1259,6 +1321,12 @@
 	"glTextureViewEXT",
 };
 
+static const char* s_GL_EXT_win32_keyed_mutex[] =
+{
+	"glAcquireKeyedMutexWin32EXT",
+	"glReleaseKeyedMutexWin32EXT",
+};
+
 static const char* s_GL_EXT_window_rectangles[] =
 {
 	"glWindowRectanglesEXT",
@@ -1703,6 +1771,11 @@
 	"glFramebufferFoveationParametersQCOM",
 };
 
+static const char* s_GL_QCOM_shader_framebuffer_fetch_noncoherent[] =
+{
+	"glFramebufferFetchBarrierQCOM",
+};
+
 static const struct
 {
 	const char*			name;
@@ -1801,14 +1874,21 @@
 	{ "GL_EXT_draw_elements_base_vertex",					DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex),					s_GL_EXT_draw_elements_base_vertex					},
 	{ "GL_EXT_draw_instanced",								DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced),							s_GL_EXT_draw_instanced								},
 	{ "GL_EXT_draw_transform_feedback",						DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_transform_feedback),					s_GL_EXT_draw_transform_feedback					},
+	{ "GL_EXT_external_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_external_buffer),							s_GL_EXT_external_buffer							},
 	{ "GL_EXT_geometry_shader",								DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader),							s_GL_EXT_geometry_shader							},
 	{ "GL_EXT_instanced_arrays",							DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays),							s_GL_EXT_instanced_arrays							},
+	{ "GL_EXT_memory_object",								DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object),								s_GL_EXT_memory_object								},
+	{ "GL_EXT_memory_object_fd",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_fd),							s_GL_EXT_memory_object_fd							},
+	{ "GL_EXT_memory_object_win32",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_win32),						s_GL_EXT_memory_object_win32						},
 	{ "GL_EXT_multi_draw_indirect",							DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect),						s_GL_EXT_multi_draw_indirect						},
 	{ "GL_EXT_multiview_draw_buffers",						DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers),					s_GL_EXT_multiview_draw_buffers						},
 	{ "GL_EXT_occlusion_query_boolean",						DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean),					s_GL_EXT_occlusion_query_boolean					},
 	{ "GL_EXT_polygon_offset_clamp",						DE_LENGTH_OF_ARRAY(s_GL_EXT_polygon_offset_clamp),						s_GL_EXT_polygon_offset_clamp						},
 	{ "GL_EXT_primitive_bounding_box",						DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box),					s_GL_EXT_primitive_bounding_box						},
 	{ "GL_EXT_raster_multisample",							DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample),						s_GL_EXT_raster_multisample							},
+	{ "GL_EXT_semaphore",									DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore),									s_GL_EXT_semaphore									},
+	{ "GL_EXT_semaphore_fd",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_fd),								s_GL_EXT_semaphore_fd								},
+	{ "GL_EXT_semaphore_win32",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_win32),							s_GL_EXT_semaphore_win32							},
 	{ "GL_EXT_separate_shader_objects",						DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects),					s_GL_EXT_separate_shader_objects					},
 	{ "GL_EXT_shader_pixel_local_storage2",					DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_pixel_local_storage2),				s_GL_EXT_shader_pixel_local_storage2				},
 	{ "GL_EXT_sparse_texture",								DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture),							s_GL_EXT_sparse_texture								},
@@ -1817,6 +1897,7 @@
 	{ "GL_EXT_texture_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer),							s_GL_EXT_texture_buffer								},
 	{ "GL_EXT_texture_filter_minmax",						DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_filter_minmax),						s_GL_EXT_texture_filter_minmax						},
 	{ "GL_EXT_texture_view",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view),								s_GL_EXT_texture_view								},
+	{ "GL_EXT_win32_keyed_mutex",							DE_LENGTH_OF_ARRAY(s_GL_EXT_win32_keyed_mutex),							s_GL_EXT_win32_keyed_mutex							},
 	{ "GL_EXT_window_rectangles",							DE_LENGTH_OF_ARRAY(s_GL_EXT_window_rectangles),							s_GL_EXT_window_rectangles							},
 	{ "GL_IMG_bindless_texture",							DE_LENGTH_OF_ARRAY(s_GL_IMG_bindless_texture),							s_GL_IMG_bindless_texture							},
 	{ "GL_IMG_framebuffer_downsample",						DE_LENGTH_OF_ARRAY(s_GL_IMG_framebuffer_downsample),					s_GL_IMG_framebuffer_downsample						},
@@ -1867,4 +1948,5 @@
 	{ "GL_OVR_multiview_multisampled_render_to_texture",	DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview_multisampled_render_to_texture),	s_GL_OVR_multiview_multisampled_render_to_texture	},
 	{ "GL_QCOM_alpha_test",									DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test),								s_GL_QCOM_alpha_test								},
 	{ "GL_QCOM_framebuffer_foveated",						DE_LENGTH_OF_ARRAY(s_GL_QCOM_framebuffer_foveated),						s_GL_QCOM_framebuffer_foveated						},
+	{ "GL_QCOM_shader_framebuffer_fetch_noncoherent",		DE_LENGTH_OF_ARRAY(s_GL_QCOM_shader_framebuffer_fetch_noncoherent),		s_GL_QCOM_shader_framebuffer_fetch_noncoherent		},
 };
diff --git a/modules/gles2/functional/es2fFboCompletenessTests.cpp b/modules/gles2/functional/es2fFboCompletenessTests.cpp
index cca35e1..a89967c 100644
--- a/modules/gles2/functional/es2fFboCompletenessTests.cpp
+++ b/modules/gles2/functional/es2fFboCompletenessTests.cpp
@@ -176,7 +176,7 @@
 	},
 	{
 		"DEQP_gles3_core_compatible",
-		(deUint32)(REQUIRED_RENDERABLE | TEXTURE_VALID | COLOR_RENDERABLE),
+		(deUint32)(REQUIRED_RENDERABLE | TEXTURE_VALID | COLOR_RENDERABLE | RENDERBUFFER_VALID),
 		GLS_ARRAY_RANGE(s_es3NoExtTextureColorRenderableFormats)
 	},
 	{
diff --git a/modules/gles31/functional/es31fNegativeComputeTests.cpp b/modules/gles31/functional/es31fNegativeComputeTests.cpp
index 7aeee99..eb2e0ec 100644
--- a/modules/gles31/functional/es31fNegativeComputeTests.cpp
+++ b/modules/gles31/functional/es31fNegativeComputeTests.cpp
@@ -800,6 +800,12 @@
 
 void invalid_write_built_in_constants (NegativeTestContext& ctx)
 {
+	if ((!ctx.isExtensionSupported("GL_EXT_tessellation_shader") && !ctx.isExtensionSupported("GL_OES_tessellation_shader")) ||
+	    (!ctx.isExtensionSupported("GL_EXT_geometry_shader") && !ctx.isExtensionSupported("GL_OES_geometry_shader")))
+	{
+		TCU_THROW(NotSupportedError, "tessellation and geometry shader extensions not supported");
+	}
+
 	const bool					isES32			= glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
 	map<string, string>			args;
 
diff --git a/modules/gles31/functional/es31fNegativeVertexArrayApiTests.cpp b/modules/gles31/functional/es31fNegativeVertexArrayApiTests.cpp
index e990455..1ed5f2d 100644
--- a/modules/gles31/functional/es31fNegativeVertexArrayApiTests.cpp
+++ b/modules/gles31/functional/es31fNegativeVertexArrayApiTests.cpp
@@ -703,10 +703,11 @@
 
 void draw_elements_base_vertex_primitive_mode_mismatch (NegativeTestContext& ctx)
 {
+	TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2)), "This test requires a 3.2 context or higher context version.");
+
 	GLfloat						vertices[1];
 	map<string, string>			args;
-	const bool					isES32	= glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
-	args["GLSL_VERSION_STRING"] = isES32 ? getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES) : getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES);
+	args["GLSL_VERSION_STRING"] = getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES);
 
 	glu::ShaderProgram			program(ctx.getRenderContext(), glu::ProgramSources() << glu::ProgramSeparable(true) << glu::VertexSource(tcu::StringTemplate(vertexShaderSource).specialize(args)) << glu::GeometrySource(geometryShaderSource));
 
@@ -1068,10 +1069,11 @@
 
 void draw_elements_instanced_base_vertex_primitive_mode_mismatch (NegativeTestContext& ctx)
 {
+	TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2)), "This test requires a 3.2 context or higher context version.");
+
 	GLfloat						vertices[1];
 	map<string, string>			args;
-	const bool					isES32	= glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
-	args["GLSL_VERSION_STRING"] = isES32 ? getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES) : getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES);
+	args["GLSL_VERSION_STRING"] = getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES);
 	glu::ShaderProgram			geometryProgram(ctx.getRenderContext(), glu::ProgramSources() << glu::ProgramSeparable(true) << glu::VertexSource(tcu::StringTemplate(vertexShaderSource).specialize(args)) << glu::GeometrySource(geometryShaderSource));
 
 	ctx.beginSection("GL_INVALID_OPERATION is generated if a geometry shader is active and mode is incompatible with the input primitive type of the geometry shader in the currently installed program object.");
@@ -1288,11 +1290,10 @@
 {
 	TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2)), "This test requires a 3.2 context or higher context version.");
 
-	const bool					isES32	= glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
 	GLuint						fbo		= 0;
 	GLfloat						vertices[1];
 	map<string, string>			args;
-	args["GLSL_VERSION_STRING"]			= isES32 ? getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES) : getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES);
+	args["GLSL_VERSION_STRING"]			= getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES);
 	glu::ShaderProgram			program	(ctx.getRenderContext(), glu::makeVtxFragSources(tcu::StringTemplate(vertexShaderSource).specialize(args), tcu::StringTemplate(fragmentShaderSource).specialize(args)));
 
 	ctx.glUseProgram(program.getProgram());
@@ -1335,10 +1336,11 @@
 
 void draw_range_elements_base_vertex_primitive_mode_mismatch (NegativeTestContext& ctx)
 {
+	TCU_CHECK_AND_THROW(NotSupportedError, contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2)), "This test requires a 3.2 context or higher context version.");
+
 	GLfloat						vertices[1];
 	map<string, string>			args;
-	const bool					isES32	= glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
-	args["GLSL_VERSION_STRING"] = isES32 ? getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES) : getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES);
+	args["GLSL_VERSION_STRING"] = getGLSLVersionDeclaration(glu::GLSL_VERSION_320_ES);
 	glu::ShaderProgram			geometryProgram(ctx.getRenderContext(), glu::ProgramSources() << glu::ProgramSeparable(true) << glu::VertexSource(tcu::StringTemplate(vertexShaderSource).specialize(args)) << glu::GeometrySource(geometryShaderSource));
 
 	ctx.beginSection("GL_INVALID_OPERATION is generated if a geometry shader is active and mode is incompatible with the input primitive type of the geometry shader in the currently installed program object.");
diff --git a/modules/gles31/functional/es31fShaderAtomicOpTests.cpp b/modules/gles31/functional/es31fShaderAtomicOpTests.cpp
index cb1690b..8a49b5b 100644
--- a/modules/gles31/functional/es31fShaderAtomicOpTests.cpp
+++ b/modules/gles31/functional/es31fShaderAtomicOpTests.cpp
@@ -751,7 +751,7 @@
 		const int		numWorkGroups	= numValues/workGroupSize;
 		const int		numBits			= m_precision == PRECISION_HIGHP ? 32 :
 										  m_precision == PRECISION_MEDIUMP ? 16 : 8;
-		const deUint32	compareMask		= numBits == 32 ? ~0u : (1u<<numBits)-1u;
+		const deUint32	compareMask		= (m_type == TYPE_UINT || numBits == 32) ? ~0u : (1u<<numBits)-1u;
 
 		for (int groupNdx = 0; groupNdx < numWorkGroups; groupNdx++)
 		{
diff --git a/modules/glshared/glsShaderExecUtil.cpp b/modules/glshared/glsShaderExecUtil.cpp
index 3c6de94..3773746 100644
--- a/modules/glshared/glsShaderExecUtil.cpp
+++ b/modules/glshared/glsShaderExecUtil.cpp
@@ -1373,10 +1373,17 @@
 
 	gl.bindBufferBase(GL_SHADER_STORAGE_BUFFER, OUTPUT_BUFFER_BINDING, getOutputBuffer());
 
+	deUint32 vertexArray;
+	gl.genVertexArrays(1, &vertexArray);
+	gl.bindVertexArray(vertexArray);
+
 	// Render patches
 	gl.patchParameteri(GL_PATCH_VERTICES, 3);
 	gl.drawArrays(GL_PATCHES, 0, 3*numValues);
 
+	gl.bindVertexArray(0);
+	gl.deleteVertexArrays(1, &vertexArray);
+
 	// Read back data
 	readOutputBuffer(outputs, numValues);
 }
@@ -1491,10 +1498,17 @@
 
 	gl.bindBufferBase(GL_SHADER_STORAGE_BUFFER, OUTPUT_BUFFER_BINDING, getOutputBuffer());
 
+	deUint32 vertexArray;
+	gl.genVertexArrays(1, &vertexArray);
+	gl.bindVertexArray(vertexArray);
+
 	// Render patches
 	gl.patchParameteri(GL_PATCH_VERTICES, 2);
 	gl.drawArrays(GL_PATCHES, 0, alignedValues);
 
+	gl.bindVertexArray(0);
+	gl.deleteVertexArrays(1, &vertexArray);
+
 	// Read back data
 	readOutputBuffer(outputs, numValues);
 }
diff --git a/scripts/opengl/src_util.py b/scripts/opengl/src_util.py
index d9bc04f..aeb96f5 100644
--- a/scripts/opengl/src_util.py
+++ b/scripts/opengl/src_util.py
@@ -38,8 +38,8 @@
 GL_SOURCE			= khr_util.registry_cache.RegistrySource(
 						"https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry",
 						"xml/gl.xml",
-						"967f96c92bae15baa1a4326a55222984befdc9ed",
-						"f281f2dc6b2206a8852670d161e15fa43723dac5042a991ff4e1702e29d7403d")
+						"7ac9c857db1e3a6065485e4e2144151f48a4f1c4",
+						"2475e1ff6d69048e67a49188d8be09195b261ed96b2b4108a0f7d7a459834674")
 
 EXTENSIONS			= [
 	'GL_KHR_texture_compression_astc_ldr',
@@ -123,6 +123,7 @@
 	'GL_ARB_vertex_attrib_binding',
 	'GL_NV_deep_texture3D',
 	'GL_NV_internalformat_sample_query',
+	'GL_OES_draw_elements_base_vertex',
 ]
 
 def getGLRegistry ():