diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1109d82649d..f245ee687c1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,7 +29,7 @@ include: file: '/templates/debian.yml' include: - - local: '/src/gallium/drivers/panfrost/ci/gitlab-ci.yml' + - local: '/.gitlab-ci/lava-gitlab-ci.yml' stages: - containers diff --git a/src/gallium/drivers/panfrost/ci/arm.config b/.gitlab-ci/arm.config similarity index 100% rename from src/gallium/drivers/panfrost/ci/arm.config rename to .gitlab-ci/arm.config diff --git a/src/gallium/drivers/panfrost/ci/arm64.config b/.gitlab-ci/arm64.config similarity index 100% rename from src/gallium/drivers/panfrost/ci/arm64.config rename to .gitlab-ci/arm64.config diff --git a/src/gallium/drivers/panfrost/ci/create-rootfs.sh b/.gitlab-ci/create-rootfs.sh similarity index 100% rename from src/gallium/drivers/panfrost/ci/create-rootfs.sh rename to .gitlab-ci/create-rootfs.sh diff --git a/.gitlab-ci/deqp-panfrost-t760-fails.txt b/.gitlab-ci/deqp-panfrost-t760-fails.txt new file mode 100644 index 00000000000..6304ebf8112 --- /dev/null +++ b/.gitlab-ci/deqp-panfrost-t760-fails.txt @@ -0,0 +1,1061 @@ +dEQP-GLES2.functional.color_clear.masked_rgba Fail +dEQP-GLES2.functional.color_clear.masked_rgb Fail +dEQP-GLES2.functional.color_clear.masked_scissored_rgba Fail +dEQP-GLES2.functional.color_clear.masked_scissored_rgb Fail +dEQP-GLES2.functional.color_clear.scissored_rgba Fail +dEQP-GLES2.functional.color_clear.scissored_rgb Fail +dEQP-GLES2.functional.color_clear.short_scissored_rgb Fail +dEQP-GLES2.functional.depth_range.write.0_8_to_third Fail +dEQP-GLES2.functional.depth_range.write.clamp_both Fail +dEQP-GLES2.functional.depth_range.write.clamp_far Fail +dEQP-GLES2.functional.depth_range.write.clamp_near Fail +dEQP-GLES2.functional.depth_range.write.default Fail +dEQP-GLES2.functional.depth_range.write.half_to_half Fail +dEQP-GLES2.functional.depth_range.write.half_to_one 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.one_to_one Fail +dEQP-GLES2.functional.depth_range.write.reverse Fail +dEQP-GLES2.functional.depth_range.write.third_to_0_8 Fail +dEQP-GLES2.functional.depth_range.write.zero_to_half Fail +dEQP-GLES2.functional.depth_stencil_clear.depth Fail +dEQP-GLES2.functional.depth_stencil_clear.depth_scissored Fail +dEQP-GLES2.functional.depth_stencil_clear.depth_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.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8 Fail +dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16 Fail +dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16 Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_alpha_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_dst_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_dst_alpha_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_src_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_src_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_src_alpha_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_saturate_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_zero_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_zero_one_minus_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_alpha_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_color_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_src_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_src_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_alpha_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_color_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_constant_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one_minus_constant_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one_minus_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_alpha_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_alpha_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_alpha_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_src_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_src_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_one Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_saturate_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_color_one Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_equation_alpha_equation.reverse_subtract_reverse_subtract Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_equation_alpha_equation.subtract_subtract Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_alpha_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_constant_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_alpha_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_alpha_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_alpha_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_color_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_color_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.dst_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_alpha_one_minus_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_constant_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_dst_alpha_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_dst_alpha_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_dst_alpha_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_dst_alpha_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_alpha_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_alpha_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_one Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_one_minus_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.src_alpha_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.src_alpha_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.src_color_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.src_color_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_one_minus_constant_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.zero_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_alpha_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_alpha_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_alpha_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_alpha_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_alpha_src_alpha_saturate Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_alpha_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_color_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_color_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.dst_color_src_alpha_saturate Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_alpha_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_alpha_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_alpha_src_alpha_saturate Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_alpha_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_color_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_color_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_color_one Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_color_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_color_src_alpha_saturate Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_color_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_dst_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_src_alpha_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_src_alpha_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_src_alpha_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_src_alpha_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_src_alpha_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_src_alpha_saturate Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_saturate_one Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_saturate_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_saturate_src_alpha_saturate Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_saturate_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_saturate_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_alpha_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_color_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_color_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_color_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_color_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.src_color_zero Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.zero_one_minus_dst_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.zero_one_minus_dst_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.zero_one_minus_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.zero_one_minus_src_color Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.zero_src_alpha Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.zero_src_alpha_saturate Fail +dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.zero_src_color Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.0 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.10 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.11 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.12 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.13 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.14 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.15 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.16 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.17 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.18 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.19 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.1 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.20 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.21 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.22 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.23 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.24 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.2 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.3 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.4 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.5 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.6 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.7 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9 Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_always Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_equal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_gequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_greater Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_lequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_less Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_never Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_notequal Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_no_depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_decr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_decr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_incr Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_incr_wrap Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_invert Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_keep Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_replace Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_zero Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.both Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.depth Fail +dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.0 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.10 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.11 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.12 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.13 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.15 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.16 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.17 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.18 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.19 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.1 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.20 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.21 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.22 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.23 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.24 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.25 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.26 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.28 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.29 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.30 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.31 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.32 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.33 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.34 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.35 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.36 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.37 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.38 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.39 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.3 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.40 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.41 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.42 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.43 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.44 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.46 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.47 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.48 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.49 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.50 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.51 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.52 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.53 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.54 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.55 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.56 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.57 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.58 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.59 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.5 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.60 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.61 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.62 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.63 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.64 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.65 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.66 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.67 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.68 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.69 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.6 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.70 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.71 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.72 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.73 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.74 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.75 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.76 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.77 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.78 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.79 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.7 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.80 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.81 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.82 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.83 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.84 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.85 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.86 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.87 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.88 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.89 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.8 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.90 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.91 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.92 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.93 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.94 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.95 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.96 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.97 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.98 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.99 Fail +dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.9 Fail +dEQP-GLES2.functional.fragment_ops.random.0 Fail +dEQP-GLES2.functional.fragment_ops.random.10 Fail +dEQP-GLES2.functional.fragment_ops.random.11 Fail +dEQP-GLES2.functional.fragment_ops.random.12 Fail +dEQP-GLES2.functional.fragment_ops.random.13 Fail +dEQP-GLES2.functional.fragment_ops.random.14 Fail +dEQP-GLES2.functional.fragment_ops.random.15 Fail +dEQP-GLES2.functional.fragment_ops.random.16 Fail +dEQP-GLES2.functional.fragment_ops.random.17 Fail +dEQP-GLES2.functional.fragment_ops.random.18 Fail +dEQP-GLES2.functional.fragment_ops.random.19 Fail +dEQP-GLES2.functional.fragment_ops.random.1 Fail +dEQP-GLES2.functional.fragment_ops.random.20 Fail +dEQP-GLES2.functional.fragment_ops.random.21 Fail +dEQP-GLES2.functional.fragment_ops.random.22 Fail +dEQP-GLES2.functional.fragment_ops.random.23 Fail +dEQP-GLES2.functional.fragment_ops.random.24 Fail +dEQP-GLES2.functional.fragment_ops.random.25 Fail +dEQP-GLES2.functional.fragment_ops.random.26 Fail +dEQP-GLES2.functional.fragment_ops.random.27 Fail +dEQP-GLES2.functional.fragment_ops.random.28 Fail +dEQP-GLES2.functional.fragment_ops.random.29 Fail +dEQP-GLES2.functional.fragment_ops.random.2 Fail +dEQP-GLES2.functional.fragment_ops.random.30 Fail +dEQP-GLES2.functional.fragment_ops.random.31 Fail +dEQP-GLES2.functional.fragment_ops.random.32 Fail +dEQP-GLES2.functional.fragment_ops.random.33 Fail +dEQP-GLES2.functional.fragment_ops.random.34 Fail +dEQP-GLES2.functional.fragment_ops.random.35 Fail +dEQP-GLES2.functional.fragment_ops.random.36 Fail +dEQP-GLES2.functional.fragment_ops.random.37 Fail +dEQP-GLES2.functional.fragment_ops.random.38 Fail +dEQP-GLES2.functional.fragment_ops.random.39 Fail +dEQP-GLES2.functional.fragment_ops.random.3 Fail +dEQP-GLES2.functional.fragment_ops.random.40 Fail +dEQP-GLES2.functional.fragment_ops.random.41 Fail +dEQP-GLES2.functional.fragment_ops.random.42 Fail +dEQP-GLES2.functional.fragment_ops.random.43 Fail +dEQP-GLES2.functional.fragment_ops.random.44 Fail +dEQP-GLES2.functional.fragment_ops.random.45 Fail +dEQP-GLES2.functional.fragment_ops.random.46 Fail +dEQP-GLES2.functional.fragment_ops.random.47 Fail +dEQP-GLES2.functional.fragment_ops.random.48 Fail +dEQP-GLES2.functional.fragment_ops.random.49 Fail +dEQP-GLES2.functional.fragment_ops.random.4 Fail +dEQP-GLES2.functional.fragment_ops.random.50 Fail +dEQP-GLES2.functional.fragment_ops.random.51 Fail +dEQP-GLES2.functional.fragment_ops.random.52 Fail +dEQP-GLES2.functional.fragment_ops.random.53 Fail +dEQP-GLES2.functional.fragment_ops.random.54 Fail +dEQP-GLES2.functional.fragment_ops.random.55 Fail +dEQP-GLES2.functional.fragment_ops.random.56 Fail +dEQP-GLES2.functional.fragment_ops.random.57 Fail +dEQP-GLES2.functional.fragment_ops.random.58 Fail +dEQP-GLES2.functional.fragment_ops.random.59 Fail +dEQP-GLES2.functional.fragment_ops.random.5 Fail +dEQP-GLES2.functional.fragment_ops.random.60 Fail +dEQP-GLES2.functional.fragment_ops.random.61 Fail +dEQP-GLES2.functional.fragment_ops.random.62 Fail +dEQP-GLES2.functional.fragment_ops.random.63 Fail +dEQP-GLES2.functional.fragment_ops.random.64 Fail +dEQP-GLES2.functional.fragment_ops.random.65 Fail +dEQP-GLES2.functional.fragment_ops.random.66 Fail +dEQP-GLES2.functional.fragment_ops.random.67 Fail +dEQP-GLES2.functional.fragment_ops.random.68 Fail +dEQP-GLES2.functional.fragment_ops.random.69 Fail +dEQP-GLES2.functional.fragment_ops.random.6 Fail +dEQP-GLES2.functional.fragment_ops.random.70 Fail +dEQP-GLES2.functional.fragment_ops.random.71 Fail +dEQP-GLES2.functional.fragment_ops.random.72 Fail +dEQP-GLES2.functional.fragment_ops.random.73 Fail +dEQP-GLES2.functional.fragment_ops.random.74 Fail +dEQP-GLES2.functional.fragment_ops.random.75 Fail +dEQP-GLES2.functional.fragment_ops.random.76 Fail +dEQP-GLES2.functional.fragment_ops.random.77 Fail +dEQP-GLES2.functional.fragment_ops.random.78 Fail +dEQP-GLES2.functional.fragment_ops.random.79 Fail +dEQP-GLES2.functional.fragment_ops.random.7 Fail +dEQP-GLES2.functional.fragment_ops.random.80 Fail +dEQP-GLES2.functional.fragment_ops.random.81 Fail +dEQP-GLES2.functional.fragment_ops.random.82 Fail +dEQP-GLES2.functional.fragment_ops.random.83 Fail +dEQP-GLES2.functional.fragment_ops.random.84 Fail +dEQP-GLES2.functional.fragment_ops.random.85 Fail +dEQP-GLES2.functional.fragment_ops.random.86 Fail +dEQP-GLES2.functional.fragment_ops.random.87 Fail +dEQP-GLES2.functional.fragment_ops.random.88 Fail +dEQP-GLES2.functional.fragment_ops.random.89 Fail +dEQP-GLES2.functional.fragment_ops.random.8 Fail +dEQP-GLES2.functional.fragment_ops.random.90 Fail +dEQP-GLES2.functional.fragment_ops.random.91 Fail +dEQP-GLES2.functional.fragment_ops.random.92 Fail +dEQP-GLES2.functional.fragment_ops.random.93 Fail +dEQP-GLES2.functional.fragment_ops.random.94 Fail +dEQP-GLES2.functional.fragment_ops.random.95 Fail +dEQP-GLES2.functional.fragment_ops.random.96 Fail +dEQP-GLES2.functional.fragment_ops.random.97 Fail +dEQP-GLES2.functional.fragment_ops.random.98 Fail +dEQP-GLES2.functional.fragment_ops.random.99 Fail +dEQP-GLES2.functional.fragment_ops.random.9 Fail +dEQP-GLES2.functional.polygon_offset.default_factor_1_slope Fail +dEQP-GLES2.functional.polygon_offset.default_render_with_units Fail +dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope Fail +dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units Fail +dEQP-GLES2.functional.shaders.scoping.valid.local_variable_hides_function_parameter_fragment Fail +dEQP-GLES2.functional.shaders.scoping.valid.local_variable_hides_function_parameter_vertex Fail diff --git a/src/gallium/drivers/panfrost/ci/expected-failures.txt b/.gitlab-ci/deqp-panfrost-t860-fails.txt similarity index 100% rename from src/gallium/drivers/panfrost/ci/expected-failures.txt rename to .gitlab-ci/deqp-panfrost-t860-fails.txt diff --git a/src/gallium/drivers/panfrost/ci/generate_lava.py b/.gitlab-ci/generate_lava.py similarity index 100% rename from src/gallium/drivers/panfrost/ci/generate_lava.py rename to .gitlab-ci/generate_lava.py diff --git a/src/gallium/drivers/panfrost/ci/debian-install.sh b/.gitlab-ci/lava-debian-install.sh similarity index 92% rename from src/gallium/drivers/panfrost/ci/debian-install.sh rename to .gitlab-ci/lava-debian-install.sh index 91bc58cbc46..07f6f3586f5 100644 --- a/src/gallium/drivers/panfrost/ci/debian-install.sh +++ b/.gitlab-ci/lava-debian-install.sh @@ -3,8 +3,6 @@ set -e set -o xtrace -PANFROST_CI_DIR=/tmp/clone/src/gallium/drivers/panfrost/ci - ############### Install packages for building dpkg --add-architecture ${DEBIAN_ARCH} echo 'deb-src https://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/deb-src.list @@ -32,7 +30,7 @@ apt-get -y install --no-install-recommends \ cmake \ bc \ libssl-dev \ - lavacli \ + lqa \ csvkit \ curl \ unzip \ @@ -76,6 +74,15 @@ apt-get -y install --no-install-recommends \ libegl1-mesa-dev:${DEBIAN_ARCH} \ libpng-dev:${DEBIAN_ARCH} + +############### Install lavacli (remove after it's back into Debian testing) +mkdir -p lavacli +wget -qO- https://git.lavasoftware.org/lava/lavacli/-/archive/v0.9.8/lavacli-v0.9.8.tar.gz | tar -xz --strip-components=1 -C lavacli +pushd lavacli +python3 ./setup.py install +popd + + ############### Cross-build dEQP mkdir -p /artifacts/rootfs/deqp @@ -155,7 +162,7 @@ export CROSS_COMPILE="${GCC_ARCH}-" mkdir -p /kernel wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel cd /kernel -./scripts/kconfig/merge_config.sh ${DEFCONFIG} ${PANFROST_CI_DIR}/${KERNEL_ARCH}.config +./scripts/kconfig/merge_config.sh ${DEFCONFIG} /tmp/clone/.gitlab-ci/${KERNEL_ARCH}.config make -j12 ${KERNEL_IMAGE_NAME} dtbs cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/. cp ${DEVICE_TREES} /artifacts/. @@ -163,7 +170,7 @@ rm -rf /kernel ############### Create rootfs -cp ${PANFROST_CI_DIR}/create-rootfs.sh /artifacts/rootfs/. +cp /tmp/clone/.gitlab-ci/create-rootfs.sh /artifacts/rootfs/. mkdir -p /artifacts/rootfs/bin cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin diff --git a/src/gallium/drivers/panfrost/ci/deqp-runner.sh b/.gitlab-ci/lava-deqp-runner.sh similarity index 98% rename from src/gallium/drivers/panfrost/ci/deqp-runner.sh rename to .gitlab-ci/lava-deqp-runner.sh index 11faf235056..28302ce375e 100644 --- a/src/gallium/drivers/panfrost/ci/deqp-runner.sh +++ b/.gitlab-ci/lava-deqp-runner.sh @@ -1,5 +1,7 @@ #!/bin/sh +GPU_VERSION="$1" + DEQP_OPTIONS="--deqp-surface-width=256 --deqp-surface-height=256" DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" DEQP_OPTIONS="$DEQP_OPTIONS --deqp-log-images=disable" @@ -92,7 +94,7 @@ for test in $FLIP_FLOPS; do sed -i "/$test/d" /tmp/case-list.txt; done --test-names-file=/tmp/case-list.txt \ --results-file=/tmp/results.txt \ --no-passed-results \ - --regression-file=/deqp/expected-failures.txt \ + --regression-file=/deqp/deqp-panfrost-$GPU_VERSION-fails.txt \ --no-rerun-tests \ --print-regression \ --no-print-fail \ diff --git a/src/gallium/drivers/panfrost/ci/lava-deqp.yml.jinja2 b/.gitlab-ci/lava-deqp.yml.jinja2 similarity index 88% rename from src/gallium/drivers/panfrost/ci/lava-deqp.yml.jinja2 rename to .gitlab-ci/lava-deqp.yml.jinja2 index 64508cd9476..bd456d2d9c2 100644 --- a/src/gallium/drivers/panfrost/ci/lava-deqp.yml.jinja2 +++ b/.gitlab-ci/lava-deqp.yml.jinja2 @@ -1,4 +1,4 @@ -job_name: panfrost-deqp +job_name: panfrost-deqp-{{ gpu_version }} device_type: {{ device_type }} timeouts: job: @@ -37,8 +37,8 @@ actions: - repository: metadata: format: Lava-Test Test Definition 1.0 - name: igt - description: "IGT test plan" + name: deqp + description: "Mesa dEQP test plan" os: - oe scope: @@ -51,7 +51,7 @@ actions: - mkdir -p /dev/pts - mount -t devpts devpts /dev/pts - echo 3 > /proc/sys/kernel/printk - - sh /deqp/deqp-runner.sh + - sh /deqp/lava-deqp-runner.sh {{ gpu_version }} - cat /proc/loadavg parse: pattern: '(?P\S*):\s+(?P(pass|fail))' diff --git a/src/gallium/drivers/panfrost/ci/gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml similarity index 78% rename from src/gallium/drivers/panfrost/ci/gitlab-ci.yml rename to .gitlab-ci/lava-gitlab-ci.yml index 4a32fcb9276..dcd170c38eb 100644 --- a/src/gallium/drivers/panfrost/ci/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-18-1" + LAVA_IMAGE_TAG: "lava-2019-09-20-1" include: - project: 'wayland/ci-templates' @@ -34,7 +34,7 @@ include: DEFCONFIG=${DEFCONFIG} DEVICE_TREES=${DEVICE_TREES} KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME} - bash src/gallium/drivers/panfrost/ci/debian-install.sh' + bash .gitlab-ci/lava-debian-install.sh' DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION} lava-container:armhf: @@ -62,24 +62,31 @@ lava-container:arm64: .lava-build: stage: build image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:$DEBIAN_ARCH-$LAVA_IMAGE_TAG + extends: + - .ci-run-policy cache: + key: ${CI_JOB_NAME} paths: - ccache + variables: + CCACHE_COMPILERCHECK: "content" + # Use ccache transparently, and print stats before/after before_script: - mkdir -p results mesa-build - mkdir -p ccache - script: - - export CCACHE_BASEDIR=$CI_PROJECT_DIR - - export CCACHE_DIR=$CI_PROJECT_DIR/ccache - export PATH="/usr/lib/ccache:$PATH" - - ccache -s - + - export CCACHE_BASEDIR="$PWD" + - export CCACHE_DIR="$PWD/ccache" + - ccache --max-size=1500M + - ccache --zero-stats || true + - ccache --show-stats || true + script: # Build Mesa - /usr/share/meson/debcrossgen --arch ${DEBIAN_ARCH} -o /tmp/cross_file.txt - meson . mesa-build --cross-file /tmp/cross_file.txt --libdir /artifacts/rootfs/mesa/lib/ - --buildtype release + --buildtype debugoptimized -D gallium-drivers=kmsro,panfrost -D dri-drivers= -D prefix=/artifacts/rootfs/mesa @@ -96,30 +103,36 @@ lava-container:arm64: -D gallium-xa=false -D gallium-nine=false -D llvm=false + - ninja -C mesa-build -j4 - ninja -C mesa-build install + - find /artifacts/rootfs/mesa/lib -name \*.so -exec ${GCC_ARCH}-strip {} \; + - du -sh /artifacts/rootfs/mesa/* - rm -rf /artifacts/rootfs/mesa/include # Pack rootfs - - cp src/gallium/drivers/panfrost/ci/deqp-runner.sh /artifacts/rootfs/deqp/. - - cp src/gallium/drivers/panfrost/ci/expected-failures.txt /artifacts/rootfs/deqp/. + - cp .gitlab-ci/lava-deqp-runner.sh /artifacts/rootfs/deqp/. + - cp .gitlab-ci/deqp-*-fails.txt /artifacts/rootfs/deqp/. - du -sh /artifacts/rootfs/deqp/* - find /artifacts/rootfs/ -type f -printf "%s\t%p\n" | sort -n - - cd /artifacts/rootfs/ ; find -H | cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/panfrost-rootfs-${DEBIAN_ARCH}.cpio.gz + - pushd /artifacts/rootfs/ ; find -H | cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/panfrost-rootfs-${DEBIAN_ARCH}.cpio.gz; popd # Copy kernel and DT - cp /artifacts/${KERNEL_IMAGE_NAME} /artifacts/*.dtb $CI_PROJECT_DIR/results/. # Generate LAVA job - cd $CI_PROJECT_DIR - - src/gallium/drivers/panfrost/ci/generate_lava.py - --template src/gallium/drivers/panfrost/ci/lava-deqp.yml.jinja2 + - .gitlab-ci/generate_lava.py + --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} --kernel-image-name ${KERNEL_IMAGE_NAME} + --gpu-version ${GPU_VERSION} > results/lava-deqp.yml - - cp src/gallium/drivers/panfrost/ci/expected-failures.txt results/. + after_script: + - export CCACHE_DIR="$PWD/ccache" + - ccache --show-stats artifacts: when: always paths: @@ -133,6 +146,7 @@ lava-build:armhf: GCC_ARCH: "arm-linux-gnueabihf" DEVICE_TYPE: "rk3288-veyron-jaq" KERNEL_IMAGE_NAME: "zImage" + GPU_VERSION: "t760" lava-build:arm64: extends: .lava-build @@ -142,12 +156,13 @@ lava-build:arm64: GCC_ARCH: "aarch64-linux-gnu" DEVICE_TYPE: "rk3399-gru-kevin" KERNEL_IMAGE_NAME: "Image" + GPU_VERSION: "t860" .lava-test: stage: test - tags: - - idle-lava image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:arm64-$LAVA_IMAGE_TAG # Any of the images will be fine + extends: + - .ci-run-policy variables: GIT_STRATEGY: none # no need to pull the whole tree for submitting the job script: @@ -157,23 +172,25 @@ lava-build:arm64: - lavacli jobs show $lava_job_id - result=`lavacli results $lava_job_id 0_deqp deqp | head -1` - echo $result - - # Don't error out on RK3288 - - '[[ "$result" == "pass" || -f results/rk3288-veyron-jaq.dtb ]]' + - '[[ "$result" == "pass" ]]' artifacts: when: always paths: - results/ -lava-test:armhf: +panfrost-t760-test:armhf: extends: .lava-test needs: ["lava-build:armhf"] dependencies: - lava-build:armhf + tags: + - lava-rk3288-veyron-jaq -lava-test:arm64: +panfrost-t860-test:arm64: extends: .lava-test needs: ["lava-build:arm64"] dependencies: - lava-build:arm64 + tags: + - lava-rk3399-gru-kevin