From 8e470457de5b6e7903ceea0efaa99cb6e8b611f0 Mon Sep 17 00:00:00 2001 From: Antonio Caggiano Date: Wed, 28 Apr 2021 16:16:42 +0200 Subject: [PATCH] ci: Add a manual job for tracking the performance of Freedreno 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: Antonio Caggiano Signed-off-by: Tomeu Vizoso Reviewed-By: Rohan Garg Part-of: --- .gitlab-ci/bare-metal/rootfs-setup.sh | 1 + .gitlab-ci/piglit/run.sh | 4 +++- src/freedreno/ci/gitlab-ci.yml | 22 ++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci/bare-metal/rootfs-setup.sh b/.gitlab-ci/bare-metal/rootfs-setup.sh index db4cc04d1b2..d94c6e9a534 100644 --- a/.gitlab-ci/bare-metal/rootfs-setup.sh +++ b/.gitlab-ci/bare-metal/rootfs-setup.sh @@ -67,6 +67,7 @@ for var in \ PIGLIT_PLATFORM \ PIGLIT_PROFILES \ PIGLIT_REPLAY_ARTIFACTS_BASE_URL \ + PIGLIT_REPLAY_SUBCOMMAND \ PIGLIT_REPLAY_DESCRIPTION_FILE \ PIGLIT_REPLAY_DEVICE_NAME \ PIGLIT_REPLAY_EXTRA_ARGS \ diff --git a/.gitlab-ci/piglit/run.sh b/.gitlab-ci/piglit/run.sh index 97c4c9cd927..6ac67d97146 100755 --- a/.gitlab-ci/piglit/run.sh +++ b/.gitlab-ci/piglit/run.sh @@ -238,7 +238,9 @@ if [ "x$PIGLIT_PROFILES" = "xreplay" ] \ __MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL" __MINIO_TRACES_PREFIX="traces" - quiet replay_minio_upload_images + if [ "x$PIGLIT_REPLAY_SUBCOMMAND" != "xprofile" ]; then + quiet replay_minio_upload_images + fi fi if [ -n "$USE_CASELIST" ]; then diff --git a/src/freedreno/ci/gitlab-ci.yml b/src/freedreno/ci/gitlab-ci.yml index 7aa26327c4d..fefc2e3a8af 100644 --- a/src/freedreno/ci/gitlab-ci.yml +++ b/src/freedreno/ci/gitlab-ci.yml @@ -277,3 +277,25 @@ a630-traces: # missing. MESA_GLSL_VERSION_OVERRIDE: "460" MESA_GL_VERSION_OVERRIDE: "4.6" + +a630-profile-traces: + extends: + - a630-traces + 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 + + rules: + # We want this job to be present always, will be triggered automatically + # *after* the code is merged, for stats collecting. + - when: manual + # This is needed so the manual job won't block MRs + stage: success + allow_failure: true