ci: add Adreno 660 on sm8350 chipset (HDK 888)
authorDavid Heidelberg <david.heidelberg@collabora.com>
Wed, 5 Apr 2023 20:27:09 +0000 (22:27 +0200)
committerMarge Bot <emma+marge@anholt.net>
Tue, 25 Apr 2023 20:41:50 +0000 (20:41 +0000)
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22604>

src/freedreno/ci/deqp-freedreno-a660.toml [new file with mode: 0644]
src/freedreno/ci/freedreno-a660-fails.txt [new file with mode: 0644]
src/freedreno/ci/freedreno-a660-flakes.txt [new file with mode: 0644]
src/freedreno/ci/freedreno-a660-skips.txt [new file with mode: 0644]
src/freedreno/ci/gitlab-ci.yml

diff --git a/src/freedreno/ci/deqp-freedreno-a660.toml b/src/freedreno/ci/deqp-freedreno-a660.toml
new file mode 100644 (file)
index 0000000..a62b973
--- /dev/null
@@ -0,0 +1,160 @@
+# Basic test set
+[[deqp]]
+deqp = "/deqp/modules/gles2/deqp-gles2"
+caselists = ["/deqp/mustpass/gles2-master.txt"]
+skips = ["install/freedreno-a660-skips.txt"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+version_check = "GL ES 3.2.*git"
+renderer_check = "FD660"
+
+[[deqp]]
+deqp = "/deqp/modules/gles3/deqp-gles3"
+caselists = ["/deqp/mustpass/gles3-master.txt"]
+skips = ["install/freedreno-a660-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/freedreno-a660-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/gl45-master.txt",
+]
+skips = ["install/freedreno-a660-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/freedreno-a660-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 = "gmem"
+
+
+# force-bypass testing
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-master.txt"]
+skips = ["install/freedreno-a660-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 = "bypass-"
+[deqp.env]
+FD_MESA_DEBUG = "sysmem"
+
+
+# noubo testing
+[[deqp]]
+deqp = "/deqp/modules/gles31/deqp-gles31"
+caselists = ["/deqp/mustpass/gles31-master.txt"]
+skips = ["install/freedreno-a660-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/freedreno-a660-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/freedreno-a660-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/freedreno-a660-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/freedreno-a660-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-"
+
+# spilling testing
+[[deqp]]
+deqp = "/deqp/modules/gles2/deqp-gles2"
+caselists = ["/deqp/mustpass/gles2-master.txt"]
+skips = ["install/freedreno-a660-skips.txt"]
+include = ["functional.shaders"]
+deqp_args = [
+    "--deqp-surface-width=256", "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+]
+prefix = "spill-"
+[deqp.env]
+IR3_SHADER_DEBUG = "spillall"
diff --git a/src/freedreno/ci/freedreno-a660-fails.txt b/src/freedreno/ci/freedreno-a660-fails.txt
new file mode 100644 (file)
index 0000000..853c357
--- /dev/null
@@ -0,0 +1,17 @@
+# Shader compilation error log: 0:6(1): error: invalid stream specified 1 is larger than MAX_VERTEX_STREAMS - 1
+KHR-GL45.transform_feedback.draw_xfb_stream_instanced_test,Fail
+
+# Various limits we cannot or do not support:
+KHR-GL45.limits.max_vertex_streams,Fail
+
+KHR-GL45.direct_state_access.renderbuffers_storage_multisample,Fail
+KHR-GL45.gpu_shader_fp64.fp64.max_uniform_components,Fail
+KHR-GL45.multi_bind.dispatch_bind_image_textures,Fail
+KHR-GL45.polygon_offset_clamp.PolygonOffsetClampMinMax,Fail
+KHR-GL45.polygon_offset_clamp.PolygonOffsetClampZeroInfinity,Fail
+KHR-GL45.shader_image_load_store.basic-allTargets-store,Fail
+KHR-GL45.shader_subroutine.control_flow_and_returned_subroutine_values_used_as_subroutine_input,Fail
+KHR-GL45.tessellation_shader.single.max_patch_vertices,Fail
+
+# https://gitlab.freedesktop.org/mesa/mesa/-/issues/8886
+dEQP-GLES31.functional.synchronization.inter_invocation.image_atomic_read_write,Crash
diff --git a/src/freedreno/ci/freedreno-a660-flakes.txt b/src/freedreno/ci/freedreno-a660-flakes.txt
new file mode 100644 (file)
index 0000000..4c78848
--- /dev/null
@@ -0,0 +1,3 @@
+KHR-GL45.buffer_storage.map_persistent_dispatch
+KHR-GL45.buffer_storage.map_persistent_flush
+KHR-GL45.shader_subroutine.control_flow_and_returned_subroutine_values_used_as_subroutine_input
diff --git a/src/freedreno/ci/freedreno-a660-skips.txt b/src/freedreno/ci/freedreno-a660-skips.txt
new file mode 100644 (file)
index 0000000..3d30778
--- /dev/null
@@ -0,0 +1,7 @@
+# 60s timeout
+KHR-GL45.copy_image.functional
+KHR-GL45.gpu_shader_fp64.fp64.varyings
+KHR-GL45.texture_swizzle.smoke
+
+# 60s timeout (flake)
+KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat4
index 086819c..85bc646 100644 (file)
@@ -260,6 +260,27 @@ a618-traces-performance:
     # a618 tag starts with cbg-1 (not cbg-0) for some reason
     LAVA_TAGS: "cbg-1"
 
+.lava-sm8350-hdk:
+  variables:
+    BOOT_METHOD: fastboot
+    KERNEL_IMAGE_TYPE: ""
+    # Increase the hangcheck timer for our spilling tests which bump up against
+    # the .5s default.
+    FREEDRENO_HANGCHECK_MS: 2000
+    DEVICE_TYPE: sm8350-hdk
+    DTB: sm8350-hdk
+    GPU_VERSION: freedreno-a660
+    RUNNER_TAG: mesa-ci-x86-64-lava-sm8350-hdk
+
+a660_gl:
+  extends:
+    - .lava-test-deqp:arm64
+    - .freedreno-rules
+    - .lava-sm8350-hdk
+  parallel: 2
+  variables:
+    DEQP_SUITE: freedreno-a660
+
 .a630-test:
   extends:
     - .google-freedreno-test