aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci/arm.config1
-rw-r--r--.gitlab-ci/arm64.config2
-rw-r--r--.gitlab-ci/deqp-lima-fails.txt998
-rw-r--r--.gitlab-ci/deqp-lima-skips.txt21
-rwxr-xr-x.gitlab-ci/generate_lava.py51
-rw-r--r--.gitlab-ci/lava-deqp-runner.sh2
-rw-r--r--.gitlab-ci/lava-deqp.yml.jinja211
-rw-r--r--.gitlab-ci/lava-gitlab-ci.yml55
8 files changed, 1107 insertions, 34 deletions
diff --git a/.gitlab-ci/arm.config b/.gitlab-ci/arm.config
index 6bcc5a87202..cbef4ae3331 100644
--- a/.gitlab-ci/arm.config
+++ b/.gitlab-ci/arm.config
@@ -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
diff --git a/.gitlab-ci/arm64.config b/.gitlab-ci/arm64.config
index 44dfe860b8d..69873ad6775 100644
--- a/.gitlab-ci/arm64.config
+++ b/.gitlab-ci/arm64.config
@@ -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
index 00000000000..a2082c0d2c3
--- /dev/null
+++ b/.gitlab-ci/deqp-lima-fails.txt
@@ -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
index 00000000000..26b727b20dd
--- /dev/null
+++ b/.gitlab-ci/deqp-lima-skips.txt
@@ -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.*
diff --git a/.gitlab-ci/generate_lava.py b/.gitlab-ci/generate_lava.py
index ab1597f1fe3..a556294fbf1 100755
--- a/.gitlab-ci/generate_lava.py
+++ b/.gitlab-ci/generate_lava.py
@@ -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))
diff --git a/.gitlab-ci/lava-deqp-runner.sh b/.gitlab-ci/lava-deqp-runner.sh
index 3d1eae96f9a..36b9caef4f5 100644
--- a/.gitlab-ci/lava-deqp-runner.sh
+++ b/.gitlab-ci/lava-deqp-runner.sh
@@ -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 \
diff --git a/.gitlab-ci/lava-deqp.yml.jinja2 b/.gitlab-ci/lava-deqp.yml.jinja2
index bd456d2d9c2..2c295859b97 100644
--- a/.gitlab-ci/lava-deqp.yml.jinja2
+++ b/.gitlab-ci/lava-deqp.yml.jinja2
@@ -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
diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml
index 432776b81cf..a35a72474b7 100644
--- a/.gitlab-ci/lava-gitlab-ci.yml
+++ b/.gitlab-ci/lava-gitlab-ci.yml
@@ -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