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@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12236>
This commit is contained in:
Tomeu Vizoso 2021-08-06 11:10:02 +02:00
parent cff106c4b6
commit 3f5053b899
2 changed files with 81 additions and 1 deletions

View File

@ -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:

View File

@ -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