diff --git a/.gitlab-ci/common/generate-env.sh b/.gitlab-ci/common/generate-env.sh index ea4d95e4d09..8bdd02d06c2 100755 --- a/.gitlab-ci/common/generate-env.sh +++ b/.gitlab-ci/common/generate-env.sh @@ -31,16 +31,11 @@ VARS=( CROSVM_GPU_ARGS CURRENT_SECTION DEQP_BIN_DIR - DEQP_CONFIG - DEQP_EXPECTED_RENDERER DEQP_FRACTION - DEQP_HEIGHT DEQP_RUNNER_MAX_FAILS DEQP_RUNNER_OPTIONS DEQP_SUITE DEQP_TEMP_DIR - DEQP_VER - DEQP_WIDTH DEVICE_NAME DRIVER_NAME EGL_PLATFORM diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh index 5592ae22f5f..34c27f99876 100755 --- a/.gitlab-ci/deqp-runner.sh +++ b/.gitlab-ci/deqp-runner.sh @@ -38,70 +38,6 @@ findmnt -n tmpfs ${SHADER_CACHE_HOME} || findmnt -n tmpfs ${SHADER_CACHE_DIR} || mount -t tmpfs -o nosuid,nodev,size=2G,mode=1755 tmpfs ${SHADER_CACHE_DIR} } -if [ -z "$DEQP_SUITE" ]; then - if [ -z "$DEQP_VER" ]; then - echo 'DEQP_SUITE must be set to the name of your deqp-gpu_version.toml, or DEQP_VER must be set to something like "gles2", "gles31-khr" or "vk" for the test run' - exit 1 - fi - - DEQP_WIDTH=${DEQP_WIDTH:-256} - DEQP_HEIGHT=${DEQP_HEIGHT:-256} - DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0} - - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT" - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=${DEQP_SURFACE_TYPE:-pbuffer}" - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG" - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" - - if [[ "$DEQP_VER" = "vk"* ]] && [ -z "$VK_DRIVER" ]; then - echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run' - exit 1 - fi - - # Generate test case list file. - if [ "$DEQP_VER" = "vk" ]; then - MUSTPASS=/deqp-vk/mustpass/vk-main.txt.zst - DEQP=/deqp-vk/external/vulkancts/modules/vulkan/deqp-vk - elif [ "$DEQP_VER" = "vk-main" ]; then - MUSTPASS=/deqp-vk-main/mustpass/vk-main.txt.zst - DEQP=/deqp-vk-main/external/vulkancts/modules/vulkan/deqp-vk - elif [ "$DEQP_VER" = "gles2" ] || [ "$DEQP_VER" = "gles3" ] || [ "$DEQP_VER" = "gles31" ] || [ "$DEQP_VER" = "egl" ]; then - MUSTPASS=/deqp-gles/mustpass/$DEQP_VER-main.txt.zst - DEQP=/deqp-gles/modules/$DEQP_VER/deqp-$DEQP_VER - elif [ "$DEQP_VER" = "gles2-khr" ] || [ "$DEQP_VER" = "gles3-khr" ] || [ "$DEQP_VER" = "gles31-khr" ] || [ "$DEQP_VER" = "gles32-khr" ]; then - MUSTPASS=/deqp-gles/mustpass/$DEQP_VER-main.txt.zst - DEQP=/deqp-gles/external/openglcts/modules/glcts - else - MUSTPASS=/deqp-gl/mustpass/$DEQP_VER-main.txt.zst - DEQP=/deqp-gl/external/openglcts/modules/glcts - fi - - [ -z "${DEQP_FRACTION:-}" ] && DEQP_FRACTION=1 - [ -z "${CI_NODE_INDEX:-}" ] && CI_NODE_INDEX=1 - [ -z "${CI_NODE_TOTAL:-}" ] && CI_NODE_TOTAL=1 - - # This ugly sed expression does a single pass across the case list to take - # into account the global fraction and sharding. - # - # First, we select only every n'th line, according to DEQP_FRACTION; for a - # fraction of 3, it will select lines 1, 4, 7, 10, etc. - # - # Then, we select $CI_NODE_INDEX/$CI_NODE_TOTAL for sharding; for a two-way - # shard, the first node will select lines 1 and 7, and the second node will - # select lines 4 and 10. - # - # Sharding like this gives us the best coverage, as sequential tests often - # test very slightly different permutations of the same functionality. So - # by distributing our skips as widely across the set as possible, rather - # than grouping them together, we get the broadest coverage. - zstd -d $MUSTPASS -c | sed -n "$(((CI_NODE_INDEX - 1) * DEQP_FRACTION + 1))~$((DEQP_FRACTION * CI_NODE_TOTAL))p" > /tmp/case-list.txt - - if [ ! -s /tmp/case-list.txt ]; then - echo "Caselist generation failed" - exit 1 - fi -fi - if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt" fi @@ -142,11 +78,6 @@ if [ -n "$USE_ANGLE" ]; then DEQP_SKIPS="$DEQP_SKIPS $INSTALL/angle-skips.txt" fi -if [ -n "$VK_DRIVER" ] && [ -z "$DEQP_SUITE" ]; then - # Bump the number of tests per group to reduce the startup time of VKCTS. - DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --tests-per-group ${DEQP_RUNNER_TESTS_PER_GROUP:-5000}" -fi - if [ -n "${DEQP_RUNNER_MAX_FAILS:-}" ]; then DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --max-fails ${DEQP_RUNNER_MAX_FAILS}" fi @@ -177,16 +108,6 @@ if [ "$GALLIUM_DRIVER" = "virpipe" ]; then sleep 1 fi -if [ -z "$DEQP_SUITE" ]; then - if [ -n "$DEQP_EXPECTED_RENDERER" ]; then - export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --renderer-check $DEQP_EXPECTED_RENDERER" - fi - if [ $DEQP_VER != vk ] && [ $DEQP_VER != egl ]; then - VER=$(sed 's/[() ]/./g' "$INSTALL/VERSION") - export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --version-check $VER" - fi -fi - uncollapsed_section_switch deqp "deqp: deqp-runner" # Print the detailed version with the list of backports and local patches @@ -199,38 +120,23 @@ for api in vk-main vk gl gles; do done set -x +# If you change the format of the suite toml filenames or the +# $GPU_VERSION-{fails,flakes,skips}.txt filenames, look through the rest +# of the tree for other places that need to be kept in sync (e.g. +# src/**/ci/gitlab-ci*.yml) set +e deqp-runner -V -if [ -z "$DEQP_SUITE" ]; then - deqp-runner \ - run \ - --deqp $DEQP \ - --output $RESULTS_DIR \ - --caselist /tmp/case-list.txt \ - --skips $INSTALL/all-skips.txt $DEQP_SKIPS \ - --flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --testlog-to-xml /deqp-tools/testlog-to-xml \ - --jobs ${FDO_CI_CONCURRENT:-4} \ - $DEQP_RUNNER_OPTIONS \ - -- \ - $DEQP_OPTIONS; DEQP_EXITCODE=$? -else - # If you change the format of the suite toml filenames or the - # $GPU_VERSION-{fails,flakes,skips}.txt filenames, look through the rest - # of the tree for other places that need to be kept in sync (e.g. - # src/**/ci/gitlab-ci*.yml) - deqp-runner \ - suite \ - --suite $INSTALL/deqp-$DEQP_SUITE.toml \ - --output $RESULTS_DIR \ - --skips $INSTALL/all-skips.txt $DEQP_SKIPS \ - --flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --testlog-to-xml /deqp-tools/testlog-to-xml \ - --fraction-start ${CI_NODE_INDEX:-1} \ - --fraction $((CI_NODE_TOTAL * ${DEQP_FRACTION:-1})) \ - --jobs ${FDO_CI_CONCURRENT:-4} \ - $DEQP_RUNNER_OPTIONS; DEQP_EXITCODE=$? -fi +deqp-runner \ + suite \ + --suite $INSTALL/deqp-$DEQP_SUITE.toml \ + --output $RESULTS_DIR \ + --skips $INSTALL/all-skips.txt $DEQP_SKIPS \ + --flakes $INSTALL/$GPU_VERSION-flakes.txt \ + --testlog-to-xml /deqp-tools/testlog-to-xml \ + --fraction-start ${CI_NODE_INDEX:-1} \ + --fraction $((CI_NODE_TOTAL * ${DEQP_FRACTION:-1})) \ + --jobs ${FDO_CI_CONCURRENT:-4} \ + $DEQP_RUNNER_OPTIONS; DEQP_EXITCODE=$? { set +x; } 2>/dev/null