Mesa (main): iris/ci: Add manual jobs for tracking performance

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 25 09:01:10 UTC 2021


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

Author: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Date:   Fri Aug  6 11:10:02 2021 +0200

iris/ci: Add manual jobs for tracking performance

Use Piglit's replay profile to measure and store the time that frames
take to render in the GPU.

This job won't run automatically in regular pipelines, but will be
triggered automatically by a script for every successful pre-merge
pipeline.

This is because we want to generate performance data for every relevant
commit merged in main, but we don't want to keep a device busy during
the pre-merge run.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12236>

---

 .gitlab-ci/test-source-dep.yml            | 22 +++++++++++-
 src/gallium/drivers/iris/ci/gitlab-ci.yml | 60 +++++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml
index 56037f85262..d0c4d8c5cc4 100644
--- a/.gitlab-ci/test-source-dep.yml
+++ b/.gitlab-ci/test-source-dep.yml
@@ -412,13 +412,33 @@
     - changes:
         *gallium_core_file_list
       when: on_success
-    - changes:
+    - changes: &iris_file_list
       - src/gallium/drivers/iris/**/*
       - src/gallium/winsys/iris/**/*
       - src/intel/**/*
       when: on_success
     - when: never
 
+# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
+# rules duplication manually
+.iris-rules-performance:
+  stage: intel
+  rules:
+    - *ignore_scheduled_pipelines
+    # Run only on pre-merge pipelines from Marge
+    - if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
+      when: never
+    - changes:
+        *mesa_core_file_list
+      when: manual
+    - changes:
+        *gallium_core_file_list
+      when: manual
+    - changes:
+        *iris_file_list
+      when: manual
+    - when: never
+
 .anv-rules:
   stage: intel
   rules:
diff --git a/src/gallium/drivers/iris/ci/gitlab-ci.yml b/src/gallium/drivers/iris/ci/gitlab-ci.yml
index c0fac6d99a1..7a102814c30 100644
--- a/src/gallium/drivers/iris/ci/gitlab-ci.yml
+++ b/src/gallium/drivers/iris/ci/gitlab-ci.yml
@@ -254,3 +254,63 @@ iris-cml-traces:
     - .iris-cml-test
     - .iris-traces
     - .test-manual-mr
+
+.profile-traces:
+  extends:
+    - .iris-traces
+    - .iris-rules-performance
+  variables:
+    PIGLIT_REPLAY_SUBCOMMAND: "profile"
+    PIGLIT_REPLAY_EXTRA_ARGS: "--db-path ${CI_PROJECT_DIR}/replayer-db/"
+    # More than this can hit OOM due to BOs leaked during the replay of the last frame
+    PIGLIT_REPLAY_LOOP_TIMES: 150
+    # We don't want for more than one workload to be submitted to the GPU at a time
+    FDO_CI_CONCURRENT: 1
+    # So we aren't capped by VSync by the X server
+    EGL_PLATFORM: surfaceless
+    GIT_STRATEGY: none
+    HWCI_FREQ_MAX: 1
+    LAVA_TAGS: "cbg-0"
+  allow_failure: true
+
+iris-apl-traces-performance:
+  extends:
+    - .iris-apl-test
+    - .profile-traces
+  variables:
+    GPU_VERSION: intel-apl
+
+iris-glk-traces-performance:
+  extends:
+    - .iris-glk-test
+    - .profile-traces
+  variables:
+    GPU_VERSION: intel-glk
+
+iris-amly-traces-performance:
+  extends:
+    - .iris-amly-test
+    - .profile-traces
+  variables:
+    GPU_VERSION: intel-amly
+
+iris-kbl-traces-performance:
+  extends:
+    - .iris-kbl-test
+    - .profile-traces
+  variables:
+    GPU_VERSION: intel-kbl
+
+iris-whl-traces-performance:
+  extends:
+    - .iris-whl-test
+    - .profile-traces
+  variables:
+    GPU_VERSION: intel-whl
+
+iris-cml-traces-performance:
+  extends:
+    - .iris-cml-test
+    - .profile-traces
+  variables:
+    GPU_VERSION: intel-cml



More information about the mesa-commit mailing list