From 391c40f9fc7e1836221e35060a09bd20e966ec8d Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Mon, 19 May 2025 15:19:47 +0200 Subject: [PATCH] freedreno/ci: Add ASan jobs on a618 Introduce nightly Address Sanitizer jobs for GLES and Vulkan on a618. Signed-off-by: Valentine Burley Part-of: --- .../ci/deqp-freedreno-a618-gles-asan.toml | 14 +++++++++++ .../ci/deqp-freedreno-a618-vk-asan.toml | 24 +++++++++++++++++++ src/freedreno/ci/freedreno-a618-skips.txt | 5 ++++ src/freedreno/ci/gitlab-ci.yml | 21 ++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 src/freedreno/ci/deqp-freedreno-a618-gles-asan.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a618-vk-asan.toml diff --git a/src/freedreno/ci/deqp-freedreno-a618-gles-asan.toml b/src/freedreno/ci/deqp-freedreno-a618-gles-asan.toml new file mode 100644 index 00000000000..4331b5e65d9 --- /dev/null +++ b/src/freedreno/ci/deqp-freedreno-a618-gles-asan.toml @@ -0,0 +1,14 @@ +[[deqp]] +deqp = "/deqp-gles/modules/gles31/deqp-gles31" +caselists = ["/deqp-gles/mustpass/gles31-main.txt"] +skips = ["/install/freedreno-a6xx-skips.txt"] +fraction = 1 +renderer_check = "FD618" +deqp_args = [ + "--deqp-surface-width=256", + "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", + "--deqp-gl-config-name=rgba8888d24s8ms0", + "--deqp-visibility=hidden", +] +prefix = "asan-" diff --git a/src/freedreno/ci/deqp-freedreno-a618-vk-asan.toml b/src/freedreno/ci/deqp-freedreno-a618-vk-asan.toml new file mode 100644 index 00000000000..8a9a3668ba0 --- /dev/null +++ b/src/freedreno/ci/deqp-freedreno-a618-vk-asan.toml @@ -0,0 +1,24 @@ +# Basic test set +[[deqp]] +deqp = "/deqp-vk/external/vulkancts/modules/vulkan/deqp-vk" +caselists = ["/deqp-vk/mustpass/vk-main.txt"] +skips = ["install/freedreno-a6xx-skips.txt"] +fraction = 100 +renderer_check = "Turnip Adreno .* 618" +prefix = "asan-" +timeout = 180 +tests_per_group = 3500 + +# Force the spiller on one test so we see its memory usage. +[[deqp]] +deqp = "/deqp-vk/external/vulkancts/modules/vulkan/deqp-vk" +caselists = ["/deqp-vk/mustpass/vk-main.txt"] +skips = ["install/freedreno-a6xx-skips.txt"] +include = ["dEQP-VK.graphicsfuzz.barrier-in-loop-with-break"] +prefix = "spill-" +tests_per_group = 1 +[deqp.env] +# Increase the hangcheck timer for our spilling tests which bump up against +# the .5s default. +FREEDRENO_HANGCHECK_MS = "2000" +IR3_SHADER_DEBUG = "spillall" diff --git a/src/freedreno/ci/freedreno-a618-skips.txt b/src/freedreno/ci/freedreno-a618-skips.txt index b7cabfa16ad..3009fbb3b9a 100644 --- a/src/freedreno/ci/freedreno-a618-skips.txt +++ b/src/freedreno/ci/freedreno-a618-skips.txt @@ -11,3 +11,8 @@ KHR-GL46.copy_image.functional # Flaky when run in parallel due to DRM control node acquisition. dEQP-VK.wsi.*display.* + +# Exclude WSI related tests for a618-vk-asan +# The ones that weren't being skipped were causing leaks +asan-dEQP-VK.image.swapchain_mutable.* +asan-dEQP-VK.wsi.* diff --git a/src/freedreno/ci/gitlab-ci.yml b/src/freedreno/ci/gitlab-ci.yml index 243d89b2eca..ba1a612f7c2 100644 --- a/src/freedreno/ci/gitlab-ci.yml +++ b/src/freedreno/ci/gitlab-ci.yml @@ -123,6 +123,27 @@ a618-vk-full: DEQP_SUITE: freedreno-a618-vk-full DEQP_FRACTION: 1 +a618-vk-asan: + extends: + - .lava-arm64-test-asan-vk + - .lava-sc7180-trogdor-kingoftown:arm64 + - .collabora-turnip-manual-rules + timeout: 2h + variables: + DEQP_SUITE: freedreno-a618-vk-asan + FLAKES_CHANNEL: "#freedreno-ci" + FDO_CI_CONCURRENT: 2 # We get OOMkills if we go too wide with asan enabled + +a618-gles-asan: + extends: + - .lava-arm64-test-asan-gl + - .lava-sc7180-trogdor-kingoftown:arm64 + - .collabora-turnip-manual-rules + variables: + DEQP_SUITE: freedreno-a618-gles-asan + FLAKES_CHANNEL: "#freedreno-ci" + FDO_CI_CONCURRENT: 2 # We get OOMkills if we go too wide with asan enabled + .a618-gl: extends: - .lava-arm64-test-gl