Mesa (main): ci: Build skqp on ARM64 images

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 5 23:59:19 UTC 2022


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

Author: Guilherme Gallo <guilherme.gallo at collabora.com>
Date:   Tue Dec  7 11:13:00 2021 -0300

ci: Build skqp on ARM64 images

This commit makes `kernel+rootfs_arm64` job build and install skqp on
ARM64 devices rootfs.

Skia repository has a tool to prepare skqp models located at
`tools/skqp/cut-release`, which get files from [Skia
Gold](https://skia.org/docs/dev/testing/skiagold/), generate
files.checksum, rendertests.txt and unittests.txt. One gives a range of
commits to let `cut-release` find the right resources to prepare skqp
for the user. However, it is failing, since it fails when trying to get
image packages from a range of commits via HTTPS from the host
https://public-gold.skia.org but it responds with error 404 every time.
I tried a range a thousand of commits, yet it still does not give
results. The workaround employed was to recover the most recent
`files.checksum` and `rendertests.txt` files from the git history and
generate `unittests.txt` from `list_gpu_unit_tests` binary.

`skqp` runs two lists of tests, `rendertests.txt` and `unittests.txt`.
Both must be located inside the `skqp` assets folder.  The first list
uses GL and GLES to test rendering scenarios. The second runs some unit
tests that do not render an image per se.

In order to make the first `a630_skqp` to be green, the crashing tests
were removed from the test lists and the expectations of the failing
ones were updated.

It is worth noting that `rendertests.txt` can bring some detail about
each test expectation, so each test can have a max pixel error count, to
tell `skqp` that it is OK to have at most that number of errors for that
test. See also:
https://github.com/google/skia/blob/main/tools/skqp/README_ALGORITHM.md

As each render backend has a different error count, two different
`rendertests.txt` files were created,
`src/freedreno/ci/freedreno-a630-skqp-gl_rendertests.txt`,
`src/freedreno/ci/freedreno-a630-skqp-gles_rendertests.txt` and
, which one refers to GL and GLES tests respectfully.
The unit tests file for a630 is located at
`src/freedreno/ci/freedreno-a630-skqp_unittests.txt`

```
aaclip
domain
formats
highcontrastfilter
rectangle_texture
yuv_make_color_space
```

```
ProcessorOptimizationValidationTest
VkProtectedContext_CreateNonprotectedContext
VkYCbcrSampler_DrawImageWithYcbcrSampler
VkYCbcrSampler_NoYcbcrSurface
```

Each test was updated with the max_error count equal to the first run result.

```
analytic_antialias_inverse
async_rescale_and_read_dog_down
async_rescale_and_read_dog_up
async_rescale_and_read_rose
async_rescale_and_read_text_down
async_rescale_and_read_text_up
async_rescale_and_read_text_up_large
async_rescale_and_read_yuv420_rose
complexclip2_path_bw
encode-platform
imageblur_large
lcdtextsize
onebadarc
onefailarc
scale-pixels
surfaceprops
textfilter_color
textfilter_image
```

Considering all the following tests results as wrong.

```
async_rescale_and_read_no_bleed
backdrop_imagefilter_croprect_persp
complexclip2
imageblurrepeatmode
mixerCF
overdrawcolorfilter
patch_alpha
patch_primitive
rrect_clip_bw
scaledemoji_rendering
yuv_splitter
```

v2:
  a) add link to HTML report on job log
  b) remove extraneous spaces diff
  c) remove unnecessary conditions from build-skqp.sh
  d) use fixed skqp source commit SHA

v3:
  a) Use only main skia repository to fetch models and build skqp
  b) Use list_gpu_unit_tests binary to create a base unittests.txt file
  c) Remove crashing tests
  d) Set failing tests expectations for the first skqp run

v4:
  a) Remove clang dependency
  b) Separate each skqp backend result into its folder
  c) Regroup a630_skqp in one job

v5:
  a) Separate tests files per driver

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5580
Signed-off-by: Guilherme Gallo <guilherme.gallo at collabora.com>
Reviewed-by: Emma Anholt <emma at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14146>

---

 .gitlab-ci.yml                                     |   2 +-
 .gitlab-ci/common/generate-env.sh                  |   2 +
 .gitlab-ci/container/build-skqp.sh                 |  82 ++++
 .gitlab-ci/container/build-skqp_base.gn            |  25 +
 .../container/build-skqp_download_model.patch      |  22 +
 .gitlab-ci/container/build-skqp_fetch-gn.patch     |  13 +
 .gitlab-ci/container/create-rootfs.sh              |   6 +-
 .gitlab-ci/container/lava_build.sh                 |  14 +
 .gitlab-ci/skqp-runner.sh                          |  85 ++++
 .../ci/freedreno-a630-skqp-gl_rendertests.txt      | 223 +++++++++
 .../ci/freedreno-a630-skqp-gles_rendertests.txt    | 223 +++++++++
 src/freedreno/ci/freedreno-a630-skqp_unittests.txt | 508 +++++++++++++++++++++
 12 files changed, 1203 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7c0ed0048e2..2dec40bd511 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -486,7 +486,7 @@ fedora/x86_build:
   variables:
     GIT_STRATEGY: fetch
     KERNEL_URL: *kernel-rootfs-url
-    MESA_ROOTFS_TAG: &kernel-rootfs "2021-12-02-piglit"
+    MESA_ROOTFS_TAG: &kernel-rootfs "2021-12-22-skqp"
     DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
   script:
     - .gitlab-ci/container/lava_build.sh
diff --git a/.gitlab-ci/common/generate-env.sh b/.gitlab-ci/common/generate-env.sh
index bcb11407903..232d54c420c 100755
--- a/.gitlab-ci/common/generate-env.sh
+++ b/.gitlab-ci/common/generate-env.sh
@@ -87,6 +87,8 @@ for var in \
     PIGLIT_RESULTS \
     PIGLIT_TESTS \
     PIPELINE_ARTIFACTS_BASE \
+    SKQP_ASSETS_DIR \
+    SKQP_BACKENDS \
     TU_DEBUG \
     VK_CPU \
     VK_DRIVER \
diff --git a/.gitlab-ci/container/build-skqp.sh b/.gitlab-ci/container/build-skqp.sh
new file mode 100755
index 00000000000..eaa049d452a
--- /dev/null
+++ b/.gitlab-ci/container/build-skqp.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+create_gn_args() {
+    cp "${BASE_ARGS_GN_FILE}" "${SKQP_OUT_DIR}"/args.gn
+    echo "target_cpu = \"${SKQP_ARCH}\"" >> "${SKQP_OUT_DIR}"/args.gn
+}
+
+download_skqp_models() (
+    # The download_model.py script needs a checksum file to know what models
+    # version to download.
+
+    # This is the most recent commit available in the skia repository with a
+    # valid files.checksum
+    SKIA_LAST_SKQP_CUT_COMMIT_SHA=ccf5f0d75b6a6b54756f2c62d57e3730eed8aa45
+    git fetch origin "${SKIA_LAST_SKQP_CUT_COMMIT_SHA}:refs/remotes/origin/${SKIA_LAST_SKQP_CUT_COMMIT_SHA}"
+    git checkout "${SKIA_LAST_SKQP_CUT_COMMIT_SHA}" -- \
+        platform_tools/android/apps/skqp/src/main/assets/files.checksum
+
+    # The following patch transforms download_model.py from python2 to python3.
+    git apply "${DOWNLOAD_MODEL_PATCH_FILE}"
+    python3 tools/skqp/download_model.py
+
+    # Copy resources from skia to skqp directory
+    python3 tools/skqp/setup_resources
+)
+
+set -ex
+
+SCRIPT_DIR=$(realpath "$(dirname "$0")")
+FETCH_GN_PATCH_FILE="${SCRIPT_DIR}/build-skqp_fetch-gn.patch"
+BASE_ARGS_GN_FILE="${SCRIPT_DIR}/build-skqp_base.gn"
+DOWNLOAD_MODEL_PATCH_FILE="${SCRIPT_DIR}/build-skqp_download_model.patch"
+
+SKQP_ARCH=${SKQP_ARCH:-x64}
+SKIA_DIR=${SKIA_DIR:-$(mktemp -d)}
+SKQP_DIR=${SKQP_DIR:-$(mktemp -d)}
+SKQP_OUT_DIR=${SKIA_DIR}/out/${SKQP_ARCH}
+SKQP_INSTALL_DIR=/skqp
+SKQP_ASSETS_DIR="${SKQP_INSTALL_DIR}/assets"
+# Build list_gpu_unit_tests to update the unittests.txt file properly to the
+# target hardware.
+SKQP_BINARIES=(skqp list_gpu_unit_tests)
+
+# Using a recent release version to mitigate instability during test phase
+SKIA_COMMIT_SHA="canvaskit/0.32.0"
+
+git clone 'https://skia.googlesource.com/skia/' \
+    --single-branch \
+    -b "${SKIA_COMMIT_SHA}" \
+    "${SKIA_DIR}"
+
+pushd "${SKIA_DIR}"
+
+git apply "${FETCH_GN_PATCH_FILE}"
+# Fetch some needed build tools needed to build skia/skqp
+# Basically, it clones repositories with commits SHAs from
+# ${SKIA_DIR}/DEPS directory
+python3 tools/git-sync-deps
+
+mkdir -p "${SKQP_OUT_DIR}"
+mkdir -p "${SKQP_INSTALL_DIR}"
+
+create_gn_args
+
+# Build and install skqp binaries
+bin/gn gen "${SKQP_OUT_DIR}"
+
+for BINARY in "${SKQP_BINARIES[@]}"
+do
+    /usr/bin/ninja -C "${SKQP_OUT_DIR}" "${BINARY}"
+    install -m 0755 "${SKQP_OUT_DIR}/${BINARY}" "${SKQP_INSTALL_DIR}"
+done
+
+# Acquire assets and move them to the target directory.
+download_skqp_models
+mv platform_tools/android/apps/skqp/src/main/assets/ "${SKQP_ASSETS_DIR}"
+
+popd
+rm -Rf "${SKQP_DIR}"
+rm -Rf "${SKIA_DIR}"
+
+set +ex
diff --git a/.gitlab-ci/container/build-skqp_base.gn b/.gitlab-ci/container/build-skqp_base.gn
new file mode 100644
index 00000000000..1b2e93e6a99
--- /dev/null
+++ b/.gitlab-ci/container/build-skqp_base.gn
@@ -0,0 +1,25 @@
+cc = "gcc"
+cxx = "g++"
+
+extra_cflags = [ "-DSK_ENABLE_DUMP_GPU", "-DSK_BUILD_FOR_SKQP" ]
+extra_cflags_cc = [ "-static", "-Wno-error", "-Wno-macro-redefined", "-Wno-suggest-destructor-override", "-Wno-suggest-override" ]
+
+is_debug = false
+
+skia_enable_fontmgr_android = false
+skia_enable_fontmgr_empty = true
+skia_enable_pdf = false
+skia_enable_skottie = false
+
+skia_skqp_global_error_tolerance = 8
+skia_tools_require_resources = true
+
+skia_use_dng_sdk = false
+skia_use_expat = true
+skia_use_icu = false
+skia_use_libheif = false
+skia_use_lua = false
+skia_use_piex = false
+skia_use_vulkan = true
+
+target_os = "linux"
diff --git a/.gitlab-ci/container/build-skqp_download_model.patch b/.gitlab-ci/container/build-skqp_download_model.patch
new file mode 100644
index 00000000000..b6d3a8a03b1
--- /dev/null
+++ b/.gitlab-ci/container/build-skqp_download_model.patch
@@ -0,0 +1,22 @@
+diff --git a/tools/skqp/download_model.py b/tools/skqp/download_model.py
+index fb0020e481..a5d8a03754 100755
+--- a/tools/skqp/download_model.py
++++ b/tools/skqp/download_model.py
+@@ -10,7 +10,7 @@ import os
+ import shutil
+ import sys
+ import tempfile
+-import urllib2
++import urllib.request, urllib.error, urllib.parse
+
+ def checksum(path):
+     if not os.path.exists(path):
+@@ -33,7 +33,7 @@ def download(md5, path):
+                 pass  # ignore race condition
+         url = 'https://storage.googleapis.com/skia-skqp-assets/' + md5
+         with open(path, 'wb') as o:
+-            shutil.copyfileobj(urllib2.urlopen(url), o)
++            shutil.copyfileobj(urllib.request.urlopen(url), o)
+
+ def tmp(prefix):
+     fd, path = tempfile.mkstemp(prefix=prefix)
diff --git a/.gitlab-ci/container/build-skqp_fetch-gn.patch b/.gitlab-ci/container/build-skqp_fetch-gn.patch
new file mode 100644
index 00000000000..d3332fc16eb
--- /dev/null
+++ b/.gitlab-ci/container/build-skqp_fetch-gn.patch
@@ -0,0 +1,13 @@
+diff --git a/bin/fetch-gn b/bin/fetch-gn
+index b4bb14c630..59c4591a30 100755
+--- a/bin/fetch-gn
++++ b/bin/fetch-gn
+@@ -23,7 +23,7 @@ os.chdir(os.path.join(os.path.dirname(__file__), os.pardir))
+ gnzip = os.path.join(tempfile.mkdtemp(), 'gn.zip')
+ with open(gnzip, 'wb') as f:
+   OS  = {'darwin': 'mac', 'linux': 'linux', 'linux2': 'linux', 'win32': 'windows'}[sys.platform]
+-  cpu = {'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()]
++  cpu = {'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64', 'aarch64': 'arm64'}[platform.machine().lower()]
+ 
+   rev = 'd62642c920e6a0d1756316d225a90fd6faa9e21e'
+   url = 'https://chrome-infra-packages.appspot.com/dl/gn/gn/{}-{}/+/git_revision:{}'.format(
diff --git a/.gitlab-ci/container/create-rootfs.sh b/.gitlab-ci/container/create-rootfs.sh
index 674fd62e457..95acd5e5462 100644
--- a/.gitlab-ci/container/create-rootfs.sh
+++ b/.gitlab-ci/container/create-rootfs.sh
@@ -3,7 +3,11 @@
 set -ex
 
 if [ $DEBIAN_ARCH = arm64 ]; then
-    ARCH_PACKAGES="firmware-qcom-media"
+    ARCH_PACKAGES="firmware-qcom-media
+                   libfontconfig1
+                   libgl1
+                   libglu1-mesa
+    "
 elif [ $DEBIAN_ARCH = amd64 ]; then
     ARCH_PACKAGES="firmware-amd-graphics
                    libelf1
diff --git a/.gitlab-ci/container/lava_build.sh b/.gitlab-ci/container/lava_build.sh
index 9c4fb35d5b8..76336f5769d 100755
--- a/.gitlab-ci/container/lava_build.sh
+++ b/.gitlab-ci/container/lava_build.sh
@@ -82,8 +82,12 @@ apt-get install -y --no-remove \
                    glslang-tools \
                    libdrm-dev \
                    libegl1-mesa-dev \
+                   libfontconfig-dev \
                    libgbm-dev \
+                   libgl-dev \
                    libgles2-mesa-dev \
+                   libglu1-mesa-dev \
+                   libglx-dev \
                    libpng-dev \
                    libssl-dev \
                    libudev-dev \
@@ -93,11 +97,14 @@ apt-get install -y --no-remove \
                    libx11-xcb-dev \
                    libxcb-dri2-0-dev \
                    libxkbcommon-dev \
+                   ninja-build \
                    patch \
+                   python-is-python3 \
                    python3-distutils \
                    python3-mako \
                    python3-numpy \
                    python3-serial \
+                   unzip \
                    wget
 
 
@@ -141,6 +148,13 @@ DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
 mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
 
 
+############### Build SKQP
+if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
+    SKQP_ARCH="arm64" . .gitlab-ci/container/build-skqp.sh
+    mv /skqp /lava-files/rootfs-${DEBIAN_ARCH}/.
+fi
+
+
 ############### Build piglit
 PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
 mv /piglit /lava-files/rootfs-${DEBIAN_ARCH}/.
diff --git a/.gitlab-ci/skqp-runner.sh b/.gitlab-ci/skqp-runner.sh
new file mode 100755
index 00000000000..bfb156ac387
--- /dev/null
+++ b/.gitlab-ci/skqp-runner.sh
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+copy_tests_files() (
+    SKQP_BACKEND="${1}"
+    SKQP_FILE_PREFIX="${INSTALL}/${GPU_VERSION}-skqp"
+
+    if echo "${SKQP_BACKEND}" | grep -qE 'gl(es)?'
+    then
+        SKQP_RENDER_TESTS_FILE="${SKQP_FILE_PREFIX}-${SKQP_BACKEND}_rendertests.txt"
+        cp "${SKQP_RENDER_TESTS_FILE}" "${SKQP_ASSETS_DIR}"/skqp/rendertests.txt
+        return 0
+    fi
+
+    # The unittests.txt path is hardcoded inside assets directory,
+    # that is why it needs to be a special case.
+    if echo "${SKQP_BACKEND}" | grep -qE "unitTest"
+    then
+        cp "${SKQP_FILE_PREFIX}_unittests.txt" "${SKQP_ASSETS_DIR}"/skqp/unittests.txt
+    fi
+)
+
+set -ex
+
+# Needed so configuration files can contain paths to files in /install
+ln -sf "$CI_PROJECT_DIR"/install /install
+
+INSTALL=${PWD}/install
+
+if [ -z "$GPU_VERSION" ]; then
+   echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in .gitlab-ci/gpu-version-*.txt)'
+   exit 1
+fi
+
+SKQP_ASSETS_DIR=/skqp/assets
+SKQP_RESULTS_DIR="${SKQP_RESULTS_DIR:-results}"
+
+mkdir "${SKQP_ASSETS_DIR}"/skqp
+
+SKQP_EXITCODE=0
+for SKQP_BACKEND in ${SKQP_BACKENDS}
+do
+    set -e
+    copy_tests_files "${SKQP_BACKEND}"
+
+    set +e
+    SKQP_BACKEND_RESULTS_DIR="${SKQP_RESULTS_DIR}"/"${SKQP_BACKEND}"
+    mkdir -p "${SKQP_BACKEND_RESULTS_DIR}"
+    /skqp/skqp "${SKQP_ASSETS_DIR}" '' "${SKQP_BACKEND_RESULTS_DIR}" "${SKQP_BACKEND}_"
+    BACKEND_EXITCODE=$?
+
+    if [ ! $BACKEND_EXITCODE -eq 0 ]
+    then
+        echo "skqp failed on ${SKQP_BACKEND} tests with ${BACKEND_EXITCODE} exit code."
+    fi
+
+    # Propagate error codes to leverage the final job result
+    SKQP_EXITCODE=$(( SKQP_EXITCODE | BACKEND_EXITCODE ))
+done
+
+set +x
+
+# Unit tests produce empty HTML reports, guide the user to check the TXT file.
+if echo "${SKQP_BACKENDS}" | grep -qE "unitTest"
+then
+    # Remove the empty HTML report to avoid confusion
+    rm -f "${SKQP_RESULTS_DIR}"/unitTest/report.html
+
+    echo "See skqp unit test results at:"
+    echo "https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/${SKQP_RESULTS_DIR}/unitTest/unit_tests.txt"
+fi
+
+for REPORT in "${SKQP_RESULTS_DIR}"/**/report.html
+do
+    BACKEND_NAME=$(echo "${REPORT}" | sed  's at .*/\([^/]*\)/report.html@\1@')
+    echo "See skqp ${BACKEND_NAME} render tests report at:"
+    echo "https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/${REPORT}"
+done
+
+# If there is no report available, tell the user that something is wrong.
+if [ ! -f "${REPORT}" ]
+then
+    echo "No skqp report available. Probably some fatal error has occured during the skqp execution."
+fi
+
+exit $SKQP_EXITCODE
diff --git a/src/freedreno/ci/freedreno-a630-skqp-gl_rendertests.txt b/src/freedreno/ci/freedreno-a630-skqp-gl_rendertests.txt
new file mode 100644
index 00000000000..e6dadac499e
--- /dev/null
+++ b/src/freedreno/ci/freedreno-a630-skqp-gl_rendertests.txt
@@ -0,0 +1,223 @@
+3x3bitmaprect,0
+AnimCodecPlayer,0
+BlurBigSigma,0
+PlusMergesAA,0
+all_bitmap_configs,0
+all_variants_8888,0
+alpha_image,0
+alphagradients,0
+analytic_antialias_inverse,1823
+androidblendmodes,0
+animatedGif,0
+annotated_text,0
+arcto_skbug_9272,0
+arithmode,0
+async_rescale_and_read_dog_down,2020
+async_rescale_and_read_dog_up,11860
+async_rescale_and_read_no_bleed,-1
+async_rescale_and_read_rose,1958
+async_rescale_and_read_text_down,49366
+async_rescale_and_read_text_up,142227
+async_rescale_and_read_yuv420_rose,42704
+backdrop_imagefilter_croprect_persp,-1
+bitmap-image-srgb-legacy,0
+bitmap_premul,0
+bitmapcopy,0
+bitmaprect_rounding,0
+bitmaprecttest,0
+bitmapshaders,0
+bleed_downscale,0
+blend,0
+blob_rsxform,0
+blur2rectsnonninepatch,0
+blurSmallRadii,0
+blurrect_compare,0
+blurrect_gallery,0
+bug339297,0
+bug583299,0
+bug591993,0
+bug593049,0
+bug6643,0
+bug6783,0
+bug7792,0
+bug9331,0
+check_small_sigma_offset,0
+chrome_gradtext1,0
+clip_region,0
+clipdrawdraw,0
+cliperror,0
+clipped-bitmap-shaders-clamp,0
+clipped-bitmap-shaders-clamp-hq,0
+clipped-bitmap-shaders-mirror,0
+clipped-bitmap-shaders-mirror-hq,0
+clipped-bitmap-shaders-tile,0
+clipped-bitmap-shaders-tile-hq,0
+clippedcubic,0
+color4f,0
+color4shader,0
+colorcomposefilter_alpha,0
+coloremoji_blendmodes,0
+colorfilteralpha8,0
+colorfilterimagefilter,0
+colorfilterimagefilter_layer,0
+colorwheel,0
+colorwheelnative,0
+compare_atlas_vertices,0
+complexclip2,-1
+complexclip4_bw,0
+complexclip_blur_tiled,0
+composeshader,0
+composeshader_alpha,0
+composeshader_bitmap,0
+composeshader_bitmap2,0
+composeshader_bitmap_lm,0
+copyTo4444,0
+copy_on_write_retain,0
+copy_on_write_savelayer,0
+crbug_691386,0
+crbug_899512,0
+crbug_905548,0
+crbug_908646,0
+crbug_918512,0
+crbug_938592,0
+croppedrects,0
+degenerate_gradients,0
+distantclip,0
+draw-atlas-colors,0
+draw_bitmap_rect_skbug4734,0
+drawregion,0
+emptystroke,0
+encode,0
+encode-alpha-jpeg,0
+encode-platform,186173
+encode-srgb-jpg,0
+encode-srgb-png,0
+encode-srgb-webp,0
+extractalpha,0
+fadefilter,0
+fast_slow_blurimagefilter,0
+fiddle,0
+fontmgr_iter,0
+fontmgr_match,0
+format4444,0
+gammagradienttext,0
+gammatext,0
+giantbitmap_clamp_point_rotate,0
+giantbitmap_clamp_point_scale,0
+giantbitmap_mirror_point_rotate,0
+giantbitmap_mirror_point_scale,0
+giantbitmap_repeat_point_rotate,0
+giantbitmap_repeat_point_scale,0
+gpusamplerstress,0
+gradient_many_stops,0
+gradient_matrix,0
+gradients_interesting,0
+gradients_many,0
+gradients_many_nodither,0
+grayscalejpg,0
+hardstop_gradients,0
+image-surface,768
+image_subset,0
+imagealphathreshold_crop,0
+imagealphathreshold_surface,0
+imageblur_large,24506
+imageblurrepeatmode,-1
+imageblurtiled,0
+imagemasksubset,0
+imagesrc2_high,0
+imagesrc2_med,0
+imagesrc2_none,0
+jpg-color-cube,0
+labyrinth_butt,0
+labyrinth_square,0
+lattice2,0
+lattice_alpha,0
+lcdblendmodes,0
+lcdtext,0
+lcdtextsize,1257
+lightingcolorfilter,0
+linear_gradient,0
+linear_gradient_nodither,0
+linear_gradient_tiny,0
+localmatriximagefilter,0
+localmatriximageshader,0
+localmatriximageshader_filtering,0
+longlinedash,0
+makeRasterImage,0
+makecolorspace,0
+makecolortypeandspace,0
+mipmap_gray8_srgb,0
+mipmap_srgb,0
+mixerCF,-1
+modecolorfilters,0
+nested_bw,0
+nested_flipY_bw,0
+not_native32_bitmap_config,0
+offsetimagefilter,0
+onebadarc,3600
+overdraw_canvas,0
+overdrawcolorfilter,-1
+patch_alpha,-1
+patch_primitive,-1
+path_huge_aa,0
+pdf_crbug_772685,0
+perlinnoise_localmatrix,0
+picture_cull_rect,0
+pictureimagegenerator,0
+pictures,0
+pictureshadercache,0
+pictureshadertile,0
+radial_gradient,0
+radial_gradient2,0
+radial_gradient2_nodither,0
+radial_gradient3,0
+radial_gradient3_nodither,0
+rasterallocator,0
+recordopts,0
+reinterpretcolorspace,0
+repeated_bitmap,0
+rrect_clip_bw,-1
+rrect_draw_bw,0
+runtime_shader,0
+runtimefunctions,0
+save_behind,0
+scale-pixels,31488
+scaled_tilemode_bitmap,0
+scaled_tilemode_gradient,0
+scaledemoji_rendering,-1
+scalepixels_unpremul,0
+shallow_angle_path_arcto,0
+shallow_gradient_conical,0
+shallow_gradient_conical_nodither,0
+shallow_gradient_linear,0
+shallow_gradient_linear_nodither,0
+shallow_gradient_radial,0
+shallow_gradient_radial_nodither,0
+shallow_gradient_sweep,0
+shallow_gradient_sweep_nodither,0
+simpleshapes_bw,0
+skbug_5321,0
+skbug_8955,0
+spritebitmap,0
+srgb_colorfilter,0
+strokerect_anisotropic_5408,0
+strokes_zoomed,0
+surface_underdraw,0
+surfacenew,0
+surfaceprops,8454
+tablecolorfilter,2100
+textblobblockreordering,0
+textblobcolortrans,0
+textfilter_color,50164
+textfilter_image,28032
+tiled_picture_shader,0
+tilemode_bitmap,0
+tilemodes_alpha,0
+tinybitmap,0
+transparency_check,0
+typefacestyles,0
+unpremul,0
+xfermodes3,0
+yuv420_odd_dim,0
+yuv_splitter,-1
+zerolinedash,0
diff --git a/src/freedreno/ci/freedreno-a630-skqp-gles_rendertests.txt b/src/freedreno/ci/freedreno-a630-skqp-gles_rendertests.txt
new file mode 100644
index 00000000000..9311cbe375b
--- /dev/null
+++ b/src/freedreno/ci/freedreno-a630-skqp-gles_rendertests.txt
@@ -0,0 +1,223 @@
+3x3bitmaprect,0
+AnimCodecPlayer,0
+BlurBigSigma,0
+PlusMergesAA,0
+all_bitmap_configs,0
+all_variants_8888,0
+alpha_image,0
+alphagradients,0
+analytic_antialias_inverse,1857
+androidblendmodes,0
+animatedGif,0
+annotated_text,0
+arcto_skbug_9272,0
+arithmode,0
+async_rescale_and_read_dog_down,1948
+async_rescale_and_read_dog_up,12147
+async_rescale_and_read_no_bleed,94928
+async_rescale_and_read_rose,2000
+async_rescale_and_read_text_down,49285
+async_rescale_and_read_text_up,142332
+async_rescale_and_read_yuv420_rose,42619
+backdrop_imagefilter_croprect_persp,113126
+bitmap-image-srgb-legacy,0
+bitmap_premul,0
+bitmapcopy,0
+bitmaprect_rounding,0
+bitmaprecttest,0
+bitmapshaders,0
+bleed_downscale,0
+blend,0
+blob_rsxform,0
+blur2rectsnonninepatch,0
+blurSmallRadii,0
+blurrect_compare,0
+blurrect_gallery,0
+bug339297,0
+bug583299,0
+bug591993,0
+bug593049,0
+bug6643,0
+bug6783,0
+bug7792,0
+bug9331,0
+check_small_sigma_offset,0
+chrome_gradtext1,0
+clip_region,0
+clipdrawdraw,0
+cliperror,0
+clipped-bitmap-shaders-clamp,0
+clipped-bitmap-shaders-clamp-hq,0
+clipped-bitmap-shaders-mirror,0
+clipped-bitmap-shaders-mirror-hq,0
+clipped-bitmap-shaders-tile,0
+clipped-bitmap-shaders-tile-hq,0
+clippedcubic,0
+color4f,0
+color4shader,0
+colorcomposefilter_alpha,0
+coloremoji_blendmodes,0
+colorfilteralpha8,0
+colorfilterimagefilter,0
+colorfilterimagefilter_layer,0
+colorwheel,0
+colorwheelnative,0
+compare_atlas_vertices,0
+complexclip2,1751236
+complexclip4_bw,0
+complexclip_blur_tiled,0
+composeshader,0
+composeshader_alpha,0
+composeshader_bitmap,0
+composeshader_bitmap2,0
+composeshader_bitmap_lm,0
+copyTo4444,0
+copy_on_write_retain,0
+copy_on_write_savelayer,0
+crbug_691386,0
+crbug_899512,0
+crbug_905548,0
+crbug_908646,0
+crbug_918512,0
+crbug_938592,0
+croppedrects,0
+degenerate_gradients,0
+distantclip,0
+draw-atlas-colors,0
+draw_bitmap_rect_skbug4734,0
+drawregion,0
+emptystroke,0
+encode,0
+encode-alpha-jpeg,0
+encode-platform,186173
+encode-srgb-jpg,0
+encode-srgb-png,0
+encode-srgb-webp,0
+extractalpha,0
+fadefilter,0
+fast_slow_blurimagefilter,0
+fiddle,0
+fontmgr_iter,0
+fontmgr_match,0
+format4444,0
+gammagradienttext,0
+gammatext,0
+giantbitmap_clamp_point_rotate,0
+giantbitmap_clamp_point_scale,0
+giantbitmap_mirror_point_rotate,0
+giantbitmap_mirror_point_scale,0
+giantbitmap_repeat_point_rotate,0
+giantbitmap_repeat_point_scale,0
+gpusamplerstress,0
+gradient_many_stops,0
+gradient_matrix,0
+gradients_interesting,0
+gradients_many,0
+gradients_many_nodither,0
+grayscalejpg,0
+hardstop_gradients,0
+image-surface,768
+image_subset,0
+imagealphathreshold_crop,0
+imagealphathreshold_surface,0
+imageblur_large,12830
+imageblurrepeatmode,659930
+imageblurtiled,0
+imagemasksubset,0
+imagesrc2_high,0
+imagesrc2_med,0
+imagesrc2_none,0
+jpg-color-cube,0
+labyrinth_butt,0
+labyrinth_square,0
+lattice2,0
+lattice_alpha,0
+lcdblendmodes,0
+lcdtext,0
+lcdtextsize,1257
+lightingcolorfilter,0
+linear_gradient,0
+linear_gradient_nodither,0
+linear_gradient_tiny,0
+localmatriximagefilter,0
+localmatriximageshader,0
+localmatriximageshader_filtering,0
+longlinedash,0
+makeRasterImage,0
+makecolorspace,0
+makecolortypeandspace,0
+mipmap_gray8_srgb,0
+mipmap_srgb,0
+mixerCF,13510369
+modecolorfilters,0
+nested_bw,0
+nested_flipY_bw,0
+not_native32_bitmap_config,0
+offsetimagefilter,0
+onebadarc,3600
+overdraw_canvas,0
+overdrawcolorfilter,5120000
+patch_alpha,36627501
+patch_primitive,37012426
+path_huge_aa,0
+pdf_crbug_772685,0
+perlinnoise_localmatrix,0
+picture_cull_rect,0
+pictureimagegenerator,0
+pictures,0
+pictureshadercache,0
+pictureshadertile,0
+radial_gradient,0
+radial_gradient2,0
+radial_gradient2_nodither,0
+radial_gradient3,0
+radial_gradient3_nodither,0
+rasterallocator,0
+recordopts,0
+reinterpretcolorspace,0
+repeated_bitmap,0
+rrect_clip_bw,8696919
+rrect_draw_bw,0
+runtime_shader,0
+runtimefunctions,0
+save_behind,0
+scale-pixels,31488
+scaled_tilemode_bitmap,0
+scaled_tilemode_gradient,0
+scaledemoji_rendering,8819460
+scalepixels_unpremul,0
+shallow_angle_path_arcto,0
+shallow_gradient_conical,0
+shallow_gradient_conical_nodither,0
+shallow_gradient_linear,0
+shallow_gradient_linear_nodither,0
+shallow_gradient_radial,0
+shallow_gradient_radial_nodither,0
+shallow_gradient_sweep,0
+shallow_gradient_sweep_nodither,0
+simpleshapes_bw,0
+skbug_5321,0
+skbug_8955,0
+spritebitmap,0
+srgb_colorfilter,0
+strokerect_anisotropic_5408,0
+strokes_zoomed,0
+surface_underdraw,0
+surfacenew,0
+surfaceprops,8433
+tablecolorfilter,285
+textblobblockreordering,0
+textblobcolortrans,0
+textfilter_color,50164
+textfilter_image,28090
+tiled_picture_shader,0
+tilemode_bitmap,0
+tilemodes_alpha,0
+tinybitmap,0
+transparency_check,0
+typefacestyles,0
+unpremul,0
+xfermodes3,0
+yuv420_odd_dim,0
+yuv_splitter,419859
+zerolinedash,0
diff --git a/src/freedreno/ci/freedreno-a630-skqp_unittests.txt b/src/freedreno/ci/freedreno-a630-skqp_unittests.txt
new file mode 100644
index 00000000000..6c451689490
--- /dev/null
+++ b/src/freedreno/ci/freedreno-a630-skqp_unittests.txt
@@ -0,0 +1,508 @@
+AbandonedContextImage
+AdvancedBlendTest
+ApplyGamma
+AsyncReadPixelsContextShutdown
+BasicDrawOpAtlas
+BlurMaskBiggerThanDest
+BulkFillRectTest
+BulkTextureRectTest
+CharacterizationFBO0nessTest
+CharacterizationVkSCBnessTest
+ClearOp
+ClipStack_SWMask
+ColorTypeBackendAllocationTest
+ComposedImageFilterBounds_Gpu
+ComposedImageFilterOffset_Gpu
+CompressedBackendAllocationTest
+CopySurface
+DDLCompatibilityTest
+DDLCreateCharacterizationFailures
+DDLInvalidRecorder
+DDLMakeRenderTargetTest
+DDLMultipleDDLs
+DDLNonTextureabilityTest
+DDLOperatorEqTest
+DDLSkSurfaceFlush
+DDLSurfaceCharacterizationTest
+DDLTextureFlagsTest
+DDLWrapBackendTest
+DMSAA_aa_dst_read_after_dmsaa
+DMSAA_dst_read
+DMSAA_dst_read_with_existing_barrier
+DMSAA_dual_source_blend_disable
+DMSAA_preserve_contents
+DSLBitwiseAnd
+DSLBitwiseNot
+DSLBitwiseOr
+DSLBitwiseXor
+DSLBlock
+DSLBool
+DSLBreak
+DSLBuiltins
+DSLCall
+DSLComma
+DSLContinue
+DSLDeclare
+DSLDeclareGlobal
+DSLDecrement
+DSLDiscard
+DSLDivide
+DSLDo
+DSLES3Types
+DSLEqual
+DSLErrorLineNumbers
+DSLExtension
+DSLFlags
+DSLFloat
+DSLFor
+DSLFunction
+DSLGreaterThan
+DSLGreaterThanOrEqual
+DSLHalf
+DSLIf
+DSLImportOnly
+DSLIncrement
+DSLIndex
+DSLInlining
+DSLInt
+DSLInterfaceBlock
+DSLLayout
+DSLLessThan
+DSLLessThanOrEqual
+DSLLogicalAnd
+DSLLogicalNot
+DSLLogicalOr
+DSLLogicalXor
+DSLMatrices
+DSLMinus
+DSLMod
+DSLModifiers
+DSLModifiersDeclaration
+DSLMultiply
+DSLNotEqual
+DSLPlus
+DSLPrototypes
+DSLRTAdjust
+DSLReleaseUnused
+DSLReturn
+DSLRuntimeEffectSimple_GPU
+DSLSampleShader
+DSLSelect
+DSLShl
+DSLShort
+DSLShr
+DSLStartup
+DSLStruct
+DSLSwitch
+DSLSwizzle
+DSLType
+DSLUInt
+DSLUShort
+DSLVarSwap
+DSLWhile
+DSLWrapper
+DefaultPathRendererTest
+DeferredProxyTest
+DefferredProxyConversionTest
+EGLImageTest
+ES2BlendWithNoTexture
+EmptySurfaceSemaphoreTest
+ExtendedSkColorTypeTests_gpu
+FlushFinishedProcTest
+FlushSubmittedProcTest
+FullScreenClearWithLayers
+GLBackendAllocationTest
+GLReadPixelsUnbindPBO
+GLTextureParameters
+GPUMemorySize
+GpuDrawPath
+GpuRectanizer
+Gr1x1TextureMipMappedTest
+GrAtlasTextOpPreparation
+GrBackendTextureImageMipMappedTest
+GrContextDump
+GrContextFactory_abandon
+GrContextFactory_executorAndTaskGroup
+GrContextFactory_sharedContexts
+GrContext_abandonContext
+GrContext_colorTypeSupportedAsImage
+GrContext_colorTypeSupportedAsSurface
+GrContext_maxSurfaceSamplesForColorType
+GrContext_oomed
+GrDDLImage_MakeSubset
+GrDrawCollapsedPath
+GrDrawOpAtlasConfig_Basic
+GrImageSnapshotMipMappedTest
+GrManyDependentsMipMappedTest
+GrMeshTest
+GrPipelineDynamicStateTest
+GrPorterDuff
+GrSkSLFP_Specialized
+GrSkSLFP_UniformArray
+GrSlug_empty
+GrSurface
+GrSurfaceRenderability
+GrTextBlobMoveAround
+GrTextBlobScaleAnimation
+GrTextureMipMapInvalidationTest
+GrThreadSafeCache10View
+GrThreadSafeCache11Verts
+GrThreadSafeCache11View
+GrThreadSafeCache12Verts
+GrThreadSafeCache12View
+GrThreadSafeCache13Verts
+GrThreadSafeCache13View
+GrThreadSafeCache14
+GrThreadSafeCache15Verts
+GrThreadSafeCache15View
+GrThreadSafeCache16Verts
+GrThreadSafeCache1Verts
+GrThreadSafeCache1View
+GrThreadSafeCache2Verts
+GrThreadSafeCache2View
+GrThreadSafeCache3Verts
+GrThreadSafeCache3View
+GrThreadSafeCache4Verts
+GrThreadSafeCache4View
+GrThreadSafeCache4_5Verts
+GrThreadSafeCache4_5View
+GrThreadSafeCache4_75Verts
+GrThreadSafeCache4_75View
+GrThreadSafeCache5Verts
+GrThreadSafeCache5View
+GrThreadSafeCache6Verts
+GrThreadSafeCache6View
+GrThreadSafeCache7Verts
+GrThreadSafeCache7View
+GrThreadSafeCache8Verts
+GrThreadSafeCache8View
+GrThreadSafeCache9Verts
+GrThreadSafeCache9View
+GrWrappedMipMappedTest
+HalfFloatAlphaTextureTest
+HalfFloatRGBATextureTest
+ImageAsyncReadPixels
+ImageBackendAccessAbandoned_Gpu
+ImageEncode_Gpu
+ImageFilterBlurLargeImage_Gpu
+ImageFilterCache_GPUBacked
+ImageFilterCache_ImageBackedGPU
+ImageFilterClippedPictureImageFilter_Gpu
+ImageFilterCropRect_Gpu
+ImageFilterFailAffectsTransparentBlack_Gpu
+ImageFilterHugeBlur_Gpu
+ImageFilterMakeWithFilter_Gpu
+ImageFilterMatrixConvolutionBigKernel_Gpu
+ImageFilterMergeResultSize_Gpu
+ImageFilterNegativeBlurSigma_Gpu
+ImageFilterZeroBlurSigma_Gpu
+ImageFlush
+ImageIsOpaqueTest_Gpu
+ImageLegacyBitmap_Gpu
+ImageNewShader_GPU
+ImagePeek_Gpu
+ImageReadPixels_Gpu
+ImageScalePixels_Gpu
+InitialTextureClear
+LazyProxyFailedInstantiationTest
+LazyProxyReleaseTest
+LazyProxyTest
+MatrixColorFilter_TransparentBlack
+MorphologyFilterRadiusWithMirrorCTM_Gpu
+OpChainTest
+OpsTaskFlushCount
+OverbudgetFlush
+OverdrawSurface_Gpu
+PathTest_CrBug1232834
+PinnedImageTest
+PorterDuffNoDualSourceBlending
+PreinstantiatedProxyConversionTest
+PremulAlphaRoundTrip_Gpu
+ProcessorCloneTest
+ProcessorRefTest
+Programs
+PromiseImageNullFulfill
+PromiseImageTest
+PromiseImageTextureFullCache
+PromiseImageTextureShutdown
+ProxyRefTest
+PurgeToMakeHeadroom
+ReadOnlyTexture
+ReadPixels_InvalidRowBytes_Gpu
+RectangleTexture
+ReimportImageTextureWithMipLevels
+RepeatedClippedBlurTest
+ReplaceSurfaceBackendTexture
+ResourceAllocatorMemoryBudgetTest
+ResourceAllocatorStressTest
+ResourceAllocatorTest
+ResourceCacheCache
+ResourceCacheMisc
+ResourceCacheStencilBuffers
+ResourceCacheWrappedResources
+ResourceMessagesAfterAbandon
+SRGBReadWritePixels
+SkImage_CrossContextGrayAlphaConfigs
+SkImage_Gpu2Cpu
+SkImage_MakeCrossContextFromPixmapRelease
+SkImage_NewFromTextureRelease
+SkImage_makeNonTextureImage
+SkImage_makeTextureImage
+SkRemoteGlyphCache_CacheMissReporting
+SkRemoteGlyphCache_DrawTextAsDFT
+SkRemoteGlyphCache_DrawTextAsMaskWithPathFallback
+SkRemoteGlyphCache_DrawTextAsPath
+SkRemoteGlyphCache_DrawTextXY
+SkRemoteGlyphCache_ReleaseTypeFace
+SkRemoteGlyphCache_StrikeSerialization
+SkRemoteGlyphCache_TypefaceWithNoPaths
+SkRuntimeBlender_GPU
+SkRuntimeEffectSimple_GPU
+SkRuntimeEffect_Blender_GPU
+SkRuntimeShaderImageFilter_GPU
+SkRuntimeStructNameReuse_GPU
+SkSLArrayCast_GPU
+SkSLArrayComparison_GPU
+SkSLArrayConstructors_GPU
+SkSLArrayFollowedByScalar_GPU
+SkSLArrayNarrowingConversions_GPU
+SkSLArraySizeFolding_GPU
+SkSLArrayTypes_GPU
+SkSLAssignmentOps_GPU
+SkSLAssignment_GPU
+SkSLBoolFolding_GPU
+SkSLCastFolding_GPU
+SkSLCastsRoundTowardZero_GPU
+SkSLCommaMixedTypes_GPU
+SkSLConstArray_GPU
+SkSLConstVariableComparison_GPU
+SkSLConstantIf_GPU
+SkSLCross
+SkSLDeadIfStatement_GPU
+SkSLDeadLoopVariable_GPU
+SkSLDeadReturn_GPU
+SkSLDeadStripFunctions_GPU
+SkSLDependentInitializers_GPU
+SkSLDoWhileBodyMustBeInlinedIntoAScope_GPU
+SkSLDoWhileControlFlow_GPU
+SkSLDoWhileTestCannotBeInlined_GPU
+SkSLEmptyBlocksES2_GPU
+SkSLEmptyBlocksES3_GPU
+SkSLFloatFolding_GPU
+SkSLForBodyMustBeInlinedIntoAScope_GPU
+SkSLForInitializerExpressionsCanBeInlined_GPU
+SkSLForLoopControlFlow_GPU
+SkSLForWithReturnInsideCannotBeInlined_GPU
+SkSLForWithoutReturnInsideCanBeInlined_GPU
+SkSLFunctionArgTypeMatch_GPU
+SkSLFunctionPrototype_GPU
+SkSLFunctionReturnTypeMatch_GPU
+SkSLFunctions_GPU
+SkSLGeometricIntrinsics_GPU
+SkSLHelloWorld_GPU
+SkSLHexUnsigned_GPU
+SkSLHex_GPU
+SkSLIfBodyMustBeInlinedIntoAScope_GPU
+SkSLIfElseBodyMustBeInlinedIntoAScope_GPU
+SkSLIfElseChainWithReturnsCanBeInlined_GPU
+SkSLIfTestCanBeInlined_GPU
+SkSLIfWithReturnsCanBeInlined_GPU
+SkSLInlineKeywordOverridesThreshold_GPU
+SkSLInlineThreshold_GPU
+SkSLInlineWithModifiedArgument_GPU
+SkSLInlineWithNestedBigCalls_GPU
+SkSLInlineWithUnmodifiedArgument_GPU
+SkSLInlineWithUnnecessaryBlocks_GPU
+SkSLInlinerAvoidsVariableNameOverlap_GPU
+SkSLInlinerElidesTempVarForReturnsInsideBlock_GPU
+SkSLInlinerUsesTempVarForMultipleReturns_GPU
+SkSLInlinerUsesTempVarForReturnsInsideBlockWithVar_GPU
+SkSLIntFoldingES2_GPU
+SkSLIntFoldingES3_GPU
+SkSLIntrinsicAbsFloat_GPU
+SkSLIntrinsicCeil_GPU
+SkSLIntrinsicClampInt_GPU
+SkSLIntrinsicClampUInt_GPU
+SkSLIntrinsicDFdx_GPU
+SkSLIntrinsicDFdy_GPU
+SkSLIntrinsicDeterminant_GPU
+SkSLIntrinsicFloatBitsToInt_GPU
+SkSLIntrinsicFloatBitsToUint_GPU
+SkSLIntrinsicFwidth_GPU
+SkSLIntrinsicIntBitsToFloat_GPU
+SkSLIntrinsicIsInf_GPU
+SkSLIntrinsicMatrixCompMultES2_GPU
+SkSLIntrinsicMatrixCompMultES3_GPU
+SkSLIntrinsicMaxFloat_GPU
+SkSLIntrinsicMinFloat_GPU
+SkSLIntrinsicModf_GPU
+SkSLIntrinsicOuterProduct_GPU
+SkSLIntrinsicRoundEven_GPU
+SkSLIntrinsicRound_GPU
+SkSLIntrinsicSignFloat_GPU
+SkSLIntrinsicStep_GPU
+SkSLIntrinsicTranspose_GPU
+SkSLIntrinsicTrunc_GPU
+SkSLIntrinsicUintBitsToFloat_GPU
+SkSLLoopFloat_GPU
+SkSLLoopInt_GPU
+SkSLMatricesNonsquare_GPU
+SkSLMatrices_GPU
+SkSLMatrixEquality_GPU
+SkSLMatrixFoldingES3_GPU
+SkSLMatrixScalarSplat_GPU
+SkSLMatrixToVectorCast_GPU
+SkSLMultipleAssignments_GPU
+SkSLNegation_GPU
+SkSLNoInline_GPU
+SkSLNumberCasts_GPU
+SkSLOperatorsES2_GPU
+SkSLOperatorsES3_GPU
+SkSLOssfuzz36852_GPU
+SkSLPrecisionQualifiers_GPU
+SkSLQualifierOrder_GPU
+SkSLResizeMatrixNonsquare_GPU
+SkSLResizeMatrix_GPU
+SkSLReturnsValueOnEveryPathES2_GPU
+SkSLReturnsValueOnEveryPathES3_GPU
+SkSLScalarConversionConstructorsES2_GPU
+SkSLScalarConversionConstructorsES3_GPU
+SkSLScopedSymbol_GPU
+SkSLSelfAssignment_GPU
+SkSLShortCircuitBoolFolding_GPU
+SkSLShortCircuitEvaluationsCannotInlineRightHandSide_GPU
+SkSLStackingVectorCasts_GPU
+SkSLStaticIf_GPU
+SkSLStaticSwitchInline_GPU
+SkSLStaticSwitch_GPU
+SkSLStructArrayFollowedByScalar_GPU
+SkSLStructsCanBeInlinedSafely_GPU
+SkSLStructsInFunctions_GPU
+SkSLSwitchDefaultOnly_GPU
+SkSLSwitchWithFallthrough_GPU
+SkSLSwitchWithLoops_GPU
+SkSLSwitch_GPU
+SkSLSwizzleBoolConstants_GPU
+SkSLSwizzleByConstantIndex_GPU
+SkSLSwizzleByIndex_GPU
+SkSLSwizzleCanBeInlinedDirectly_GPU
+SkSLSwizzleConstants_GPU
+SkSLSwizzleFolding_GPU
+SkSLSwizzleLTRB_GPU
+SkSLSwizzleOpt_GPU
+SkSLSwizzleScalarBool_GPU
+SkSLSwizzleScalarInt_GPU
+SkSLSwizzleScalar_GPU
+SkSLTernaryAsLValueEntirelyFoldable_GPU
+SkSLTernaryAsLValueFoldableTest_GPU
+SkSLTernaryExpression_GPU
+SkSLTernaryResultsCannotBeInlined_GPU
+SkSLTernaryTestCanBeInlined_GPU
+SkSLTrivialArgumentsInlineDirectly_GPU
+SkSLUnaryPositiveNegative_GPU
+SkSLUniformArray_GPU
+SkSLUnusedVariables_GPU
+SkSLVectorConstructors_GPU
+SkSLVectorScalarFolding_GPU
+SkSLVectorToMatrixCast_GPU
+SkSLVectorVectorFolding_GPU
+SkSLWhileBodyMustBeInlinedIntoAScope_GPU
+SkSLWhileLoopControlFlow_GPU
+SkSLWhileTestCannotBeInlined_GPU
+SkSL_ES2Conformance_Pass_GPU
+SkTraceMemoryDump_ownedGLBuffer
+SkTraceMemoryDump_ownedGLRenderTarget
+SkTraceMemoryDump_ownedGLTexture
+SkTraceMemoryDump_ownedGLTextureRenderTarget
+SkTraceMemoryDump_unownedGLRenderTarget
+SkTraceMemoryDump_unownedGLTexture
+SkipCopyTaskTest
+SkipOpsTaskTest
+SmallBoxBlurBug
+SoftwarePathRendererCacheTest
+SpecialImage_GPUDevice
+SpecialImage_Gpu
+SpecialSurface_Gpu1
+SrcSrcOverBatchTest
+SurfaceAbandonPostFlush_Gpu
+SurfaceAsyncReadPixels
+SurfaceAttachStencil_Gpu
+SurfaceBackendAccessAbandoned_Gpu
+SurfaceBackendHandleAccessIDs_Gpu
+SurfaceBackendSurfaceAccessCopyOnWrite_Gpu
+SurfaceBudget
+SurfaceCRBug263329_Gpu
+SurfaceCanvasPeek_Gpu
+SurfaceClear_Gpu
+SurfaceContextReadPixels
+SurfaceContextWritePixels
+SurfaceContextWritePixelsMipped
+SurfaceCopyOnWrite_Gpu
+SurfaceDrawContextTest
+SurfaceEmpty_Gpu
+SurfaceNoCanvas_Gpu
+SurfacePartialDraw_Gpu
+SurfaceSemaphores
+SurfaceSnapshotAlphaType_Gpu
+SurfaceWrappedWithRelease_Gpu
+SurfaceWriteableAfterSnapshotRelease_Gpu
+SurfacepeekTexture_Gpu
+TestGpuAllContexts
+TestGpuFactory
+TestGpuRenderingContexts
+TestMockContext
+TextBlobAbnormal
+TextBlobCache
+TextBlobJaggedGlyph
+TextBlobSmoothScroll
+TextBlobStressAbnormal
+TextBlobStressCache
+TextureBindingsResetTest
+TextureOpTest
+TextureProxyTest
+TextureStripAtlasManagerColorFilterTest
+TextureStripAtlasManagerGradientTest
+TransferPixelsFromTextureTest
+TransferPixelsToTextureTest
+TriangulatingPathRendererCacheTest
+TriangulatingPathRendererTests
+UnpremulTextureImage
+VertexAttributeCount
+VkBackendAllocationTest
+VkBackendSurfaceMutableStateTest
+VkDRMModifierTest
+VkDrawableImportTest
+VkDrawableTest
+VkImageLayoutTest
+VkProtectedContext_AsyncReadFromProtectedSurface
+VkProtectedContext_CreateNonprotectedTextureInProtectedContext
+VkProtectedContext_CreateProtectedContext
+VkProtectedContext_CreateProtectedSkSurface
+VkProtectedContext_CreateProtectedTextureInNonprotectedContext
+VkProtectedContext_DDLMakeRenderTargetTest
+VkProtectedContext_DDLSurfaceCharacterizationTest
+VkProtectedContext_DrawProtectedImageOnProtectedSurface
+VkProtectedContext_DrawRectangle
+VkProtectedContext_DrawRectangleWithAntiAlias
+VkProtectedContext_DrawRectangleWithBlendMode
+VkProtectedContext_DrawRectangleWithFilter
+VkProtectedContext_DrawThinPath
+VkProtectedContext_ReadFromProtectedSurface
+VkProtectedContext_SaveLayer
+VkWrapTests
+VulkanPriorityExtension
+WrappedProxyTest
+WrappedSurfaceCopyOnWrite
+WritePixelsMSAA_Gpu
+WritePixelsNonTextureMSAA_Gpu
+WritePixelsNonTexture_Gpu
+WritePixelsPendingIO
+WritePixels_Gpu
+WritePixels_InvalidRowBytes_Gpu
+XfermodeImageFilterCroppedInput_Gpu
+ZeroSizedProxyTest
+crbug_1271431
+makeBackendTexture
+skbug12214
+skbug5221_GPU
+skbug6653



More information about the mesa-commit mailing list