From 75bcebbb9e68f28599ea8c91bdbc778e54cd2d48 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Wed, 30 Aug 2023 09:13:31 -0700 Subject: [PATCH] ci/anv: Add testing on JSL. ChromeOS is deprioritizing native GL drivers, so move testing on the boards we maintain mostly over to anv. Part-of: --- src/intel/ci/angle-anv-jsl-fails.txt | 13 ++++ src/intel/ci/angle-anv-jsl-flakes.txt | 7 +++ src/intel/ci/angle-anv-jsl-skips.txt | 7 +++ src/intel/ci/anv-jsl-fails.txt | 0 src/intel/ci/anv-jsl-premerge-skips.txt | 4 ++ src/intel/ci/deqp-anv-jsl-angle-full.toml | 68 +++++++++++++++++++++ src/intel/ci/deqp-anv-jsl-angle.toml | 72 +++++++++++++++++++++++ src/intel/ci/deqp-anv-jsl-full.toml | 5 ++ src/intel/ci/deqp-anv-jsl.toml | 6 ++ src/intel/ci/gitlab-ci.yml | 61 ++++++++++++++++--- 10 files changed, 234 insertions(+), 9 deletions(-) create mode 100644 src/intel/ci/angle-anv-jsl-fails.txt create mode 100644 src/intel/ci/angle-anv-jsl-flakes.txt create mode 100644 src/intel/ci/angle-anv-jsl-skips.txt create mode 100644 src/intel/ci/anv-jsl-fails.txt create mode 100644 src/intel/ci/anv-jsl-premerge-skips.txt create mode 100644 src/intel/ci/deqp-anv-jsl-angle-full.toml create mode 100644 src/intel/ci/deqp-anv-jsl-angle.toml create mode 100644 src/intel/ci/deqp-anv-jsl-full.toml create mode 100644 src/intel/ci/deqp-anv-jsl.toml diff --git a/src/intel/ci/angle-anv-jsl-fails.txt b/src/intel/ci/angle-anv-jsl-fails.txt new file mode 100644 index 00000000000..2d056416981 --- /dev/null +++ b/src/intel/ci/angle-anv-jsl-fails.txt @@ -0,0 +1,13 @@ +# https://gitlab.freedesktop.org/mesa/mesa/-/issues/9795 +dEQP-GLES2.functional.shaders.builtin_variable.fragcoord_xyz,Fail +dEQP-GLES3.functional.shaders.builtin_variable.fragcoord_xyz,Fail +multisample-dEQP-GLES3.functional.shaders.builtin_variable.fragcoord_xyz,Fail + +# ANGLE marks non-shadow linear-filtered textures incomplete (see GLES 3.2 spec +# 8.17 Texture Completeness), so you get a fallback texture sample, while Mesa +# incorrectly marks it complete. The CTS incorrectly expects texture +# completeness. +# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4292 +# https://bugs.chromium.org/p/angleproject/issues/detail?id=7877 +KHR-GLES31.core.texture_border_clamp.Texture2DDC16Linear,Fail +KHR-GLES31.core.texture_border_clamp.Texture2DDC32FLinear,Fail diff --git a/src/intel/ci/angle-anv-jsl-flakes.txt b/src/intel/ci/angle-anv-jsl-flakes.txt new file mode 100644 index 00000000000..029b641e02e --- /dev/null +++ b/src/intel/ci/angle-anv-jsl-flakes.txt @@ -0,0 +1,7 @@ +# non-gpu-hang, frequent flakes that can happen deep in a series of copy_image tests. +# multiple fails per caselist, with those fails separated by passes! +dEQP-GLES31.functional.copy_image.mixed.viewclass_.*_mixed.* +dEQP-GLES31.functional.copy_image.*viewclass_.* + +# https://gitlab.freedesktop.org/mesa/mesa/-/issues/9794 +.*dEQP-GLES31.functional.draw_indirect.compute_interop.large.* diff --git a/src/intel/ci/angle-anv-jsl-skips.txt b/src/intel/ci/angle-anv-jsl-skips.txt new file mode 100644 index 00000000000..4ccedad2fd5 --- /dev/null +++ b/src/intel/ci/angle-anv-jsl-skips.txt @@ -0,0 +1,7 @@ +# Unlike zink which does support it, ANGLE relies on a waiver to not implement +# capturing individual array elements (see waivers.xml and gles3-waivers.txt in the CTS) +dEQP-GLES3.functional.transform_feedback.array_element.* +dEQP-GLES3.functional.transform_feedback.random.* +dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element +dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.* +KHR-GLES31.core.program_interface_query.transform-feedback-types diff --git a/src/intel/ci/anv-jsl-fails.txt b/src/intel/ci/anv-jsl-fails.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/intel/ci/anv-jsl-premerge-skips.txt b/src/intel/ci/anv-jsl-premerge-skips.txt new file mode 100644 index 00000000000..84fba1978b2 --- /dev/null +++ b/src/intel/ci/anv-jsl-premerge-skips.txt @@ -0,0 +1,4 @@ +# These are pretty slow, so just run the 2d cases in pre-merge. +dEQP-VK.*robustness.*.no_fmt_qual.*samples_1.*_array.frag +dEQP-VK.*robustness.*.no_fmt_qual.*samples_1.3d.frag +dEQP-VK.*robustness.*.no_fmt_qual.*samples_1.cube.frag diff --git a/src/intel/ci/deqp-anv-jsl-angle-full.toml b/src/intel/ci/deqp-anv-jsl-angle-full.toml new file mode 100644 index 00000000000..2684eab3102 --- /dev/null +++ b/src/intel/ci/deqp-anv-jsl-angle-full.toml @@ -0,0 +1,68 @@ +# 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", +] +version_check = "GL ES 3.1" +renderer_check = "ANGLE.*JSL" + +[[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/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", +] + +# 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_args = [ + "--deqp-surface-width=256", "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden", + "--deqp-gl-config-name=rgba8888d24s8ms0", +] + +# 565-no-depth-no-stencil: Not supported with angle on X11? + +# multisample +[[deqp]] +deqp = "/deqp/modules/gles3/deqp-gles3" +caselists = ["/deqp/mustpass/gles3-multisample.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"] +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/intel/ci/deqp-anv-jsl-angle.toml b/src/intel/ci/deqp-anv-jsl-angle.toml new file mode 100644 index 00000000000..5f44fd86c7c --- /dev/null +++ b/src/intel/ci/deqp-anv-jsl-angle.toml @@ -0,0 +1,72 @@ +# 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", +] +version_check = "GL ES 3.1" +renderer_check = "ANGLE.*JSL" +fraction = 3 + +[[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 = 6 + +[[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 = 6 + +# 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_args = [ + "--deqp-surface-width=256", "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", "--deqp-visibility=hidden", + "--deqp-gl-config-name=rgba8888d24s8ms0", +] +fraction = 2 + +# 565-no-depth-no-stencil: Not supported with angle on X11? + +# multisample +[[deqp]] +deqp = "/deqp/modules/gles3/deqp-gles3" +caselists = ["/deqp/mustpass/gles3-multisample.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"] +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/intel/ci/deqp-anv-jsl-full.toml b/src/intel/ci/deqp-anv-jsl-full.toml new file mode 100644 index 00000000000..0b6e1a6194c --- /dev/null +++ b/src/intel/ci/deqp-anv-jsl-full.toml @@ -0,0 +1,5 @@ +[[deqp]] +deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk" +caselists = ["/deqp/mustpass/vk-master.txt"] +renderer_check = "JSL" +timeout = 180 diff --git a/src/intel/ci/deqp-anv-jsl.toml b/src/intel/ci/deqp-anv-jsl.toml new file mode 100644 index 00000000000..fb0adb592ec --- /dev/null +++ b/src/intel/ci/deqp-anv-jsl.toml @@ -0,0 +1,6 @@ +[[deqp]] +deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk" +caselists = ["/deqp/mustpass/vk-master.txt"] +skips = ["install/anv-jsl-premerge-skips.txt"] +fraction = 12 +renderer_check = "JSL" diff --git a/src/intel/ci/gitlab-ci.yml b/src/intel/ci/gitlab-ci.yml index 6a8b0b4ecb5..3c480353720 100644 --- a/src/intel/ci/gitlab-ci.yml +++ b/src/intel/ci/gitlab-ci.yml @@ -174,6 +174,26 @@ FDO_CI_CONCURRENT: 9 RUNNER_TAG: mesa-ci-x86-64-lava-asus-cx9400-volteer +anv-jsl: + extends: + - .jsl-test + - .anv-test + variables: + DEQP_SUITE: anv-jsl + VK_DRIVER: intel + parallel: 4 + +# We don't enable a full run of anv-jsl nightly because it's about 8 hours of +# runtime, which would take too many boards at once. +.anv-jsl-full: + extends: + - anv-jsl + - .intel-manual-rules + variables: + DEQP_SUITE: anv-jsl-full + JOB_TIMEOUT: 60 + parallel: 4 + anv-tgl: extends: - .anv-tgl-test @@ -212,18 +232,41 @@ hasvk-hsw: variables: DEQP_FRACTION: 10 -anv-tgl-angle: +.anv-angle-test: extends: - - .anv-tgl-test + - .anv-test - .intel-rules # Note: Xorg uses iris, so depend on both GL and vulkan variables: - DEQP_SUITE: anv-tgl-angle - GPU_VERSION: angle-anv-tgl VK_DRIVER: intel USE_ANGLE: 1 # ANGLE requires X11 running for some reason. HWCI_START_XORG: 1 +anv-jsl-angle: + extends: + - .jsl-test + - .anv-angle-test + variables: + DEQP_SUITE: anv-jsl-angle + GPU_VERSION: angle-anv-jsl + +anv-jsl-angle-full: + extends: + - anv-jsl-angle + - .intel-manual-rules + variables: + DEQP_SUITE: anv-jsl-angle-full + JOB_TIMEOUT: 60 + parallel: 2 + +anv-tgl-angle: + extends: + - .anv-tgl-test + - .anv-angle-test + variables: + DEQP_SUITE: anv-tgl-angle + GPU_VERSION: angle-anv-tgl + anv-tgl-angle-full: extends: - anv-tgl-angle @@ -296,9 +339,7 @@ anv-tgl-angle-full: FDO_CI_CONCURRENT: 9 # 8 boards -.iris-jsl-test: - extends: - - .iris-test +.jsl-test: variables: DEVICE_TYPE: acer-cb317-1h-c3z6-dedede GPU_VERSION: iris-jsl @@ -368,10 +409,12 @@ iris-cml-deqp: iris-jsl-deqp: extends: - - .iris-jsl-test + - .jsl-test + - .iris-test variables: DEQP_SUITE: iris-jsl - parallel: 8 + DEQP_FRACTION: 4 + parallel: 2 iris-amly-egl: extends: