Merge tag 'android-security-10.0.0_r53' into int/10/fp2

Android security 10.0.0 release 53

* tag 'android-security-10.0.0_r53':

Change-Id: Id65c963a8278a501b194b55896e2a77ec84d076d
diff --git a/android/cts/master/egl-master-risky.txt b/android/cts/master/egl-master-risky.txt
index 3f002c0..e69de29 100644
--- a/android/cts/master/egl-master-risky.txt
+++ b/android/cts/master/egl-master-risky.txt
@@ -1,199 +0,0 @@
-dEQP-EGL.functional.create_surface.window.rgb565_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgb565_no_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgb565_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgb565_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgb888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgb888_no_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgb888_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgb888_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgba4444_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgba4444_no_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgba4444_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgba4444_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgba5551_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgba5551_no_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgba5551_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgba5551_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgba8888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgba8888_no_depth_stencil
-dEQP-EGL.functional.create_surface.window.rgba8888_depth_no_stencil
-dEQP-EGL.functional.create_surface.window.rgba8888_depth_stencil
-dEQP-EGL.functional.create_surface.window.other
-dEQP-EGL.functional.create_surface.pixmap.rgb565_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgb565_no_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgb565_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgb565_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgb888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgb888_no_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgb888_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgb888_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba4444_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba4444_no_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba4444_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba4444_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba5551_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba5551_no_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba5551_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba5551_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba8888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba8888_no_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba8888_depth_no_stencil
-dEQP-EGL.functional.create_surface.pixmap.rgba8888_depth_stencil
-dEQP-EGL.functional.create_surface.pixmap.other
-dEQP-EGL.functional.create_surface.pbuffer.rgb565_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgb565_no_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgb565_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgb565_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgb888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgb888_no_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgb888_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgb888_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba4444_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba4444_no_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba4444_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba4444_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba5551_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba5551_no_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba5551_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba5551_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba8888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba8888_no_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba8888_depth_no_stencil
-dEQP-EGL.functional.create_surface.pbuffer.rgba8888_depth_stencil
-dEQP-EGL.functional.create_surface.pbuffer.other
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_window.other
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_ext_pixmap.other
-dEQP-EGL.functional.create_surface.platform_window.rgb565_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgb565_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgb565_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgb565_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgb888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgb888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgb888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgb888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba4444_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba4444_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba4444_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba4444_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba5551_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba5551_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba5551_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba5551_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba8888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba8888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba8888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_window.rgba8888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_window.other
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_no_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_no_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_depth_no_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_depth_stencil
-dEQP-EGL.functional.create_surface.platform_pixmap.other
-dEQP-EGL.functional.image.api.invalid_create_image
-dEQP-EGL.functional.fence_sync.valid.create_null_attribs
-dEQP-EGL.functional.fence_sync.valid.create_empty_attribs
-dEQP-EGL.functional.fence_sync.valid.wait_no_timeout
-dEQP-EGL.functional.fence_sync.valid.wait_forever
-dEQP-EGL.functional.fence_sync.valid.wait_no_context
-dEQP-EGL.functional.fence_sync.valid.wait_forever_flush
-dEQP-EGL.functional.fence_sync.valid.get_type
-dEQP-EGL.functional.fence_sync.valid.get_status
-dEQP-EGL.functional.fence_sync.valid.get_status_signaled
-dEQP-EGL.functional.fence_sync.valid.get_condition
-dEQP-EGL.functional.fence_sync.valid.destroy
-dEQP-EGL.functional.fence_sync.valid.wait_server
-dEQP-EGL.functional.fence_sync.invalid.create_invalid_display
-dEQP-EGL.functional.fence_sync.invalid.create_invalid_type
-dEQP-EGL.functional.fence_sync.invalid.create_invalid_attribs
-dEQP-EGL.functional.fence_sync.invalid.create_invalid_context
-dEQP-EGL.functional.fence_sync.invalid.wait_invalid_display
-dEQP-EGL.functional.fence_sync.invalid.wait_invalid_sync
-dEQP-EGL.functional.fence_sync.invalid.get_invalid_display
-dEQP-EGL.functional.fence_sync.invalid.get_invalid_sync
-dEQP-EGL.functional.fence_sync.invalid.get_invalid_attribute
-dEQP-EGL.functional.fence_sync.invalid.get_invalid_value
-dEQP-EGL.functional.fence_sync.invalid.destroy_invalid_display
-dEQP-EGL.functional.fence_sync.invalid.destroy_invalid_sync
-dEQP-EGL.functional.fence_sync.invalid.wait_server_invalid_display
-dEQP-EGL.functional.fence_sync.invalid.wait_server_invalid_sync
-dEQP-EGL.functional.fence_sync.invalid.wait_server_invalid_flag
-dEQP-EGL.functional.get_proc_address.core.egl15
-dEQP-EGL.functional.reusable_sync.valid.create_null_attribs
-dEQP-EGL.functional.reusable_sync.valid.create_empty_attribs
-dEQP-EGL.functional.reusable_sync.valid.wait_no_timeout
-dEQP-EGL.functional.reusable_sync.valid.wait_forever
-dEQP-EGL.functional.reusable_sync.valid.wait_no_context
-dEQP-EGL.functional.reusable_sync.valid.wait_forever_flush
-dEQP-EGL.functional.reusable_sync.valid.get_type
-dEQP-EGL.functional.reusable_sync.valid.get_status
-dEQP-EGL.functional.reusable_sync.valid.get_status_signaled
-dEQP-EGL.functional.reusable_sync.valid.destroy
-dEQP-EGL.functional.reusable_sync.invalid.create_invalid_display
-dEQP-EGL.functional.reusable_sync.invalid.create_invalid_type
-dEQP-EGL.functional.reusable_sync.invalid.create_invalid_attribs
-dEQP-EGL.functional.reusable_sync.invalid.wait_invalid_display
-dEQP-EGL.functional.reusable_sync.invalid.wait_invalid_sync
-dEQP-EGL.functional.reusable_sync.invalid.get_invalid_display
-dEQP-EGL.functional.reusable_sync.invalid.get_invalid_sync
-dEQP-EGL.functional.reusable_sync.invalid.get_invalid_attribute
-dEQP-EGL.functional.reusable_sync.invalid.get_invalid_value
-dEQP-EGL.functional.reusable_sync.invalid.destroy_invalid_display
-dEQP-EGL.functional.reusable_sync.invalid.destroy_invalid_sync
-dEQP-EGL.functional.reusable_sync.invalid.wait_server_invalid_display
-dEQP-EGL.functional.reusable_sync.invalid.wait_server_invalid_sync
diff --git a/android/cts/master/egl-master.txt b/android/cts/master/egl-master.txt
index f7fc1f6..b13dec4 100644
--- a/android/cts/master/egl-master.txt
+++ b/android/cts/master/egl-master.txt
@@ -90,6 +90,153 @@
 dEQP-EGL.functional.query_context.query_context.rgba8888_pixmap
 dEQP-EGL.functional.query_context.query_context.rgba8888_pbuffer
 dEQP-EGL.functional.query_context.query_context.other
+dEQP-EGL.functional.create_surface.window.rgb565_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgb565_no_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgb565_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgb565_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgb888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgb888_no_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgb888_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgb888_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgba4444_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgba4444_no_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgba4444_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgba4444_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgba5551_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgba5551_no_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgba5551_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgba5551_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgba8888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgba8888_no_depth_stencil
+dEQP-EGL.functional.create_surface.window.rgba8888_depth_no_stencil
+dEQP-EGL.functional.create_surface.window.rgba8888_depth_stencil
+dEQP-EGL.functional.create_surface.window.other
+dEQP-EGL.functional.create_surface.pixmap.rgb565_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgb565_no_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgb565_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgb565_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgb888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgb888_no_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgb888_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgb888_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba4444_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba4444_no_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba4444_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba4444_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba5551_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba5551_no_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba5551_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba5551_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba8888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba8888_no_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba8888_depth_no_stencil
+dEQP-EGL.functional.create_surface.pixmap.rgba8888_depth_stencil
+dEQP-EGL.functional.create_surface.pixmap.other
+dEQP-EGL.functional.create_surface.pbuffer.rgb565_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgb565_no_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgb565_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgb565_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgb888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgb888_no_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgb888_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgb888_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba4444_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba4444_no_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba4444_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba4444_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba5551_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba5551_no_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba5551_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba5551_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba8888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba8888_no_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba8888_depth_no_stencil
+dEQP-EGL.functional.create_surface.pbuffer.rgba8888_depth_stencil
+dEQP-EGL.functional.create_surface.pbuffer.other
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb565_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgb888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba4444_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba5551_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.rgba8888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_window.other
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb565_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgb888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba4444_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba5551_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.rgba8888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_ext_pixmap.other
+dEQP-EGL.functional.create_surface.platform_window.rgb565_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgb565_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgb565_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgb565_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgb888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgb888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgb888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgb888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba4444_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba4444_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba4444_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba4444_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba5551_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba5551_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba5551_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba5551_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba8888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba8888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba8888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_window.rgba8888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_window.other
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb565_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgb888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba4444_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba5551_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_no_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_no_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_depth_no_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.rgba8888_depth_stencil
+dEQP-EGL.functional.create_surface.platform_pixmap.other
 dEQP-EGL.functional.query_surface.simple.window.rgb565_no_depth_no_stencil
 dEQP-EGL.functional.query_surface.simple.window.rgb565_no_depth_stencil
 dEQP-EGL.functional.query_surface.simple.window.rgb565_depth_no_stencil
@@ -802,6 +949,7 @@
 dEQP-EGL.functional.render.multi_thread.gles2_gles3.rgba8888_pixmap
 dEQP-EGL.functional.render.multi_thread.gles2_gles3.rgba8888_pbuffer
 dEQP-EGL.functional.render.multi_thread.gles2_gles3.other
+dEQP-EGL.functional.image.api.invalid_create_image
 dEQP-EGL.functional.image.api.create_image_gles2_tex2d_red
 dEQP-EGL.functional.image.api.create_image_gles2_tex2d_rg
 dEQP-EGL.functional.image.api.create_image_gles2_tex2d_luminance
@@ -2225,6 +2373,33 @@
 dEQP-EGL.functional.negative_api.swap_interval
 dEQP-EGL.functional.negative_api.terminate
 dEQP-EGL.functional.negative_api.wait_native
+dEQP-EGL.functional.fence_sync.valid.create_null_attribs
+dEQP-EGL.functional.fence_sync.valid.create_empty_attribs
+dEQP-EGL.functional.fence_sync.valid.wait_no_timeout
+dEQP-EGL.functional.fence_sync.valid.wait_forever
+dEQP-EGL.functional.fence_sync.valid.wait_no_context
+dEQP-EGL.functional.fence_sync.valid.wait_forever_flush
+dEQP-EGL.functional.fence_sync.valid.get_type
+dEQP-EGL.functional.fence_sync.valid.get_status
+dEQP-EGL.functional.fence_sync.valid.get_status_signaled
+dEQP-EGL.functional.fence_sync.valid.get_condition
+dEQP-EGL.functional.fence_sync.valid.destroy
+dEQP-EGL.functional.fence_sync.valid.wait_server
+dEQP-EGL.functional.fence_sync.invalid.create_invalid_display
+dEQP-EGL.functional.fence_sync.invalid.create_invalid_type
+dEQP-EGL.functional.fence_sync.invalid.create_invalid_attribs
+dEQP-EGL.functional.fence_sync.invalid.create_invalid_context
+dEQP-EGL.functional.fence_sync.invalid.wait_invalid_display
+dEQP-EGL.functional.fence_sync.invalid.wait_invalid_sync
+dEQP-EGL.functional.fence_sync.invalid.get_invalid_display
+dEQP-EGL.functional.fence_sync.invalid.get_invalid_sync
+dEQP-EGL.functional.fence_sync.invalid.get_invalid_attribute
+dEQP-EGL.functional.fence_sync.invalid.get_invalid_value
+dEQP-EGL.functional.fence_sync.invalid.destroy_invalid_display
+dEQP-EGL.functional.fence_sync.invalid.destroy_invalid_sync
+dEQP-EGL.functional.fence_sync.invalid.wait_server_invalid_display
+dEQP-EGL.functional.fence_sync.invalid.wait_server_invalid_sync
+dEQP-EGL.functional.fence_sync.invalid.wait_server_invalid_flag
 dEQP-EGL.functional.multithread.config
 dEQP-EGL.functional.multithread.pbuffer
 dEQP-EGL.functional.multithread.single_window
@@ -2415,6 +2590,7 @@
 dEQP-EGL.functional.get_proc_address.extension.gl_qcom_texture_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.egl15
 dEQP-EGL.functional.get_proc_address.core.gles
 dEQP-EGL.functional.get_proc_address.core.gles2
 dEQP-EGL.functional.get_proc_address.core.gles3
@@ -3145,6 +3321,29 @@
 dEQP-EGL.functional.native_coord_mapping.pbuffer_to_native_pixmap.rgba8888_depth_stencil_render
 dEQP-EGL.functional.native_coord_mapping.pbuffer_to_native_pixmap.other_clear
 dEQP-EGL.functional.native_coord_mapping.pbuffer_to_native_pixmap.other_render
+dEQP-EGL.functional.reusable_sync.valid.create_null_attribs
+dEQP-EGL.functional.reusable_sync.valid.create_empty_attribs
+dEQP-EGL.functional.reusable_sync.valid.wait_no_timeout
+dEQP-EGL.functional.reusable_sync.valid.wait_forever
+dEQP-EGL.functional.reusable_sync.valid.wait_no_context
+dEQP-EGL.functional.reusable_sync.valid.wait_forever_flush
+dEQP-EGL.functional.reusable_sync.valid.get_type
+dEQP-EGL.functional.reusable_sync.valid.get_status
+dEQP-EGL.functional.reusable_sync.valid.get_status_signaled
+dEQP-EGL.functional.reusable_sync.valid.destroy
+dEQP-EGL.functional.reusable_sync.invalid.create_invalid_display
+dEQP-EGL.functional.reusable_sync.invalid.create_invalid_type
+dEQP-EGL.functional.reusable_sync.invalid.create_invalid_attribs
+dEQP-EGL.functional.reusable_sync.invalid.wait_invalid_display
+dEQP-EGL.functional.reusable_sync.invalid.wait_invalid_sync
+dEQP-EGL.functional.reusable_sync.invalid.get_invalid_display
+dEQP-EGL.functional.reusable_sync.invalid.get_invalid_sync
+dEQP-EGL.functional.reusable_sync.invalid.get_invalid_attribute
+dEQP-EGL.functional.reusable_sync.invalid.get_invalid_value
+dEQP-EGL.functional.reusable_sync.invalid.destroy_invalid_display
+dEQP-EGL.functional.reusable_sync.invalid.destroy_invalid_sync
+dEQP-EGL.functional.reusable_sync.invalid.wait_server_invalid_display
+dEQP-EGL.functional.reusable_sync.invalid.wait_server_invalid_sync
 dEQP-EGL.functional.resize.surface_size.shrink
 dEQP-EGL.functional.resize.surface_size.grow
 dEQP-EGL.functional.resize.surface_size.stretch_width
diff --git a/android/cts/master/src/egl-temp-excluded.txt b/android/cts/master/src/egl-temp-excluded.txt
index 3b434a7..2974117 100644
--- a/android/cts/master/src/egl-temp-excluded.txt
+++ b/android/cts/master/src/egl-temp-excluded.txt
@@ -1,8 +1 @@
 # Tests to be temporarily skipped for Android CI, but still enforced in CTS.
-
-# b/128983254
-dEQP-EGL.functional.fence_sync.*
-dEQP-EGL.functional.image.api.invalid_create_image
-dEQP-EGL.functional.create_surface.*
-dEQP-EGL.functional.get_proc_address.core.egl15
-dEQP-EGL.functional.reusable_sync.*
diff --git a/android/cts/master/src/vk-excluded-tests.txt b/android/cts/master/src/vk-excluded-tests.txt
index b874e55..7175f4f 100644
--- a/android/cts/master/src/vk-excluded-tests.txt
+++ b/android/cts/master/src/vk-excluded-tests.txt
@@ -67,3 +67,6 @@
 
 # Excluded VkRunner example tests
 dEQP-VK.vkrunner-example.*
+
+# Exclude conformance version from android test, issue 1839
+dEQP-VK.api.driver_properties.conformance_version
diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt
index 806e01d..155ca4d 100755
--- a/android/cts/master/vk-master.txt
+++ b/android/cts/master/vk-master.txt
@@ -4,7 +4,10 @@
 dEQP-VK.info.memory_limits
 dEQP-VK.api.version_check.version
 dEQP-VK.api.version_check.entry_points
-dEQP-VK.api.driver_properties.properties
+dEQP-VK.api.driver_properties.driver_id_match
+dEQP-VK.api.driver_properties.name_is_not_empty
+dEQP-VK.api.driver_properties.name_zero_terminated
+dEQP-VK.api.driver_properties.info_zero_terminated
 dEQP-VK.api.smoke.create_sampler
 dEQP-VK.api.smoke.create_shader
 dEQP-VK.api.smoke.triangle
diff --git a/executor/tools/xeExtractValues.cpp b/executor/tools/xeExtractValues.cpp
index 64a8689..5949824 100644
--- a/executor/tools/xeExtractValues.cpp
+++ b/executor/tools/xeExtractValues.cpp
@@ -110,7 +110,7 @@
 		if (item.getType() == xe::ri::TYPE_SECTION)
 		{
 			const Value value = findValueByTag(static_cast<const xe::ri::Section&>(item).items, tagName);
-			if (value.getType() != Value::TYPE_EMPTY)
+			if (value.getType() != Value::NUMVALTYPE_EMPTY)
 				return value;
 		}
 		else if (item.getType() == xe::ri::TYPE_NUMBER)
diff --git a/executor/xeTestCaseResult.cpp b/executor/xeTestCaseResult.cpp
index f007603..5e56fa4 100644
--- a/executor/xeTestCaseResult.cpp
+++ b/executor/xeTestCaseResult.cpp
@@ -71,14 +71,14 @@
 {
 	switch (value.getType())
 	{
-		case NumericValue::TYPE_FLOAT64:
+		case NumericValue::NUMVALTYPE_FLOAT64:
 			return str << std::setprecision(std::numeric_limits<double>::digits10 + 2) << value.getFloat64();
 
-		case NumericValue::TYPE_INT64:
+		case NumericValue::NUMVALTYPE_INT64:
 			return str << value.getInt64();
 
 		default:
-			DE_ASSERT(value.getType() == NumericValue::TYPE_EMPTY);
+			DE_ASSERT(value.getType() == NumericValue::NUMVALTYPE_EMPTY);
 			return str;
 	}
 }
diff --git a/executor/xeTestCaseResult.hpp b/executor/xeTestCaseResult.hpp
index 11d68ce..eef92d7 100644
--- a/executor/xeTestCaseResult.hpp
+++ b/executor/xeTestCaseResult.hpp
@@ -163,20 +163,20 @@
 public:
 	enum Type
 	{
-		TYPE_EMPTY = 0,
-		TYPE_INT64,
-		TYPE_FLOAT64,
+		NUMVALTYPE_EMPTY = 0,
+		NUMVALTYPE_INT64,
+		NUMVALTYPE_FLOAT64,
 
-		TYPE_LAST
+		NUMVALTYPE_LAST
 	};
 
-					NumericValue	(void)			: m_type(TYPE_EMPTY)	{}
-					NumericValue	(deInt64 value)	: m_type(TYPE_INT64)	{ m_value.int64 = value;	}
-					NumericValue	(double value)	: m_type(TYPE_FLOAT64)	{ m_value.float64 = value;	}
+					NumericValue	(void)			: m_type(NUMVALTYPE_EMPTY)		{}
+					NumericValue	(deInt64 value)	: m_type(NUMVALTYPE_INT64)		{ m_value.int64 = value;	}
+					NumericValue	(double value)	: m_type(NUMVALTYPE_FLOAT64)	{ m_value.float64 = value;	}
 
 	Type			getType			(void) const	{ return m_type; }
-	deInt64			getInt64		(void) const	{ DE_ASSERT(getType() == TYPE_INT64);	return m_value.int64;	}
-	double			getFloat64		(void) const	{ DE_ASSERT(getType() == TYPE_FLOAT64);	return m_value.float64;	}
+	deInt64			getInt64		(void) const	{ DE_ASSERT(getType() == NUMVALTYPE_INT64);		return m_value.int64;	}
+	double			getFloat64		(void) const	{ DE_ASSERT(getType() == NUMVALTYPE_FLOAT64);	return m_value.float64;	}
 
 private:
 	Type			m_type;
diff --git a/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
index 248fbe6..568b9e7 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
@@ -37,6 +37,15 @@
 namespace
 {
 
+enum TestType
+{
+	TEST_TYPE_DRIVER_ID_MATCH			= 0,
+	TEST_TYPE_NAME_IS_NOT_EMPTY,
+	TEST_TYPE_NAME_ZERO_TERMINATED,
+	TEST_TYPE_INFO_ZERO_TERMINATED,
+	TEST_TYPE_VERSION,
+};
+
 static const deUint32 knownDriverIds[] =
 {
 	// Specified in the Vulkan registry (vk.xml)
@@ -49,6 +58,9 @@
 	7,	// author = "Imagination Technologies"       comment = "Imagination proprietary driver"
 	8,	// author = "Qualcomm Technologies, Inc."    comment = "Qualcomm proprietary driver"
 	9,	// author = "Arm Limited"                    comment = "Arm proprietary driver"
+	10,	// <enum value="10"      name="VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR"        comment="Google LLC"/>
+	11,	// <enum value="11"      name="VK_DRIVER_ID_GGP_PROPRIETARY_KHR"           comment="Google LLC"/>
+	12,	// <enum value="12"      name="VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR"      comment="Broadcom Inc."/>
 };
 
 static const VkConformanceVersionKHR knownConformanceVersions[] =
@@ -87,15 +99,60 @@
 			(a.patch == b.patch));
 }
 
-tcu::TestStatus testQueryProperties (Context& context)
+void checkSupport (Context& context, const TestType config)
 {
-	// Check extension support
+	DE_UNREF(config);
 
+	// Check extension support
 	if (!isDeviceExtensionSupported(context.getUsedApiVersion(), context.getDeviceExtensions(), "VK_KHR_driver_properties"))
 		TCU_THROW(NotSupportedError, "Unsupported extension: VK_KHR_driver_properties");
+}
 
+void testDriverMatch (const VkPhysicalDeviceDriverPropertiesKHR& deviceDriverProperties)
+{
+	for (const deUint32* pDriverId = knownDriverIds; pDriverId != DE_ARRAY_END(knownDriverIds); ++pDriverId)
+	{
+		if (deviceDriverProperties.driverID == *pDriverId)
+			return;
+	}
+
+	TCU_FAIL("Driver ID did not match any known driver");
+}
+
+void testNameIsNotEmpty (const VkPhysicalDeviceDriverPropertiesKHR& deviceDriverProperties)
+{
+	if (deviceDriverProperties.driverName[0] == 0)
+		TCU_FAIL("Driver name is empty");
+}
+
+void testNameZeroTerminated (const VkPhysicalDeviceDriverPropertiesKHR& deviceDriverProperties)
+{
+	if (!isNullTerminated(deviceDriverProperties.driverName, VK_MAX_DRIVER_NAME_SIZE_KHR))
+		TCU_FAIL("Driver name is not a null-terminated string");
+}
+
+void testInfoZeroTerminated (const VkPhysicalDeviceDriverPropertiesKHR& deviceDriverProperties)
+{
+	if (!isNullTerminated(deviceDriverProperties.driverInfo, VK_MAX_DRIVER_INFO_SIZE_KHR))
+		TCU_FAIL("Driver info is not a null-terminated string");
+}
+
+void testVersion (const VkPhysicalDeviceDriverPropertiesKHR& deviceDriverProperties)
+{
+	for (const VkConformanceVersionKHR* pConformanceVersion  = knownConformanceVersions;
+										pConformanceVersion != DE_ARRAY_END(knownConformanceVersions);
+									  ++pConformanceVersion)
+	{
+		if (deviceDriverProperties.conformanceVersion == *pConformanceVersion)
+			return;
+	}
+
+	TCU_FAIL("Wrong driver conformance version");
+}
+
+tcu::TestStatus testQueryProperties (Context& context, const TestType testType)
+{
 	// Query the driver properties
-
 	const VkPhysicalDevice				physDevice			= context.getPhysicalDevice();
 	const int							memsetPattern		= 0xaa;
 	VkPhysicalDeviceProperties2			deviceProperties2;
@@ -112,51 +169,26 @@
 	context.getInstanceInterface().getPhysicalDeviceProperties2(physDevice, &deviceProperties2);
 
 	// Verify the returned values
-
-	bool match = false;
-
-	for (const deUint32* pDriverId = knownDriverIds; (pDriverId != DE_ARRAY_END(knownDriverIds)) && !match; ++pDriverId)
+	switch (testType)
 	{
-		if (deviceDriverProperties.driverID == *pDriverId)
-		{
-			match = true;
-
-			if (!isNullTerminated(deviceDriverProperties.driverName, VK_MAX_DRIVER_NAME_SIZE_KHR))
-				TCU_FAIL("Driver name is not a null-terminated string");
-
-			if (deviceDriverProperties.driverName[0] == 0)
-				TCU_FAIL("Driver name is empty");
-
-			if (!isNullTerminated(deviceDriverProperties.driverInfo, VK_MAX_DRIVER_INFO_SIZE_KHR))
-				TCU_FAIL("Driver info is not a null-terminated string");
-
-			bool conformanceVersionMatch = false;
-
-			for (const VkConformanceVersionKHR* pConformanceVersion  = knownConformanceVersions;
-												pConformanceVersion != DE_ARRAY_END(knownConformanceVersions);
-											  ++pConformanceVersion)
-			{
-				if (deviceDriverProperties.conformanceVersion == *pConformanceVersion)
-				{
-					conformanceVersionMatch = true;
-					break;
-				}
-			}
-
-			if (!conformanceVersionMatch)
-				TCU_FAIL("Wrong driver conformance version");
-		}
+		case TEST_TYPE_DRIVER_ID_MATCH:			testDriverMatch			(deviceDriverProperties);	break;
+		case TEST_TYPE_NAME_IS_NOT_EMPTY:		testNameIsNotEmpty		(deviceDriverProperties);	break;
+		case TEST_TYPE_NAME_ZERO_TERMINATED:	testNameZeroTerminated	(deviceDriverProperties);	break;
+		case TEST_TYPE_INFO_ZERO_TERMINATED:	testInfoZeroTerminated	(deviceDriverProperties);	break;
+		case TEST_TYPE_VERSION:					testVersion				(deviceDriverProperties);	break;
+		default:								TCU_THROW(InternalError, "Unknown test type specified");
 	}
 
-	if (!match)
-		TCU_FAIL("Driver ID did not match any known driver");
-
 	return tcu::TestStatus::pass("Pass");
 }
 
 void createTestCases (tcu::TestCaseGroup* group)
 {
-	addFunctionCase(group, "properties", "Query VkPhysicalDeviceDriverPropertiesKHR and check its values", testQueryProperties);
+	addFunctionCase(group, "driver_id_match",		"Check driverID is supported",					checkSupport,	testQueryProperties,	TEST_TYPE_DRIVER_ID_MATCH);
+	addFunctionCase(group, "name_is_not_empty",		"Check name field is not empty",				checkSupport,	testQueryProperties,	TEST_TYPE_NAME_IS_NOT_EMPTY);
+	addFunctionCase(group, "name_zero_terminated",	"Check name field is zero-terminated",			checkSupport,	testQueryProperties,	TEST_TYPE_NAME_ZERO_TERMINATED);
+	addFunctionCase(group, "info_zero_terminated",	"Check info field is zero-terminated",			checkSupport,	testQueryProperties,	TEST_TYPE_INFO_ZERO_TERMINATED);
+	addFunctionCase(group, "conformance_version",	"Check conformanceVersion reported by driver",	checkSupport,	testQueryProperties,	TEST_TYPE_VERSION);
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp b/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp
index 5d6bc77..d8c22be 100644
--- a/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp
+++ b/external/vulkancts/modules/vulkan/memory/vktMemoryAllocationTests.cpp
@@ -297,6 +297,12 @@
 		const VkDeviceSize		allocationSize	= (m_config.memorySize ? memReqs.size : (VkDeviceSize)(*m_config.memoryPercentage * (float)memoryHeap.size));
 		const VkDeviceSize		roundedUpAllocationSize	 = roundUpToNextMultiple(allocationSize, m_memoryLimits.deviceMemoryAllocationGranularity);
 		vector<VkDeviceMemory>	memoryObjects	(m_config.memoryAllocationCount, (VkDeviceMemory)0);
+		deUint32				totalAllocateCount		= m_config.memoryAllocationCount;
+		VkResult				result					= vk::VK_SUCCESS;
+		// Because of the size limitation of protect heap, we ignore the "VK_ERROR_OUT_OF_DEVICE_MEMORY"
+		// when total number of protected memory reaches 80 times.
+		const deUint32			protectHeapLimit		= 80;
+
 
 		log << TestLog::Message << "Memory type index: " << m_memoryTypeIndex << TestLog::EndMessage;
 
@@ -345,24 +351,35 @@
 									m_memoryTypeIndex									// memoryTypeIndex;
 								};
 
-								VK_CHECK(vkd.allocateMemory(device, &alloc, (const VkAllocationCallbacks*)DE_NULL, &memoryObjects[ndx]));
+								result = vkd.allocateMemory(device, &alloc, (const VkAllocationCallbacks*)DE_NULL, &memoryObjects[ndx]);
+								if ( VK_ERROR_OUT_OF_DEVICE_MEMORY == result &&
+								    (memoryType.propertyFlags & vk::VK_MEMORY_PROPERTY_PROTECTED_BIT) == vk::VK_MEMORY_PROPERTY_PROTECTED_BIT &&
+								    ndx >= protectHeapLimit)
+								{
+									totalAllocateCount = (deUint32)ndx + 1;
+									break;
+								}
+								else
+								{
+									VK_CHECK(result);
+								}
 
 								TCU_CHECK(!!memoryObjects[ndx]);
 							}
 
 							if (m_config.order == TestConfig::ALLOC_FREE)
 							{
-								for (size_t ndx = 0; ndx < m_config.memoryAllocationCount; ndx++)
+								for (size_t ndx = 0; ndx < totalAllocateCount; ndx++)
 								{
-									const VkDeviceMemory mem = memoryObjects[memoryObjects.size() - 1 - ndx];
+									const VkDeviceMemory mem = memoryObjects[totalAllocateCount - 1 - ndx];
 
 									vkd.freeMemory(device, mem, (const VkAllocationCallbacks*)DE_NULL);
-									memoryObjects[memoryObjects.size() - 1 - ndx] = (VkDeviceMemory)0;
+									memoryObjects[totalAllocateCount - 1 - ndx] = (VkDeviceMemory)0;
 								}
 							}
 							else
 							{
-								for (size_t ndx = 0; ndx < m_config.memoryAllocationCount; ndx++)
+								for (size_t ndx = 0; ndx < totalAllocateCount; ndx++)
 								{
 									const VkDeviceMemory mem = memoryObjects[ndx];
 
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSampleReadTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSampleReadTests.cpp
index 3a9eb88..0fb447b 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSampleReadTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSampleReadTests.cpp
@@ -512,8 +512,8 @@
 		(VkPipelineMultisampleStateCreateFlags)0u,
 
 		sampleCountBitFromSampleCount(sampleCount),
-		VK_FALSE,
-		0.0f,
+		VK_TRUE,
+		1.0f,
 		DE_NULL,
 		VK_FALSE,
 		VK_FALSE,
@@ -796,7 +796,8 @@
 
 SampleReadTestInstance::SampleReadTestInstance (Context& context, TestConfig config)
 	: TestInstance					(context)
-	, m_extensionSupported			((config.renderPassType == RENDERPASS_TYPE_RENDERPASS2) && context.requireDeviceExtension("VK_KHR_create_renderpass2"))
+	, m_extensionSupported			(context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_SAMPLE_RATE_SHADING) &&
+									 ((config.renderPassType != RENDERPASS_TYPE_RENDERPASS2) || context.requireDeviceExtension("VK_KHR_create_renderpass2")))
 	, m_renderPassType				(config.renderPassType)
 	, m_sampleCount					(config.sampleCount)
 	, m_width						(32u)
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp
index 9d6a38f..c0a0d41 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp
@@ -1103,7 +1103,7 @@
 
 					getDefaultColors(defaultColors);
 
-					const map<string, string>		fragments = generateGraphicsImageSamplerSource((ReadOp)opNdx, (DescriptorType)descNdx, (TestType)testNdx, DEPTH_PROPERTY_NON_DEPTH, (deUint32)resources.inputs.size(), (formatIndex + 1) % optypeimageFormatMismatchFormatCount);
+					const map<string, string>		fragments = generateGraphicsImageSamplerSource((ReadOp)opNdx, (DescriptorType)descNdx, (TestType)testNdx, DEPTH_PROPERTY_NON_DEPTH, (deUint32)resources.inputs.size(), (deUint32)((formatIndex + 1) % optypeimageFormatMismatchFormatCount));
 
 					// If testing for mismatched optypeimage, ignore the rendered
 					// result (we're only interested to see if we crash)
diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiIncrementalPresentTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiIncrementalPresentTests.cpp
index dfbd98b..e07d204 100644
--- a/external/vulkancts/modules/vulkan/wsi/vktWsiIncrementalPresentTests.cpp
+++ b/external/vulkancts/modules/vulkan/wsi/vktWsiIncrementalPresentTests.cpp
@@ -585,7 +585,7 @@
 		DE_NULL
 	};
 	const std::vector<vk::VkViewport>					viewports			(1, vk::makeViewport(tcu::UVec2(width, height)));
-	const std::vector<vk::VkRect2D>						noScissors;
+	const std::vector<vk::VkRect2D>						scissors			(1, vk::makeRect2D(tcu::UVec2(width, height)));
 
 	return vk::makeGraphicsPipeline(vkd,										// const DeviceInterface&                        vk
 									device,										// const VkDevice                                device
@@ -597,7 +597,7 @@
 									fragmentShaderModule,						// const VkShaderModule                          fragmentShaderModule
 									renderPass,									// const VkRenderPass                            renderPass
 									viewports,									// const std::vector<VkViewport>&                viewports
-									noScissors,									// const std::vector<VkRect2D>&                  scissors
+									scissors,									// const std::vector<VkRect2D>&                  scissors
 									vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	// const VkPrimitiveTopology                     topology
 									0u,											// const deUint32                                subpass
 									0u,											// const deUint32                                patchControlPoints
diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp
index ed92846..1241b0f 100644
--- a/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp
+++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSharedPresentableImageTests.cpp
@@ -498,7 +498,7 @@
 		DE_NULL
 	};
 	const std::vector<vk::VkViewport>				viewports			(1, vk::makeViewport(tcu::UVec2(width, height)));
-	const std::vector<vk::VkRect2D>					noScissors;
+	const std::vector<vk::VkRect2D>					scissors			(1, vk::makeRect2D(tcu::UVec2(width, height)));
 
 	return vk::makeGraphicsPipeline(vkd,										// const DeviceInterface&                        vk
 									device,										// const VkDevice                                device
@@ -510,7 +510,7 @@
 									fragmentShaderModule,						// const VkShaderModule                          fragmentShaderModule
 									renderPass,									// const VkRenderPass                            renderPass
 									viewports,									// const std::vector<VkViewport>&                viewports
-									noScissors,									// const std::vector<VkRect2D>&                  scissors
+									scissors,									// const std::vector<VkRect2D>&                  scissors
 									vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	// const VkPrimitiveTopology                     topology
 									0u,											// const deUint32                                subpass
 									0u,											// const deUint32                                patchControlPoints
@@ -634,20 +634,23 @@
 	const vk::VkBool32						clipped				= VK_FALSE;
 	vector<vk::VkSwapchainCreateInfoKHR>	createInfos;
 
+	const deUint32				currentWidth		= properties.currentExtent.width != 0xFFFFFFFFu
+												? properties.currentExtent.width
+												: de::min(1024u, properties.minImageExtent.width + ((properties.maxImageExtent.width - properties.minImageExtent.width) / 2));
+	const deUint32				currentHeight		= properties.currentExtent.height != 0xFFFFFFFFu
+												? properties.currentExtent.height
+												: de::min(1024u, properties.minImageExtent.height + ((properties.maxImageExtent.height - properties.minImageExtent.height) / 2));
+
 	const deUint32				imageWidth		= scaling == SCALING_NONE
-												? (properties.currentExtent.width != 0xFFFFFFFFu
-													? properties.currentExtent.width
-													: de::min(1024u, properties.minImageExtent.width + ((properties.maxImageExtent.width - properties.minImageExtent.width) / 2)))
+												? currentWidth
 												: (scaling == SCALING_UP
 													? de::max(31u, properties.minImageExtent.width)
-													: properties.maxImageExtent.width);
+													: de::min(deSmallestGreaterOrEquallPowerOfTwoU32(currentWidth+1), properties.maxImageExtent.width));
 	const deUint32				imageHeight		= scaling == SCALING_NONE
-												? (properties.currentExtent.height != 0xFFFFFFFFu
-													? properties.currentExtent.height
-													: de::min(1024u, properties.minImageExtent.height + ((properties.maxImageExtent.height - properties.minImageExtent.height) / 2)))
+												? currentHeight
 												: (scaling == SCALING_UP
 													? de::max(31u, properties.minImageExtent.height)
-													: properties.maxImageExtent.height);
+													: de::min(deSmallestGreaterOrEquallPowerOfTwoU32(currentHeight+1), properties.maxImageExtent.height));
 	const vk::VkExtent2D		imageSize		= { imageWidth, imageHeight };
 
 	{
diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
index b9359c9..f8e6ab6 100644
--- a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
+++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
@@ -574,6 +574,7 @@
 	const Unique<VkSurfaceKHR>				surface		(createSurface(instHelper.vki, *instHelper.instance, params.wsiType, *native.display, *native.window));
 	const DeviceHelper						devHelper	(context, instHelper.vki, *instHelper.instance, *surface);
 	const vector<VkSwapchainCreateInfoKHR>	cases		(generateSwapchainParameterCases(params.wsiType, params.dimension, instHelper.vki, devHelper.physicalDevice, *surface));
+	const VkSurfaceCapabilitiesKHR			capabilities(getPhysicalDeviceSurfaceCapabilities(instHelper.vki, devHelper.physicalDevice, *surface));
 
 	for (size_t caseNdx = 0; caseNdx < cases.size(); ++caseNdx)
 	{
@@ -608,10 +609,32 @@
 		switch (propertiesResult) {
 		case VK_SUCCESS:
 			{
-				const Unique<VkSwapchainKHR>	swapchain	(createSwapchainKHR(devHelper.vkd, *devHelper.device, &curParams));
+				// The maxExtents case might not be able to create the requested surface due to insufficient
+				// memory, so in this case *only* we handle the OOM exception.
+				if (params.dimension == TEST_DIMENSION_IMAGE_EXTENT &&
+					capabilities.maxImageExtent.width == curParams.imageExtent.width &&
+					capabilities.maxImageExtent.height == curParams.imageExtent.height)
+				{
+					try
+					{
+						const Unique<VkSwapchainKHR>	swapchain	(createSwapchainKHR(devHelper.vkd, *devHelper.device, &curParams));
+
+						log << TestLog::Message << subcase.str()
+							<< "Creating swapchain succeeded" << TestLog::EndMessage;
+					}
+					catch (const OutOfMemoryError& e)
+					{
+						log << TestLog::Message << subcase.str() << "vkCreateSwapchainKHR with maxImageExtent encountered " << e.getError() << TestLog::EndMessage;
+					}
+				}
+				else
+				{
+					const Unique<VkSwapchainKHR>	swapchain	(createSwapchainKHR(devHelper.vkd, *devHelper.device, &curParams));
+
+					log << TestLog::Message << subcase.str()
+						<< "Creating swapchain succeeded" << TestLog::EndMessage;
+				}
 			}
-			log << TestLog::Message << subcase.str()
-				<< "Creating swapchain succeeeded" << TestLog::EndMessage;
 			break;
 		case VK_ERROR_FORMAT_NOT_SUPPORTED:
 			log << TestLog::Message << subcase.str()
diff --git a/external/vulkancts/mustpass/1.1.2/src/master.txt b/external/vulkancts/mustpass/1.1.2/src/master.txt
index 75f311b..6df5b78 100644
--- a/external/vulkancts/mustpass/1.1.2/src/master.txt
+++ b/external/vulkancts/mustpass/1.1.2/src/master.txt
@@ -4,7 +4,11 @@
 dEQP-VK.info.memory_limits
 dEQP-VK.api.version_check.version
 dEQP-VK.api.version_check.entry_points
-dEQP-VK.api.driver_properties.properties
+dEQP-VK.api.driver_properties.driver_id_match
+dEQP-VK.api.driver_properties.name_is_not_empty
+dEQP-VK.api.driver_properties.name_zero_terminated
+dEQP-VK.api.driver_properties.info_zero_terminated
+dEQP-VK.api.driver_properties.conformance_version
 dEQP-VK.api.smoke.create_sampler
 dEQP-VK.api.smoke.create_shader
 dEQP-VK.api.smoke.triangle
diff --git a/external/vulkancts/mustpass/1.1.2/vk-default-no-waivers.txt b/external/vulkancts/mustpass/1.1.2/vk-default-no-waivers.txt
index 5c53c88..3237f90 100644
--- a/external/vulkancts/mustpass/1.1.2/vk-default-no-waivers.txt
+++ b/external/vulkancts/mustpass/1.1.2/vk-default-no-waivers.txt
@@ -4,7 +4,11 @@
 dEQP-VK.info.memory_limits
 dEQP-VK.api.version_check.version
 dEQP-VK.api.version_check.entry_points
-dEQP-VK.api.driver_properties.properties
+dEQP-VK.api.driver_properties.driver_id_match
+dEQP-VK.api.driver_properties.name_is_not_empty
+dEQP-VK.api.driver_properties.name_zero_terminated
+dEQP-VK.api.driver_properties.info_zero_terminated
+dEQP-VK.api.driver_properties.conformance_version
 dEQP-VK.api.smoke.create_sampler
 dEQP-VK.api.smoke.create_shader
 dEQP-VK.api.smoke.triangle
diff --git a/external/vulkancts/mustpass/1.1.2/vk-default.txt b/external/vulkancts/mustpass/1.1.2/vk-default.txt
index 85a80df..4989809 100644
--- a/external/vulkancts/mustpass/1.1.2/vk-default.txt
+++ b/external/vulkancts/mustpass/1.1.2/vk-default.txt
@@ -4,7 +4,11 @@
 dEQP-VK.info.memory_limits
 dEQP-VK.api.version_check.version
 dEQP-VK.api.version_check.entry_points
-dEQP-VK.api.driver_properties.properties
+dEQP-VK.api.driver_properties.driver_id_match
+dEQP-VK.api.driver_properties.name_is_not_empty
+dEQP-VK.api.driver_properties.name_zero_terminated
+dEQP-VK.api.driver_properties.info_zero_terminated
+dEQP-VK.api.driver_properties.conformance_version
 dEQP-VK.api.smoke.create_sampler
 dEQP-VK.api.smoke.create_shader
 dEQP-VK.api.smoke.triangle
diff --git a/external/vulkancts/mustpass/1.1.3/src/excluded-tests.txt b/external/vulkancts/mustpass/1.1.3/src/excluded-tests.txt
index b6755af..6785e0d 100644
--- a/external/vulkancts/mustpass/1.1.3/src/excluded-tests.txt
+++ b/external/vulkancts/mustpass/1.1.3/src/excluded-tests.txt
@@ -38,3 +38,7 @@
 
 dEQP-VK.pipeline.multisample.*.primitive_point_1px
 dEQP-VK.pipeline.multisample.*.primitive_point_1px_sparse
+
+# VK-GL-CTS 1829
+# Test shader length is excessive, excluding until such time as the test case can be re-visited.
+dEQP-VK.ssbo.layout.random.scalar.75
diff --git a/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt b/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt
index ce88b5d..24aa466 100644
--- a/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt
+++ b/external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt
@@ -4,7 +4,11 @@
 dEQP-VK.info.memory_limits
 dEQP-VK.api.version_check.version
 dEQP-VK.api.version_check.entry_points
-dEQP-VK.api.driver_properties.properties
+dEQP-VK.api.driver_properties.driver_id_match
+dEQP-VK.api.driver_properties.name_is_not_empty
+dEQP-VK.api.driver_properties.name_zero_terminated
+dEQP-VK.api.driver_properties.info_zero_terminated
+dEQP-VK.api.driver_properties.conformance_version
 dEQP-VK.api.smoke.create_sampler
 dEQP-VK.api.smoke.create_shader
 dEQP-VK.api.smoke.triangle
@@ -302535,7 +302539,6 @@
 dEQP-VK.ssbo.layout.random.scalar.72
 dEQP-VK.ssbo.layout.random.scalar.73
 dEQP-VK.ssbo.layout.random.scalar.74
-dEQP-VK.ssbo.layout.random.scalar.75
 dEQP-VK.ssbo.layout.random.scalar.76
 dEQP-VK.ssbo.layout.random.scalar.77
 dEQP-VK.ssbo.layout.random.scalar.78
diff --git a/external/vulkancts/mustpass/1.1.3/vk-default.txt b/external/vulkancts/mustpass/1.1.3/vk-default.txt
index 3560434..f8a63c3 100644
--- a/external/vulkancts/mustpass/1.1.3/vk-default.txt
+++ b/external/vulkancts/mustpass/1.1.3/vk-default.txt
@@ -4,7 +4,11 @@
 dEQP-VK.info.memory_limits
 dEQP-VK.api.version_check.version
 dEQP-VK.api.version_check.entry_points
-dEQP-VK.api.driver_properties.properties
+dEQP-VK.api.driver_properties.driver_id_match
+dEQP-VK.api.driver_properties.name_is_not_empty
+dEQP-VK.api.driver_properties.name_zero_terminated
+dEQP-VK.api.driver_properties.info_zero_terminated
+dEQP-VK.api.driver_properties.conformance_version
 dEQP-VK.api.smoke.create_sampler
 dEQP-VK.api.smoke.create_shader
 dEQP-VK.api.smoke.triangle
@@ -302497,7 +302501,6 @@
 dEQP-VK.ssbo.layout.random.scalar.72
 dEQP-VK.ssbo.layout.random.scalar.73
 dEQP-VK.ssbo.layout.random.scalar.74
-dEQP-VK.ssbo.layout.random.scalar.75
 dEQP-VK.ssbo.layout.random.scalar.76
 dEQP-VK.ssbo.layout.random.scalar.77
 dEQP-VK.ssbo.layout.random.scalar.78
diff --git a/framework/common/tcuFormatUtil.hpp b/framework/common/tcuFormatUtil.hpp
index a45c728..df74012 100644
--- a/framework/common/tcuFormatUtil.hpp
+++ b/framework/common/tcuFormatUtil.hpp
@@ -28,6 +28,8 @@
 
 #include <ostream>
 #include <string>
+#include <sstream>
+#include <iomanip>
 
 namespace tcu
 {
@@ -43,20 +45,22 @@
 
 	std::ostream& toStream (std::ostream& stream) const
 	{
-		return stream << this->toString();
+		DE_STATIC_ASSERT(0 < NumDigits && NumDigits <= 16);
+
+		return stream	<< "0x"
+						<< std::right
+						<< std::setfill('0')
+						<< std::setw(NumDigits)
+						<< std::hex
+						<< value;
 	}
 
 	std::string toString (void) const
 	{
-		DE_STATIC_ASSERT(0 < NumDigits && NumDigits <= 16);
+		std::stringstream stream;
 
-		const char longFmt[]	= {'0', 'x', '%', '0', '0' + NumDigits/10, '0' + NumDigits%10, 'l', 'l', 'x', 0};
-		const char shortFmt[]	= {'0', 'x', '%', '0', '0' + NumDigits, 'l', 'l', 'x', 0};
-
-		char buf[sizeof(deUint64)*2 + 3];
-		deSprintf(buf, sizeof(buf), NumDigits > 9 ? longFmt : shortFmt, value);
-
-		return std::string(buf);
+		toStream(stream);
+		return stream.str();
 	}
 
 private:
diff --git a/framework/common/tcuTestHierarchyIterator.cpp b/framework/common/tcuTestHierarchyIterator.cpp
index 3a72b1d..51fdf4e 100644
--- a/framework/common/tcuTestHierarchyIterator.cpp
+++ b/framework/common/tcuTestHierarchyIterator.cpp
@@ -93,7 +93,7 @@
 {
 	// Init traverse state and "seek" to first reportable node.
 	NodeIter iter(&rootNode);
-	iter.setState(NodeIter::STATE_ENTER); // Root is never reported
+	iter.setState(NodeIter::NISTATE_ENTER); // Root is never reported
 	m_sessionStack.push_back(iter);
 	next();
 }
@@ -123,10 +123,10 @@
 	{
 		const NodeIter&	iter	= m_sessionStack.back();
 
-		DE_ASSERT(iter.getState() == NodeIter::STATE_ENTER ||
-				  iter.getState() == NodeIter::STATE_LEAVE);
+		DE_ASSERT(iter.getState() == NodeIter::NISTATE_ENTER ||
+				  iter.getState() == NodeIter::NISTATE_LEAVE);
 
-		return iter.getState() == NodeIter::STATE_ENTER ? STATE_ENTER_NODE : STATE_LEAVE_NODE;
+		return iter.getState() == NodeIter::NISTATE_ENTER ? STATE_ENTER_NODE : STATE_LEAVE_NODE;
 	}
 	else
 		return STATE_FINISHED;
@@ -167,7 +167,7 @@
 
 		switch (iter.getState())
 		{
-			case NodeIter::STATE_INIT:
+			case NodeIter::NISTATE_INIT:
 			{
 				const std::string nodePath = buildNodePath(m_sessionStack);
 
@@ -179,20 +179,20 @@
 				}
 
 				m_nodePath = nodePath;
-				iter.setState(NodeIter::STATE_ENTER);
+				iter.setState(NodeIter::NISTATE_ENTER);
 				return; // Yield enter event
 			}
 
-			case NodeIter::STATE_ENTER:
+			case NodeIter::NISTATE_ENTER:
 			{
 				if (isLeaf)
 				{
-					iter.setState(NodeIter::STATE_LEAVE);
+					iter.setState(NodeIter::NISTATE_LEAVE);
 					return; // Yield leave event
 				}
 				else
 				{
-					iter.setState(NodeIter::STATE_TRAVERSE_CHILDREN);
+					iter.setState(NodeIter::NISTATE_TRAVERSE_CHILDREN);
 					iter.children.clear();
 
 					switch (node->getNodeType())
@@ -208,7 +208,7 @@
 				break;
 			}
 
-			case NodeIter::STATE_TRAVERSE_CHILDREN:
+			case NodeIter::NISTATE_TRAVERSE_CHILDREN:
 			{
 				int numChildren = (int)iter.children.size();
 				if (++iter.curChildNdx < numChildren)
@@ -219,7 +219,7 @@
 				}
 				else
 				{
-					iter.setState(NodeIter::STATE_LEAVE);
+					iter.setState(NodeIter::NISTATE_LEAVE);
 					if (node->getNodeType() != NODETYPE_ROOT)
 						return; // Yield leave event
 				}
@@ -227,7 +227,7 @@
 				break;
 			}
 
-			case NodeIter::STATE_LEAVE:
+			case NodeIter::NISTATE_LEAVE:
 			{
 				// Leave node.
 				if (!isLeaf)
diff --git a/framework/common/tcuTestHierarchyIterator.hpp b/framework/common/tcuTestHierarchyIterator.hpp
index 395f8e2..b138cba 100644
--- a/framework/common/tcuTestHierarchyIterator.hpp
+++ b/framework/common/tcuTestHierarchyIterator.hpp
@@ -131,25 +131,25 @@
 	{
 		enum State
 		{
-			STATE_INIT = 0,
-			STATE_ENTER,
-			STATE_TRAVERSE_CHILDREN,
-			STATE_LEAVE,
+			NISTATE_INIT = 0,
+			NISTATE_ENTER,
+			NISTATE_TRAVERSE_CHILDREN,
+			NISTATE_LEAVE,
 
-			STATE_LAST
+			NISTATE_LAST
 		};
 
 		NodeIter (void)
 			: node			(DE_NULL)
 			, curChildNdx	(-1)
-			, m_state		(STATE_LAST)
+			, m_state		(NISTATE_LAST)
 		{
 		}
 
 		NodeIter (TestNode* node_)
 			: node			(node_)
 			, curChildNdx	(-1)
-			, m_state		(STATE_INIT)
+			, m_state		(NISTATE_INIT)
 		{
 		}
 
@@ -162,7 +162,7 @@
 		{
 			switch (newState)
 			{
-				case STATE_TRAVERSE_CHILDREN:
+				case NISTATE_TRAVERSE_CHILDREN:
 					curChildNdx = -1;
 					break;
 
diff --git a/framework/opengl/gluDrawUtil.cpp b/framework/opengl/gluDrawUtil.cpp
index a97f9a8..0cdc501 100644
--- a/framework/opengl/gluDrawUtil.cpp
+++ b/framework/opengl/gluDrawUtil.cpp
@@ -222,7 +222,7 @@
 	for (InputIter cur = first; cur != end; ++cur)
 	{
 		const BindingPoint& binding = cur->binding;
-		if (binding.type == BindingPoint::TYPE_NAME)
+		if (binding.type == BindingPoint::BPTYPE_NAME)
 		{
 			DE_ASSERT(binding.location >= 0);
 			int location = gl.getAttribLocation(program, binding.name.c_str());
@@ -258,7 +258,7 @@
 	{
 		const BindingPoint& binding = cur->binding;
 
-		if (binding.type != BindingPoint::TYPE_LOCATION)
+		if (binding.type != BindingPoint::BPTYPE_LOCATION)
 			return false;
 
 		if (usedLocations.find(binding.location) != usedLocations.end())
@@ -279,7 +279,7 @@
 	const int	size		= elementSize*va.pointer.numElements;
 
 	// Must be assigned to location at this point.
-	DE_ASSERT(va.binding.type == BindingPoint::TYPE_LOCATION);
+	DE_ASSERT(va.binding.type == BindingPoint::BPTYPE_LOCATION);
 
 	layout.attributes.push_back(VertexAttributeDescriptor(va.binding.location,
 														  va.pointer.componentType,
@@ -388,7 +388,7 @@
 
 static inline VertexAttributeDescriptor getUserPointerDescriptor (const VertexArrayBinding& vertexArray)
 {
-	DE_ASSERT(vertexArray.binding.type == BindingPoint::TYPE_LOCATION);
+	DE_ASSERT(vertexArray.binding.type == BindingPoint::BPTYPE_LOCATION);
 
 	return VertexAttributeDescriptor(vertexArray.binding.location,
 									 vertexArray.pointer.componentType,
@@ -433,7 +433,7 @@
 {
 	for (std::vector<VertexArrayBinding>::const_iterator vaIter = bindings.begin(); vaIter != bindings.end(); ++vaIter)
 	{
-		DE_ASSERT(vaIter->binding.type == BindingPoint::TYPE_LOCATION);
+		DE_ASSERT(vaIter->binding.type == BindingPoint::BPTYPE_LOCATION);
 		gl.disableVertexAttribArray(vaIter->binding.location);
 	}
 }
diff --git a/framework/opengl/gluDrawUtil.hpp b/framework/opengl/gluDrawUtil.hpp
index 7108b7e..7933a70 100644
--- a/framework/opengl/gluDrawUtil.hpp
+++ b/framework/opengl/gluDrawUtil.hpp
@@ -94,19 +94,19 @@
 {
 	enum Type
 	{
-		TYPE_LOCATION = 0,			//!< Binding by numeric location.
-		TYPE_NAME,					//!< Binding by input name.
+		BPTYPE_LOCATION = 0,			//!< Binding by numeric location.
+		BPTYPE_NAME,					//!< Binding by input name.
 
-		TYPE_LAST
+		BPTYPE_LAST
 	};
 
 	Type			type;			//!< Binding type (name or location).
 	std::string		name;			//!< Input name, or empty if is not binding by name.
 	int				location;		//!< Input location, or offset to named location if binding by name.
 
-				BindingPoint (void)											: type(TYPE_LAST), location (0) {}
-	explicit	BindingPoint (int location_)								: type(TYPE_LOCATION), location(location_) {}
-	explicit	BindingPoint (const std::string& name_, int location_ = 0)	: type(TYPE_NAME), name(name_), location(location_) {}
+				BindingPoint (void)											: type(BPTYPE_LAST), location (0) {}
+	explicit	BindingPoint (int location_)								: type(BPTYPE_LOCATION), location(location_) {}
+	explicit	BindingPoint (const std::string& name_, int location_ = 0)	: type(BPTYPE_NAME), name(name_), location(location_) {}
 };
 
 struct VertexArrayPointer
diff --git a/framework/opengl/gluVarType.cpp b/framework/opengl/gluVarType.cpp
index fcb2c9c..0050432 100644
--- a/framework/opengl/gluVarType.cpp
+++ b/framework/opengl/gluVarType.cpp
@@ -29,25 +29,25 @@
 {
 
 VarType::VarType (void)
-	: m_type(TYPE_LAST)
+	: m_type(VARTYPE_LAST)
 {
 }
 
 VarType::VarType (const VarType& other)
-	: m_type(TYPE_LAST)
+	: m_type(VARTYPE_LAST)
 {
 	*this = other;
 }
 
 VarType::VarType (DataType basicType, Precision precision)
-	: m_type(TYPE_BASIC)
+	: m_type(VARTYPE_BASIC)
 {
 	m_data.basic.type		= basicType;
 	m_data.basic.precision	= precision;
 }
 
 VarType::VarType (const VarType& elementType, int arraySize)
-	: m_type(TYPE_ARRAY)
+	: m_type(VARTYPE_ARRAY)
 {
 	DE_ASSERT(arraySize >= 0 || arraySize == UNSIZED_ARRAY);
 	m_data.array.size			= arraySize;
@@ -55,14 +55,14 @@
 }
 
 VarType::VarType (const StructType* structPtr)
-	: m_type(TYPE_STRUCT)
+	: m_type(VARTYPE_STRUCT)
 {
 	m_data.structPtr = structPtr;
 }
 
 VarType::~VarType (void)
 {
-	if (m_type == TYPE_ARRAY)
+	if (m_type == VARTYPE_ARRAY)
 		delete m_data.array.elementType;
 }
 
@@ -71,12 +71,12 @@
 	if (this == &other)
 		return *this; // Self-assignment.
 
-	VarType *oldElementType = m_type == TYPE_ARRAY ? m_data.array.elementType : DE_NULL;
+	VarType *oldElementType = m_type == VARTYPE_ARRAY ? m_data.array.elementType : DE_NULL;
 
 	m_type	= other.m_type;
 	m_data	= Data();
 
-	if (m_type == TYPE_ARRAY)
+	if (m_type == VARTYPE_ARRAY)
 	{
 		m_data.array.elementType	= new VarType(*other.m_data.array.elementType);
 		m_data.array.size			= other.m_data.array.size;
@@ -93,10 +93,10 @@
 {
 	switch (m_type)
 	{
-		case TYPE_BASIC:	return glu::getDataTypeScalarSize(m_data.basic.type);
-		case TYPE_ARRAY:	return m_data.array.elementType->getScalarSize()*m_data.array.size;
+		case VARTYPE_BASIC:	return glu::getDataTypeScalarSize(m_data.basic.type);
+		case VARTYPE_ARRAY:	return m_data.array.elementType->getScalarSize()*m_data.array.size;
 
-		case TYPE_STRUCT:
+		case VARTYPE_STRUCT:
 		{
 			int size = 0;
 			for (StructType::ConstIterator iter = m_data.structPtr->begin(); iter != m_data.structPtr->end(); iter++)
@@ -117,15 +117,15 @@
 
 	switch (m_type)
 	{
-		case TYPE_BASIC:
+		case VARTYPE_BASIC:
 			return	m_data.basic.type == other.m_data.basic.type &&
 					m_data.basic.precision == other.m_data.basic.precision;
 
-		case TYPE_ARRAY:
+		case VARTYPE_ARRAY:
 			return	*m_data.array.elementType == *other.m_data.array.elementType &&
 					m_data.array.size == other.m_data.array.size;
 
-		case TYPE_STRUCT:
+		case VARTYPE_STRUCT:
 			return m_data.structPtr == other.m_data.structPtr;
 
 		default:
diff --git a/framework/opengl/gluVarType.hpp b/framework/opengl/gluVarType.hpp
index eb2056b..4e18496 100644
--- a/framework/opengl/gluVarType.hpp
+++ b/framework/opengl/gluVarType.hpp
@@ -55,9 +55,9 @@
 	explicit			VarType			(const StructType* structPtr);					//!< Struct type constructor.
 						~VarType		(void);
 
-	bool				isBasicType		(void) const	{ return m_type == TYPE_BASIC;	}
-	bool				isArrayType		(void) const	{ return m_type == TYPE_ARRAY;	}
-	bool				isStructType	(void) const	{ return m_type == TYPE_STRUCT;	}
+	bool				isBasicType		(void) const	{ return m_type == VARTYPE_BASIC;	}
+	bool				isArrayType		(void) const	{ return m_type == VARTYPE_ARRAY;	}
+	bool				isStructType	(void) const	{ return m_type == VARTYPE_STRUCT;	}
 
 	DataType			getBasicType	(void) const	{ DE_ASSERT(isBasicType()); return m_data.basic.type;			}
 	Precision			getPrecision	(void) const	{ DE_ASSERT(isBasicType()); return m_data.basic.precision;		}
@@ -82,11 +82,11 @@
 private:
 	enum Type
 	{
-		TYPE_BASIC,
-		TYPE_ARRAY,
-		TYPE_STRUCT,
+		VARTYPE_BASIC,
+		VARTYPE_ARRAY,
+		VARTYPE_STRUCT,
 
-		TYPE_LAST
+		VARTYPE_LAST
 	};
 
 	Type				m_type;
diff --git a/framework/opengl/gluVarTypeUtil.hpp b/framework/opengl/gluVarTypeUtil.hpp
index 559da7d..e969524 100644
--- a/framework/opengl/gluVarTypeUtil.hpp
+++ b/framework/opengl/gluVarTypeUtil.hpp
@@ -79,11 +79,11 @@
 		MATRIX_COLUMN,
 		VECTOR_COMPONENT,
 
-		TYPE_LAST
+		VTCTYPE_LAST
 	};
 
 				VarTypeComponent	(Type type_, int index_)	: type(type_), index(index_) {}
-				VarTypeComponent	(void)						: type(TYPE_LAST), index(0) {}
+				VarTypeComponent	(void)						: type(VTCTYPE_LAST), index(0) {}
 
 	bool		operator==			(const VarTypeComponent& other) const { return type == other.type && index == other.index; }
 	bool		operator!=			(const VarTypeComponent& other) const { return type != other.type || index != other.index; }
diff --git a/modules/egl/teglSimpleConfigCase.cpp b/modules/egl/teglSimpleConfigCase.cpp
index fc02455..be0e1c6 100644
--- a/modules/egl/teglSimpleConfigCase.cpp
+++ b/modules/egl/teglSimpleConfigCase.cpp
@@ -148,6 +148,11 @@
 	return c.colorComponentType() != EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT;
 }
 
+static bool notYUV (const eglu::CandidateConfig& c)
+{
+	return c.get(EGL_COLOR_BUFFER_TYPE) != EGL_YUV_BUFFER_EXT;
+}
+
 void getDefaultFilterLists (vector<NamedFilterList>& lists, const FilterList& baseFilters)
 {
 	static const struct
@@ -215,7 +220,8 @@
 				<< notColorBits<5, 5, 5, 1>
 				<< notColorBits<8, 8, 8, 8>
 				<< isConformant
-				<< notFloat;
+				<< notFloat
+				<< notYUV;
 
 		lists.push_back(filters);
 	}
diff --git a/modules/gles3/functional/es3fDitheringTests.cpp b/modules/gles3/functional/es3fDitheringTests.cpp
index 5e52d9e..a677f22 100644
--- a/modules/gles3/functional/es3fDitheringTests.cpp
+++ b/modules/gles3/functional/es3fDitheringTests.cpp
@@ -105,7 +105,7 @@
 	static const char*						getPatternTypeName			(PatternType type);
 
 private:
-	bool									checkColor					(const tcu::Vec4& inputClr, const tcu::RGBA& renderedClr, bool logErrors) const;
+	bool									checkColor					(const tcu::Vec4& inputClr, const tcu::RGBA& renderedClr, bool logErrors, const bool incTol) const;
 
 	bool									drawAndCheckGradient		(bool isVerticallyIncreasing, const tcu::Vec4& highColor) const;
 	bool									drawAndCheckUnicoloredQuad	(const tcu::Vec4& color) const;
@@ -165,7 +165,7 @@
 	m_renderer = DE_NULL;
 }
 
-bool DitheringCase::checkColor (const Vec4& inputClr, const tcu::RGBA& renderedClr, const bool logErrors) const
+bool DitheringCase::checkColor (const Vec4& inputClr, const tcu::RGBA& renderedClr, const bool logErrors, const bool incTol) const
 {
 	const IVec4		channelBits		= pixelFormatToIVec4(m_renderFormat);
 	bool			allChannelsOk	= true;
@@ -182,6 +182,12 @@
 
 		channelChoices.push_back(de::min(channelMax,	(int)deFloatCeil(scaledInput)));
 		channelChoices.push_back(de::max(0,				(int)deFloatCeil(scaledInput) - 1));
+		// Allow for more tolerance for small dimension render targets
+		if (incTol)
+		{
+			channelChoices.push_back(de::max(0,(int)deFloatCeil(scaledInput) - 2));
+			channelChoices.push_back(de::max(0,(int)deFloatCeil(scaledInput) + 1));
+		}
 
 		// If the input color results in a scaled value that is very close to an integer, account for a little bit of possible inaccuracy.
 		if (useRoundingMargin)
@@ -288,8 +294,9 @@
 			{
 				const float		inputF		= ((float)(isVerticallyIncreasing ? y : x) + 0.5f) / (float)(isVerticallyIncreasing ? renderedImg.getHeight() : renderedImg.getWidth());
 				const Vec4		inputClr	= (1.0f-inputF)*quadClr0 + inputF*quadClr1;
+				const bool              increaseTol     = ((renderedImg.getWidth() < 300) || (renderedImg.getHeight() < 300)) ? true : false;
 
-				if (!checkColor(inputClr, renderedImg.getPixel(x, y), colorChoicesOk))
+				if (!checkColor(inputClr, renderedImg.getPixel(x, y), colorChoicesOk, increaseTol))
 				{
 					errorMask.setPixel(x, y, tcu::RGBA::red());
 
@@ -399,7 +406,7 @@
 		{
 			for (int x = 0; x < renderedImg.getWidth(); x++)
 			{
-				if (!checkColor(quadColor, renderedImg.getPixel(x, y), colorChoicesOk))
+				if (!checkColor(quadColor, renderedImg.getPixel(x, y), colorChoicesOk, false))
 				{
 					errorMask.setPixel(x, y, tcu::RGBA::red());
 
diff --git a/modules/gles3/functional/es3fNegativeTextureApiTests.cpp b/modules/gles3/functional/es3fNegativeTextureApiTests.cpp
index e14fd9d..cf8a437 100644
--- a/modules/gles3/functional/es3fNegativeTextureApiTests.cpp
+++ b/modules/gles3/functional/es3fNegativeTextureApiTests.cpp
@@ -2133,6 +2133,7 @@
 		{
 			int max3DTextureSize	= m_context.getContextInfo().getInt(GL_MAX_3D_TEXTURE_SIZE) + 1;
 			int maxTextureSize		= m_context.getContextInfo().getInt(GL_MAX_TEXTURE_SIZE) + 1;
+			int maxTextureLayers	= m_context.getContextInfo().getInt(GL_MAX_ARRAY_TEXTURE_LAYERS) + 1;
 
 			m_log << TestLog::Section("", "GL_INVALID_VALUE is generated if width, height or depth is greater than GL_MAX_3D_TEXTURE_SIZE.");
 			glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, max3DTextureSize, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
@@ -2150,9 +2151,9 @@
 			expectError(GL_INVALID_VALUE);
 			glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, 1, maxTextureSize, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
 			expectError(GL_INVALID_VALUE);
-			glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, 1, 1, maxTextureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+			glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, 1, 1, maxTextureLayers, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
 			expectError(GL_INVALID_VALUE);
-			glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, maxTextureSize, maxTextureSize, maxTextureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+			glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, maxTextureSize, maxTextureSize, maxTextureLayers, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
 			expectError(GL_INVALID_VALUE);
 			m_log << TestLog::EndSection;
 		});
@@ -2605,15 +2606,16 @@
 	ES3F_ADD_API_CASE(compressedteximage3d_max_width_height_depth, "Invalid glCompressedTexImage3D() usage",
 		{
 			int maxTextureSize = m_context.getContextInfo().getInt(GL_MAX_TEXTURE_SIZE) + 1;
+			int maxTextureLayers = m_context.getContextInfo().getInt(GL_MAX_ARRAY_TEXTURE_LAYERS) + 1;
 
 			m_log << TestLog::Section("", "GL_INVALID_VALUE is generated if width, height or depth is greater than GL_MAX_TEXTURE_SIZE.");
 			glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, maxTextureSize, 0, 0, 0, 0, 0);
 			expectError(GL_INVALID_VALUE);
 			glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, 0, maxTextureSize, 0, 0, 0, 0);
 			expectError(GL_INVALID_VALUE);
-			glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, 0, 0, maxTextureSize, 0, 0, 0);
+			glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, 0, 0, maxTextureLayers, 0, 0, 0);
 			expectError(GL_INVALID_VALUE);
-			glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, maxTextureSize, maxTextureSize, maxTextureSize, 0, 0, 0);
+			glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, maxTextureSize, maxTextureSize, maxTextureLayers, 0, 0, 0);
 			expectError(GL_INVALID_VALUE);
 			m_log << TestLog::EndSection;
 		});
diff --git a/modules/gles31/functional/es31fNegativeTextureApiTests.cpp b/modules/gles31/functional/es31fNegativeTextureApiTests.cpp
index 6a9d8ea..c2f9d47 100644
--- a/modules/gles31/functional/es31fNegativeTextureApiTests.cpp
+++ b/modules/gles31/functional/es31fNegativeTextureApiTests.cpp
@@ -2780,6 +2780,7 @@
 {
 	int max3DTextureSize	= ctx.getInteger(GL_MAX_3D_TEXTURE_SIZE) + 1;
 	int maxTextureSize		= ctx.getInteger(GL_MAX_TEXTURE_SIZE) + 1;
+	int maxTextureLayers	= ctx.getInteger(GL_MAX_ARRAY_TEXTURE_LAYERS) + 1;
 
 	ctx.beginSection("GL_INVALID_VALUE is generated if width, height or depth is greater than GL_MAX_3D_TEXTURE_SIZE.");
 	ctx.glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, max3DTextureSize, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
@@ -2797,9 +2798,9 @@
 	ctx.expectError(GL_INVALID_VALUE);
 	ctx.glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, 1, maxTextureSize, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
 	ctx.expectError(GL_INVALID_VALUE);
-	ctx.glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, 1, 1, maxTextureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+	ctx.glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, 1, 1, maxTextureLayers, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
 	ctx.expectError(GL_INVALID_VALUE);
-	ctx.glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, maxTextureSize, maxTextureSize, maxTextureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+	ctx.glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, maxTextureSize, maxTextureSize, maxTextureLayers, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
 	ctx.expectError(GL_INVALID_VALUE);
 	ctx.endSection();
 }
@@ -3342,15 +3343,16 @@
 void compressedteximage3d_max_width_height_depth (NegativeTestContext& ctx)
 {
 	int maxTextureSize = ctx.getInteger(GL_MAX_TEXTURE_SIZE) + 1;
+	int maxTextureLayers = ctx.getInteger(GL_MAX_ARRAY_TEXTURE_LAYERS) + 1;
 
 	ctx.beginSection("GL_INVALID_VALUE is generated if width, height or depth is greater than GL_MAX_TEXTURE_SIZE.");
 	ctx.glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, maxTextureSize, 0, 0, 0, 0, 0);
 	ctx.expectError(GL_INVALID_VALUE);
 	ctx.glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, 0, maxTextureSize, 0, 0, 0, 0);
 	ctx.expectError(GL_INVALID_VALUE);
-	ctx.glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, 0, 0, maxTextureSize, 0, 0, 0);
+	ctx.glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, 0, 0, maxTextureLayers, 0, 0, 0);
 	ctx.expectError(GL_INVALID_VALUE);
-	ctx.glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, maxTextureSize, maxTextureSize, maxTextureSize, 0, 0, 0);
+	ctx.glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_COMPRESSED_RGBA8_ETC2_EAC, maxTextureSize, maxTextureSize, maxTextureLayers, 0, 0, 0);
 	ctx.expectError(GL_INVALID_VALUE);
 	ctx.endSection();
 }
diff --git a/modules/glshared/glsFragOpInteractionCase.cpp b/modules/glshared/glsFragOpInteractionCase.cpp
index 5b68420..563e344 100644
--- a/modules/glshared/glsFragOpInteractionCase.cpp
+++ b/modules/glshared/glsFragOpInteractionCase.cpp
@@ -313,7 +313,7 @@
 	for (int attribNdx = 0; attribNdx < vertexData.getNumEntries(); ++attribNdx)
 	{
 		const glu::VertexArrayBinding	bindingPtr	= getEntryWithPointer(vertexData, attribNdx);
-		const int						attribLoc	= bindingPtr.binding.type == glu::BindingPoint::TYPE_NAME ? ctx.getAttribLocation(program, bindingPtr.binding.name.c_str()) : bindingPtr.binding.location;
+		const int						attribLoc	= bindingPtr.binding.type == glu::BindingPoint::BPTYPE_NAME ? ctx.getAttribLocation(program, bindingPtr.binding.name.c_str()) : bindingPtr.binding.location;
 
 		DE_ASSERT(bindingPtr.pointer.componentType == glu::VTX_COMP_FLOAT);