gitlab-ci/lava: Test Lima driver with dEQP
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Sun, 6 Oct 2019 15:49:56 +0000 (08:49 -0700)
committerTomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Thu, 10 Oct 2019 14:50:14 +0000 (14:50 +0000)
Run dEQP on boards with Mali 400 and 450 in Baylibre's lab.

There's lots of skipped tests because of crashes and undetermined
behavior. May be a good idea to run the tests with valgrind and fix any
issues found.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
.gitlab-ci/arm.config
.gitlab-ci/arm64.config
.gitlab-ci/deqp-lima-fails.txt [new file with mode: 0644]
.gitlab-ci/deqp-lima-skips.txt [new file with mode: 0644]
.gitlab-ci/generate_lava.py
.gitlab-ci/lava-deqp-runner.sh
.gitlab-ci/lava-deqp.yml.jinja2
.gitlab-ci/lava-gitlab-ci.yml

index 6bcc5a8..cbef4ae 100644 (file)
@@ -11,6 +11,7 @@ CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
 CONFIG_DRM=y
 CONFIG_DRM_ROCKCHIP=y
 CONFIG_DRM_PANFROST=y
+CONFIG_DRM_LIMA=y
 CONFIG_DRM_PANEL_SIMPLE=y
 CONFIG_PWM_CROS_EC=y
 CONFIG_BACKLIGHT_PWM=y
index 44dfe86..69873ad 100644 (file)
@@ -10,6 +10,7 @@ CONFIG_DEVFREQ_GOV_PASSIVE=y
 CONFIG_DRM=y
 CONFIG_DRM_ROCKCHIP=y
 CONFIG_DRM_PANFROST=y
+CONFIG_DRM_LIMA=y
 CONFIG_DRM_PANEL_SIMPLE=y
 CONFIG_PWM_CROS_EC=y
 CONFIG_BACKLIGHT_PWM=y
@@ -37,7 +38,6 @@ CONFIG_ARCH_LAYERSCAPE=n
 CONFIG_ARCH_LG1K=n
 CONFIG_ARCH_HISI=n
 CONFIG_ARCH_MEDIATEK=n
-CONFIG_ARCH_MESON=n
 CONFIG_ARCH_MVEBU=n
 CONFIG_ARCH_QCOM=n
 CONFIG_ARCH_SEATTLE=n
diff --git a/.gitlab-ci/deqp-lima-fails.txt b/.gitlab-ci/deqp-lima-fails.txt
new file mode 100644 (file)
index 0000000..a2082c0
--- /dev/null
@@ -0,0 +1,998 @@
+dEQP-GLES2.functional.depth_stencil_clear.stencil Fail
+dEQP-GLES2.functional.depth_stencil_clear.stencil_masked Fail
+dEQP-GLES2.functional.depth_stencil_clear.stencil_scissored Fail
+dEQP-GLES2.functional.depth_stencil_clear.stencil_scissored_masked Fail
+dEQP-GLES2.functional.depth_stencil_clear.depth_stencil Fail
+dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked Fail
+dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored Fail
+dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored_masked Fail
+dEQP-GLES2.functional.buffer.write.use.index_array.array Fail
+dEQP-GLES2.functional.buffer.write.use.index_array.element_array Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_float2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_float2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_float3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_float3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_float4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_float4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_short2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_short2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_6_short3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_6_short3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_short4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_short4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_2_byte2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_3_byte3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_3_byte3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_byte4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_byte4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_fixed2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_fixed2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_fixed3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_fixed3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_fixed4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_fixed4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float2_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float2_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float3_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float3_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float4_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float4_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short2_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short2_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short3_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short3_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short4_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short4_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte2_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte2_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte3_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte3_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte4_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte4_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short2_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short3_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short4_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short4_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte2_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte2_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte3_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte3_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte4_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte4_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed2_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed2_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed3_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed3_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed4_normalized_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed4_normalized_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec3_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec3_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec4_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec4_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_static_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_stream_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_static_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_stream_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_float2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_float2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_2_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_17_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_32_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_2_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_17_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_32_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_2_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_17_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_2_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_17_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_2_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_17_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_32_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_2_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_17_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_32_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_2_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_17_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_byte2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_2_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_17_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_byte2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_fixed2_vec2_dynamic_draw_quads_1 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_fixed2_vec2_dynamic_draw_quads_256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride8_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride8_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride8_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride8_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride2_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride2_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride17_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride17_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride2_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride2_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride17_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride17_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride2_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride2_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride17_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride17_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride2_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride2_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride17_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride17_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride2_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride2_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride17_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride17_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride2_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride2_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride17_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride17_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride8_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride8_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride32_quads5 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride8_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride8_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride32_quads256 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.3 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.4 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.5 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.6 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.7 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_user_ptr_user_ptr_buffer Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_user_ptr_buffer_user_ptr Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_user_ptr_buffer_buffer Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_user_ptr_user_ptr Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_user_ptr_buffer Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_buffer_user_ptr Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_buffer_buffer Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_0 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_8 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_17 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_32 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_short2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
+dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_width_height_max_cube_neg_z BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_tex2d BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_pos_x BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_pos_y BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_pos_z BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_neg_x BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_neg_y BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_neg_z BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copyteximage2d_incomplete_framebuffer BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_invalid_target BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_level_tex2d BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_level_cube BadTerminate
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_level_max_tex2d BadTerminate
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_level_max_cube_pos BadTerminate
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_offset BadTerminate
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_offset_allowed BadTerminate
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_wdt_hgt BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_incomplete_framebuffer BadTerminate
+dEQP-GLES2.functional.negative_api.texture.deletetextures_invalid_number BadTerminate
+dEQP-GLES2.functional.negative_api.texture.deletetextures_invalid_number_bind BadTerminate
+dEQP-GLES2.functional.negative_api.texture.generatemipmap_invalid_target BadTerminate
+dEQP-GLES2.functional.negative_api.texture.generatemipmap_npot_wdt_hgt BadTerminate
+dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed BadTerminate
+dEQP-GLES2.functional.negative_api.texture.generatemipmap_incomplete_cube BadTerminate
+dEQP-GLES2.functional.negative_api.texture.gentextures_invalid_size BadTerminate
+dEQP-GLES2.functional.negative_api.texture.pixelstorei_invalid_pname BadTerminate
+dEQP-GLES2.functional.negative_api.texture.pixelstorei_invalid_param BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_target BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_format BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_type BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_inequal_width_height_cube BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_level_tex2d BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_level_cube BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_level_max_tex2d BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_level_max_cube BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_internalformat BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_width_height_tex2d BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_width_height_cube_pos_x BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_width_height_cube_pos_y BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_width_height_cube_pos_z BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_width_height_cube_neg_x BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_width_height_cube_neg_y BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_width_height_cube_neg_z BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_tex2d BadTerminatePass
+dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_pos_x BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_pos_y BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_pos_z BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_neg_x BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_neg_y BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_neg_z BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_border BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_format_mismatch BadTerminate
+dEQP-GLES2.functional.negative_api.texture.teximage2d_type_format_mismatch BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_invalid_target BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_invalid_format BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_invalid_type BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_level_tex2d BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_level_cube BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_level_max_tex2d BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_level_max_cube BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_offset BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_offset_allowed BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_wdt_hgt BadTerminate
+dEQP-GLES2.functional.negative_api.texture.texsubimage2d_type_format_mismatch BadTerminate
+dEQP-GLES2.functional.rasterization.primitives.triangles Fail
+dEQP-GLES2.functional.rasterization.primitives.triangle_strip Fail
+dEQP-GLES2.functional.rasterization.primitives.triangle_fan Fail
+dEQP-GLES2.functional.rasterization.primitives.lines Fail
+dEQP-GLES2.functional.rasterization.primitives.line_strip Fail
+dEQP-GLES2.functional.rasterization.primitives.line_loop Fail
+dEQP-GLES2.functional.rasterization.primitives.lines_wide Fail
+dEQP-GLES2.functional.rasterization.primitives.line_strip_wide Fail
+dEQP-GLES2.functional.rasterization.primitives.line_loop_wide Fail
+dEQP-GLES2.functional.rasterization.primitives.points Fail
+dEQP-GLES2.functional.rasterization.fill_rules.basic_quad Fail
+dEQP-GLES2.functional.rasterization.fill_rules.basic_quad_reverse Fail
+dEQP-GLES2.functional.rasterization.fill_rules.clipped_full Fail
+dEQP-GLES2.functional.rasterization.fill_rules.clipped_partly Fail
+dEQP-GLES2.functional.rasterization.fill_rules.projected Fail
+dEQP-GLES2.functional.rasterization.culling.front_triangles Fail
+dEQP-GLES2.functional.rasterization.culling.front_triangles_reverse Fail
+dEQP-GLES2.functional.rasterization.culling.front_triangle_strip Fail
+dEQP-GLES2.functional.rasterization.culling.front_triangle_strip_reverse Fail
+dEQP-GLES2.functional.rasterization.culling.front_triangle_fan Fail
+dEQP-GLES2.functional.rasterization.culling.front_triangle_fan_reverse Fail
+dEQP-GLES2.functional.rasterization.culling.back_triangles Fail
+dEQP-GLES2.functional.rasterization.culling.back_triangles_reverse Fail
+dEQP-GLES2.functional.rasterization.culling.back_triangle_strip Fail
+dEQP-GLES2.functional.rasterization.culling.back_triangle_strip_reverse Fail
+dEQP-GLES2.functional.rasterization.culling.back_triangle_fan Fail
+dEQP-GLES2.functional.rasterization.culling.back_triangle_fan_reverse Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.triangles Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.triangle_strip Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.triangle_fan Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.lines Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide Fail
+dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.triangles Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.triangle_strip Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.triangle_fan Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.lines Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide Fail
+dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide Fail
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec2_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec3_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec3_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec3_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.float_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.float_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.float_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bool_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bool_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec2_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec2_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec2_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec3_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec3_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec3_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.int_ivec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.int_ivec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.bool_bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.bool_bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.bool_bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.float_vec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.float_vec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.float_vec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.mat4_mat2_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.mat4_mat2_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.mat4_mat2_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.int_ivec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.int_ivec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.int_ivec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.bool_bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.bool_bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.bool_bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.float_vec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.float_vec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.float_vec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.mat4_mat2_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.mat4_mat2_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.mat4_mat2_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.int_ivec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.int_ivec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.int_ivec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.bool_bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.bool_bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.bool_bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.float_vec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.float_vec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.float_vec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.int_ivec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.int_ivec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.int_ivec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.bool_bvec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.bool_bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.bool_bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic.vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic.fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic.both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic_array.vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic_array.fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic_array.both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_nested_structs_arrays.vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_nested_structs_arrays.fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_nested_structs_arrays.both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.float_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.float_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec3_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.float_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.float_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.float_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.vec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.vec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.vec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.float_vec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.float_vec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.int_ivec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.int_ivec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.int_ivec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.bool_bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.bool_bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.bool_bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.float_vec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.float_vec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.float_vec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.int_ivec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.int_ivec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.int_ivec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.bool_bvec4_vertex BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.bool_bvec4_fragment BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.bool_bvec4_both BadTerminatePass
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.float_vec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.float_vec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.float_vec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.int_ivec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.int_ivec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.int_ivec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.bool_bvec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.bool_bvec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.bool_bvec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.float_vec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.float_vec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.float_vec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.int_ivec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.int_ivec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.int_ivec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.bool_bvec4_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.bool_bvec4_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.bool_bvec4_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_fragment BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both BadTerminate
+dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.multiple_basic_array.vertex BadTerminate
+dEQP-GLES2.functional.uniform_api.random.40 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.41 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.42 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.43 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.44 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.45 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.46 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.47 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.48 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.49 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.50 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.51 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.52 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.53 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.54 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.55 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.88 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.89 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.90 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.91 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.92 BadTerminatePass
+dEQP-GLES2.functional.uniform_api.random.93 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.94 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.95 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.96 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.97 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.98 BadTerminate
+dEQP-GLES2.functional.uniform_api.random.99 BadTerminate
+dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_1 BadTerminate
+dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_2 BadTerminate
+dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_4 BadTerminate
+dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_8 BadTerminate
+dEQP-GLES2.functional.depth_range.write.reverse Fail
+dEQP-GLES2.functional.depth_range.write.half_to_zero Fail
+dEQP-GLES2.functional.depth_range.write.one_to_half Fail
+dEQP-GLES2.functional.depth_range.write.0_8_to_third Fail
+dEQP-GLES2.functional.depth_range.write.half_to_half Fail
+dEQP-GLES2.functional.depth_range.compare.reverse Fail
+dEQP-GLES2.functional.depth_range.compare.half_to_zero Fail
+dEQP-GLES2.functional.depth_range.compare.one_to_half Fail
+dEQP-GLES2.functional.depth_range.compare.0_8_to_third Fail
+dEQP-GLES2.functional.depth_range.compare.half_to_half Fail
+dEQP-GLES2.functional.dither.disabled.gradient_white Fail
+dEQP-GLES2.functional.dither.disabled.gradient_red Fail
+dEQP-GLES2.functional.dither.disabled.gradient_green Fail
+dEQP-GLES2.functional.dither.disabled.gradient_blue Fail
+dEQP-GLES2.functional.dither.disabled.gradient_alpha Fail
+dEQP-GLES2.functional.dither.disabled.unicolored_quad_white Fail
+dEQP-GLES2.functional.dither.disabled.unicolored_quad_red Fail
+dEQP-GLES2.functional.dither.disabled.unicolored_quad_green Fail
+dEQP-GLES2.functional.dither.disabled.unicolored_quad_blue Fail
+dEQP-GLES2.functional.dither.disabled.unicolored_quad_alpha Fail
+dEQP-GLES2.functional.state_query.fbo.framebuffer_attachment_texture_cube_map_face BadTerminate
+dEQP-GLES2.functional.state_query.rbo.renderbuffer_size BadTerminate
+dEQP-GLES2.functional.state_query.rbo.renderbuffer_internal_format BadTerminate
+dEQP-GLES2.functional.state_query.rbo.renderbuffer_component_size_color BadTerminate
+dEQP-GLES2.functional.draw.draw_arrays.first.first_0 Fail
+dEQP-GLES2.functional.draw.draw_arrays.first.first_1 Fail
+dEQP-GLES2.functional.draw.draw_arrays.first.first_17 Fail
+dEQP-GLES2.functional.draw.draw_arrays.points.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.points.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_arrays.points.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangles.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangles.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangles.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangle_fan.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangle_fan.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangle_fan.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangle_strip.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangle_strip.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_arrays.triangle_strip.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.lines.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.lines.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_arrays.lines.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.line_strip.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.line_strip.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_arrays.line_strip.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.line_loop.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_arrays.line_loop.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_arrays.line_loop.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.indices.user_ptr.index_byte Fail
+dEQP-GLES2.functional.draw.draw_elements.indices.user_ptr.index_short Fail
+dEQP-GLES2.functional.draw.draw_elements.indices.unaligned_user_ptr.index_short Fail
+dEQP-GLES2.functional.draw.draw_elements.indices.buffer.index_byte Fail
+dEQP-GLES2.functional.draw.draw_elements.indices.buffer.index_short Fail
+dEQP-GLES2.functional.draw.draw_elements.points.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.points.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_elements.points.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.triangles.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.triangles.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_elements.triangles.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.triangle_fan.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.triangle_fan.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_elements.triangle_fan.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.triangle_strip.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.triangle_strip.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_elements.triangle_strip.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.lines.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.lines.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_elements.lines.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.line_strip.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.line_strip.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_elements.line_strip.default_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.line_loop.single_attribute Fail
+dEQP-GLES2.functional.draw.draw_elements.line_loop.multiple_attributes Fail
+dEQP-GLES2.functional.draw.draw_elements.line_loop.default_attribute Fail
+dEQP-GLES2.functional.draw.random.0 Fail
+dEQP-GLES2.functional.draw.random.1 Fail
+dEQP-GLES2.functional.draw.random.2 Fail
+dEQP-GLES2.functional.draw.random.6 Fail
+dEQP-GLES2.functional.draw.random.8 Fail
+dEQP-GLES2.functional.draw.random.9 Fail
+dEQP-GLES2.functional.draw.random.10 Fail
+dEQP-GLES2.functional.draw.random.12 Fail
+dEQP-GLES2.functional.draw.random.14 Fail
+dEQP-GLES2.functional.draw.random.16 Fail
+dEQP-GLES2.functional.draw.random.17 Fail
+dEQP-GLES2.functional.draw.random.18 Fail
+dEQP-GLES2.functional.draw.random.20 Fail
+dEQP-GLES2.functional.draw.random.21 Fail
+dEQP-GLES2.functional.draw.random.25 Fail
+dEQP-GLES2.functional.draw.random.26 Fail
+dEQP-GLES2.functional.draw.random.28 Fail
+dEQP-GLES2.functional.draw.random.30 Fail
+dEQP-GLES2.functional.draw.random.31 Fail
+dEQP-GLES2.functional.draw.random.32 Fail
+dEQP-GLES2.functional.draw.random.33 Fail
+dEQP-GLES2.functional.draw.random.34 Fail
+dEQP-GLES2.functional.draw.random.36 Fail
+dEQP-GLES2.functional.draw.random.37 Fail
+dEQP-GLES2.functional.draw.random.39 Fail
+dEQP-GLES2.functional.draw.random.40 Fail
+dEQP-GLES2.functional.draw.random.41 Fail
+dEQP-GLES2.functional.draw.random.42 Fail
+dEQP-GLES2.functional.draw.random.43 Fail
+dEQP-GLES2.functional.draw.random.44 Fail
+dEQP-GLES2.functional.draw.random.45 Fail
+dEQP-GLES2.functional.draw.random.46 Fail
+dEQP-GLES2.functional.draw.random.47 Fail
+dEQP-GLES2.functional.draw.random.48 Fail
+dEQP-GLES2.functional.draw.random.49 Fail
+dEQP-GLES2.functional.draw.random.50 Fail
+dEQP-GLES2.functional.draw.random.51 Fail
+dEQP-GLES2.functional.draw.random.52 Fail
+dEQP-GLES2.functional.draw.random.56 Fail
+dEQP-GLES2.functional.draw.random.58 Fail
+dEQP-GLES2.functional.draw.random.61 Fail
+dEQP-GLES2.functional.draw.random.62 Fail
+dEQP-GLES2.functional.draw.random.63 Fail
+dEQP-GLES2.functional.draw.random.65 Fail
+dEQP-GLES2.functional.draw.random.67 Fail
+dEQP-GLES2.functional.draw.random.69 Fail
+dEQP-GLES2.functional.draw.random.70 Fail
+dEQP-GLES2.functional.draw.random.71 Fail
diff --git a/.gitlab-ci/deqp-lima-skips.txt b/.gitlab-ci/deqp-lima-skips.txt
new file mode 100644 (file)
index 0000000..26b727b
--- /dev/null
@@ -0,0 +1,21 @@
+# Note: skips lists for CI are just a list of lines that, when
+# non-zero-length and not starting with '#', will regex match to
+# delete lines from the test list.  Be careful.
+
+# Skip the perf/stress tests to keep runtime manageable
+dEQP-GLES[0-9]*.performance
+dEQP-GLES[0-9]*.stress
+
+# These are really slow on tiling architectures (including llvmpipe).
+dEQP-GLES[0-9]*.functional.flush_finish
+
+dEQP-GLES2.accuracy.texture.*
+dEQP-GLES2.functional.clipping.*
+dEQP-GLES2.functional.fbo.render.depth.*
+dEQP-GLES2.functional.fbo.render.*
+dEQP-GLES2.functional.fbo.completeness.*
+dEQP-GLES2.functional.fragment_ops.*
+dEQP-GLES2.functional.light_amount.*
+dEQP-GLES2.functional.polygon_offset.*
+dEQP-GLES2.functional.shaders.*
+dEQP-GLES2.functional.texture.*
index ab1597f..a556294 100755 (executable)
@@ -3,23 +3,56 @@
 from jinja2 import Environment, FileSystemLoader
 import argparse
 
+device_types = {
+    "rk3288-veyron-jaq": {
+        "gpu_version": "panfrost-t760",
+        "boot_method": "depthcharge",
+        "lava_device_type": "rk3288-veyron-jaq",
+        "kernel_image_type": "",
+    },
+    "rk3399-gru-kevin": {
+        "gpu_version": "panfrost-t860",
+        "boot_method": "depthcharge",
+        "lava_device_type": "rk3399-gru-kevin",
+        "kernel_image_type": "",
+    },
+    "sun8i-h3-libretech-all-h3-cc": {
+        "gpu_version": "lima",
+        "boot_method": "u-boot",
+        "lava_device_type": "sun8i-h3-libretech-all-h3-cc",
+        "kernel_image_type": "type: zimage",
+    },
+    "meson-gxl-s905x-libretech-cc": {
+        "gpu_version": "lima",
+        "boot_method": "u-boot",
+        "lava_device_type": "meson-gxl-s905x-libretech-cc",
+        "kernel_image_type": "type: image",
+    },
+}
+
 parser = argparse.ArgumentParser()
 parser.add_argument("--template")
 parser.add_argument("--base-artifacts-url")
 parser.add_argument("--arch")
-parser.add_argument("--device-type")
+parser.add_argument("--device-types", nargs="+")
 parser.add_argument("--kernel-image-name")
-parser.add_argument("--gpu-version")
 args = parser.parse_args()
 
 env = Environment(loader = FileSystemLoader('.'), trim_blocks=True, lstrip_blocks=True)
 template = env.get_template(args.template)
 
-values = {}
-values['base_artifacts_url'] = args.base_artifacts_url
-values['arch'] = args.arch
-values['device_type'] = args.device_type
-values['kernel_image_name'] = args.kernel_image_name
-values['gpu_version'] = args.gpu_version
+for device_type in args.device_types:
+    values = {}
+    values['base_artifacts_url'] = args.base_artifacts_url
+    values['arch'] = args.arch
+    values['device_type'] = device_type
+    values['kernel_image_name'] = args.kernel_image_name
+    values['lava_device_type'] = device_types[device_type]['lava_device_type']
+    values['gpu_version'] = device_types[device_type]['gpu_version']
+    values['boot_method'] = device_types[device_type]['boot_method']
+    values['kernel_image_type'] = device_types[device_type]['kernel_image_type']
+
+    f = open('results/lava-deqp-%s.yml' % device_type, "w")
+    f.write(template.render(values))
+    f.close()
 
-print(template.render(values))
index 3d1eae9..36b9cae 100644 (file)
@@ -34,7 +34,7 @@ done < /deqp/deqp-$GPU_VERSION-skips.txt
                 --test-names-file=/tmp/case-list.txt \
                 --results-file=/tmp/results.txt \
                 --no-passed-results \
-                --regression-file=/deqp/deqp-panfrost-$GPU_VERSION-fails.txt \
+                --regression-file=/deqp/deqp-$GPU_VERSION-fails.txt \
                 --no-rerun-tests \
                 --print-regression \
                 --no-print-fail \
index bd456d2..2c29585 100644 (file)
@@ -1,5 +1,5 @@
-job_name: panfrost-deqp-{{ gpu_version }}
-device_type: {{ device_type }}
+job_name: mesa-deqp-{{ gpu_version }}
+device_type: {{ lava_device_type }}
 timeouts:
   job:
     minutes: 40
@@ -17,8 +17,9 @@ actions:
     to: tftp
     kernel:
       url: {{ base_artifacts_url }}/{{ kernel_image_name }}
+      {{ kernel_image_type }}
     ramdisk:
-      url: {{ base_artifacts_url }}/panfrost-rootfs-{{ arch }}.cpio.gz
+      url: {{ base_artifacts_url }}/lava-rootfs-{{ arch }}.cpio.gz
       compression: gz
     dtb:
       url: {{ base_artifacts_url }}/{{ device_type }}.dtb
@@ -26,7 +27,7 @@ actions:
 - boot:
     timeout:
       minutes: 5
-    method: depthcharge
+    method: {{ boot_method }}
     commands: ramdisk
     prompts:
       - '#' 
@@ -57,4 +58,4 @@ actions:
           pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
       from: inline
       name: deqp
-      path: inline/lava-deqp.yaml
+      path: inline/mesa-deqp.yaml
index 432776b..a35a724 100644 (file)
@@ -1,6 +1,6 @@
 variables:
     LAVA_DEBIAN_VERSION: testing-slim
-    LAVA_IMAGE_TAG: "lava-2019-09-20-1"
+    LAVA_IMAGE_TAG: "lava-2019-10-10-1"
 
 include:
   - project: 'wayland/ci-templates'
@@ -32,7 +32,7 @@ include:
                   KERNEL_ARCH=${KERNEL_ARCH}
                   VOLT_ARCH=${VOLT_ARCH}
                   DEFCONFIG=${DEFCONFIG}
-                  DEVICE_TREES=${DEVICE_TREES}
+                  DEVICE_TREES="${DEVICE_TREES}"
                   KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME}
                   bash .gitlab-ci/lava-debian-install.sh'
     DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION}
@@ -45,7 +45,7 @@ lava-container:armhf:
     KERNEL_ARCH: "arm"
     VOLT_ARCH: "armhf"
     DEFCONFIG: "arch/arm/configs/multi_v7_defconfig"
-    DEVICE_TREES: "arch/arm/boot/dts/rk3288-veyron-jaq.dtb"
+    DEVICE_TREES: "arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
     KERNEL_IMAGE_NAME: "zImage"
 
 lava-container:arm64:
@@ -56,7 +56,7 @@ lava-container:arm64:
     KERNEL_ARCH: "arm64"
     VOLT_ARCH: "aarch64"
     DEFCONFIG: "arch/arm64/configs/defconfig"
-    DEVICE_TREES: "arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb"
+    DEVICE_TREES: "arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb"
     KERNEL_IMAGE_NAME: "Image"
 
 .lava-build:
@@ -87,7 +87,7 @@ lava-container:arm64:
         --cross-file /tmp/cross_file.txt
         --libdir /artifacts/rootfs/mesa/lib/
         --buildtype debugoptimized
-        -D gallium-drivers=kmsro,panfrost
+        -D gallium-drivers=kmsro,panfrost,lima
         -D dri-drivers=
         -D prefix=/artifacts/rootfs/mesa
         -D glx=disabled
@@ -116,7 +116,7 @@ lava-container:arm64:
     - cp .gitlab-ci/deqp-*-skips.txt /artifacts/rootfs/deqp/.
     - du -sh /artifacts/rootfs/deqp/*
     - find /artifacts/rootfs/ -type f -printf "%s\t%p\n" | sort -n
-    - pushd /artifacts/rootfs/ ; find -H  |  cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/panfrost-rootfs-${DEBIAN_ARCH}.cpio.gz; popd
+    - pushd /artifacts/rootfs/ ; find -H  |  cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/lava-rootfs-${DEBIAN_ARCH}.cpio.gz; popd
 
     # Copy kernel and DT
     - cp /artifacts/${KERNEL_IMAGE_NAME} /artifacts/*.dtb $CI_PROJECT_DIR/results/.
@@ -127,10 +127,8 @@ lava-container:arm64:
         --template .gitlab-ci/lava-deqp.yml.jinja2
         --arch ${DEBIAN_ARCH}
         --base-artifacts-url $CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/raw/results
-        --device-type ${DEVICE_TYPE}
+        --device-types ${DEVICE_TYPES}
         --kernel-image-name ${KERNEL_IMAGE_NAME}
-        --gpu-version ${GPU_VERSION}
-        > results/lava-deqp.yml
   after_script:
     - export CCACHE_DIR="$PWD/ccache"
     - ccache --show-stats
@@ -145,9 +143,8 @@ lava-build:armhf:
   variables:
     DEBIAN_ARCH: "armhf"
     GCC_ARCH: "arm-linux-gnueabihf"
-    DEVICE_TYPE: "rk3288-veyron-jaq"
+    DEVICE_TYPES: "rk3288-veyron-jaq sun8i-h3-libretech-all-h3-cc"
     KERNEL_IMAGE_NAME: "zImage"
-    GPU_VERSION: "t760"
 
 lava-build:arm64:
   extends: .lava-build
@@ -155,9 +152,8 @@ lava-build:arm64:
   variables:
     DEBIAN_ARCH: "arm64"
     GCC_ARCH: "aarch64-linux-gnu"
-    DEVICE_TYPE: "rk3399-gru-kevin"
+    DEVICE_TYPES: "rk3399-gru-kevin meson-gxl-s905x-libretech-cc"
     KERNEL_IMAGE_NAME: "Image"
-    GPU_VERSION: "t860"
 
 .lava-test:
   stage: test
@@ -166,7 +162,7 @@ lava-build:arm64:
   variables:
     GIT_STRATEGY: none # no need to pull the whole tree for submitting the job
   script:
-    - lava_job_id=`lavacli jobs submit $CI_PROJECT_DIR/results/lava-deqp.yml`
+    - lava_job_id=`lavacli jobs submit $CI_PROJECT_DIR/results/lava-deqp-$DEVICE_TYPE.yml`
     - echo $lava_job_id
     - lavacli jobs logs $lava_job_id | grep -a -v "{'case':" | tee results/lava-deqp-$lava_job_id.log
     - lavacli jobs show $lava_job_id
@@ -178,7 +174,7 @@ lava-build:arm64:
     paths:
       - results/
 
-panfrost-t760-test:armhf:
+.lava-test:armhf:
   image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:armhf-$LAVA_IMAGE_TAG
   extends: .lava-test
   needs:
@@ -186,10 +182,8 @@ panfrost-t760-test:armhf:
     - lava-build:armhf
   dependencies:
     - lava-build:armhf
-  tags:
-    - lava-rk3288-veyron-jaq
 
-panfrost-t860-test:arm64:
+.lava-test:arm64:
   image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:arm64-$LAVA_IMAGE_TAG
   extends: .lava-test
   needs:
@@ -197,6 +191,31 @@ panfrost-t860-test:arm64:
     - lava-build:arm64
   dependencies:
     - lava-build:arm64
+
+panfrost-t760-test:armhf:
+  extends: .lava-test:armhf
+  variables:
+    DEVICE_TYPE: rk3288-veyron-jaq
+  tags:
+    - lava-rk3288-veyron-jaq
+
+panfrost-t860-test:arm64:
+  extends: .lava-test:arm64
+  variables:
+    DEVICE_TYPE: rk3399-gru-kevin
   tags:
     - lava-rk3399-gru-kevin
 
+lima-test:armhf:
+  extends: .lava-test:armhf
+  variables:
+    DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
+  tags:
+    - lava-sun8i-h3-libretech-all-h3-cc
+
+lima-test:arm64:
+  extends: .lava-test:arm64
+  variables:
+    DEVICE_TYPE: meson-gxl-s905x-libretech-cc
+  tags:
+    - lava-meson-gxl-s905x-libretech-cc