Mesa (main): ci/freedreno: Move freedreno's deqp testing to suite support.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 17 20:24:59 UTC 2021


Module: Mesa
Branch: main
Commit: 09942227f63d2112c730799b600b75f8d3d02d5c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=09942227f63d2112c730799b600b75f8d3d02d5c

Author: Emma Anholt <emma at anholt.net>
Date:   Wed Jul 28 16:30:19 2021 -0700

ci/freedreno: Move freedreno's deqp testing to suite support.

Using suites makes load-balancing our jobs much easier, keeps the CPU busy
handling the a630_gles_others.sh test sets (and improves the output and
baseline handling for them), and makes it trivial to add in more short
test sets.

a306: still 5 jobs, and we add KHR-GLES2 (KHR-GLES3 is unstable)
a530: still 5 jobs, added KHR-GLES*
a630_gl: 5 jobs becomes 4, and we add KHR-GLES*
a630_vk: still 3 jobs, now 1/3 of all VK instead of 1/4.
a630_vk_full: still 2 jobs, now includes full bypass testing, partial
              no-force testing, and testing of pre-merge-skipped tests.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12256>

---

 .gitlab-ci/bare-metal/arm64_a630_gles_others.sh    |  79 ----------
 .gitlab-ci/common/generate-env.sh                  |   1 +
 src/freedreno/ci/deqp-freedreno-a307.toml          |  45 ++++++
 src/freedreno/ci/deqp-freedreno-a530-fails.txt     | 166 ++++++++++++++++++++-
 src/freedreno/ci/deqp-freedreno-a530-flakes.txt    |   9 ++
 src/freedreno/ci/deqp-freedreno-a530-skips.txt     |   3 +
 src/freedreno/ci/deqp-freedreno-a530.toml          |  42 ++++++
 .../ci/deqp-freedreno-a630-bypass-fails.txt        |   5 -
 src/freedreno/ci/deqp-freedreno-a630-fails.txt     |  89 +++++++++++
 src/freedreno/ci/deqp-freedreno-a630-flakes.txt    |   8 +
 .../ci/deqp-freedreno-a630-premerge-skips.txt      |   9 ++
 src/freedreno/ci/deqp-freedreno-a630-skips.txt     |  12 +-
 src/freedreno/ci/deqp-freedreno-a630-vk-full.toml  |  32 ++++
 src/freedreno/ci/deqp-freedreno-a630-vk.toml       |  22 +++
 src/freedreno/ci/deqp-freedreno-a630.toml          | 145 ++++++++++++++++++
 src/freedreno/ci/gitlab-ci.yml                     | 104 ++-----------
 16 files changed, 591 insertions(+), 180 deletions(-)

diff --git a/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh b/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh
deleted file mode 100755
index fd52f25a978..00000000000
--- a/.gitlab-ci/bare-metal/arm64_a630_gles_others.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-# This test script groups together a bunch of fast dEQP variant runs
-# to amortize the cost of rebooting the board.
-
-set -ex
-
-EXIT=0
-
-# Test rendering with the gmem path forced when possible (~1 minute)
-if ! env \
-  DEQP_RESULTS_DIR=results/gmem \
-  DEQP_VER=gles31 \
-  DEQP_FRACTION=5 \
-  FD_MESA_DEBUG=nobypass \
-  /install/deqp-runner.sh; then
-    EXIT=1
-fi
-
-# Test rendering with the bypass path forced when possible (~1 minute)
-if ! env \
-  DEQP_RESULTS_DIR=results/bypass \
-  DEQP_VER=gles31 \
-  DEQP_FRACTION=5 \
-  FD_MESA_DEBUG=nogmem \
-  GPU_VERSION=freedreno-a630-bypass \
-  /install/deqp-runner.sh; then
-    EXIT=1
-fi
-
-# Test rendering with the UBO-to-constants optimization disabled (~1 minute)
-if ! env \
-  DEQP_RESULTS_DIR=results/nouboopt \
-  DEQP_VER=gles31 \
-  IR3_SHADER_DEBUG=nouboopt \
-  DEQP_CASELIST_FILTER="functional.*ubo" \
-  /install/deqp-runner.sh; then
-    EXIT=1
-fi
-
-# gles3-565nozs mustpass (~20s)
-if ! env \
-  DEQP_RESULTS_DIR=results/gles3-565nozs \
-  DEQP_VER=gles3 \
-  DEQP_CONFIG="rgb565d0s0ms0" \
-  DEQP_VARIANT="565-no-depth-no-stencil" \
-  /install/deqp-runner.sh; then
-    EXIT=1
-fi
-
-# gles31-565nozs mustpass (~1s)
-if ! env \
-  DEQP_RESULTS_DIR=results/gles31-565nozs \
-  DEQP_VER=gles31 \
-  DEQP_CONFIG="rgb565d0s0ms0" \
-  DEQP_VARIANT="565-no-depth-no-stencil" \
-  /install/deqp-runner.sh; then
-    EXIT=1
-fi
-
-if ! env \
-  DEQP_RESULTS_DIR=results/gles3-multisample \
-  DEQP_VER=gles3 \
-  DEQP_CONFIG="rgba8888d24s8ms4" \
-  DEQP_VARIANT="multisample" \
-  /install/deqp-runner.sh; then
-    EXIT=1
-fi
-
-if ! env \
-  DEQP_RESULTS_DIR=results/gles31-multisample \
-  DEQP_VER=gles31 \
-  DEQP_CONFIG="rgba8888d24s8ms4" \
-  DEQP_VARIANT="multisample" \
-  /install/deqp-runner.sh; then
-    EXIT=1
-fi
-
-exit $EXIT
diff --git a/.gitlab-ci/common/generate-env.sh b/.gitlab-ci/common/generate-env.sh
index 18e11b775bc..f31693154b1 100755
--- a/.gitlab-ci/common/generate-env.sh
+++ b/.gitlab-ci/common/generate-env.sh
@@ -29,6 +29,7 @@ for var in \
     DEQP_PARALLEL \
     DEQP_RESULTS_DIR \
     DEQP_RUNNER_OPTIONS \
+    DEQP_SUITE \
     DEQP_VARIANT \
     DEQP_VER \
     DEQP_WIDTH \
diff --git a/src/freedreno/ci/deqp-freedreno-a307.toml b/src/freedreno/ci/deqp-freedreno-a307.toml
new file mode 100644
index 00000000000..6494583917c
--- /dev/null
+++ b/src/freedreno/ci/deqp-freedreno-a307.toml
@@ -0,0 +1,45 @@
+# Basic test set
+[[deqp]]
+deqp = "/deqp/modules/gles2/deqp-gles2"
+caselists = ["/deqp/mustpass/gles2-master.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+[[deqp]]
+deqp = "/deqp/modules/gles3/deqp-gles3"
+caselists = ["/deqp/mustpass/gles3-master.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+
+[[deqp]]
+deqp = "/deqp/external/openglcts/modules/glcts"
+# Not doing GLES3 because of a lot of GPU hangs.
+caselists = [
+    "/deqp/mustpass/gles2-khr-master.txt",
+]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+# Check that the non-constbuf UBO case works.
+[[deqp]]
+deqp = "/deqp/modules/gles3/deqp-gles3"
+caselists = ["/deqp/mustpass/gles3-master.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+include = ["functional.*ubo"]
+prefix = "nouboopt-"
+[deqp.env]
+IR3_SHADER_DEBUG = "nouboopt"
diff --git a/src/freedreno/ci/deqp-freedreno-a530-fails.txt b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
index c64cad8fc8e..fa46db2ce26 100644
--- a/src/freedreno/ci/deqp-freedreno-a530-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
@@ -3,11 +3,81 @@ dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail
 dEQP-GLES2.functional.clipping.point.wide_point_clip,Fail
 dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center,Fail
 dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner,Fail
+
+# "../src/compiler/glsl/ir.cpp:534: ir_expression::ir_expression(int, ir_rvalue*, ir_rvalue*): Assertion `op0->type == op1->type' failed."
+# in lower_instructions_visitor::extract_to_shifts().
+# This GLSL path would be avoided if we had ARB_gpu_shader5.
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.int_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.int_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.int_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.int_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec3_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec3_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec3_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec3_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec2_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec4_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec4_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec4_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec4_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec3_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec3_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec3_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec3_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uint_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uint_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uint_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uint_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_mediump_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec4_lowp_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec4_lowp_fragment,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec4_mediump_compute,Crash
+dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec4_mediump_fragment,Crash
+
+dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20,Fail
 dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_center,Fail
-dEQP-GLES3.functional.clipping.point.wide_point_clip,Fail
-dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner,Fail
 dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner,Fail
+dEQP-GLES3.functional.clipping.point.wide_point_clip,Fail
 dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center,Fail
+dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner,Fail
 dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_basic,Fail
 dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_scale,Fail
 dEQP-GLES3.functional.fbo.blit.depth_stencil.depth24_stencil8_stencil_only,Fail
@@ -52,3 +122,95 @@ dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler3d_
 dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler3d_float_vertex,Fail
 dEQP-GLES3.functional.shaders.texture_functions.textureprojgrad.sampler2dshadow_vertex,Fail
 dEQP-GLES3.functional.texture.specification.texstorage3d.size.3d_2x2x2_2_levels,Fail
+
+# Draws white instead of gradient
+KHR-GLES2.core.internalformat.copy_tex_image.alpha8_oes,Fail
+KHR-GLES2.core.internalformat.copy_tex_image.alpha,Fail
+KHR-GLES3.core.internalformat.copy_tex_image.alpha,Fail
+KHR-GLES31.core.internalformat.copy_tex_image.alpha,Fail
+
+# "../src/freedreno/ir3/ir3_ra.c:132: interval_insert: Assertion `(interval->reg->flags & IR3_REG_HALF) == (right->reg->flags & IR3_REG_HALF)' failed."
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing1,Crash
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing2,Crash
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing3,Crash
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing4,Crash
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing5,Crash
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing6,Crash
+
+# "Invalid array size was returned. at es31cArrayOfArraysTests.cpp:4779"
+# msm 900000.mdss: [drm:a5xx_irq] *ERROR* gpu fault ring 0 fence 2c54ef status E40801C1 rb 0162/0162 ib1 000000000104B000/0000 ib2 000000000104C000/0000
+KHR-GLES31.core.arrays_of_arrays.InteractionFunctionCalls1,Fail
+KHR-GLES31.core.arrays_of_arrays.InteractionFunctionCalls2,Fail
+
+# "gl_NumWorkGroups: Invalid data at index 0"
+KHR-GLES31.core.compute_shader.built-in-variables,Fail
+
+# "Got red: 1, expected 0.00392157, at (1, 0)"
+KHR-GLES31.core.compute_shader.resource-image,Fail
+
+# "../src/gallium/drivers/freedreno/a5xx/fd5_emit.c:82: fd5_emit_const_bo: Assertion `dst_off % 4 == 0' failed."
+KHR-GLES31.core.draw_indirect.advanced-twoPass-transformFeedback-arrays,Crash
+KHR-GLES31.core.draw_indirect.advanced-twoPass-transformFeedback-elements,Crash
+KHR-GLES31.core.draw_indirect.basic-drawArrays-vertexIds,Crash
+KHR-GLES31.core.draw_indirect.basic-drawElements-vertexIds,Crash
+
+# "drawTestCompute failed expected: RGBA(4, 3, 2, 1) actual: RGBA(0, 255, 0, 255)"
+KHR-GLES31.core.layout_binding.sampler2DArray_layout_binding_texture_ComputeShader,Fail
+KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_ComputeShader,Fail
+KHR-GLES31.core.layout_binding.sampler3D_layout_binding_texture_ComputeShader,Fail
+
+# msm 900000.mdss: [drm:a5xx_irq] *ERROR* gpu fault ring 0 fence 2c54ef status E40801C1 rb 0162/0162 ib1 000000000104B000/0000 ib2 000000000104C000/0000
+KHR-GLES31.core.texture_buffer.texture_buffer_atomic_functions,Fail
+
+# Many failures, across formats
+KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_posx,Fail
+KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_texture2d,Fail
+KHR-GLES3.copy_tex_image_conversions.required.renderbuffer_cubemap_posx,Fail
+KHR-GLES3.copy_tex_image_conversions.required.renderbuffer_texture2d,Fail
+KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_posx,Fail
+KHR-GLES3.copy_tex_image_conversions.required.texture2d_texture2d,Fail
+KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posx,Fail
+KHR-GLES3.copy_tex_image_conversions.required.texture3d_texture2d,Fail
+
+KHR-GLES3.packed_depth_stencil.blit.depth24_stencil8,Fail
+KHR-GLES3.packed_depth_stencil.blit.depth32f_stencil8,Fail
+KHR-GLES3.packed_depth_stencil.verify_read_pixels.depth24_stencil8,Fail
+
+# "Non-integer comparison: 1, 0, 18, 1e-05: 0.142857 == 0: not equal.
+#  Copy stage: Gradient comparison failed during ReadPixels for input = [GL_RG, GL_FLOAT] output = [GL_RED, GL_FLOAT]"
+KHR-GLES3.packed_pixels.pbo_rectangle.rg32f,Fail
+# " Integer comparison: 1, 0, 18: 306783392 == 0: not equal.
+#   Copy stage: Gradient comparison failed during ReadPixels for input = [GL_RG_INTEGER, GL_INT] output = [GL_RED_INTEGER, GL_INT]"
+KHR-GLES3.packed_pixels.pbo_rectangle.rg32i,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rg32ui,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rgb16f,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rgba16f,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rgba16i,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rgba16ui,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rgba32f,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rgba32i,Fail
+KHR-GLES3.packed_pixels.pbo_rectangle.rgba32ui,Fail
+
+KHR-GLES3.packed_pixels.rectangle.rg32f,Fail
+KHR-GLES3.packed_pixels.rectangle.rg32i,Fail
+KHR-GLES3.packed_pixels.rectangle.rg32ui,Fail
+KHR-GLES3.packed_pixels.rectangle.rgb16f,Fail
+KHR-GLES3.packed_pixels.rectangle.rgba16f,Fail
+KHR-GLES3.packed_pixels.rectangle.rgba16i,Fail
+KHR-GLES3.packed_pixels.rectangle.rgba16ui,Fail
+KHR-GLES3.packed_pixels.rectangle.rgba32f,Fail
+KHR-GLES3.packed_pixels.rectangle.rgba32i,Fail
+KHR-GLES3.packed_pixels.rectangle.rgba32ui,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rg32f,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rg32i,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rg32ui,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rgb16f,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rgba16f,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rgba16i,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rgba16ui,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rgba32f,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rgba32i,Fail
+KHR-GLES3.packed_pixels.varied_rectangle.rgba32ui,Fail
+
+# "[31] Check failed. Received: [1,0,0,2] instead of: [5,0,0,2]"
+KHR-GLES31.core.shader_image_load_store.basic-glsl-misc-fs,Fail
diff --git a/src/freedreno/ci/deqp-freedreno-a530-flakes.txt b/src/freedreno/ci/deqp-freedreno-a530-flakes.txt
index 33d859bcc27..ac194d19c5c 100644
--- a/src/freedreno/ci/deqp-freedreno-a530-flakes.txt
+++ b/src/freedreno/ci/deqp-freedreno-a530-flakes.txt
@@ -25,7 +25,16 @@ dEQP-GLES31.functional.separate_shader.interface.same_name_vertex_centroid_fragm
 
 # Flaky since running more of GLES31
 dEQP-GLES31.functional.texture.border_clamp.*
+KHR-GLES31.core.texture_border_clamp.*
+
+KHR-GLES31.core.shader_image_load_store.basic-allTargets-atomicCS
+KHR-GLES31.core.shader_image_load_store.basic-glsl-misc-cs
+KHR-GLES31.core.shader_storage_buffer_object.advanced-switchBuffers-cs
+KHR-GLES31.core.shader_storage_buffer_object.advanced-switchPrograms-cs
+KHR-GLES31.core.shader_storage_buffer_object.basic-syntax-cs
 
 # Flaky since around Feb 26, first appearing on a seemingly-unrelated CI change
 # (ci-fd-fastboot-nfs)
 dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.*
+
+dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8.filter_mode.min_nearest_mipmap_nearest_mag_linear
diff --git a/src/freedreno/ci/deqp-freedreno-a530-skips.txt b/src/freedreno/ci/deqp-freedreno-a530-skips.txt
index dc4c488cb0f..ee4cddf7dfe 100644
--- a/src/freedreno/ci/deqp-freedreno-a530-skips.txt
+++ b/src/freedreno/ci/deqp-freedreno-a530-skips.txt
@@ -14,3 +14,6 @@ dEQP-GLES31.functional.shaders.builtin_functions.precision.distance.lowp_compute
 dEQP-GLES31.functional.shaders.builtin_functions.precision.pow.highp_compute.vec3
 dEQP-GLES31.functional.shaders.builtin_functions.precision.sqrt.highp_compute.vec3
 dEQP-GLES31.functional.shaders.builtin_functions.precision.tanh.lowp_compute.vec3
+
+# Takes more than a few minutes, time is spent in batch_draw_tracking().
+KHR-GLES31.core.shader_image_load_store.basic-allFormats-store-fs
diff --git a/src/freedreno/ci/deqp-freedreno-a530.toml b/src/freedreno/ci/deqp-freedreno-a530.toml
new file mode 100644
index 00000000000..d55953bce33
--- /dev/null
+++ b/src/freedreno/ci/deqp-freedreno-a530.toml
@@ -0,0 +1,42 @@
+# Basic test set
+[[deqp]]
+deqp = "/deqp/modules/gles2/deqp-gles2"
+caselists = ["/deqp/mustpass/gles2-master.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+[[deqp]]
+deqp = "/deqp/modules/gles3/deqp-gles3"
+caselists = ["/deqp/mustpass/gles3-master.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+fraction = 2
+
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-master.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+fraction = 2
+
+[[deqp]]
+deqp = "/deqp/external/openglcts/modules/glcts"
+caselists = [
+    "/deqp/mustpass/gles2-khr-master.txt",
+    "/deqp/mustpass/gles3-khr-master.txt",
+    "/deqp/mustpass/gles31-khr-master.txt",
+]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
diff --git a/src/freedreno/ci/deqp-freedreno-a630-bypass-fails.txt b/src/freedreno/ci/deqp-freedreno-a630-bypass-fails.txt
deleted file mode 100644
index 61587ebade3..00000000000
--- a/src/freedreno/ci/deqp-freedreno-a630-bypass-fails.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-dEQP-GLES31.functional.blend_equation_advanced.msaa.colordodge,Fail
-dEQP-GLES31.functional.blend_equation_advanced.msaa.exclusion,Fail
-dEQP-GLES31.functional.blend_equation_advanced.msaa.hardlight,Fail
-dEQP-GLES31.functional.blend_equation_advanced.msaa.multiply,Fail
-dEQP-GLES31.functional.blend_equation_advanced.msaa.overlay,Fail
diff --git a/src/freedreno/ci/deqp-freedreno-a630-fails.txt b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
index f9c930b777c..e26e8afd0ac 100644
--- a/src/freedreno/ci/deqp-freedreno-a630-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
@@ -11,6 +11,89 @@ KHR-GL33.transform_feedback.draw_xfb_stream_instanced_test,Crash
 KHR-GL33.transform_feedback.query_vertex_interleaved_test,Fail
 KHR-GL33.transform_feedback.query_vertex_separate_test,Fail
 
+# "*** Color comparison failed"
+KHR-GLES3.packed_depth_stencil.verify_read_pixels.depth24_stencil8,Fail
+
+# "MESA: error: ir3_ra() failed!"
+KHR-GLES31.core.arrays_of_arrays.InteractionFunctionCalls2,Fail
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing5,Fail
+KHR-GLES31.core.arrays_of_arrays.InteractionArgumentAliasing6,Fail
+
+# "The values of resultStd[i] & 0xFFFFFFFE and resultFma[i] & 0xFFFFFFFE and resultCPU[i] & 0xFFFFFFFE are not bitwise equal for i = 0..99 "
+KHR-GLES31.core.gpu_shader5.fma_precision_float,Fail
+KHR-GLES31.core.gpu_shader5.fma_precision_vec2,Fail
+KHR-GLES31.core.gpu_shader5.fma_precision_vec3,Fail
+KHR-GLES31.core.gpu_shader5.fma_precision_vec4,Fail
+
+# "Array 0 length is 60829990 should be 7
+#  Array 1 length is 60829990 should be 5
+#  Array 2 length is 60829990 should be 3
+#  Array 3 length is 60829990 should be 4
+#  Array 4 length is 132120576 should be 23
+#  Array 5 length is 132120576 should be 123
+#  Array 6 length is 66060288 should be 419"
+KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std430-vec,Fail
+
+# "Array 0 length is 266338304 should be 7
+#  Array 1 length is 266338304 should be 3
+#  Array 2 length is 266338304 should be 4
+#  Array 3 length is 266338303 should be 4"
+KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-int,Fail
+
+# "gl_NumWorkGroups: Invalid data at index 2"
+KHR-GLES31.core.compute_shader.built-in-variables,Fail
+
+# "Got red: 1, expected 0.00392157, at (1, 0)"
+KHR-GLES31.core.compute_shader.resource-image,Fail
+
+# "(x,y)= (0,0). Color RGBA(0,0,0,1) is different than expected RGBA(0.1,0.2,0.3,1)"
+KHR-GLES31.core.draw_indirect.advanced-twoPass-transformFeedback-arrays,Fail
+KHR-GLES31.core.draw_indirect.advanced-twoPass-transformFeedback-elements,Fail
+
+# Lots of errors like "[279] Check failed. Received: [3,0,0,2] instead of: [5,0,0,2]"
+KHR-GLES31.core.geometry_shader.layered_framebuffer.depth_support,Fail
+
+KHR-GLES31.core.geometry_shader.layered_framebuffer.stencil_support,Fail
+
+# " [31] Check failed. Received: [3,0,0,2] instead of: [5,0,0,2]"
+KHR-GLES31.core.shader_image_load_store.basic-glsl-misc-fs,Fail
+
+# Storage Type: IMMUTABLE imageSize() for imageCubeArray returned wrong values of [width][height][layers]. They are equal to[32][32][18] but should be [32][32][3].
+# Storage Type: IMMUTABLE imageSize() for imageCubeArray returned wrong values of [width][height][layers]. They are equal to[64][64][6] but should be [64][64][1].
+# Storage Type: IMMUTABLE imageSize() for imageCubeArray returned wrong values of [width][height][layers]. They are equal to[128][128][12] but should be [128][128][2].
+# Storage Type: IMMUTABLE imageSize() for imageCubeArray returned wrong values of [width][height][layers]. They are equal to[256][256][12] but should be [256][256][2].
+KHR-GLES31.core.texture_cube_map_array.texture_size_compute_sh,Fail
+
+# " Pixel data comparison failed; expected: (0.1, 0.2, 0.3, 0.4) rendered: (0, 0, 0, 0) epsilon: 0.00392157
+#   Pixel data comparison failed at esextcTessellationShaderPoints.cpp:597"
+KHR-GLES31.core.tessellation_shader.tessellation_shader_point_mode.point_rendering,Fail
+
+# "Invalid value returned: expected:[1, 1, 1, 1] retrieved: [0, 0, 0, 0
+#  Invalid rendering result at esextcTessellationShaderBarrier.cpp:504"
+KHR-GLES31.core.tessellation_shader.tessellation_shader_tc_barriers.barrier_guarded_read_calls,Fail
+
+# no debug info in the qpa
+KHR-GLES31.core.texture_cube_map_array.color_depth_attachments,Fail
+# failures in GS,TCS,TES texturing
+KHR-GLES31.core.texture_cube_map_array.sampling,Fail
+
+# rendering errors in ~4x4 blocks around the bottom side of the diagonal for the quad
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.colorburn,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.colordodge,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.darken,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.difference,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.exclusion,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.hardlight,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_color,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_hue,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_luminosity,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_saturation,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.lighten,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.multiply,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.overlay,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.screen,Fail
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.softlight,Fail
+
 # "Fail (createInstance returned VK_ERROR_INITIALIZATION_FAILED)"
 # happens inside the loader on anholt's debian system, and there are various
 # likely-looking fixes in later versions of the loader.
@@ -281,3 +364,9 @@ dEQP-VK.ssbo.layout.random.all_shared_buffer.5,Fail
 dEQP-VK.ssbo.layout.random.nested_structs_arrays.0,Fail
 dEQP-VK.ssbo.layout.random.nested_structs_arrays.17,Fail
 dEQP-VK.ssbo.layout.random.scalar.19,Fail
+
+bypass-dEQP-VK.renderpass.dedicated_allocation.attachment_allocation.input_output.7,Fail
+bypass-dEQP-VK.renderpass.suballocation.attachment_allocation.input_output.7,Fail
+bypass-dEQP-VK.renderpass2.dedicated_allocation.attachment_allocation.input_output.7,Fail
+bypass-dEQP-VK.renderpass2.suballocation.attachment_allocation.input_output.7,Fail
+bypass-dEQP-VK.renderpass.suballocation.subpass_dependencies.separate_channels.r8g8b8a8_unorm,Fail
diff --git a/src/freedreno/ci/deqp-freedreno-a630-flakes.txt b/src/freedreno/ci/deqp-freedreno-a630-flakes.txt
index 17f3de6823c..2eac1ecded2 100644
--- a/src/freedreno/ci/deqp-freedreno-a630-flakes.txt
+++ b/src/freedreno/ci/deqp-freedreno-a630-flakes.txt
@@ -95,3 +95,11 @@ dEQP-VK.wsi.display_control.register_display_event
 
 # First noticed Jun 1 2020 on an innocent branch.
 KHR-GL33.packed_depth_stencil.verify_copy_tex_image.depth32f_stencil8
+
+# Flaky with introduction of testing
+KHR-GLES31.core.arrays_of_arrays.InteractionFunctionCalls2
+KHR-GLES31.core.geometry_shader.layered_framebuffer.depth_support
+KHR-GLES31.core.tessellation_shader.tessellation_shader_tc_barriers.barrier_guarded_read_calls
+
+# looks like a cache flushing issue, and it does sometimes pass.
+bypass-dEQP-GLES31.functional.blend_equation_advanced.msaa.*
diff --git a/src/freedreno/ci/deqp-freedreno-a630-premerge-skips.txt b/src/freedreno/ci/deqp-freedreno-a630-premerge-skips.txt
new file mode 100644
index 00000000000..eefd3e8ac38
--- /dev/null
+++ b/src/freedreno/ci/deqp-freedreno-a630-premerge-skips.txt
@@ -0,0 +1,9 @@
+# Note: skips lists for CI are just a list of lines that, when
+# non-zero-length and not starting with '#', will regex match to
+# delete lines from the test list.  Be careful.
+
+# Timeouts, passes otherwise
+KHR-GL33.texture_swizzle.smoke
+
+# Crashes in RA, but slow enough to get there that CI times out sometimes
+dEQP-VK.spirv_assembly.instruction.*.spirv_ids_abuse.lots_ids.*
diff --git a/src/freedreno/ci/deqp-freedreno-a630-skips.txt b/src/freedreno/ci/deqp-freedreno-a630-skips.txt
index 23b5feb2548..b3531a2c6ac 100644
--- a/src/freedreno/ci/deqp-freedreno-a630-skips.txt
+++ b/src/freedreno/ci/deqp-freedreno-a630-skips.txt
@@ -2,13 +2,13 @@
 # non-zero-length and not starting with '#', will regex match to
 # delete lines from the test list.  Be careful.
 
-# Timeouts, passes otherwise
-KHR-GL33.texture_swizzle.smoke
+# Note normal pre-merge CI also includes -premerge-skips.txt, and that's where
+# "it's slow but would pass/fail/crash within a couple of minutes" skips should go.
 
 # Crashes likely caused by https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2701
 dEQP-VK.synchronization.cross_instance.*binary_semaphore_fence_fd
 
-# Timeouts, passes otherwise
+# Timeouts in CI even after 5 minutes
 dEQP-VK.tessellation.invariance.outer_edge_division.quads_equal_spacing
 dEQP-VK.tessellation.invariance.outer_edge_division.quads_fractional_even_spacing
 dEQP-VK.tessellation.invariance.outer_edge_division.quads_fractional_odd_spacing
@@ -19,9 +19,9 @@ dEQP-VK.tessellation.invariance.outer_triangle_set.triangles_equal_spacing
 dEQP-VK.tessellation.invariance.outer_triangle_set.triangles_fractional_even_spacing
 dEQP-VK.tessellation.invariance.outer_triangle_set.triangles_fractional_odd_spacing
 
-# Crashes in RA, but slow enough to get there that CI times out sometimes
-dEQP-VK.spirv_assembly.instruction.*.spirv_ids_abuse.lots_ids.*
-
 # timeout, spending all its time in nir_compare_deref_paths()
 # https://gitlab.freedesktop.org/mesa/mesa/-/issues/5152
 dEQP-VK.ubo.random.all_shared_buffer.48
+
+# Still running after 3 hours, time is spent in batch_draw_tracking().
+KHR-GLES31.core.shader_image_load_store.basic-allFormats-store-fs
diff --git a/src/freedreno/ci/deqp-freedreno-a630-vk-full.toml b/src/freedreno/ci/deqp-freedreno-a630-vk-full.toml
new file mode 100644
index 00000000000..35a2280b157
--- /dev/null
+++ b/src/freedreno/ci/deqp-freedreno-a630-vk-full.toml
@@ -0,0 +1,32 @@
+# Basic test set
+[[deqp]]
+deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk"
+caselists = ["/deqp/mustpass/vk-master.txt"]
+timeout = 300
+[deqp.env]
+# Force binning in the main run, which makes sure we render at
+# least 2 bins.  This is the path that impacts the most different
+# features.
+TU_DEBUG = "forcebin"
+
+# force-bypass testing
+[[deqp]]
+deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk"
+caselists = ["/deqp/mustpass/vk-master.txt"]
+timeout = 300
+include = ["dEQP-VK.renderpass.*"]
+prefix = "bypass-"
+[deqp.env]
+TU_DEBUG = "sysmem"
+
+# Partial test with neither force-bin nor force-sysmem.  We don't expect trouble
+# here if both of those work, but it is the default so we should do at least a
+# bit of it. Left disabled for now until we shorten our list of known fails a
+# bit more (otherwise, it's a lot of bother to track as uprevs change the
+# fraction that gets run).
+#[[deqp]]
+#deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk"
+#caselists = ["/deqp/mustpass/vk-master.txt"]
+#timeout = 300
+#fraction = 10
+#prefix = "defaults-"
diff --git a/src/freedreno/ci/deqp-freedreno-a630-vk.toml b/src/freedreno/ci/deqp-freedreno-a630-vk.toml
new file mode 100644
index 00000000000..72becc3dcab
--- /dev/null
+++ b/src/freedreno/ci/deqp-freedreno-a630-vk.toml
@@ -0,0 +1,22 @@
+# Basic test set
+[[deqp]]
+deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk"
+caselists = ["/deqp/mustpass/vk-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+fraction = 3
+[deqp.env]
+# Force binning in the main run, which makes sure we render at
+# least 2 bins.  This is the path that impacts the most different
+# features.
+TU_DEBUG = "forcebin"
+
+# force-bypass testing
+[[deqp]]
+deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk"
+caselists = ["/deqp/mustpass/vk-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+include = ["dEQP-VK.renderpass.*"]
+prefix = "bypass-"
+fraction = 15
+[deqp.env]
+TU_DEBUG = "sysmem"
diff --git a/src/freedreno/ci/deqp-freedreno-a630.toml b/src/freedreno/ci/deqp-freedreno-a630.toml
new file mode 100644
index 00000000000..b6f782f0bd9
--- /dev/null
+++ b/src/freedreno/ci/deqp-freedreno-a630.toml
@@ -0,0 +1,145 @@
+# Basic test set
+[[deqp]]
+deqp = "/deqp/modules/gles2/deqp-gles2"
+caselists = ["/deqp/mustpass/gles2-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+[[deqp]]
+deqp = "/deqp/modules/gles3/deqp-gles3"
+caselists = ["/deqp/mustpass/gles3-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+# Note that KHR-GL3* test sets include all tests from the previous
+# version, so we only need to run one test list (unlike dEQP-GLES,
+# where the test sets are separate).
+[[deqp]]
+deqp = "/deqp/external/openglcts/modules/glcts"
+caselists = [
+    "/deqp/mustpass/gles2-khr-master.txt",
+    "/deqp/mustpass/gles3-khr-master.txt",
+    "/deqp/mustpass/gles31-khr-master.txt",
+    "/deqp/mustpass/gl33-master.txt",
+]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+
+
+# force-gmem testing
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+fraction = 5
+prefix = "gmem-"
+[deqp.env]
+FD_MESA_DEBUG = "nobypass"
+
+
+# force-bypass testing
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+# note that this is in addition to normal flakes
+flakes = ["install/deqp-freedreno-a630-bypass-flakes.txt"]
+fraction = 5
+prefix = "bypass-"
+[deqp.env]
+FD_MESA_DEBUG = "nogmem"
+
+
+# noubo testing
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-master.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+include = ["functional.*ubo"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+prefix = "noubo-"
+[deqp.env]
+IR3_SHADER_DEBUG = "nouboopt"
+
+
+# 565-nozs
+[[deqp]]
+deqp = "/deqp/modules/gles3/deqp-gles3"
+caselists = ["/deqp/mustpass/gles3-565-no-depth-no-stencil.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgb565d0s0ms0",
+]
+prefix = "565-nozs-"
+
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-565-no-depth-no-stencil.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgb565d0s0ms0",
+]
+prefix = "565-nozs-"
+
+# multisample
+[[deqp]]
+deqp = "/deqp/modules/gles3/deqp-gles3"
+caselists = ["/deqp/mustpass/gles3-multisample.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms4",
+]
+prefix = "multisample-"
+
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-multisample.txt"]
+skips = ["install/deqp-freedreno-a630-premerge-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms4",
+]
+prefix = "multisample-"
diff --git a/src/freedreno/ci/gitlab-ci.yml b/src/freedreno/ci/gitlab-ci.yml
index 035173f2f10..c5a6870f8ac 100644
--- a/src/freedreno/ci/gitlab-ci.yml
+++ b/src/freedreno/ci/gitlab-ci.yml
@@ -46,32 +46,14 @@
     GPU_VERSION: freedreno-a307
     DEQP_EXPECTED_RENDERER: FD307
 
-a306_gles2:
+a306_gl:
   extends:
     - .baremetal-deqp-test
     - .a306-test
   variables:
     DEQP_VER: gles2
-
-a306_gles3:
-  extends:
-    - .baremetal-deqp-test
-    - .a306-test
-  parallel: 3
-  variables:
-    DEQP_VER: gles3
-
-# Fractional runs with debug options.  Note that since we're not
-# hitting the iommu faults, we can run in parallel (derive from gles2, not gles3).
-a306_gles3_options:
-  extends:
-    - .baremetal-deqp-test
-    - .a306-test
-  variables:
-    DEQP_VER: gles3
-  script:
-    # Check that the non-constbuf UBO case works.
-    - DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" ./install/bare-metal/fastboot.sh
+    DEQP_SUITE: freedreno-a307
+  parallel: 5
 
 a306-traces:
   extends:
@@ -92,28 +74,14 @@ a306-traces:
   tags:
     - google-freedreno-db820c
 
-a530_gles2:
+a530_gl:
   extends:
     - .baremetal-deqp-test
     - .a530-test
   variables:
     DEQP_VER: gles2
-
-a530_gles3:
-  extends:
-    - .baremetal-deqp-test
-    - .a530-test
-  parallel: 2
-  variables:
-    DEQP_VER: gles3
-    DEQP_FRACTION: 2
-
-a530_gles31:
-  extends:
-    - a530_gles3
-  parallel: 2
-  variables:
-    DEQP_VER: gles31
+    DEQP_SUITE: freedreno-a530
+  parallel: 5
 
 .a530_piglit:
   extends:
@@ -161,34 +129,17 @@ a530-traces:
   script:
     - ./install/bare-metal/cros-servo.sh
 
-a630_gles2:
-  extends:
-    - .baremetal-deqp-test
-    - .a630-test
-  variables:
-    DEQP_VER: gles2
-
-a630_gles31:
-  extends:
-    - .baremetal-deqp-test
-    - .a630-test
-  variables:
-    DEQP_VER: gles31
-
-a630_gles3:
-  extends:
-    - .baremetal-deqp-test
-    - .a630-test
-  variables:
-    DEQP_VER: gles3
-
 a630_gl:
   extends:
     - .baremetal-deqp-test
     - .a630-test
+  parallel: 4
   variables:
-    DEQP_VER: gl33
+    DEQP_VER: gles2 # for renderer check
+    DEQP_SUITE: freedreno-a630
 
+# Robustness tests may be disruptive to other tests, so we run EGL's robustness
+# tests separately.
 a630_egl:
   extends:
     - .baremetal-deqp-test
@@ -198,13 +149,6 @@ a630_egl:
     HWCI_START_XORG: 1
     HWCI_TEST_SCRIPT: "/install/bare-metal/arm64_a630_egl.sh"
 
-a630_gles_others:
-  extends:
-    - .baremetal-deqp-test
-    - .a630-test
-  variables:
-    HWCI_TEST_SCRIPT: "/install/bare-metal/arm64_a630_gles_others.sh"
-
 a630_gles_asan:
   extends:
     - .baremetal-deqp-test
@@ -220,21 +164,18 @@ a630_vk:
   extends:
     - .baremetal-deqp-test-freedreno-vk
     - .a630-test
-  parallel: 2
+  parallel: 3
   variables:
-    DEQP_FRACTION: 4
-    # Force binning in the main run, which makes sure we render at
-    # least 2 bins.  This is the path that impacts the most different
-    # features.  However, we end up with flaky results in
-    # dEQP-VK.binding_model.*.geometry and dEQP-VK.glsl.*_vertex.
-    TU_DEBUG: forcebin
+    DEQP_VER: vk
+    DEQP_SUITE: freedreno-a630-vk
 
 a630_vk_full:
   extends:
     - a630_vk
     - .test-manual-mr
+  parallel: 2
   variables:
-    DEQP_FRACTION: 1
+    DEQP_SUITE: freedreno-a630-vk-full
 
 # Disabled by default until we can sort out what looks like timeouts before
 # getting to the first test (or is it at cleanup after tests completed?).
@@ -253,19 +194,6 @@ a630_vk_asan:
     # totally useless leak reports.  We can still catch buffer overflows.
     ASAN_OPTIONS: "detect_leaks=0"
 
-# Do a separate sysmem pass over the testcases that really affect sysmem
-# rendering.  This is currently very flaky, leave it as an option for devs
-# to click play on in their branches.
-a630_vk_sysmem:
-  extends:
-    - .baremetal-deqp-test-freedreno-vk
-    - .a630-test
-  variables:
-    DEQP_FRACTION: 15
-    DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
-    GPU_VERSION: freedreno-a630-bypass
-    TU_DEBUG: sysmem
-
 a630_piglit:
   extends:
     - .piglit-test



More information about the mesa-commit mailing list