From 05b41f9207a86d79a78254f4434470b5da54863a Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Tue, 28 Jun 2022 13:35:43 -0700 Subject: [PATCH] ci/freedreno: Filter when we run test jobs for VK or GL changes. Not only runs less testing when only one driver is impacted, but also makes sure zink+turnip is turned off when the farm is. Reviewed-by: Guilherme Gallo Acked-by: Eric Engestrom Part-of: --- .gitlab-ci/test-source-dep.yml | 53 +++++++++++++++++++++++++--------- src/freedreno/ci/gitlab-ci.yml | 7 ++++- 2 files changed, 46 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml index 5a1cf86a8d8..7113aa330d3 100644 --- a/.gitlab-ci/test-source-dep.yml +++ b/.gitlab-ci/test-source-dep.yml @@ -150,22 +150,50 @@ when: never - !reference [.collabora-farm-rules, rules] +# Rules for changes that impact either freedreno or turnip. +.freedreno-common-rules: + rules: + - !reference [.freedreno-farm-rules, rules] + - changes: &freedreno_core_file_list + - src/freedreno/ci/**/* + - src/freedreno/common/**/* + - src/freedreno/drm/**/* + - src/freedreno/fdl/**/* + - src/freedreno/ir3/**/* + - src/freedreno/isa/**/* + - src/freedreno/registers/**/* + when: on_success + - when: never + .freedreno-rules: stage: freedreno rules: - - !reference [.freedreno-farm-rules, rules] - - !reference [.vulkan-rules, rules] - !reference [.gl-rules, rules] - - changes: &freedreno_file_list - # Note: when https://gitlab.com/gitlab-org/gitlab/-/issues/198688 - # is supported, we can change the src/freedreno/ rule to explicitly - # exclude tools - - src/freedreno/**/* + - !reference [.freedreno-common-rules, rules] + - changes: &freedreno_gl_file_list + - src/freedreno/ir2/**/* - src/gallium/drivers/freedreno/**/* - src/gallium/winsys/freedreno/**/* when: on_success - when: never +.turnip-rules: + stage: freedreno + rules: + - !reference [.vulkan-rules, rules] + - !reference [.freedreno-common-rules, rules] + - changes: + - src/freedreno/vulkan/**/* + when: on_success + - when: never + +# For piglit and skqp test jobs that run both GL and VK tests. +.freedreno-turnip-rules: + rules: + - !reference [.freedreno-rules, rules] + - !reference [.turnip-rules, rules] + - when: never + .freedreno-rules-restricted: stage: freedreno rules: @@ -196,7 +224,10 @@ *vulkan_file_list when: manual - changes: - *freedreno_file_list + *freedreno_core_file_list + when: manual + - changes: + *freedreno_gl_file_list when: manual - when: never @@ -478,11 +509,7 @@ stage: layered-backends rules: - !reference [.zink-common-rules, rules] - - !reference [.vulkan-rules, rules] - - changes: - - src/freedreno/**/* - when: on_success - - when: never + - !reference [.turnip-rules, rules] # Unfortunately YAML doesn't let us concatenate arrays, so we have to do the # rules duplication manually diff --git a/src/freedreno/ci/gitlab-ci.yml b/src/freedreno/ci/gitlab-ci.yml index 6fac9deab48..51ce2f88191 100644 --- a/src/freedreno/ci/gitlab-ci.yml +++ b/src/freedreno/ci/gitlab-ci.yml @@ -127,7 +127,7 @@ a530-traces: a618_vk: extends: - .lava-test:arm64 - - .freedreno-rules + - .turnip-rules parallel: 7 variables: VK_DRIVER: freedreno @@ -205,6 +205,7 @@ a630_skqp: extends: - .baremetal-skqp-test - .a630-test + - .freedreno-turnip-rules variables: # Possible skqp backends: gl, gles, unitTest and vk SKQP_BACKENDS: gl gles vk unitTest # space separated values @@ -214,6 +215,7 @@ a630_vk: extends: - .a630-test - .baremetal-deqp-test-freedreno-vk + - .turnip-rules variables: DEQP_SUITE: freedreno-a630-vk @@ -235,6 +237,7 @@ a630_vk_asan: - .a630-test - .baremetal-deqp-test-freedreno-vk - .baremetal-arm64-asan-test + - .turnip-rules variables: DEQP_SUITE: freedreno-a630-vk-asan FDO_CI_CONCURRENT: 2 # We get OOMkills if we go too wide with asan enabled @@ -244,6 +247,8 @@ a630_piglit: extends: - .piglit-test - .a630-test + # Note that piglit has GL+VK integration testing. + - .freedreno-turnip-rules variables: HWCI_START_XORG: 1 PIGLIT_PROFILES: gpu