ci/freedreno: Add a test run of a few driver options.
authorEric Anholt <eric@anholt.net>
Fri, 17 Apr 2020 19:02:37 +0000 (12:02 -0700)
committerMarge Bot <eric+marge@anholt.net>
Mon, 27 Apr 2020 22:10:10 +0000 (22:10 +0000)
This lets us get coverage of corner cases of the driver that are tricky to
force a testcase to hit.  We don't want to do a full run of the CTS with
each option because that's a lot of runner time, so stack a bunch of
fractional runs in one test job to amortize the test run setup overhead.

Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4621>

.gitlab-ci.yml
.gitlab-ci/deqp-freedreno-a630-bypass-fails.txt [new file with mode: 0644]
.gitlab-ci/deqp-freedreno-a630-noubo-fails.txt [new file with mode: 0644]
.gitlab-ci/deqp-runner.sh

index b28cdb8fc6104b77bfa1dd6e57c80b5ef4e84bd2..409ed8ef60938726fbc316b7fd38b4544930de11 100644 (file)
@@ -794,6 +794,22 @@ arm64_a630_gles3:
   variables:
     DEQP_VER: gles3
 
+arm64_a630_gles31_options:
+  extends: arm64_a630_gles2
+  variables:
+    DEQP_VER: gles31
+    CI_NODE_INDEX: 1
+    CI_NODE_TOTAL: 5
+  script:
+    # We almost always manage to lower UBOs back to constant uploads in
+    # the test suite, so get a little testing for it here.
+    - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_EXPECTED_FAILS=deqp-freedreno-a630-noubo-fails.txt DEQP_CASELIST_FILTER="functional.\*ubo" ./install/deqp-runner.sh
+    # The driver does some guessing as to whether to render using gmem
+    # or bypass, and some GLES3.1 features interact with either one.
+    # Do a little testing with gmem and bypass forced.
+    - DEQP_RUN_SUFFIX=-bypass FD_MESA_DEBUG=nogmem DEQP_EXPECTED_FAILS=deqp-freedreno-a630-bypass-fails.txt ./install/deqp-runner.sh
+    - DEQP_RUN_SUFFIX=-gmem FD_MESA_DEBUG=nobypass ./install/deqp-runner.sh
+
 .baremetal-test:
   extends:
     - .ci-run-policy
diff --git a/.gitlab-ci/deqp-freedreno-a630-bypass-fails.txt b/.gitlab-ci/deqp-freedreno-a630-bypass-fails.txt
new file mode 100644 (file)
index 0000000..2cf4c3e
--- /dev/null
@@ -0,0 +1,96 @@
+dEQP-GLES31.functional.blend_equation_advanced.barrier.colorburn
+dEQP-GLES31.functional.blend_equation_advanced.barrier.colordodge
+dEQP-GLES31.functional.blend_equation_advanced.barrier.darken
+dEQP-GLES31.functional.blend_equation_advanced.barrier.difference
+dEQP-GLES31.functional.blend_equation_advanced.barrier.exclusion
+dEQP-GLES31.functional.blend_equation_advanced.barrier.hardlight
+dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_color
+dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_hue
+dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_luminosity
+dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_saturation
+dEQP-GLES31.functional.blend_equation_advanced.barrier.lighten
+dEQP-GLES31.functional.blend_equation_advanced.barrier.multiply
+dEQP-GLES31.functional.blend_equation_advanced.barrier.overlay
+dEQP-GLES31.functional.blend_equation_advanced.barrier.screen
+dEQP-GLES31.functional.blend_equation_advanced.barrier.softlight
+dEQP-GLES31.functional.blend_equation_advanced.basic.colorburn
+dEQP-GLES31.functional.blend_equation_advanced.basic.colordodge
+dEQP-GLES31.functional.blend_equation_advanced.basic.darken
+dEQP-GLES31.functional.blend_equation_advanced.basic.difference
+dEQP-GLES31.functional.blend_equation_advanced.basic.exclusion
+dEQP-GLES31.functional.blend_equation_advanced.basic.hardlight
+dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_color
+dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_hue
+dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_luminosity
+dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_saturation
+dEQP-GLES31.functional.blend_equation_advanced.basic.lighten
+dEQP-GLES31.functional.blend_equation_advanced.basic.multiply
+dEQP-GLES31.functional.blend_equation_advanced.basic.overlay
+dEQP-GLES31.functional.blend_equation_advanced.basic.screen
+dEQP-GLES31.functional.blend_equation_advanced.basic.softlight
+dEQP-GLES31.functional.blend_equation_advanced.msaa.colorburn
+dEQP-GLES31.functional.blend_equation_advanced.msaa.colordodge
+dEQP-GLES31.functional.blend_equation_advanced.msaa.darken
+dEQP-GLES31.functional.blend_equation_advanced.msaa.difference
+dEQP-GLES31.functional.blend_equation_advanced.msaa.exclusion
+dEQP-GLES31.functional.blend_equation_advanced.msaa.hardlight
+dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_color
+dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_hue
+dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_luminosity
+dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_saturation
+dEQP-GLES31.functional.blend_equation_advanced.msaa.lighten
+dEQP-GLES31.functional.blend_equation_advanced.msaa.multiply
+dEQP-GLES31.functional.blend_equation_advanced.msaa.overlay
+dEQP-GLES31.functional.blend_equation_advanced.msaa.screen
+dEQP-GLES31.functional.blend_equation_advanced.msaa.softlight
+dEQP-GLES31.functional.blend_equation_advanced.srgb.colorburn
+dEQP-GLES31.functional.blend_equation_advanced.srgb.colordodge
+dEQP-GLES31.functional.blend_equation_advanced.srgb.darken
+dEQP-GLES31.functional.blend_equation_advanced.srgb.difference
+dEQP-GLES31.functional.blend_equation_advanced.srgb.exclusion
+dEQP-GLES31.functional.blend_equation_advanced.srgb.hardlight
+dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_color
+dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_hue
+dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_luminosity
+dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_saturation
+dEQP-GLES31.functional.blend_equation_advanced.srgb.lighten
+dEQP-GLES31.functional.blend_equation_advanced.srgb.multiply
+dEQP-GLES31.functional.blend_equation_advanced.srgb.overlay
+dEQP-GLES31.functional.blend_equation_advanced.srgb.screen
+dEQP-GLES31.functional.blend_equation_advanced.srgb.softlight
+dEQP-GLES31.functional.compute.basic.shared_var_single_group
+dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_advanced_blend_eq_buffer_advanced_blend_eq
+dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_blend_eq_buffer_advanced_blend_eq
+dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_separate_blend_eq_buffer_advanced_blend_eq
+dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_advanced_blend_eq
+dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_blend_eq
+dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_separate_blend_eq
+dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_separate_blend_eq_buffer_blend_eq
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.11
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.15
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.17
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.18
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.2
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.3
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.6
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.7
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.19
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.3
+dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_depth_fbo
+dEQP-GLES31.functional.ssbo.layout.3_level_array.std140.column_major_mat4x2
+dEQP-GLES31.functional.ssbo.layout.3_level_unsized_array.std430.mat3
+dEQP-GLES31.functional.ssbo.layout.random.arrays_of_arrays.6
+dEQP-GLES31.functional.ssbo.layout.unsized_struct_array.per_block_buffer.shared_instance_array
+dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
+dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_clear
+dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_draw
+dEQP-GLES31.functional.tessellation.invariance.inner_triangle_set.quads_fractional_even_spacing
+dEQP-GLES31.functional.tessellation.invariance.tess_coord_component_range.triangles_fractional_odd_spacing_cw
+dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d
+dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d_array
+dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d
+dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d_array
+dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d
+dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d_array
+dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d
+dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d_array
diff --git a/.gitlab-ci/deqp-freedreno-a630-noubo-fails.txt b/.gitlab-ci/deqp-freedreno-a630-noubo-fails.txt
new file mode 100644 (file)
index 0000000..2b00497
--- /dev/null
@@ -0,0 +1,18 @@
+dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_clear
+dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
+dEQP-GLES31.functional.ubo.random.all_per_block_buffers.11
+dEQP-GLES31.functional.ubo.random.all_per_block_buffers.16
+dEQP-GLES31.functional.ubo.random.all_per_block_buffers.21
+dEQP-GLES31.functional.ubo.random.all_per_block_buffers.31
+dEQP-GLES31.functional.ubo.random.all_per_block_buffers.6
+dEQP-GLES31.functional.ubo.random.all_shared_buffer.12
+dEQP-GLES31.functional.ubo.random.all_shared_buffer.17
+dEQP-GLES31.functional.ubo.random.all_shared_buffer.2
+dEQP-GLES31.functional.ubo.random.all_shared_buffer.27
+dEQP-GLES31.functional.ubo.random.all_shared_buffer.37
+dEQP-GLES31.functional.ubo.random.all_shared_buffer.47
+dEQP-GLES31.functional.ubo.random.basic_type_arrays.1
+dEQP-GLES31.functional.ubo.random.basic_type_arrays.11
+dEQP-GLES31.functional.ubo.random.basic_type_arrays.16
+dEQP-GLES31.functional.ubo.random.basic_type_arrays.21
+dEQP-GLES31.functional.ubo.random.basic_type_arrays.6
index 59cfd8202147b9b2dfff8b6cfd14c07c4ba9e3de..d4de8f74baf9b0b8ffabb4409cd013ded2d0cc1b 100755 (executable)
@@ -60,6 +60,10 @@ if [ -n "$CI_NODE_INDEX" ]; then
    sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
 fi
 
+if [ -n "$DEQP_CASELIST_FILTER" ]; then
+    sed -i "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt
+fi
+
 if [ ! -s /tmp/case-list.txt ]; then
     echo "Caselist generation failed"
     exit 1