[PATCH v10] drm: Add initial ci/ subdirectory

Helen Koike helen.koike at collabora.com
Thu Jul 20 08:27:37 PDT 2023


From: Tomeu Vizoso <tomeu.vizoso at collabora.com>

Developers can easily execute several tests on different devices
by just pushing their branch to their fork in a repository hosted
on gitlab.freedesktop.org which has an infrastructure to run jobs
in several runners and farms with different devices.

There are also other automated tools that uprev dependencies,
monitor the infra, and so on that are already used by the Mesa
project, and we can reuse them too.

Also, store expectations about what the DRM drivers are supposed
to pass in the IGT test suite. By storing the test expectations
along with the code, we can make sure both stay in sync with each
other so we can know when a code change breaks those expectations.

Also, include a configuration file that points to the out-of-tree
CI scripts.

This will allow all contributors to drm to reuse the infrastructure
already in gitlab.freedesktop.org to test the driver on several
generations of the hardware.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
Signed-off-by: Helen Koike <helen.koike at collabora.com>

---

Hello,

I'm re-spining this patch sent originally by Tomeu.

This is meant to be an auxiliary tool where developers and
maintainers can just submit their code to fdo and see if
tests passes, than they can decide if it is worthy merging
it or not.

This tool has proven its value on the Mesa community
and it can bring a lot of value here too.

Please review and let me know your thoughts.

You can also see this patch on
https://gitlab.freedesktop.org/helen.fornazier/linux/-/tree/drm-ci-tests

Thanks!

v2:
  - Fix names of result expectation files to match SoC
  - Don't execute tests that are going to skip on all boards

v3:
  - Remove tracking of dmesg output during test execution

v4:
  - Move up to drivers/gpu/drm
  - Add support for a bunch of other drivers
  - Explain how to incorporate fixes for CI from a
    ${TARGET_BRANCH}-external-fixes branch
  - Remove tests that pass from expected results file, to reduce the
    size of in-tree files
  - Add docs about how to deal with outages in automated testing labs
  - Specify the exact SHA of the CI scripts to be used

v5:
  - Remove unneeded skips from Meson expectations file
  - Use a more advanced runner that detects flakes automatically
  - Use a more succint format for the expectations
  - Run many more tests (and use sharding to finish in time)
  - Use skip lists to avoid hanging machines
  - Add some build testing
  - Build IGT in each pipeline for faster uprevs
  - List failures in the GitLab UI

v6:
  - Rebase on top of latest drm-next
  - Lower priority of LAVA jobs to not impact Mesa CI as much
  - Update docs

v7:
  - Rebase on top of latest drm-next

v8:
  - Move all files specific to testing the kernel into the kernel tree
    (thus I have dropped the r-bs I had collected so far)
  - Uprev Gitlab CI infrastructure scripts to the latest from Mesa
  - Add MAINTAINERS entry
  - Fix boot on MT8173 by adding some Kconfigs that are now needed
  - Link to the docs from index.rst and hard-wrap the file

v9:
  - Only automatically run the pipelines for merge requests
  - Switch to zstd for the build artifacts to align with Mesa
  - Add Qcom USB PHYs to config as they are now =m in the defconfig

v10:
  - Include ci yml files from mesa/mesa (where the development is
    current active) instead of a spin off project.
  - Uprev Gitlab CI infrastructure scripts to the latest from Mesa
  - Update MAINTAINERS entry
  - Uprev igt tool
  - add LAVA_JOB_PRIORITY: 30
  - pipeline example:
  https://gitlab.freedesktop.org/helen.fornazier/linux/-/pipelines/940506
---
 Documentation/gpu/automated_testing.rst       |  144 +
 Documentation/gpu/index.rst                   |    1 +
 MAINTAINERS                                   |    8 +
 drivers/gpu/drm/ci/arm.config                 |   69 +
 drivers/gpu/drm/ci/arm64.config               |  199 ++
 drivers/gpu/drm/ci/build-igt.sh               |   35 +
 drivers/gpu/drm/ci/build.sh                   |  157 +
 drivers/gpu/drm/ci/build.yml                  |  110 +
 drivers/gpu/drm/ci/check-patch.py             |   57 +
 drivers/gpu/drm/ci/container.yml              |   61 +
 drivers/gpu/drm/ci/gitlab-ci.yml              |  252 ++
 drivers/gpu/drm/ci/igt_runner.sh              |   77 +
 drivers/gpu/drm/ci/image-tags.yml             |   15 +
 drivers/gpu/drm/ci/lava-submit.sh             |   57 +
 drivers/gpu/drm/ci/static-checks.yml          |   12 +
 drivers/gpu/drm/ci/test.yml                   |  335 ++
 drivers/gpu/drm/ci/testlist.txt               | 2912 +++++++++++++++++
 drivers/gpu/drm/ci/x86_64.config              |  111 +
 .../gpu/drm/ci/xfails/amdgpu-stoney-fails.txt |   22 +
 .../drm/ci/xfails/amdgpu-stoney-flakes.txt    |   19 +
 .../gpu/drm/ci/xfails/amdgpu-stoney-skips.txt |    2 +
 drivers/gpu/drm/ci/xfails/i915-amly-fails.txt |   17 +
 .../gpu/drm/ci/xfails/i915-amly-flakes.txt    |   32 +
 drivers/gpu/drm/ci/xfails/i915-amly-skips.txt |    4 +
 drivers/gpu/drm/ci/xfails/i915-apl-fails.txt  |   57 +
 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt |    1 +
 drivers/gpu/drm/ci/xfails/i915-apl-skips.txt  |    4 +
 drivers/gpu/drm/ci/xfails/i915-cml-fails.txt  |   18 +
 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt |   37 +
 drivers/gpu/drm/ci/xfails/i915-cml-skips.txt  |    2 +
 drivers/gpu/drm/ci/xfails/i915-glk-fails.txt  |   18 +
 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt |   41 +
 drivers/gpu/drm/ci/xfails/i915-glk-skips.txt  |    5 +
 drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt  |   26 +
 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt |   25 +
 drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt  |    5 +
 drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt  |   37 +
 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt |    5 +
 drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt  |   11 +
 drivers/gpu/drm/ci/xfails/i915-whl-fails.txt  |   47 +
 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt |    1 +
 drivers/gpu/drm/ci/xfails/i915-whl-skips.txt  |    2 +
 .../drm/ci/xfails/mediatek-mt8173-fails.txt   |   29 +
 .../drm/ci/xfails/mediatek-mt8173-flakes.txt  |    0
 .../drm/ci/xfails/mediatek-mt8183-fails.txt   |   10 +
 .../drm/ci/xfails/mediatek-mt8183-flakes.txt  |   14 +
 .../gpu/drm/ci/xfails/meson-g12b-fails.txt    |   12 +
 .../gpu/drm/ci/xfails/meson-g12b-flakes.txt   |    4 +
 .../gpu/drm/ci/xfails/msm-apq8016-fails.txt   |   15 +
 .../gpu/drm/ci/xfails/msm-apq8016-flakes.txt  |    4 +
 .../gpu/drm/ci/xfails/msm-apq8096-fails.txt   |    2 +
 .../gpu/drm/ci/xfails/msm-apq8096-flakes.txt  |    4 +
 .../gpu/drm/ci/xfails/msm-apq8096-skips.txt   |    2 +
 .../gpu/drm/ci/xfails/msm-sc7180-fails.txt    |   25 +
 .../gpu/drm/ci/xfails/msm-sc7180-flakes.txt   |    7 +
 .../gpu/drm/ci/xfails/msm-sc7180-skips.txt    |   23 +
 .../gpu/drm/ci/xfails/msm-sdm845-fails.txt    |   68 +
 .../gpu/drm/ci/xfails/msm-sdm845-flakes.txt   |   11 +
 .../gpu/drm/ci/xfails/msm-sdm845-skips.txt    |    2 +
 .../drm/ci/xfails/rockchip-rk3288-fails.txt   |   49 +
 .../drm/ci/xfails/rockchip-rk3288-flakes.txt  |    8 +
 .../drm/ci/xfails/rockchip-rk3288-skips.txt   |   52 +
 .../drm/ci/xfails/rockchip-rk3399-fails.txt   |   39 +
 .../drm/ci/xfails/rockchip-rk3399-flakes.txt  |   23 +
 .../drm/ci/xfails/rockchip-rk3399-skips.txt   |    5 +
 .../drm/ci/xfails/virtio_gpu-none-fails.txt   |   38 +
 .../drm/ci/xfails/virtio_gpu-none-flakes.txt  |    0
 .../drm/ci/xfails/virtio_gpu-none-skips.txt   |    6 +
 test                                          |    0
 69 files changed, 5502 insertions(+)
 create mode 100644 Documentation/gpu/automated_testing.rst
 create mode 100644 drivers/gpu/drm/ci/arm.config
 create mode 100644 drivers/gpu/drm/ci/arm64.config
 create mode 100644 drivers/gpu/drm/ci/build-igt.sh
 create mode 100644 drivers/gpu/drm/ci/build.sh
 create mode 100644 drivers/gpu/drm/ci/build.yml
 create mode 100755 drivers/gpu/drm/ci/check-patch.py
 create mode 100644 drivers/gpu/drm/ci/container.yml
 create mode 100644 drivers/gpu/drm/ci/gitlab-ci.yml
 create mode 100755 drivers/gpu/drm/ci/igt_runner.sh
 create mode 100644 drivers/gpu/drm/ci/image-tags.yml
 create mode 100755 drivers/gpu/drm/ci/lava-submit.sh
 create mode 100644 drivers/gpu/drm/ci/static-checks.yml
 create mode 100644 drivers/gpu/drm/ci/test.yml
 create mode 100644 drivers/gpu/drm/ci/testlist.txt
 create mode 100644 drivers/gpu/drm/ci/x86_64.config
 create mode 100644 drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/i915-whl-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3288-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3399-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3399-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/rockchip-rk3399-skips.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-fails.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt
 create mode 100644 drivers/gpu/drm/ci/xfails/virtio_gpu-none-skips.txt
 create mode 100644 test

diff --git a/Documentation/gpu/automated_testing.rst b/Documentation/gpu/automated_testing.rst
new file mode 100644
index 000000000000..1b87b802ac7f
--- /dev/null
+++ b/Documentation/gpu/automated_testing.rst
@@ -0,0 +1,144 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+=========================================
+Automated testing of the DRM subsystem
+=========================================
+
+Introduction
+============
+
+Making sure that changes to the core or drivers don't introduce regressions can
+be very time-consuming when lots of different hardware configurations need to
+be tested. Moreover, it isn't practical for each person interested in this
+testing to have to acquire and maintain what can be a considerable amount of
+hardware.
+
+Also, it is desirable for developers to check for regressions in their code by
+themselves, instead of relying on the maintainers to find them and then
+reporting back.
+
+There are facilities in gitlab.freedesktop.org to automatically test Mesa that
+can be used as well for testing the DRM subsystem. This document explains how
+people interested in testing it can use this shared infrastructure to save
+quite some time and effort.
+
+
+Relevant files
+==============
+
+drivers/gpu/drm/ci/gitlab-ci.yml
+--------------------------------
+
+This is the root configuration file for GitLab CI. Among other less interesting
+bits, it specifies the specific version of the scripts to be used. There are
+some variables that can be modified to change the behavior of the pipeline:
+
+DRM_CI_PROJECT_PATH
+    Repository that contains the Mesa software infrastructure for CI
+
+DRM_CI_COMMIT_SHA
+    A particular revision to use from that repository
+
+UPSTREAM_REPO
+    URL to git repository containing the target branch
+
+TARGET_BRANCH
+    Branch to which this branch is to be merged into
+
+IGT_VERSION
+    Revision of igt-gpu-tools being used, from
+    https://gitlab.freedesktop.org/drm/igt-gpu-tools
+
+drivers/gpu/drm/ci/testlist.txt
+-------------------------------
+
+IGT tests to be run on all drivers (unless mentioned in a driver's *-skips.txt
+file, see below).
+
+drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-fails.txt
+----------------------------------------------------------
+
+Lists the known failures for a given driver on a specific hardware revision.
+
+drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-flakes.txt
+-----------------------------------------------------------
+
+Lists the tests that for a given driver on a specific hardware revision are
+known to behave unreliably. These tests won't cause a job to fail regardless of
+the result. They will still be run.
+
+drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-skips.txt
+-----------------------------------------------------------
+
+Lists the tests that won't be run for a given driver on a specific hardware
+revision. These are usually tests that interfere with the running of the test
+list due to hanging the machine, causing OOM, taking too long, etc.
+
+
+How to enable automated testing on your tree
+============================================
+
+1. Create a Linux tree in https://gitlab.freedesktop.org/ if you don't have one
+yet
+
+2. In your kernel repo's configuration (eg.
+https://gitlab.freedesktop.org/janedoe/linux/-/settings/ci_cd), change the
+CI/CD configuration file from .gitlab-ci.yml to
+drivers/gpu/drm/ci/gitlab-ci.yml.
+
+3. Next time you push to this repository, you will see a CI pipeline being
+created (eg. https://gitlab.freedesktop.org/janedoe/linux/-/pipelines)
+
+4. The various jobs will be run and when the pipeline is finished, all jobs
+should be green unless a regression has been found.
+
+
+How to update test expectations
+===============================
+
+If your changes to the code fix any tests, you will have to remove one or more
+lines from one or more of the files in
+drivers/gpu/drm/ci/${DRIVER_NAME}_*_fails.txt, for each of the test platforms
+affected by the change.
+
+
+How to expand coverage
+======================
+
+If your code changes make it possible to run more tests (by solving reliability
+issues, for example), you can remove tests from the flakes and/or skips lists,
+and then the expected results if there are any known failures.
+
+If there is a need for updating the version of IGT being used (maybe you have
+added more tests to it), update the IGT_VERSION variable at the top of the
+gitlab-ci.yml file.
+
+
+How to test your changes to the scripts
+=======================================
+
+For testing changes to the scripts in the drm-ci repo, change the
+DRM_CI_PROJECT_PATH and DRM_CI_COMMIT_SHA variables in
+drivers/gpu/drm/ci/gitlab-ci.yml to match your fork of the project (eg.
+janedoe/drm-ci). This fork needs to be in https://gitlab.freedesktop.org/.
+
+
+How to incorporate external fixes in your testing
+=================================================
+
+Often, regressions in other trees will prevent testing changes local to the
+tree under test. These fixes will be automatically merged in during the build
+jobs from a branch in the target tree that is named as
+${TARGET_BRANCH}-external-fixes.
+
+If the pipeline is not in a merge request and a branch with the same name
+exists in the local tree, commits from that branch will be merged in as well.
+
+
+How to deal with automated testing labs that may be down
+========================================================
+
+If a hardware farm is down and thus causing pipelines to fail that would
+otherwise pass, one can disable all jobs that would be submitted to that farm
+by editing the file at
+https://gitlab.freedesktop.org/gfx-ci/lab-status/-/blob/main/lab-status.yml.
diff --git a/Documentation/gpu/index.rst b/Documentation/gpu/index.rst
index eee5996acf2c..e45ff0915246 100644
--- a/Documentation/gpu/index.rst
+++ b/Documentation/gpu/index.rst
@@ -17,6 +17,7 @@ GPU Driver Developer's Guide
    backlight
    vga-switcheroo
    vgaarbiter
+   automated_testing
    todo
    rfc/index
 
diff --git a/MAINTAINERS b/MAINTAINERS
index 9852d6bfdb95..6adf20c47498 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7134,6 +7134,14 @@ T:	git git://anongit.freedesktop.org/drm/drm-misc
 F:	drivers/gpu/drm/ttm/
 F:	include/drm/ttm/
 
+DRM AUTOMATED TESTING
+M:	Helen Koike <helen.koike at collabora.com>
+L:	dri-devel at lists.freedesktop.org
+S:	Maintained
+T:	git git://anongit.freedesktop.org/drm/drm-misc
+F:	Documentation/gpu/automated_testing.rst
+F:	drivers/gpu/drm/ci/
+
 DSBR100 USB FM RADIO DRIVER
 M:	Alexey Klimov <klimov.linux at gmail.com>
 L:	linux-media at vger.kernel.org
diff --git a/drivers/gpu/drm/ci/arm.config b/drivers/gpu/drm/ci/arm.config
new file mode 100644
index 000000000000..871f4de063ad
--- /dev/null
+++ b/drivers/gpu/drm/ci/arm.config
@@ -0,0 +1,69 @@
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_DEBUG_KERNEL=y
+
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZRAM=y
+CONFIG_ZSMALLOC_STAT=y
+
+# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
+CONFIG_BLK_DEV_INITRD=n
+
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+
+CONFIG_DRM=y
+CONFIG_DRM_ETNAVIV=y
+CONFIG_DRM_ROCKCHIP=y
+CONFIG_DRM_PANFROST=y
+CONFIG_DRM_LIMA=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_PWM_CROS_EC=y
+CONFIG_BACKLIGHT_PWM=y
+
+CONFIG_ROCKCHIP_CDN_DP=n
+
+CONFIG_SPI_ROCKCHIP=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_DP=y
+CONFIG_DWMAC_ROCKCHIP=y
+
+CONFIG_MFD_RK808=y
+CONFIG_REGULATOR_RK808=y
+CONFIG_RTC_DRV_RK808=y
+CONFIG_COMMON_CLK_RK808=y
+
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR=y
+
+CONFIG_REGULATOR_VCTRL=y
+
+CONFIG_KASAN=n
+CONFIG_KASAN_INLINE=n
+CONFIG_STACKTRACE=n
+
+CONFIG_TMPFS=y
+
+CONFIG_PROVE_LOCKING=n
+CONFIG_DEBUG_LOCKDEP=n
+CONFIG_SOFTLOCKUP_DETECTOR=n
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n
+
+CONFIG_FW_LOADER_COMPRESS=y
+
+CONFIG_USB_USBNET=y
+CONFIG_NETDEVICES=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_SMSC95XX=y
+
+# TK1
+CONFIG_ARM_TEGRA_DEVFREQ=y
+
+# 32-bit build failure
+CONFIG_DRM_MSM=n
diff --git a/drivers/gpu/drm/ci/arm64.config b/drivers/gpu/drm/ci/arm64.config
new file mode 100644
index 000000000000..9656eff22728
--- /dev/null
+++ b/drivers/gpu/drm/ci/arm64.config
@@ -0,0 +1,199 @@
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_DEBUG_KERNEL=y
+
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZRAM=y
+CONFIG_ZSMALLOC_STAT=y
+
+# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
+CONFIG_BLK_DEV_INITRD=n
+
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+
+CONFIG_DRM=y
+CONFIG_DRM_ROCKCHIP=y
+CONFIG_DRM_PANFROST=y
+CONFIG_DRM_LIMA=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_DRM_PANEL_EDP=y
+CONFIG_DRM_MSM=y
+CONFIG_DRM_ETNAVIV=y
+CONFIG_DRM_I2C_ADV7511=y
+CONFIG_PWM_CROS_EC=y
+CONFIG_BACKLIGHT_PWM=y
+
+CONFIG_ROCKCHIP_CDN_DP=n
+
+CONFIG_SPI_ROCKCHIP=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_DP=y
+CONFIG_DWMAC_ROCKCHIP=y
+CONFIG_STMMAC_ETH=y
+CONFIG_TYPEC_FUSB302=y
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+
+# MSM platform bits
+
+# For CONFIG_QCOM_LMH
+CONFIG_OF=y
+
+CONFIG_ARM_SMMU_QCOM=y
+CONFIG_QCOM_COMMAND_DB=y
+CONFIG_QCOM_RPMHPD=y
+CONFIG_QCOM_RPMPD=y
+CONFIG_QCOM_OCMEM=y
+CONFIG_SDM_GPUCC_845=y
+CONFIG_SDM_VIDEOCC_845=y
+CONFIG_SDM_DISPCC_845=y
+CONFIG_SDM_LPASSCC_845=y
+CONFIG_SDM_CAMCC_845=y
+CONFIG_RESET_QCOM_PDC=y
+CONFIG_DRM_TI_SN65DSI86=y
+CONFIG_I2C_QCOM_GENI=y
+CONFIG_SPI_QCOM_GENI=y
+CONFIG_PHY_QCOM_QUSB2=y
+CONFIG_PHY_QCOM_QMP=y
+CONFIG_MSM_GCC_8996=y
+CONFIG_QCOM_CLK_APCC_MSM8996=y
+CONFIG_QCOM_LLCC=y
+CONFIG_QCOM_LMH=y
+CONFIG_QCOM_SPMI_TEMP_ALARM=y
+CONFIG_QCOM_WDT=y
+CONFIG_POWER_RESET_QCOM_PON=y
+CONFIG_RTC_DRV_PM8XXX=y
+CONFIG_INTERCONNECT=y
+CONFIG_INTERCONNECT_QCOM=y
+CONFIG_INTERCONNECT_QCOM_MSM8996=y
+CONFIG_INTERCONNECT_QCOM_SDM845=y
+CONFIG_INTERCONNECT_QCOM_MSM8916=y
+CONFIG_INTERCONNECT_QCOM_MSM8996=y
+CONFIG_INTERCONNECT_QCOM_OSM_L3=y
+CONFIG_INTERCONNECT_QCOM_SC7180=y
+CONFIG_INTERCONNECT_QCOM_SM8350=y
+CONFIG_CRYPTO_DEV_QCOM_RNG=y
+CONFIG_SC_DISPCC_7180=y
+CONFIG_SC_GPUCC_7180=y
+CONFIG_SM_GPUCC_8350=y
+CONFIG_QCOM_SPMI_ADC5=y
+CONFIG_DRM_PARADE_PS8640=y
+CONFIG_DRM_LONTIUM_LT9611UXC=y
+CONFIG_PHY_QCOM_USB_HS=y
+CONFIG_QCOM_GPI_DMA=y
+CONFIG_USB_ONBOARD_HUB=y
+CONFIG_NVMEM_QCOM_QFPROM=y
+CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y
+
+
+# db410c ethernet
+CONFIG_USB_RTL8152=y
+# db820c ethernet
+CONFIG_ATL1C=y
+# Chromebooks ethernet
+CONFIG_USB_ONBOARD_HUB=y
+# 888 HDK ethernet
+CONFIG_USB_LAN78XX=y
+
+CONFIG_ARCH_ALPINE=n
+CONFIG_ARCH_BCM2835=n
+CONFIG_ARCH_BCM_IPROC=n
+CONFIG_ARCH_BERLIN=n
+CONFIG_ARCH_BRCMSTB=n
+CONFIG_ARCH_EXYNOS=n
+CONFIG_ARCH_K3=n
+CONFIG_ARCH_LAYERSCAPE=n
+CONFIG_ARCH_LG1K=n
+CONFIG_ARCH_HISI=n
+CONFIG_ARCH_MVEBU=n
+CONFIG_ARCH_SEATTLE=n
+CONFIG_ARCH_SYNQUACER=n
+CONFIG_ARCH_RENESAS=n
+CONFIG_ARCH_R8A774A1=n
+CONFIG_ARCH_R8A774C0=n
+CONFIG_ARCH_R8A7795=n
+CONFIG_ARCH_R8A7796=n
+CONFIG_ARCH_R8A77965=n
+CONFIG_ARCH_R8A77970=n
+CONFIG_ARCH_R8A77980=n
+CONFIG_ARCH_R8A77990=n
+CONFIG_ARCH_R8A77995=n
+CONFIG_ARCH_STRATIX10=n
+CONFIG_ARCH_TEGRA=n
+CONFIG_ARCH_SPRD=n
+CONFIG_ARCH_THUNDER=n
+CONFIG_ARCH_THUNDER2=n
+CONFIG_ARCH_UNIPHIER=n
+CONFIG_ARCH_VEXPRESS=n
+CONFIG_ARCH_XGENE=n
+CONFIG_ARCH_ZX=n
+CONFIG_ARCH_ZYNQMP=n
+
+# Strip out some stuff we don't need for graphics testing, to reduce
+# the build.
+CONFIG_CAN=n
+CONFIG_WIRELESS=n
+CONFIG_RFKILL=n
+CONFIG_WLAN=n
+
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR=y
+
+CONFIG_REGULATOR_VCTRL=y
+
+CONFIG_KASAN=n
+CONFIG_KASAN_INLINE=n
+CONFIG_STACKTRACE=n
+
+CONFIG_TMPFS=y
+
+CONFIG_PROVE_LOCKING=n
+CONFIG_DEBUG_LOCKDEP=n
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+
+CONFIG_DETECT_HUNG_TASK=y
+
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_USER_HELPER=n
+
+CONFIG_USB_USBNET=y
+CONFIG_NETDEVICES=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_SMSC95XX=y
+
+# For amlogic
+CONFIG_MESON_GXL_PHY=y
+CONFIG_MDIO_BUS_MUX_MESON_G12A=y
+CONFIG_DRM_MESON=y
+
+# For Mediatek
+CONFIG_DRM_MEDIATEK=y
+CONFIG_PWM_MEDIATEK=y
+CONFIG_DRM_MEDIATEK_HDMI=y
+CONFIG_GNSS=y
+CONFIG_GNSS_MTK_SERIAL=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_MTK=y
+CONFIG_MTK_DEVAPC=y
+CONFIG_PWM_MTK_DISP=y
+CONFIG_MTK_CMDQ=y
+
+# For nouveau.  Note that DRM must be a module so that it's loaded after NFS is up to provide the firmware.
+CONFIG_ARCH_TEGRA=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_TEGRA=m
+CONFIG_R8169=y
+CONFIG_STAGING=y
+CONFIG_DRM_TEGRA_STAGING=y
+CONFIG_TEGRA_HOST1X=y
+CONFIG_ARM_TEGRA_DEVFREQ=y
+CONFIG_TEGRA_SOCTHERM=y
+CONFIG_DRM_TEGRA_DEBUG=y
+CONFIG_PWM_TEGRA=y
diff --git a/drivers/gpu/drm/ci/build-igt.sh b/drivers/gpu/drm/ci/build-igt.sh
new file mode 100644
index 000000000000..500fa4f5c30a
--- /dev/null
+++ b/drivers/gpu/drm/ci/build-igt.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+# SPDX-License-Identifier: MIT
+
+set -ex
+
+git clone https://gitlab.freedesktop.org/drm/igt-gpu-tools.git --single-branch --no-checkout
+cd igt-gpu-tools
+git checkout $IGT_VERSION
+
+if [[ "$KERNEL_ARCH" = "arm" ]]; then
+    . ../.gitlab-ci/container/create-cross-file.sh armhf
+    EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt"
+fi
+
+MESON_OPTIONS="-Doverlay=disabled                    \
+               -Dchamelium=disabled                  \
+               -Dvalgrind=disabled                   \
+               -Dman=enabled                         \
+               -Dtests=enabled                       \
+               -Drunner=enabled                      \
+               -Dlibunwind=enabled                   \
+               -Dprefix=/igt"
+
+mkdir -p /igt
+meson build $MESON_OPTIONS $EXTRA_MESON_ARGS
+ninja -C build -j${FDO_CI_CONCURRENT:-4} || ninja -C build -j 1
+ninja -C build install
+
+mkdir -p artifacts/
+tar -cf artifacts/igt.tar /igt
+
+# Pass needed files to the test stage
+S3_ARTIFACT_NAME="igt.tar.gz"
+gzip -c artifacts/igt.tar > ${S3_ARTIFACT_NAME}
+ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${KERNEL_ARCH}/${S3_ARTIFACT_NAME}
diff --git a/drivers/gpu/drm/ci/build.sh b/drivers/gpu/drm/ci/build.sh
new file mode 100644
index 000000000000..fefaf417b220
--- /dev/null
+++ b/drivers/gpu/drm/ci/build.sh
@@ -0,0 +1,157 @@
+#!/bin/bash
+# SPDX-License-Identifier: MIT
+
+set -ex
+
+# Clean up stale rebases that GitLab might not have removed when reusing a checkout dir
+rm -rf .git/rebase-apply
+
+. .gitlab-ci/container/container_pre_build.sh
+
+# libssl-dev was uninstalled because it was considered an ephemeral package
+apt-get update
+apt-get install -y libssl-dev
+
+if [[ "$KERNEL_ARCH" = "arm64" ]]; then
+    GCC_ARCH="aarch64-linux-gnu"
+    DEBIAN_ARCH="arm64"
+    DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8096-db820c.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb"
+    DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dtb"
+elif [[ "$KERNEL_ARCH" = "arm" ]]; then
+    GCC_ARCH="arm-linux-gnueabihf"
+    DEBIAN_ARCH="armhf"
+    DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb"
+    DEVICE_TREES+=" arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
+    DEVICE_TREES+=" arch/arm/boot/dts/imx6q-cubox-i.dtb"
+    apt-get install -y libssl-dev:armhf
+else
+    GCC_ARCH="x86_64-linux-gnu"
+    DEBIAN_ARCH="x86_64"
+    DEVICE_TREES=""
+fi
+
+export ARCH=${KERNEL_ARCH}
+export CROSS_COMPILE="${GCC_ARCH}-"
+
+# The kernel doesn't like the gold linker (or the old lld in our debians).
+# Sneak in some override symlinks during kernel build until we can update
+# debian.
+mkdir -p ld-links
+for i in /usr/bin/*-ld /usr/bin/ld; do
+    i=$(basename $i)
+    ln -sf /usr/bin/$i.bfd ld-links/$i
+done
+
+NEWPATH=$(pwd)/ld-links
+export PATH=$NEWPATH:$PATH
+
+git config --global user.email "fdo at example.com"
+git config --global user.name "freedesktop.org CI"
+git config --global pull.rebase true
+
+# Try to merge fixes from target repo
+if [ "$(git ls-remote --exit-code --heads ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes)" ]; then
+    git pull ${UPSTREAM_REPO} ${TARGET_BRANCH}-external-fixes
+fi
+
+# Try to merge fixes from local repo if this isn't a merge request
+if [ -z "$CI_MERGE_REQUEST_PROJECT_PATH" ]; then
+    if [ "$(git ls-remote --exit-code --heads origin ${TARGET_BRANCH}-external-fixes)" ]; then
+        git pull origin ${TARGET_BRANCH}-external-fixes
+    fi
+fi
+
+for opt in $ENABLE_KCONFIGS; do
+  echo CONFIG_$opt=y >> drivers/gpu/drm/ci/${KERNEL_ARCH}.config
+done
+for opt in $DISABLE_KCONFIGS; do
+  echo CONFIG_$opt=n >> drivers/gpu/drm/ci/${KERNEL_ARCH}.config
+done
+
+if [[ -n "${MERGE_FRAGMENT}" ]]; then
+    ./scripts/kconfig/merge_config.sh ${DEFCONFIG} drivers/gpu/drm/ci/${MERGE_FRAGMENT}
+else
+    make `basename ${DEFCONFIG}`
+fi
+
+make ${KERNEL_IMAGE_NAME}
+
+mkdir -p /lava-files/
+for image in ${KERNEL_IMAGE_NAME}; do
+    cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/.
+done
+
+if [[ -n ${DEVICE_TREES} ]]; then
+    make dtbs
+    cp ${DEVICE_TREES} /lava-files/.
+fi
+
+make modules
+mkdir -p install/modules/
+INSTALL_MOD_PATH=install/modules/ make modules_install
+
+if [[ ${DEBIAN_ARCH} = "arm64" ]]; then
+    make Image.lzma
+    mkimage \
+        -f auto \
+        -A arm \
+        -O linux \
+        -d arch/arm64/boot/Image.lzma \
+        -C lzma\
+        -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \
+        /lava-files/cheza-kernel
+    KERNEL_IMAGE_NAME+=" cheza-kernel"
+
+    # Make a gzipped copy of the Image for db410c.
+    gzip -k /lava-files/Image
+    KERNEL_IMAGE_NAME+=" Image.gz"
+fi
+
+# Pass needed files to the test stage
+mkdir -p install
+cp -rfv .gitlab-ci/* install/.
+cp -rfv install/common install/ci-common
+cp -rfv drivers/gpu/drm/ci/* install/.
+
+. .gitlab-ci/container/container_post_build.sh
+
+if [[ "$UPLOAD_TO_MINIO" = "1" ]]; then
+    xz -7 -c -T${FDO_CI_CONCURRENT:-4} vmlinux > /lava-files/vmlinux.xz
+    FILES_TO_UPLOAD="$KERNEL_IMAGE_NAME vmlinux.xz"
+
+    if [[ -n $DEVICE_TREES ]]; then
+        FILES_TO_UPLOAD="$FILES_TO_UPLOAD $(basename -a $DEVICE_TREES)"
+    fi
+
+    for f in $FILES_TO_UPLOAD; do
+        ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" /lava-files/$f \
+                https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/$f
+    done
+
+    S3_ARTIFACT_NAME="kernel-files.tar.zst"
+    tar --zstd -cf $S3_ARTIFACT_NAME install
+    ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/${S3_ARTIFACT_NAME}
+
+    echo "Download vmlinux.xz from https://${PIPELINE_ARTIFACTS_BASE}/${DEBIAN_ARCH}/vmlinux.xz"
+fi
+
+mkdir -p artifacts/install/lib
+mv install/* artifacts/install/.
+rm -rf artifacts/install/modules
+ln -s common artifacts/install/ci-common
+
+for image in ${KERNEL_IMAGE_NAME}; do
+    cp /lava-files/$image artifacts/install/.
+done
+
+tar -C artifacts -cf artifacts/install.tar install
+rm -rf artifacts/install
diff --git a/drivers/gpu/drm/ci/build.yml b/drivers/gpu/drm/ci/build.yml
new file mode 100644
index 000000000000..e6503f1c5927
--- /dev/null
+++ b/drivers/gpu/drm/ci/build.yml
@@ -0,0 +1,110 @@
+.build:
+  extends:
+    - .build-rules
+  stage: build
+  artifacts:
+    paths:
+      - artifacts
+  script:
+    - FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash drivers/gpu/drm/ci/build.sh
+
+.build:arm32:
+  extends:
+    - .build
+    - .use-debian/arm64_build
+  tags:
+    - aarch64
+  variables:
+    DEFCONFIG: "arch/arm/configs/multi_v7_defconfig"
+    KERNEL_IMAGE_NAME: "zImage"
+    KERNEL_ARCH: "arm"
+
+.build:arm64:
+  extends:
+    - .build
+    - .use-debian/arm64_build
+  tags:
+    - aarch64
+  variables:
+    DEFCONFIG: "arch/arm64/configs/defconfig"
+    KERNEL_IMAGE_NAME: "Image"
+    KERNEL_ARCH: "arm64"
+
+.build:x86_64:
+  extends:
+    - .build
+    - .use-debian/x86_64_build
+  variables:
+    DEFCONFIG: "arch/x86/configs/x86_64_defconfig"
+    KERNEL_IMAGE_NAME: "bzImage"
+    KERNEL_ARCH: "x86_64"
+
+
+# Build IGT for testing on devices
+
+igt:arm32:
+  extends: .build:arm32
+  script:
+    - FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash drivers/gpu/drm/ci/build-igt.sh
+
+igt:arm64:
+  extends: .build:arm64
+  script:
+    - FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash drivers/gpu/drm/ci/build-igt.sh
+
+igt:x86_64:
+  extends: .build:x86_64
+  script:
+    - FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash drivers/gpu/drm/ci/build-igt.sh
+
+# Build kernels for testing on devices
+
+testing:arm32:
+  extends: .build:arm32
+  variables:
+    # Would be good to have DEBUG_KMEMLEAK, but it doesn't work well with any of
+    # PROVE_LOCKING and KASAN as of 5.17.
+    #
+    # db410c and db820c don't boot with KASAN_INLINE, probably due to the kernel
+    # becoming too big for their bootloaders.
+    ENABLE_KCONFIGS: "PROVE_LOCKING DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT"
+    UPLOAD_TO_MINIO: 1
+    MERGE_FRAGMENT: arm.config
+
+testing:arm64:
+  extends: .build:arm64
+  variables:
+    # Would be good to have DEBUG_KMEMLEAK, but it doesn't work well with any of
+    # PROVE_LOCKING and KASAN as of 5.17.
+    #
+    # db410c and db820c don't boot with KASAN_INLINE, probably due to the kernel
+    # becoming too big for their bootloaders.
+    ENABLE_KCONFIGS: "PROVE_LOCKING DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT"
+    UPLOAD_TO_MINIO: 1
+    MERGE_FRAGMENT: arm64.config
+
+testing:x86_64:
+  extends: .build:x86_64
+  variables:
+    # Would be good to have DEBUG_KMEMLEAK, but it doesn't work well with any of
+    # PROVE_LOCKING and KASAN as of 5.17.
+    #
+    # db410c and db820c don't boot with KASAN_INLINE, probably due to the kernel
+    # becoming too big for their bootloaders.
+    ENABLE_KCONFIGS: "PROVE_LOCKING DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT"
+    UPLOAD_TO_MINIO: 1
+    MERGE_FRAGMENT: x86_64.config
+
+
+# Jobs for build-testing different configurations
+
+build:arm32:
+  extends: .build:arm32
+
+build-nodebugfs:arm64:
+  extends: .build:arm64
+  variables:
+    DISABLE_KCONFIGS: "DEBUG_FS"
+
+build:x86_64:
+  extends: .build:x86_64
diff --git a/drivers/gpu/drm/ci/check-patch.py b/drivers/gpu/drm/ci/check-patch.py
new file mode 100755
index 000000000000..a5f399a20e25
--- /dev/null
+++ b/drivers/gpu/drm/ci/check-patch.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# check-patch.py: run checkpatch.pl across all commits in a branch
+#
+# Based on qemu/.gitlab-ci.d/check-patch.py
+#
+# Copyright (C) 2020 Red Hat, Inc.
+# Copyright (C) 2022 Collabora Ltd.
+
+import os
+import os.path
+import sys
+import subprocess
+
+repourl = "https://gitlab.freedesktop.org/%s.git" % os.environ["CI_MERGE_REQUEST_PROJECT_PATH"]
+
+# GitLab CI environment does not give us any direct info about the
+# base for the user's branch. We thus need to figure out a common
+# ancestor between the user's branch and current git master.
+os.environ["GIT_DEPTH"] = "1000"
+subprocess.call(["git", "remote", "remove", "check-patch"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+subprocess.check_call(["git", "remote", "add", "check-patch", repourl])
+subprocess.check_call(["git", "fetch", "check-patch", os.environ["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"]],
+                      stdout=subprocess.DEVNULL,
+                      stderr=subprocess.DEVNULL)
+
+ancestor = subprocess.check_output(["git", "merge-base",
+                                    "check-patch/%s" % os.environ["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"], "HEAD"],
+                                   universal_newlines=True)
+
+ancestor = ancestor.strip()
+
+log = subprocess.check_output(["git", "log", "--format=%H %s",
+                               ancestor + "..."],
+                              universal_newlines=True)
+
+subprocess.check_call(["git", "remote", "rm", "check-patch"])
+
+if log == "":
+    print("\nNo commits since %s, skipping checks\n" % ancestor)
+    sys.exit(0)
+
+errors = False
+
+print("\nChecking all commits since %s...\n" % ancestor, flush=True)
+
+ret = subprocess.run(["scripts/checkpatch.pl",
+                      "--terse",
+                      "--types", os.environ["CHECKPATCH_TYPES"],
+                      "--git", ancestor + "..."])
+
+if ret.returncode != 0:
+    print("    ❌ FAIL one or more commits failed scripts/checkpatch.pl")
+    sys.exit(1)
+
+sys.exit(0)
diff --git a/drivers/gpu/drm/ci/container.yml b/drivers/gpu/drm/ci/container.yml
new file mode 100644
index 000000000000..1b1bc8992668
--- /dev/null
+++ b/drivers/gpu/drm/ci/container.yml
@@ -0,0 +1,61 @@
+.container:
+  variables:
+    CI_REPOSITORY_URL: ${DRM_CI_PROJECT_URL}.git # So ci-templates clones drm-ci instead of the repo to test
+    CI_COMMIT_SHA: ${DRM_CI_COMMIT_SHA}
+
+debian/x86_64_build-base:
+  variables:
+    EXTRA_LOCAL_PACKAGES: "libcairo-dev libdw-dev libjson-c-dev libkmod2 libkmod-dev libpciaccess-dev libproc2-dev libudev-dev libunwind-dev python3-docutils bc python3-ply libssl-dev bc"
+
+debian/x86_64_test-gl:
+  variables:
+    EXTRA_LOCAL_PACKAGES: "jq libasound2 libcairo2 libdw1 libglib2.0-0 libjson-c5 libkmod-dev libkmod2 libgles2 libproc2-dev"
+
+debian/arm64_build:
+  variables:
+    EXTRA_LOCAL_PACKAGES: "libcairo-dev libdw-dev libjson-c-dev libproc2-dev libkmod2 libkmod-dev libpciaccess-dev libudev-dev libunwind-dev python3-docutils libssl-dev crossbuild-essential-armhf libkmod-dev:armhf libproc2-dev:armhf libunwind-dev:armhf libdw-dev:armhf libpixman-1-dev:armhf libcairo-dev:armhf libudev-dev:armhf libjson-c-dev:armhf"
+
+.kernel+rootfs:
+  variables:
+    EXTRA_LOCAL_PACKAGES: "jq libasound2 libcairo2 libdw1 libglib2.0-0 libjson-c5"
+
+# Disable container jobs that we won't use
+alpine/x86_64_build:
+  rules:
+    - when: never
+
+debian/x86_64_test-vk:
+  rules:
+    - when: never
+
+fedora/x86_64_build:
+  rules:
+    - when: never
+
+debian/android_build:
+  rules:
+    - when: never
+
+debian/x86_64_test-android:
+  rules:
+    - when: never
+
+windows_build_vs2019:
+  rules:
+    - when: never
+
+windows_test_vs2019:
+  rules:
+    - when: never
+
+.debian/x86_64_build-mingw:
+   rules:
+    - when: never
+
+rustfmt:
+   rules:
+    - when: never
+
+windows_vs2019:
+   rules:
+    - when: never
diff --git a/drivers/gpu/drm/ci/gitlab-ci.yml b/drivers/gpu/drm/ci/gitlab-ci.yml
new file mode 100644
index 000000000000..32d8e2258eb6
--- /dev/null
+++ b/drivers/gpu/drm/ci/gitlab-ci.yml
@@ -0,0 +1,252 @@
+variables:
+  # Change this to use your fork of drm-ci
+  DRM_CI_PROJECT_PATH: &drm-ci-project-path mesa/mesa
+  DRM_CI_COMMIT_SHA: &drm-ci-commit-sha 0dc961645c4f0241f8512cb0ec3ad59635842072
+
+  UPSTREAM_REPO: git://anongit.freedesktop.org/drm/drm
+  TARGET_BRANCH: drm-next
+
+  IGT_VERSION: 471bfababd070e1dac0ebb87470ac4f2ae85e663
+
+  DEQP_RUNNER_GIT_URL: https://gitlab.freedesktop.org/anholt/deqp-runner.git
+  DEQP_RUNNER_GIT_TAG: v0.15.0
+
+  FDO_UPSTREAM_REPO: helen.fornazier/linux   # The repo where the git-archive daily runs
+  MESA_TEMPLATES_COMMIT: &ci-templates-commit d5aa3941aa03c2f716595116354fb81eb8012acb
+  DRM_CI_PROJECT_URL: https://gitlab.freedesktop.org/${DRM_CI_PROJECT_PATH}
+  CI_PRE_CLONE_SCRIPT: |-
+          set -o xtrace
+          curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s ${DRM_CI_PROJECT_URL}/-/raw/${DRM_CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh -o download-git-cache.sh
+          bash download-git-cache.sh
+          rm download-git-cache.sh
+          set +o xtrace
+  S3_HOST: s3.freedesktop.org
+  # per-pipeline artifact storage on MinIO
+  PIPELINE_ARTIFACTS_BASE: ${S3_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
+  # per-job artifact storage on MinIO
+  JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
+
+  LAVA_JOB_PRIORITY: 30
+
+default:
+  before_script:
+    - export SCRIPTS_DIR=$(mktemp -d)
+    - curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 -O --output-dir "${SCRIPTS_DIR}" "${DRM_CI_PROJECT_URL}/-/raw/${DRM_CI_COMMIT_SHA}/.gitlab-ci/setup-test-env.sh"
+    - source ${SCRIPTS_DIR}/setup-test-env.sh
+    - echo -e "\e[0Ksection_start:$(date +%s):unset_env_vars_section[collapsed=true]\r\e[0KUnsetting vulnerable environment variables"
+    - export CI_JOB_JWT_FILE="${CI_JOB_JWT_FILE:-$(mktemp)}"
+    - echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}"
+    - unset CI_JOB_JWT
+    - echo -e "\e[0Ksection_end:$(date +%s):unset_env_vars_section\r\e[0K"
+
+    - echo -e "\e[0Ksection_start:$(date +%s):drm_ci_download_section[collapsed=true]\r\e[0KDownloading mesa from $DRM_CI_PROJECT_URL/-/archive/$DRM_CI_COMMIT_SHA/mesa-$DRM_CI_COMMIT_SHA.tar.gz"
+    - cd $CI_PROJECT_DIR
+    - curl --output - $DRM_CI_PROJECT_URL/-/archive/$DRM_CI_COMMIT_SHA/mesa-$DRM_CI_COMMIT_SHA.tar.gz | tar -xz
+    - mv mesa-$DRM_CI_COMMIT_SHA/.gitlab-ci* .
+    - rm -rf mesa-$DRM_CI_COMMIT_SHA/
+    - echo -e "\e[0Ksection_end:$(date +%s):drm_ci_download_section\r\e[0K"
+
+  after_script:
+    - >
+      set +x
+
+      test -e "${CI_JOB_JWT_FILE}" &&
+      export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
+      rm "${CI_JOB_JWT_FILE}"
+
+  # Retry when job fails.
+  retry:
+    max: 1
+    # Ignore runner_unsupported, stale_schedule, archived_failure, or
+    # unmet_prerequisites
+    when:
+      - api_failure
+      - runner_system_failure
+      - script_failure
+      - job_execution_timeout
+      - scheduler_failure
+      - data_integrity_failure
+      - unknown_failure
+
+include:
+  - project: 'freedesktop/ci-templates'
+    ref: 16bc29078de5e0a067ff84a1a199a3760d3b3811
+    file:
+      - '/templates/ci-fairy.yml'
+  - project: 'freedesktop/ci-templates'
+    ref: *ci-templates-commit
+    file:
+      - '/templates/alpine.yml'
+      - '/templates/debian.yml'
+      - '/templates/fedora.yml'
+  - project: *drm-ci-project-path
+    ref: *drm-ci-commit-sha
+    file:
+      - '/.gitlab-ci/farm-rules.yml'
+      - '/.gitlab-ci/test-source-dep.yml'
+      - '/.gitlab-ci/container/gitlab-ci.yml'
+      - '/.gitlab-ci/test/gitlab-ci.yml'
+      - '/.gitlab-ci/lava/lava-gitlab-ci.yml'
+  - drivers/gpu/drm/ci/image-tags.yml
+  - drivers/gpu/drm/ci/container.yml
+  - drivers/gpu/drm/ci/static-checks.yml
+  - drivers/gpu/drm/ci/build.yml
+  - drivers/gpu/drm/ci/test.yml
+  - 'https://gitlab.freedesktop.org/gfx-ci/lab-status/-/raw/main/lab-status.yml'
+
+
+stages:
+  - sanity
+  - container
+  - git-archive
+  - build
+  - amdgpu
+  - i915
+  - mediatek
+  - meson
+  - msm
+  - rockchip
+  - virtio-gpu
+  - lint
+
+# YAML anchors for rule conditions
+# --------------------------------
+.rules-anchors:
+  rules:
+    # Pipeline for forked project branch
+    - if: &is-forked-branch '$CI_COMMIT_BRANCH && $CI_PROJECT_NAMESPACE != "mesa"'
+      when: manual
+    # Forked project branch / pre-merge pipeline not for Marge bot
+    - if: &is-forked-branch-or-pre-merge-not-for-marge '$CI_PROJECT_NAMESPACE != "mesa" || ($GITLAB_USER_LOGIN != "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event")'
+      when: manual
+    # Pipeline runs for the main branch of the upstream Mesa project
+    - if: &is-mesa-main '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_COMMIT_BRANCH'
+      when: always
+    # Post-merge pipeline
+    - if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_BRANCH'
+      when: on_success
+    # Post-merge pipeline, not for Marge Bot
+    - if: &is-post-merge-not-for-marge '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_COMMIT_BRANCH'
+      when: on_success
+    # Pre-merge pipeline
+    - if: &is-pre-merge '$CI_PIPELINE_SOURCE == "merge_request_event"'
+      when: on_success
+    # Pre-merge pipeline for Marge Bot
+    - if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"'
+      when: on_success
+
+# Rule to filter for only scheduled pipelines.
+.scheduled_pipeline-rules:
+  rules:
+    - if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
+      when: on_success
+
+# Generic rule to not run the job during scheduled pipelines. Jobs that aren't
+# something like a nightly run should include this rule.
+.no_scheduled_pipelines-rules:
+  rules:
+    - if: *is-scheduled-pipeline
+      when: never
+
+# When to automatically run the CI for build jobs
+.build-rules:
+  rules:
+    - !reference [.no_scheduled_pipelines-rules, rules]
+    # Run automatically once all dependency jobs have passed
+    - when: on_success
+
+
+.ci-deqp-artifacts:
+  artifacts:
+    name: "mesa_${CI_JOB_NAME}"
+    when: always
+    untracked: false
+    paths:
+      # Watch out!  Artifacts are relative to the build dir.
+      # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
+      - artifacts
+      - _build/meson-logs/*.txt
+      - _build/meson-logs/strace
+
+
+.container-rules:
+  rules:
+    - !reference [.no_scheduled_pipelines-rules, rules]
+    # Run pipeline by default in the main project if any CI pipeline
+    # configuration files were changed, to ensure docker images are up to date
+    - if: *is-post-merge
+      changes:
+      - drivers/gpu/drm/ci/**/*
+      when: on_success
+    # Run pipeline by default if it was triggered by Marge Bot, is for a
+    # merge request, and any files affecting the pipeline were changed
+    - if: *is-pre-merge-for-marge
+      when: on_success
+    # Run pipeline by default in the main project if it was not triggered by
+    # Marge Bot, and any files affecting the pipeline were changed
+    - if: *is-post-merge-not-for-marge
+      when: on_success
+    # Allow triggering jobs manually in other cases
+    - when: manual
+
+
+
+# Git archive
+
+make git archive:
+  extends:
+    - .fdo.ci-fairy
+  stage: git-archive
+  rules:
+    - !reference [.scheduled_pipeline-rules, rules]
+  # ensure we are running on packet
+  tags:
+    - packet.net
+  script:
+    # Remove drm-ci files we just added
+    - rm -rf .gitlab-ci.*
+
+    # Compactify the .git directory
+    - git gc --aggressive
+    # compress the current folder
+    - tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
+
+    # login with the JWT token file
+    - ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
+
+
+# Sanity checks of MR settings and commit logs
+sanity:
+  extends:
+    - .fdo.ci-fairy
+  stage: sanity
+  rules:
+    - if: *is-pre-merge
+      when: on_success
+    # Other cases default to never
+  variables:
+    GIT_STRATEGY: none
+  script:
+    # ci-fairy check-commits --junit-xml=check-commits.xml
+    - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
+  artifacts:
+    when: on_failure
+    reports:
+      junit: check-*.xml
+
+# Rules for tests that should not block merging, but should be available to
+# optionally run with the "play" button in the UI in pre-merge non-marge
+# pipelines.  This should appear in "extends:" after any includes of
+# test-source-dep.yml rules, so that these rules replace those.
+.test-manual-mr:
+  rules:
+    - !reference [.no_scheduled_pipelines-rules, rules]
+    - if: *is-forked-branch-or-pre-merge-not-for-marge
+      when: manual
+  variables:
+    JOB_TIMEOUT: 80
+
+
+# Jobs that need to pass before spending hardware resources on further testing
+.required-for-hardware-jobs:
+  needs: []
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/igt_runner.sh b/drivers/gpu/drm/ci/igt_runner.sh
new file mode 100755
index 000000000000..2bb759165063
--- /dev/null
+++ b/drivers/gpu/drm/ci/igt_runner.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+# SPDX-License-Identifier: MIT
+
+set -ex
+
+export IGT_FORCE_DRIVER=${DRIVER_NAME}
+export PATH=$PATH:/igt/bin/
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/igt/lib/aarch64-linux-gnu/:/igt/lib/x86_64-linux-gnu:/igt/lib:/igt/lib64
+
+# Uncomment the below to debug problems with driver probing
+: '
+ls -l /dev/dri/
+cat /sys/kernel/debug/devices_deferred
+cat /sys/kernel/debug/device_component/*
+'
+
+# Dump drm state to confirm that kernel was able to find a connected display:
+# TODO this path might not exist for all drivers.. maybe run modetest instead?
+set +e
+cat /sys/kernel/debug/dri/*/state
+set -e
+
+# Cannot use HWCI_KERNEL_MODULES as at that point we don't have the module in /lib
+if [ "$IGT_FORCE_DRIVER" = "amdgpu" ]; then
+    mv /install/modules/lib/modules/* /lib/modules/.
+    modprobe amdgpu
+fi
+
+if [ -e "/install/xfails/$DRIVER_NAME-$GPU_VERSION-skips.txt" ]; then
+    IGT_SKIPS="--skips /install/xfails/$DRIVER_NAME-$GPU_VERSION-skips.txt"
+fi
+
+if [ -e "/install/xfails/$DRIVER_NAME-$GPU_VERSION-flakes.txt" ]; then
+    IGT_FLAKES="--flakes /install/xfails/$DRIVER_NAME-$GPU_VERSION-flakes.txt"
+fi
+
+if [ -e "/install/xfails/$DRIVER_NAME-$GPU_VERSION-fails.txt" ]; then
+    IGT_FAILS="--baseline /install/xfails/$DRIVER_NAME-$GPU_VERSION-fails.txt"
+fi
+
+if [ "`uname -m`" = "aarch64" ]; then
+    ARCH="arm64"
+elif [ "`uname -m`" = "armv7l" ]; then
+    ARCH="arm"
+else
+    ARCH="x86_64"
+fi
+
+curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s ${FDO_HTTP_CACHE_URI:-}$PIPELINE_ARTIFACTS_BASE/$ARCH/igt.tar.gz | tar --zstd -v -x -C /
+
+set +e
+igt-runner \
+    run \
+    --igt-folder /igt/libexec/igt-gpu-tools \
+    --caselist /install/testlist.txt \
+    --output /results \
+    $IGT_SKIPS \
+    $IGT_FLAKES \
+    $IGT_FAILS \
+    --fraction-start $CI_NODE_INDEX \
+    --fraction $CI_NODE_TOTAL \
+    --jobs 1
+ret=$?
+set -e
+
+deqp-runner junit \
+   --testsuite IGT \
+   --results /results/failures.csv \
+   --output /results/junit.xml \
+   --limit 50 \
+   --template "See https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/results/{{testcase}}.xml"
+
+# Store the results also in the simpler format used by the runner in ChromeOS CI
+#sed -r 's/(dmesg-warn|pass)/success/g' /results/results.txt > /results/results_simple.txt
+
+cd $oldpath
+exit $ret
diff --git a/drivers/gpu/drm/ci/image-tags.yml b/drivers/gpu/drm/ci/image-tags.yml
new file mode 100644
index 000000000000..a1903d49fa6b
--- /dev/null
+++ b/drivers/gpu/drm/ci/image-tags.yml
@@ -0,0 +1,15 @@
+variables:
+   CONTAINER_TAG: "2023-07-12-mesa-uprev-2"
+   DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base"
+   DEBIAN_BASE_TAG: "${CONTAINER_TAG}"
+
+   DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build"
+   DEBIAN_BUILD_TAG: "${CONTAINER_TAG}"
+
+   KERNEL_ROOTFS_TAG: "${CONTAINER_TAG}"
+
+   DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base"
+   DEBIAN_X86_64_TEST_IMAGE_GL_PATH: "debian/x86_64_test-gl"
+   DEBIAN_X86_64_TEST_GL_TAG: "${CONTAINER_TAG}"
+
+   ALPINE_X86_64_LAVA_SSH_TAG: "${CONTAINER_TAG}"
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/lava-submit.sh b/drivers/gpu/drm/ci/lava-submit.sh
new file mode 100755
index 000000000000..0c4456b21b0f
--- /dev/null
+++ b/drivers/gpu/drm/ci/lava-submit.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+# SPDX-License-Identifier: MIT
+
+set -e
+set -x
+
+# Try to use the kernel and rootfs built in mainline first, so we're more
+# likely to hit cache
+if curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s "https://${BASE_SYSTEM_MAINLINE_HOST_PATH}/done"; then
+	BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_MAINLINE_HOST_PATH}"
+else
+	BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_FORK_HOST_PATH}"
+fi
+
+rm -rf results
+mkdir -p results/job-rootfs-overlay/
+
+cp artifacts/ci-common/capture-devcoredump.sh results/job-rootfs-overlay/
+cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/
+cp artifacts/ci-common/intel-gpu-freq.sh results/job-rootfs-overlay/
+cp "$SCRIPTS_DIR"/setup-test-env.sh results/job-rootfs-overlay/
+
+# Prepare env vars for upload.
+section_start variables "Variables passed through:"
+KERNEL_IMAGE_BASE_URL="https://${BASE_SYSTEM_HOST_PATH}" \
+	artifacts/ci-common/generate-env.sh | tee results/job-rootfs-overlay/set-job-env-vars.sh
+section_end variables
+
+tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
+ci-fairy s3cp --token-file "${CI_JOB_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}"
+
+touch results/lava.log
+tail -f results/lava.log &
+
+PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \
+	submit \
+	--dump-yaml \
+	--pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
+	--rootfs-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \
+	--kernel-url-prefix "https://${PIPELINE_ARTIFACTS_BASE}/${ARCH}" \
+	--build-url "${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${ARCH}/kernel-files.tar.zst" \
+	--job-rootfs-overlay-url "${FDO_HTTP_CACHE_URI:-}https://${JOB_ROOTFS_OVERLAY_PATH}" \
+	--job-timeout-min ${JOB_TIMEOUT:-80} \
+	--first-stage-init artifacts/ci-common/init-stage1.sh \
+	--ci-project-dir "${CI_PROJECT_DIR}" \
+	--device-type "${DEVICE_TYPE}" \
+	--dtb-filename "${DTB}" \
+	--jwt-file "${CI_JOB_JWT_FILE}" \
+	--kernel-image-name "${KERNEL_IMAGE_NAME}" \
+	--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
+	--boot-method "${BOOT_METHOD}" \
+	--visibility-group "${VISIBILITY_GROUP}" \
+	--lava-tags "${LAVA_TAGS}" \
+	--mesa-job-name "$CI_JOB_NAME" \
+	--structured-log-file "results/lava_job_detail.json" \
+	--ssh-client-image "${LAVA_SSH_CLIENT_IMAGE}" \
+	>> results/lava.log
diff --git a/drivers/gpu/drm/ci/static-checks.yml b/drivers/gpu/drm/ci/static-checks.yml
new file mode 100644
index 000000000000..13ffa827b7fa
--- /dev/null
+++ b/drivers/gpu/drm/ci/static-checks.yml
@@ -0,0 +1,12 @@
+check-patch:
+  extends:
+    - .build
+    - .use-debian/x86_64_build
+  script:
+    - drivers/gpu/drm/ci/check-patch.py
+  variables:
+    CHECKPATCH_TYPES: "BAD_SIGN_OFF,BAD_STABLE_ADDRESS_STYLE,COMMIT_COMMENT_SYMBOL,COMMIT_MESSAGE,EMAIL_SUBJECT,FROM_SIGN_OFF_MISMATCH,MISSING_SIGN_OFF,NO_AUTHOR_SIGN_OFF,DIFF_IN_COMMIT_MSG,GERRIT_CHANGE_ID,GIT_COMMIT_ID,UNKNOWN_COMMIT_ID,CODE_INDENT,BIT_MACRO,DOS_LINE_ENDINGS"
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+      when: on_success
+    # Other cases default to never
diff --git a/drivers/gpu/drm/ci/test.yml b/drivers/gpu/drm/ci/test.yml
new file mode 100644
index 000000000000..6473cddaa7a9
--- /dev/null
+++ b/drivers/gpu/drm/ci/test.yml
@@ -0,0 +1,335 @@
+.test-rules:
+  rules:
+    - if: '$FD_FARM == "offline" && $RUNNER_TAG =~ /^google-freedreno-/'
+      when: never
+    - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
+      when: never
+    - !reference [.no_scheduled_pipelines-rules, rules]
+    - when: on_success
+
+.lava-test:
+  extends:
+    - .test-rules
+  script:
+    # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
+    - rm -rf install
+    - tar -xf artifacts/install.tar
+    - mv install/* artifacts/.
+    # Override it with our lava-submit.sh script
+    - ./artifacts/lava-submit.sh
+
+.lava-igt:arm32:
+  extends:
+    - .lava-test:arm32
+  variables:
+    HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
+    ARCH: "armhf"
+  dependencies:
+    - testing:arm32
+  needs:
+    - alpine/x86_64_lava_ssh_client
+    - kernel+rootfs_arm32
+    - debian/x86_64_build
+    - testing:arm32
+    - igt:arm32
+
+.lava-igt:arm64:
+  extends:
+    - .lava-test:arm64
+  variables:
+    HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
+    ARCH: "arm64"
+  dependencies:
+    - testing:arm64
+  needs:
+    - alpine/x86_64_lava_ssh_client
+    - kernel+rootfs_arm64
+    - debian/x86_64_build
+    - testing:arm64
+    - igt:arm64
+
+.lava-igt:x86_64:
+  extends:
+    - .lava-test:x86_64
+  variables:
+    HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
+    ARCH: "x86_64"
+  dependencies:
+    - testing:x86_64
+  needs:
+    - alpine/x86_64_lava_ssh_client
+    - kernel+rootfs_x86_64
+    - debian/x86_64_build
+    - testing:x86_64
+    - igt:x86_64
+
+.baremetal-igt-arm64:
+  extends:
+    - .baremetal-test-arm64
+    - .use-debian/arm64_test
+    - .test-rules
+  variables:
+    FDO_CI_CONCURRENT: 10
+    HWCI_TEST_SCRIPT: "/install/igt_runner.sh"
+    S3_ARTIFACT_NAME: "arm64/kernel-files"
+    BM_KERNEL: https://${PIPELINE_ARTIFACTS_BASE}/arm64/Image.gz
+    BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 $BM_KERNEL_EXTRA_ARGS root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init $BM_KERNELARGS"
+  needs:
+    - debian/arm64_test
+    - job: testing:arm64
+      artifacts: false
+    - igt:arm64
+  tags:
+    - $RUNNER_TAG
+
+msm:sc7180:
+  extends:
+    - .lava-igt:arm64
+  stage: msm
+  parallel: 2
+  variables:
+    DRIVER_NAME: msm
+    DEVICE_TYPE: sc7180-trogdor-lazor-limozeen
+    DTB: sc7180-trogdor-lazor-limozeen-nots-r5
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: ""
+    GPU_VERSION: sc7180
+    RUNNER_TAG: mesa-ci-x86-64-lava-sc7180-trogdor-lazor-limozeen
+
+msm:apq8016:
+  extends:
+    - .baremetal-igt-arm64
+  stage: msm
+  variables:
+    DRIVER_NAME: msm
+    BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8016-sbc.dtb
+    GPU_VERSION: apq8016
+    BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 $BM_KERNEL_EXTRA_ARGS root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init $BM_KERNELARGS"
+    RUNNER_TAG: google-freedreno-db410c
+  script:
+    - ./install/bare-metal/fastboot.sh
+  rules:
+    # TODO: current issue: it is not fiding the NFS root. Fix and remove this rule.
+    - when: never
+
+msm:apq8096:
+  extends:
+    - .baremetal-igt-arm64
+  stage: msm
+  variables:
+    DRIVER_NAME: msm
+    BM_KERNEL_EXTRA_ARGS: maxcpus=2
+    BM_DTB: https://${PIPELINE_ARTIFACTS_BASE}/arm64/apq8096-db820c.dtb
+    GPU_VERSION: apq8096
+    RUNNER_TAG: google-freedreno-db820c
+  script:
+    - ./install/bare-metal/fastboot.sh
+
+msm:sdm845:
+  extends:
+    - .baremetal-igt-arm64
+  stage: msm
+  parallel: 6
+  variables:
+    DRIVER_NAME: msm
+    BM_KERNEL: https://${PIPELINE_ARTIFACTS_BASE}/arm64/cheza-kernel
+    GPU_VERSION: sdm845
+    RUNNER_TAG: google-freedreno-cheza
+  script:
+    - ./install/bare-metal/cros-servo.sh
+
+rockchip:rk3288:
+  extends:
+    - .lava-igt:arm32
+  stage: rockchip
+  variables:
+    DRIVER_NAME: rockchip
+    DEVICE_TYPE: rk3288-veyron-jaq
+    DTB: ${DEVICE_TYPE}
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: "zimage"
+    GPU_VERSION: rk3288
+    RUNNER_TAG: mesa-ci-x86-64-lava-rk3288-veyron-jaq
+
+rockchip:rk3399:
+  extends:
+    - .lava-igt:arm64
+  stage: rockchip
+  parallel: 3
+  variables:
+    DRIVER_NAME: rockchip
+    DEVICE_TYPE: rk3399-gru-kevin
+    DTB: ${DEVICE_TYPE}
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: ""
+    GPU_VERSION: rk3399
+    RUNNER_TAG: mesa-ci-x86-64-lava-rk3399-gru-kevin
+
+.i915:
+  extends:
+    - .lava-igt:x86_64
+  stage: i915
+  variables:
+    DRIVER_NAME: i915
+    DTB: ""
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: ""
+
+i915:apl:
+  extends:
+    - .i915
+  parallel: 12
+  variables:
+    DEVICE_TYPE: asus-C523NA-A20057-coral
+    GPU_VERSION: apl
+    RUNNER_TAG: mesa-ci-x86-64-lava-asus-C523NA-A20057-coral
+
+i915:glk:
+  extends:
+    - .i915
+  parallel: 5
+  variables:
+    DEVICE_TYPE: hp-x360-12b-ca0010nr-n4020-octopus
+    GPU_VERSION: glk
+    RUNNER_TAG: mesa-ci-x86-64-lava-hp-x360-12b-ca0010nr-n4020-octopus
+
+i915:amly:
+  extends:
+    - .i915
+  parallel: 8
+  variables:
+    DEVICE_TYPE: asus-C433TA-AJ0005-rammus
+    GPU_VERSION: amly
+    RUNNER_TAG: mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus
+
+i915:kbl:
+  extends:
+    - .i915
+  parallel: 5
+  variables:
+    DEVICE_TYPE: hp-x360-14-G1-sona
+    GPU_VERSION: kbl
+    RUNNER_TAG: mesa-ci-x86-64-lava-hp-x360-14-G1-sona
+
+i915:whl:
+  extends:
+    - .i915
+  parallel: 8
+  variables:
+    DEVICE_TYPE: dell-latitude-5400-8665U-sarien
+    GPU_VERSION: whl
+    RUNNER_TAG: mesa-ci-x86-64-lava-dell-latitude-5400-8665U-sarien
+
+i915:cml:
+  extends:
+    - .i915
+  parallel: 6
+  variables:
+    DEVICE_TYPE: asus-C436FA-Flip-hatch
+    GPU_VERSION: cml
+    RUNNER_TAG: mesa-ci-x86-64-lava-asus-C436FA-flip-hatch
+
+i915:tgl:
+  extends:
+    - .i915
+  parallel: 6
+  variables:
+    DEVICE_TYPE: asus-cx9400-volteer
+    GPU_VERSION: tgl
+    RUNNER_TAG: mesa-ci-x86-64-lava-asus-cx9400-volteer
+
+.amdgpu:
+  extends:
+    - .lava-igt:x86_64
+  stage: amdgpu
+  variables:
+    DRIVER_NAME: amdgpu
+    DTB: ""
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: ""
+
+amdgpu:stoney:
+  extends:
+    - .amdgpu
+  variables:
+    DEVICE_TYPE: hp-11A-G6-EE-grunt
+    GPU_VERSION: stoney
+    RUNNER_TAG: mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt
+
+.mediatek:
+  extends:
+    - .lava-igt:arm64
+  stage: mediatek
+  variables:
+    DRIVER_NAME: mediatek
+    DTB: ${DEVICE_TYPE}
+    BOOT_METHOD: depthcharge
+    KERNEL_IMAGE_TYPE: ""
+
+mediatek:mt8173:
+  extends:
+    - .mediatek
+  variables:
+    DEVICE_TYPE: mt8173-elm-hana
+    GPU_VERSION: mt8173
+    RUNNER_TAG: mesa-ci-x86-64-lava-mt8173-elm-hana
+  rules:
+    # TODO: current issue: device is hanging. Fix and remove this rule.
+    - when: never
+
+mediatek:mt8183:
+  extends:
+    - .mediatek
+  variables:
+    DEVICE_TYPE: mt8183-kukui-jacuzzi-juniper-sku16
+    GPU_VERSION: mt8183
+    RUNNER_TAG: mesa-ci-x86-64-lava-mt8183-kukui-jacuzzi-juniper-sku16
+
+# drm-mtk doesn't even probe yet in mainline for mt8192
+.mediatek:mt8192:
+  extends:
+    - .mediatek
+  variables:
+    DEVICE_TYPE: mt8192-asurada-spherion-r0
+    GPU_VERSION: mt8192
+    RUNNER_TAG: mesa-ci-x86-64-lava-mt8192-asurada-spherion-r0
+
+.meson:
+  extends:
+    - .lava-igt:arm64
+  stage: meson
+  variables:
+    DRIVER_NAME: meson
+    DTB: ${DEVICE_TYPE}
+    BOOT_METHOD: u-boot
+    KERNEL_IMAGE_TYPE: "image"
+
+meson:g12b:
+  extends:
+    - .meson
+  variables:
+    DEVICE_TYPE: meson-g12b-a311d-khadas-vim3
+    GPU_VERSION: g12b
+    RUNNER_TAG: mesa-ci-x86-64-lava-meson-g12b-a311d-khadas-vim3
+
+virtio_gpu:none:
+  stage: virtio-gpu
+  variables:
+    CROSVM_GALLIUM_DRIVER: llvmpipe
+    DRIVER_NAME: virtio_gpu
+    GPU_VERSION: none
+  extends:
+    - .test-gl
+  tags:
+    - kvm
+  script:
+    - ln -sf $CI_PROJECT_DIR/install /install
+    - mv install/bzImage /lava-files/bzImage
+    - install/crosvm-runner.sh install/igt_runner.sh
+  needs:
+    - debian/x86_64_test-gl
+    - testing:x86_64
+    - igt:x86_64
+  rules:
+    # TODO: current issue: malloc(): corrupted top size. Fix and remove this rule.
+    - when: never
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/testlist.txt b/drivers/gpu/drm/ci/testlist.txt
new file mode 100644
index 000000000000..f82cd90372f4
--- /dev/null
+++ b/drivers/gpu/drm/ci/testlist.txt
@@ -0,0 +1,2912 @@
+core_auth at getclient-simple
+core_auth at getclient-master-drop
+core_auth at basic-auth
+core_auth at many-magics
+core_getclient
+core_getstats
+core_getversion
+core_setmaster_vs_auth
+drm_read at invalid-buffer
+drm_read at fault-buffer
+drm_read at empty-block
+drm_read at empty-nonblock
+drm_read at short-buffer-block
+drm_read at short-buffer-nonblock
+drm_read at short-buffer-wakeup
+gem_eio at throttle
+gem_eio at create
+gem_eio at create-ext
+gem_eio at context-create
+gem_eio at execbuf
+gem_eio at banned
+gem_eio at suspend
+gem_eio at hibernate
+gem_eio at in-flight-external
+gem_eio at in-flight-suspend
+gem_eio at reset-stress
+gem_eio at unwedge-stress
+gem_eio at wait-immediate
+gem_eio at wait-wedge-immediate
+gem_eio at in-flight-immediate
+gem_eio at in-flight-contexts-immediate
+gem_eio at in-flight-internal-immediate
+gem_eio at wait-1us
+gem_eio at wait-wedge-1us
+gem_eio at in-flight-1us
+gem_eio at in-flight-contexts-1us
+gem_eio at in-flight-internal-1us
+gem_eio at wait-10ms
+gem_eio at wait-wedge-10ms
+gem_eio at in-flight-10ms
+gem_eio at in-flight-contexts-10ms
+gem_eio at in-flight-internal-10ms
+gem_eio at kms
+kms_3d
+kms_addfb_basic at unused-handle
+kms_addfb_basic at unused-pitches
+kms_addfb_basic at unused-offsets
+kms_addfb_basic at unused-modifier
+kms_addfb_basic at clobberred-modifier
+kms_addfb_basic at invalid-smem-bo-on-discrete
+kms_addfb_basic at legacy-format
+kms_addfb_basic at no-handle
+kms_addfb_basic at basic
+kms_addfb_basic at bad-pitch-0
+kms_addfb_basic at bad-pitch-32
+kms_addfb_basic at bad-pitch-63
+kms_addfb_basic at bad-pitch-128
+kms_addfb_basic at bad-pitch-256
+kms_addfb_basic at bad-pitch-1024
+kms_addfb_basic at bad-pitch-999
+kms_addfb_basic at bad-pitch-65536
+kms_addfb_basic at invalid-get-prop-any
+kms_addfb_basic at invalid-get-prop
+kms_addfb_basic at invalid-set-prop-any
+kms_addfb_basic at invalid-set-prop
+kms_addfb_basic at master-rmfb
+kms_addfb_basic at addfb25-modifier-no-flag
+kms_addfb_basic at addfb25-bad-modifier
+kms_addfb_basic at addfb25-x-tiled-mismatch-legacy
+kms_addfb_basic at addfb25-x-tiled-legacy
+kms_addfb_basic at addfb25-framebuffer-vs-set-tiling
+kms_addfb_basic at basic-x-tiled-legacy
+kms_addfb_basic at framebuffer-vs-set-tiling
+kms_addfb_basic at tile-pitch-mismatch
+kms_addfb_basic at basic-y-tiled-legacy
+kms_addfb_basic at size-max
+kms_addfb_basic at too-wide
+kms_addfb_basic at too-high
+kms_addfb_basic at bo-too-small
+kms_addfb_basic at small-bo
+kms_addfb_basic at bo-too-small-due-to-tiling
+kms_addfb_basic at addfb25-y-tiled-legacy
+kms_addfb_basic at addfb25-yf-tiled-legacy
+kms_addfb_basic at addfb25-y-tiled-small-legacy
+kms_addfb_basic at addfb25-4-tiled
+kms_async_flips at async-flip-with-page-flip-events
+kms_async_flips at alternate-sync-async-flip
+kms_async_flips at test-time-stamp
+kms_async_flips at test-cursor
+kms_async_flips at invalid-async-flip
+kms_async_flips at crc
+kms_atomic at plane-overlay-legacy
+kms_atomic at plane-primary-legacy
+kms_atomic at plane-primary-overlay-mutable-zpos
+kms_atomic at plane-immutable-zpos
+kms_atomic at test-only
+kms_atomic at plane-cursor-legacy
+kms_atomic at plane-invalid-params
+kms_atomic at plane-invalid-params-fence
+kms_atomic at crtc-invalid-params
+kms_atomic at crtc-invalid-params-fence
+kms_atomic at atomic-invalid-params
+kms_atomic at atomic_plane_damage
+kms_atomic_interruptible at legacy-setmode
+kms_atomic_interruptible at atomic-setmode
+kms_atomic_interruptible at legacy-dpms
+kms_atomic_interruptible at legacy-pageflip
+kms_atomic_interruptible at legacy-cursor
+kms_atomic_interruptible at universal-setplane-primary
+kms_atomic_interruptible at universal-setplane-cursor
+kms_atomic_transition at plane-primary-toggle-with-vblank-wait
+kms_atomic_transition at plane-all-transition
+kms_atomic_transition at plane-all-transition-fencing
+kms_atomic_transition at plane-all-transition-nonblocking
+kms_atomic_transition at plane-all-transition-nonblocking-fencing
+kms_atomic_transition at plane-use-after-nonblocking-unbind
+kms_atomic_transition at plane-use-after-nonblocking-unbind-fencing
+kms_atomic_transition at plane-all-modeset-transition
+kms_atomic_transition at plane-all-modeset-transition-fencing
+kms_atomic_transition at plane-all-modeset-transition-internal-panels
+kms_atomic_transition at plane-all-modeset-transition-fencing-internal-panels
+kms_atomic_transition at plane-toggle-modeset-transition
+kms_atomic_transition at modeset-transition
+kms_atomic_transition at modeset-transition-fencing
+kms_atomic_transition at modeset-transition-nonblocking
+kms_atomic_transition at modeset-transition-nonblocking-fencing
+kms_big_fb at x-tiled-addfb-size-overflow
+kms_big_fb at y-tiled-addfb-size-overflow
+kms_big_fb at yf-tiled-addfb-size-overflow
+kms_big_fb at 4-tiled-addfb-size-overflow
+kms_big_fb at x-tiled-addfb-size-offset-overflow
+kms_big_fb at y-tiled-addfb-size-offset-overflow
+kms_big_fb at yf-tiled-addfb-size-offset-overflow
+kms_big_fb at 4-tiled-addfb-size-offset-overflow
+kms_big_fb at linear-addfb
+kms_big_fb at x-tiled-addfb
+kms_big_fb at y-tiled-addfb
+kms_big_fb at yf-tiled-addfb
+kms_big_fb at 4-tiled-addfb
+kms_big_fb at linear-8bpp-rotate-0
+kms_big_fb at linear-8bpp-rotate-90
+kms_big_fb at linear-8bpp-rotate-180
+kms_big_fb at linear-8bpp-rotate-270
+kms_big_fb at linear-16bpp-rotate-0
+kms_big_fb at linear-16bpp-rotate-90
+kms_big_fb at linear-16bpp-rotate-180
+kms_big_fb at linear-16bpp-rotate-270
+kms_big_fb at linear-32bpp-rotate-0
+kms_big_fb at linear-32bpp-rotate-90
+kms_big_fb at linear-32bpp-rotate-180
+kms_big_fb at linear-32bpp-rotate-270
+kms_big_fb at linear-64bpp-rotate-0
+kms_big_fb at linear-64bpp-rotate-90
+kms_big_fb at linear-64bpp-rotate-180
+kms_big_fb at linear-64bpp-rotate-270
+kms_big_fb at x-tiled-8bpp-rotate-0
+kms_big_fb at x-tiled-8bpp-rotate-90
+kms_big_fb at x-tiled-8bpp-rotate-180
+kms_big_fb at x-tiled-8bpp-rotate-270
+kms_big_fb at x-tiled-16bpp-rotate-0
+kms_big_fb at x-tiled-16bpp-rotate-90
+kms_big_fb at x-tiled-16bpp-rotate-180
+kms_big_fb at x-tiled-16bpp-rotate-270
+kms_big_fb at x-tiled-32bpp-rotate-0
+kms_big_fb at x-tiled-32bpp-rotate-90
+kms_big_fb at x-tiled-32bpp-rotate-180
+kms_big_fb at x-tiled-32bpp-rotate-270
+kms_big_fb at x-tiled-64bpp-rotate-0
+kms_big_fb at x-tiled-64bpp-rotate-90
+kms_big_fb at x-tiled-64bpp-rotate-180
+kms_big_fb at x-tiled-64bpp-rotate-270
+kms_big_fb at y-tiled-8bpp-rotate-0
+kms_big_fb at y-tiled-8bpp-rotate-90
+kms_big_fb at y-tiled-8bpp-rotate-180
+kms_big_fb at y-tiled-8bpp-rotate-270
+kms_big_fb at y-tiled-16bpp-rotate-0
+kms_big_fb at y-tiled-16bpp-rotate-90
+kms_big_fb at y-tiled-16bpp-rotate-180
+kms_big_fb at y-tiled-16bpp-rotate-270
+kms_big_fb at y-tiled-32bpp-rotate-0
+kms_big_fb at y-tiled-32bpp-rotate-90
+kms_big_fb at y-tiled-32bpp-rotate-180
+kms_big_fb at y-tiled-32bpp-rotate-270
+kms_big_fb at y-tiled-64bpp-rotate-0
+kms_big_fb at y-tiled-64bpp-rotate-90
+kms_big_fb at y-tiled-64bpp-rotate-180
+kms_big_fb at y-tiled-64bpp-rotate-270
+kms_big_fb at yf-tiled-8bpp-rotate-0
+kms_big_fb at yf-tiled-8bpp-rotate-90
+kms_big_fb at yf-tiled-8bpp-rotate-180
+kms_big_fb at yf-tiled-8bpp-rotate-270
+kms_big_fb at yf-tiled-16bpp-rotate-0
+kms_big_fb at yf-tiled-16bpp-rotate-90
+kms_big_fb at yf-tiled-16bpp-rotate-180
+kms_big_fb at yf-tiled-16bpp-rotate-270
+kms_big_fb at yf-tiled-32bpp-rotate-0
+kms_big_fb at yf-tiled-32bpp-rotate-90
+kms_big_fb at yf-tiled-32bpp-rotate-180
+kms_big_fb at yf-tiled-32bpp-rotate-270
+kms_big_fb at yf-tiled-64bpp-rotate-0
+kms_big_fb at yf-tiled-64bpp-rotate-90
+kms_big_fb at yf-tiled-64bpp-rotate-180
+kms_big_fb at yf-tiled-64bpp-rotate-270
+kms_big_fb at 4-tiled-8bpp-rotate-0
+kms_big_fb at 4-tiled-8bpp-rotate-90
+kms_big_fb at 4-tiled-8bpp-rotate-180
+kms_big_fb at 4-tiled-8bpp-rotate-270
+kms_big_fb at 4-tiled-16bpp-rotate-0
+kms_big_fb at 4-tiled-16bpp-rotate-90
+kms_big_fb at 4-tiled-16bpp-rotate-180
+kms_big_fb at 4-tiled-16bpp-rotate-270
+kms_big_fb at 4-tiled-32bpp-rotate-0
+kms_big_fb at 4-tiled-32bpp-rotate-90
+kms_big_fb at 4-tiled-32bpp-rotate-180
+kms_big_fb at 4-tiled-32bpp-rotate-270
+kms_big_fb at 4-tiled-64bpp-rotate-0
+kms_big_fb at 4-tiled-64bpp-rotate-90
+kms_big_fb at 4-tiled-64bpp-rotate-180
+kms_big_fb at 4-tiled-64bpp-rotate-270
+kms_big_fb at linear-max-hw-stride-32bpp-rotate-0
+kms_big_fb at linear-max-hw-stride-32bpp-rotate-180
+kms_big_fb at linear-max-hw-stride-64bpp-rotate-0
+kms_big_fb at linear-max-hw-stride-64bpp-rotate-180
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb at x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb at x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb at y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb at y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb at yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb at yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb at 4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb at 4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_joiner at basic
+kms_big_joiner at invalid-modeset
+kms_big_joiner at 2x-modeset
+kms_busy at basic
+kms_busy at basic-hang
+kms_busy at extended-pageflip-modeset-hang-oldfb
+kms_busy at extended-pageflip-hang-oldfb
+kms_busy at extended-pageflip-hang-newfb
+kms_busy at extended-modeset-hang-oldfb
+kms_busy at extended-modeset-hang-newfb
+kms_busy at extended-modeset-hang-oldfb-with-reset
+kms_busy at extended-modeset-hang-newfb-with-reset
+kms_bw at linear-tiling-1-displays-1920x1080p
+kms_bw at linear-tiling-1-displays-2560x1440p
+kms_bw at linear-tiling-1-displays-3840x2160p
+kms_bw at linear-tiling-2-displays-1920x1080p
+kms_bw at linear-tiling-2-displays-2560x1440p
+kms_bw at linear-tiling-2-displays-3840x2160p
+kms_bw at linear-tiling-3-displays-1920x1080p
+kms_bw at linear-tiling-3-displays-2560x1440p
+kms_bw at linear-tiling-3-displays-3840x2160p
+kms_bw at linear-tiling-4-displays-1920x1080p
+kms_bw at linear-tiling-4-displays-2560x1440p
+kms_bw at linear-tiling-4-displays-3840x2160p
+kms_bw at linear-tiling-5-displays-1920x1080p
+kms_bw at linear-tiling-5-displays-2560x1440p
+kms_bw at linear-tiling-5-displays-3840x2160p
+kms_bw at linear-tiling-6-displays-1920x1080p
+kms_bw at linear-tiling-6-displays-2560x1440p
+kms_bw at linear-tiling-6-displays-3840x2160p
+kms_bw at linear-tiling-7-displays-1920x1080p
+kms_bw at linear-tiling-7-displays-2560x1440p
+kms_bw at linear-tiling-7-displays-3840x2160p
+kms_bw at linear-tiling-8-displays-1920x1080p
+kms_bw at linear-tiling-8-displays-2560x1440p
+kms_bw at linear-tiling-8-displays-3840x2160p
+kms_ccs at pipe-A-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-A-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-A-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-A-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-A-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-A-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-A-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-A-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-A-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-A-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-B-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-B-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-B-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-B-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-B-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-B-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-B-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-B-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-B-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-B-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-B-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-B-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-B-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-C-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-C-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-C-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-C-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-C-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-C-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-C-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-C-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-C-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-C-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-C-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-C-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-C-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-D-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-D-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-D-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-D-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-D-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-D-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-D-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-D-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-D-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-D-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-D-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-D-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-D-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-E-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-E-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-E-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-E-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-E-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-E-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-E-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-E-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-E-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-E-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-E-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-E-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-E-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-F-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-F-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-F-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-F-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-F-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-F-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-F-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-F-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-F-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-F-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-F-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-F-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-F-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-G-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-G-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-G-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-G-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-G-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-G-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-G-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-G-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-G-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-G-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-G-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-G-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-G-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-bad-pixel-format-y_tiled_ccs
+kms_ccs at pipe-H-bad-pixel-format-yf_tiled_ccs
+kms_ccs at pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-H-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-bad-rotation-90-y_tiled_ccs
+kms_ccs at pipe-H-bad-rotation-90-yf_tiled_ccs
+kms_ccs at pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-H-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-crc-primary-basic-y_tiled_ccs
+kms_ccs at pipe-H-crc-primary-basic-yf_tiled_ccs
+kms_ccs at pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-H-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-random-ccs-data-y_tiled_ccs
+kms_ccs at pipe-H-random-ccs-data-yf_tiled_ccs
+kms_ccs at pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-H-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-missing-ccs-buffer-y_tiled_ccs
+kms_ccs at pipe-H-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs at pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-ccs-on-another-bo-y_tiled_ccs
+kms_ccs at pipe-H-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs at pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-bad-aux-stride-y_tiled_ccs
+kms_ccs at pipe-H-bad-aux-stride-yf_tiled_ccs
+kms_ccs at pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs at pipe-H-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs at pipe-H-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs at pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs at pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_cdclk at plane-scaling
+kms_cdclk at mode-transition
+kms_cdclk at mode-transition-all-outputs
+kms_color at degamma
+kms_color at gamma
+kms_color at legacy-gamma
+kms_color at legacy-gamma-reset
+kms_color at ctm-red-to-blue
+kms_color at ctm-green-to-red
+kms_color at ctm-blue-to-red
+kms_color at ctm-max
+kms_color at ctm-negative
+kms_color at ctm-0-25
+kms_color at ctm-0-50
+kms_color at ctm-0-75
+kms_color at ctm-signed
+kms_color at deep-color
+kms_color at invalid-gamma-lut-sizes
+kms_color at invalid-degamma-lut-sizes
+kms_color at invalid-ctm-matrix-sizes
+kms_concurrent at pipe-A
+kms_concurrent at pipe-B
+kms_concurrent at pipe-C
+kms_concurrent at pipe-D
+kms_concurrent at pipe-E
+kms_concurrent at pipe-F
+kms_concurrent at pipe-G
+kms_concurrent at pipe-H
+kms_content_protection at legacy
+kms_content_protection at atomic
+kms_content_protection at atomic-dpms
+kms_content_protection at LIC
+kms_content_protection at type1
+kms_content_protection at mei_interface
+kms_content_protection at content_type_change
+kms_content_protection at uevent
+kms_content_protection at srm
+kms_content_protection at dp-mst-type-0
+kms_content_protection at dp-mst-lic-type-0
+kms_content_protection at dp-mst-type-1
+kms_content_protection at dp-mst-lic-type-1
+kms_cursor_crc at cursor-size-change
+kms_cursor_crc at cursor-alpha-opaque
+kms_cursor_crc at cursor-alpha-transparent
+kms_cursor_crc at cursor-dpms
+kms_cursor_crc at cursor-suspend
+kms_cursor_crc at cursor-onscreen-32x32
+kms_cursor_crc at cursor-offscreen-32x32
+kms_cursor_crc at cursor-sliding-32x32
+kms_cursor_crc at cursor-random-32x32
+kms_cursor_crc at cursor-rapid-movement-32x32
+kms_cursor_crc at cursor-onscreen-32x10
+kms_cursor_crc at cursor-offscreen-32x10
+kms_cursor_crc at cursor-sliding-32x10
+kms_cursor_crc at cursor-random-32x10
+kms_cursor_crc at cursor-rapid-movement-32x10
+kms_cursor_crc at cursor-onscreen-64x64
+kms_cursor_crc at cursor-offscreen-64x64
+kms_cursor_crc at cursor-sliding-64x64
+kms_cursor_crc at cursor-random-64x64
+kms_cursor_crc at cursor-rapid-movement-64x64
+kms_cursor_crc at cursor-onscreen-64x21
+kms_cursor_crc at cursor-offscreen-64x21
+kms_cursor_crc at cursor-sliding-64x21
+kms_cursor_crc at cursor-random-64x21
+kms_cursor_crc at cursor-rapid-movement-64x21
+kms_cursor_crc at cursor-onscreen-128x128
+kms_cursor_crc at cursor-offscreen-128x128
+kms_cursor_crc at cursor-sliding-128x128
+kms_cursor_crc at cursor-random-128x128
+kms_cursor_crc at cursor-rapid-movement-128x128
+kms_cursor_crc at cursor-onscreen-128x42
+kms_cursor_crc at cursor-offscreen-128x42
+kms_cursor_crc at cursor-sliding-128x42
+kms_cursor_crc at cursor-random-128x42
+kms_cursor_crc at cursor-rapid-movement-128x42
+kms_cursor_crc at cursor-onscreen-256x256
+kms_cursor_crc at cursor-offscreen-256x256
+kms_cursor_crc at cursor-sliding-256x256
+kms_cursor_crc at cursor-random-256x256
+kms_cursor_crc at cursor-rapid-movement-256x256
+kms_cursor_crc at cursor-onscreen-256x85
+kms_cursor_crc at cursor-offscreen-256x85
+kms_cursor_crc at cursor-sliding-256x85
+kms_cursor_crc at cursor-random-256x85
+kms_cursor_crc at cursor-rapid-movement-256x85
+kms_cursor_crc at cursor-onscreen-512x512
+kms_cursor_crc at cursor-offscreen-512x512
+kms_cursor_crc at cursor-sliding-512x512
+kms_cursor_crc at cursor-random-512x512
+kms_cursor_crc at cursor-rapid-movement-512x512
+kms_cursor_crc at cursor-onscreen-512x170
+kms_cursor_crc at cursor-offscreen-512x170
+kms_cursor_crc at cursor-sliding-512x170
+kms_cursor_crc at cursor-random-512x170
+kms_cursor_crc at cursor-rapid-movement-512x170
+kms_cursor_crc at cursor-onscreen-max-size
+kms_cursor_crc at cursor-offscreen-max-size
+kms_cursor_crc at cursor-sliding-max-size
+kms_cursor_crc at cursor-random-max-size
+kms_cursor_crc at cursor-rapid-movement-max-size
+kms_cursor_legacy at single-bo
+kms_cursor_legacy at single-move
+kms_cursor_legacy at forked-bo
+kms_cursor_legacy at forked-move
+kms_cursor_legacy at torture-bo
+kms_cursor_legacy at torture-move
+kms_cursor_legacy at nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy at long-nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy at 2x-flip-vs-cursor-legacy
+kms_cursor_legacy at 2x-flip-vs-cursor-atomic
+kms_cursor_legacy at 2x-long-flip-vs-cursor-legacy
+kms_cursor_legacy at 2x-long-flip-vs-cursor-atomic
+kms_cursor_legacy at 2x-nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy at 2x-long-nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy at 2x-cursor-vs-flip-legacy
+kms_cursor_legacy at 2x-long-cursor-vs-flip-legacy
+kms_cursor_legacy at 2x-cursor-vs-flip-atomic
+kms_cursor_legacy at 2x-long-cursor-vs-flip-atomic
+kms_cursor_legacy at flip-vs-cursor-crc-legacy
+kms_cursor_legacy at flip-vs-cursor-crc-atomic
+kms_cursor_legacy at flip-vs-cursor-busy-crc-legacy
+kms_cursor_legacy at flip-vs-cursor-busy-crc-atomic
+kms_cursor_legacy at basic-flip-before-cursor-legacy
+kms_cursor_legacy at basic-busy-flip-before-cursor-legacy
+kms_cursor_legacy at basic-flip-after-cursor-legacy
+kms_cursor_legacy at basic-flip-before-cursor-varying-size
+kms_cursor_legacy at basic-busy-flip-before-cursor-varying-size
+kms_cursor_legacy at basic-flip-after-cursor-varying-size
+kms_cursor_legacy at short-flip-before-cursor-toggle
+kms_cursor_legacy at short-busy-flip-before-cursor-toggle
+kms_cursor_legacy at short-flip-after-cursor-toggle
+kms_cursor_legacy at basic-flip-before-cursor-atomic
+kms_cursor_legacy at basic-busy-flip-before-cursor-atomic
+kms_cursor_legacy at basic-flip-after-cursor-atomic
+kms_cursor_legacy at short-flip-before-cursor-atomic-transitions
+kms_cursor_legacy at short-busy-flip-before-cursor-atomic-transitions
+kms_cursor_legacy at short-flip-after-cursor-atomic-transitions
+kms_cursor_legacy at short-flip-before-cursor-atomic-transitions-varying-size
+kms_cursor_legacy at short-busy-flip-before-cursor-atomic-transitions-varying-size
+kms_cursor_legacy at short-flip-after-cursor-atomic-transitions-varying-size
+kms_cursor_legacy at cursor-vs-flip-legacy
+kms_cursor_legacy at flip-vs-cursor-legacy
+kms_cursor_legacy at cursorA-vs-flipA-legacy
+kms_cursor_legacy at cursorA-vs-flipB-legacy
+kms_cursor_legacy at cursorB-vs-flipA-legacy
+kms_cursor_legacy at cursorB-vs-flipB-legacy
+kms_cursor_legacy at cursor-vs-flip-varying-size
+kms_cursor_legacy at flip-vs-cursor-varying-size
+kms_cursor_legacy at cursorA-vs-flipA-varying-size
+kms_cursor_legacy at cursorA-vs-flipB-varying-size
+kms_cursor_legacy at cursorB-vs-flipA-varying-size
+kms_cursor_legacy at cursorB-vs-flipB-varying-size
+kms_cursor_legacy at cursor-vs-flip-toggle
+kms_cursor_legacy at flip-vs-cursor-toggle
+kms_cursor_legacy at cursorA-vs-flipA-toggle
+kms_cursor_legacy at cursorA-vs-flipB-toggle
+kms_cursor_legacy at cursorB-vs-flipA-toggle
+kms_cursor_legacy at cursorB-vs-flipB-toggle
+kms_cursor_legacy at cursor-vs-flip-atomic
+kms_cursor_legacy at flip-vs-cursor-atomic
+kms_cursor_legacy at cursorA-vs-flipA-atomic
+kms_cursor_legacy at cursorA-vs-flipB-atomic
+kms_cursor_legacy at cursorB-vs-flipA-atomic
+kms_cursor_legacy at cursorB-vs-flipB-atomic
+kms_cursor_legacy at cursor-vs-flip-atomic-transitions
+kms_cursor_legacy at flip-vs-cursor-atomic-transitions
+kms_cursor_legacy at cursorA-vs-flipA-atomic-transitions
+kms_cursor_legacy at cursorA-vs-flipB-atomic-transitions
+kms_cursor_legacy at cursorB-vs-flipA-atomic-transitions
+kms_cursor_legacy at cursorB-vs-flipB-atomic-transitions
+kms_cursor_legacy at cursor-vs-flip-atomic-transitions-varying-size
+kms_cursor_legacy at flip-vs-cursor-atomic-transitions-varying-size
+kms_cursor_legacy at cursorA-vs-flipA-atomic-transitions-varying-size
+kms_cursor_legacy at cursorA-vs-flipB-atomic-transitions-varying-size
+kms_cursor_legacy at cursorB-vs-flipA-atomic-transitions-varying-size
+kms_cursor_legacy at cursorB-vs-flipB-atomic-transitions-varying-size
+kms_dither at FB-8BPC-Vs-Panel-6BPC
+kms_dither at FB-8BPC-Vs-Panel-8BPC
+kms_dp_aux_dev
+kms_tiled_display at basic-test-pattern
+kms_tiled_display at basic-test-pattern-with-chamelium
+kms_draw_crc at draw-method-mmap-cpu
+kms_draw_crc at draw-method-mmap-gtt
+kms_draw_crc at draw-method-mmap-wc
+kms_draw_crc at draw-method-pwrite
+kms_draw_crc at draw-method-blt
+kms_draw_crc at draw-method-render
+kms_draw_crc at fill-fb
+kms_dsc at dsc-basic
+kms_dsc at dsc-with-formats
+kms_dsc at dsc-with-bpc
+kms_dsc at dsc-with-bpc-formats
+kms_dsc at dsc-with-output-formats
+kms_fbcon_fbt at fbc
+kms_fbcon_fbt at psr
+kms_fbcon_fbt at fbc-suspend
+kms_fbcon_fbt at psr-suspend
+kms_fence_pin_leak
+kms_flip at nonblocking-read
+kms_flip at wf_vblank-ts-check
+kms_flip at 2x-wf_vblank-ts-check
+kms_flip at blocking-wf_vblank
+kms_flip at 2x-blocking-wf_vblank
+kms_flip at absolute-wf_vblank
+kms_flip at 2x-absolute-wf_vblank
+kms_flip at blocking-absolute-wf_vblank
+kms_flip at 2x-blocking-absolute-wf_vblank
+kms_flip at basic-plain-flip
+kms_flip at 2x-plain-flip
+kms_flip at busy-flip
+kms_flip at 2x-busy-flip
+kms_flip at flip-vs-fences
+kms_flip at 2x-flip-vs-fences
+kms_flip at plain-flip-ts-check
+kms_flip at 2x-plain-flip-ts-check
+kms_flip at plain-flip-fb-recreate
+kms_flip at 2x-plain-flip-fb-recreate
+kms_flip at flip-vs-rmfb
+kms_flip at 2x-flip-vs-rmfb
+kms_flip at basic-flip-vs-dpms
+kms_flip at 2x-flip-vs-dpms
+kms_flip at flip-vs-panning
+kms_flip at 2x-flip-vs-panning
+kms_flip at basic-flip-vs-modeset
+kms_flip at 2x-flip-vs-modeset
+kms_flip at flip-vs-expired-vblank
+kms_flip at 2x-flip-vs-expired-vblank
+kms_flip at flip-vs-absolute-wf_vblank
+kms_flip at 2x-flip-vs-absolute-wf_vblank
+kms_flip at basic-flip-vs-wf_vblank
+kms_flip at 2x-flip-vs-wf_vblank
+kms_flip at flip-vs-blocking-wf-vblank
+kms_flip at 2x-flip-vs-blocking-wf-vblank
+kms_flip at flip-vs-modeset-vs-hang
+kms_flip at 2x-flip-vs-modeset-vs-hang
+kms_flip at flip-vs-panning-vs-hang
+kms_flip at 2x-flip-vs-panning-vs-hang
+kms_flip at flip-vs-dpms-off-vs-modeset
+kms_flip at 2x-flip-vs-dpms-off-vs-modeset
+kms_flip at single-buffer-flip-vs-dpms-off-vs-modeset
+kms_flip at 2x-single-buffer-flip-vs-dpms-off-vs-modeset
+kms_flip at dpms-off-confusion
+kms_flip at nonexisting-fb
+kms_flip at 2x-nonexisting-fb
+kms_flip at dpms-vs-vblank-race
+kms_flip at 2x-dpms-vs-vblank-race
+kms_flip at modeset-vs-vblank-race
+kms_flip at 2x-modeset-vs-vblank-race
+kms_flip at bo-too-big
+kms_flip at flip-vs-suspend
+kms_flip at 2x-flip-vs-suspend
+kms_flip at wf_vblank-ts-check-interruptible
+kms_flip at 2x-wf_vblank-ts-check-interruptible
+kms_flip at absolute-wf_vblank-interruptible
+kms_flip at 2x-absolute-wf_vblank-interruptible
+kms_flip at blocking-absolute-wf_vblank-interruptible
+kms_flip at 2x-blocking-absolute-wf_vblank-interruptible
+kms_flip at plain-flip-interruptible
+kms_flip at 2x-plain-flip-interruptible
+kms_flip at flip-vs-fences-interruptible
+kms_flip at 2x-flip-vs-fences-interruptible
+kms_flip at plain-flip-ts-check-interruptible
+kms_flip at 2x-plain-flip-ts-check-interruptible
+kms_flip at plain-flip-fb-recreate-interruptible
+kms_flip at 2x-plain-flip-fb-recreate-interruptible
+kms_flip at flip-vs-rmfb-interruptible
+kms_flip at 2x-flip-vs-rmfb-interruptible
+kms_flip at flip-vs-panning-interruptible
+kms_flip at 2x-flip-vs-panning-interruptible
+kms_flip at flip-vs-expired-vblank-interruptible
+kms_flip at 2x-flip-vs-expired-vblank-interruptible
+kms_flip at flip-vs-absolute-wf_vblank-interruptible
+kms_flip at 2x-flip-vs-absolute-wf_vblank-interruptible
+kms_flip at flip-vs-wf_vblank-interruptible
+kms_flip at 2x-flip-vs-wf_vblank-interruptible
+kms_flip at flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip at 2x-flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip at single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip at 2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip at dpms-off-confusion-interruptible
+kms_flip at nonexisting-fb-interruptible
+kms_flip at 2x-nonexisting-fb-interruptible
+kms_flip at dpms-vs-vblank-race-interruptible
+kms_flip at 2x-dpms-vs-vblank-race-interruptible
+kms_flip at modeset-vs-vblank-race-interruptible
+kms_flip at 2x-modeset-vs-vblank-race-interruptible
+kms_flip at bo-too-big-interruptible
+kms_flip at flip-vs-suspend-interruptible
+kms_flip at 2x-flip-vs-suspend-interruptible
+kms_flip_event_leak at basic
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-yftile-to-64bpp-yftile-downscaling
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling
+kms_flip_scaled_crc at flip-32bpp-4tile-to-64bpp-4tile-downscaling
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-yftile-to-32bpp-yftile-downscaling
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling
+kms_flip_scaled_crc at flip-64bpp-4tile-to-32bpp-4tile-downscaling
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-yftile-to-16bpp-yftile-downscaling
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling
+kms_flip_scaled_crc at flip-64bpp-4tile-to-16bpp-4tile-downscaling
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-yftileccs-to-64bpp-yftile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling
+kms_flip_scaled_crc at flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-32bpp-ytileccs-downscaling
+kms_flip_scaled_crc at flip-32bpp-yftile-to-32bpp-yftileccs-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc at flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-32bpp-yftile-to-64bpp-yftile-upscaling
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling
+kms_flip_scaled_crc at flip-32bpp-4tile-to-64bpp-4tile-upscaling
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-yftile-to-32bpp-yftile-upscaling
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling
+kms_flip_scaled_crc at flip-64bpp-4tile-to-32bpp-4tile-upscaling
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-yftile-to-16bpp-yftile-upscaling
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling
+kms_flip_scaled_crc at flip-64bpp-4tile-to-16bpp-4tile-upscaling
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-32bpp-yftileccs-to-64bpp-yftile-upscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
+kms_flip_scaled_crc at flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-32bpp-ytileccs-upscaling
+kms_flip_scaled_crc at flip-32bpp-yftile-to-32bpp-yftileccs-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
+kms_flip_scaled_crc at flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
+kms_force_connector_basic at force-load-detect
+kms_force_connector_basic at force-connector-state
+kms_force_connector_basic at force-edid
+kms_force_connector_basic at prune-stale-modes
+kms_frontbuffer_tracking at fbc-1p-rte
+kms_frontbuffer_tracking at fbc-2p-rte
+kms_frontbuffer_tracking at psr-1p-rte
+kms_frontbuffer_tracking at psr-2p-rte
+kms_frontbuffer_tracking at fbcpsr-1p-rte
+kms_frontbuffer_tracking at fbcpsr-2p-rte
+kms_frontbuffer_tracking at drrs-1p-rte
+kms_frontbuffer_tracking at drrs-2p-rte
+kms_frontbuffer_tracking at fbcdrrs-1p-rte
+kms_frontbuffer_tracking at fbcdrrs-2p-rte
+kms_frontbuffer_tracking at psrdrrs-1p-rte
+kms_frontbuffer_tracking at psrdrrs-2p-rte
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-rte
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-rte
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbc-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at psr-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psr-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking at psr-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psr-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psr-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at drrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking at fbc-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbc-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbc-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbc-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at psr-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at psr-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at psr-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at drrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at drrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at drrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking at fbc-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbc-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbc-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbc-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbc-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at psr-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at psr-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking at psr-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at drrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at drrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking at drrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking at fbc-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbc-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbc-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at psr-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at psr-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at psr-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcpsr-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcpsr-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcpsr-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at drrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at drrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at drrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcdrrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcdrrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcdrrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at psrdrrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at psrdrrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at psrdrrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking at fbc-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbc-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking at psr-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking at psr-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbcpsr-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbcpsr-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking at drrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking at drrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbcdrrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbcdrrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking at psrdrrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking at psrdrrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbcpsrdrrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbcpsrdrrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking at fbc-farfromfence-mmap-gtt
+kms_frontbuffer_tracking at psr-farfromfence-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-farfromfence-mmap-gtt
+kms_frontbuffer_tracking at drrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking at fbc-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking at fbc-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking at fbc-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking at fbc-rgb565-draw-pwrite
+kms_frontbuffer_tracking at fbc-rgb101010-draw-pwrite
+kms_frontbuffer_tracking at fbc-rgb565-draw-blt
+kms_frontbuffer_tracking at fbc-rgb101010-draw-blt
+kms_frontbuffer_tracking at fbc-rgb565-draw-render
+kms_frontbuffer_tracking at fbc-rgb101010-draw-render
+kms_frontbuffer_tracking at psr-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking at psr-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking at psr-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking at psr-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking at psr-rgb565-draw-pwrite
+kms_frontbuffer_tracking at psr-rgb101010-draw-pwrite
+kms_frontbuffer_tracking at psr-rgb565-draw-blt
+kms_frontbuffer_tracking at psr-rgb101010-draw-blt
+kms_frontbuffer_tracking at psr-rgb565-draw-render
+kms_frontbuffer_tracking at psr-rgb101010-draw-render
+kms_frontbuffer_tracking at fbcpsr-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsr-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsr-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsr-rgb565-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-rgb101010-draw-pwrite
+kms_frontbuffer_tracking at fbcpsr-rgb565-draw-blt
+kms_frontbuffer_tracking at fbcpsr-rgb101010-draw-blt
+kms_frontbuffer_tracking at fbcpsr-rgb565-draw-render
+kms_frontbuffer_tracking at fbcpsr-rgb101010-draw-render
+kms_frontbuffer_tracking at drrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking at drrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking at drrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking at drrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking at drrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking at drrs-rgb565-draw-blt
+kms_frontbuffer_tracking at drrs-rgb101010-draw-blt
+kms_frontbuffer_tracking at drrs-rgb565-draw-render
+kms_frontbuffer_tracking at drrs-rgb101010-draw-render
+kms_frontbuffer_tracking at fbcdrrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcdrrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcdrrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking at fbcdrrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking at fbcdrrs-rgb565-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-rgb101010-draw-blt
+kms_frontbuffer_tracking at fbcdrrs-rgb565-draw-render
+kms_frontbuffer_tracking at fbcdrrs-rgb101010-draw-render
+kms_frontbuffer_tracking at psrdrrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking at psrdrrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking at psrdrrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking at psrdrrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking at psrdrrs-rgb565-draw-blt
+kms_frontbuffer_tracking at psrdrrs-rgb101010-draw-blt
+kms_frontbuffer_tracking at psrdrrs-rgb565-draw-render
+kms_frontbuffer_tracking at psrdrrs-rgb101010-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb565-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb101010-draw-blt
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb565-draw-render
+kms_frontbuffer_tracking at fbcpsrdrrs-rgb101010-draw-render
+kms_frontbuffer_tracking at fbc-indfb-scaledprimary
+kms_frontbuffer_tracking at fbc-shrfb-scaledprimary
+kms_frontbuffer_tracking at psr-indfb-scaledprimary
+kms_frontbuffer_tracking at psr-shrfb-scaledprimary
+kms_frontbuffer_tracking at fbcpsr-indfb-scaledprimary
+kms_frontbuffer_tracking at fbcpsr-shrfb-scaledprimary
+kms_frontbuffer_tracking at drrs-indfb-scaledprimary
+kms_frontbuffer_tracking at drrs-shrfb-scaledprimary
+kms_frontbuffer_tracking at fbcdrrs-indfb-scaledprimary
+kms_frontbuffer_tracking at fbcdrrs-shrfb-scaledprimary
+kms_frontbuffer_tracking at psrdrrs-indfb-scaledprimary
+kms_frontbuffer_tracking at psrdrrs-shrfb-scaledprimary
+kms_frontbuffer_tracking at fbcpsrdrrs-indfb-scaledprimary
+kms_frontbuffer_tracking at fbcpsrdrrs-shrfb-scaledprimary
+kms_frontbuffer_tracking at fbc-modesetfrombusy
+kms_frontbuffer_tracking at fbc-badstride
+kms_frontbuffer_tracking at fbc-stridechange
+kms_frontbuffer_tracking at fbc-tiling-linear
+kms_frontbuffer_tracking at fbc-tiling-y
+kms_frontbuffer_tracking at fbc-tiling-4
+kms_frontbuffer_tracking at fbc-suspend
+kms_frontbuffer_tracking at psr-modesetfrombusy
+kms_frontbuffer_tracking at psr-slowdraw
+kms_frontbuffer_tracking at psr-suspend
+kms_frontbuffer_tracking at fbcpsr-modesetfrombusy
+kms_frontbuffer_tracking at fbcpsr-badstride
+kms_frontbuffer_tracking at fbcpsr-stridechange
+kms_frontbuffer_tracking at fbcpsr-tiling-linear
+kms_frontbuffer_tracking at fbcpsr-tiling-y
+kms_frontbuffer_tracking at fbcpsr-tiling-4
+kms_frontbuffer_tracking at fbcpsr-slowdraw
+kms_frontbuffer_tracking at fbcpsr-suspend
+kms_frontbuffer_tracking at drrs-modesetfrombusy
+kms_frontbuffer_tracking at drrs-slowdraw
+kms_frontbuffer_tracking at drrs-suspend
+kms_frontbuffer_tracking at fbcdrrs-modesetfrombusy
+kms_frontbuffer_tracking at fbcdrrs-badstride
+kms_frontbuffer_tracking at fbcdrrs-stridechange
+kms_frontbuffer_tracking at fbcdrrs-tiling-linear
+kms_frontbuffer_tracking at fbcdrrs-tiling-y
+kms_frontbuffer_tracking at fbcdrrs-tiling-4
+kms_frontbuffer_tracking at fbcdrrs-slowdraw
+kms_frontbuffer_tracking at fbcdrrs-suspend
+kms_frontbuffer_tracking at psrdrrs-modesetfrombusy
+kms_frontbuffer_tracking at psrdrrs-slowdraw
+kms_frontbuffer_tracking at psrdrrs-suspend
+kms_frontbuffer_tracking at fbcpsrdrrs-modesetfrombusy
+kms_frontbuffer_tracking at fbcpsrdrrs-badstride
+kms_frontbuffer_tracking at fbcpsrdrrs-stridechange
+kms_frontbuffer_tracking at fbcpsrdrrs-tiling-linear
+kms_frontbuffer_tracking at fbcpsrdrrs-tiling-y
+kms_frontbuffer_tracking at fbcpsrdrrs-tiling-4
+kms_frontbuffer_tracking at fbcpsrdrrs-slowdraw
+kms_frontbuffer_tracking at fbcpsrdrrs-suspend
+kms_frontbuffer_tracking at basic
+kms_getfb at getfb-handle-zero
+kms_getfb at getfb-handle-valid
+kms_getfb at getfb-handle-closed
+kms_getfb at getfb-handle-not-fb
+kms_getfb at getfb-addfb-different-handles
+kms_getfb at getfb-repeated-different-handles
+kms_getfb at getfb-reject-ccs
+kms_getfb at getfb2-handle-zero
+kms_getfb at getfb2-handle-closed
+kms_getfb at getfb2-handle-not-fb
+kms_getfb at getfb2-accept-ccs
+kms_getfb at getfb2-into-addfb2
+kms_getfb at getfb-handle-protection
+kms_getfb at getfb2-handle-protection
+kms_hdmi_inject at inject-4k
+kms_hdmi_inject at inject-audio
+kms_hdr at bpc-switch
+kms_hdr at bpc-switch-dpms
+kms_hdr at bpc-switch-suspend
+kms_hdr at static-toggle
+kms_hdr at static-toggle-dpms
+kms_hdr at static-toggle-suspend
+kms_hdr at static-swap
+kms_hdr at invalid-metadata-sizes
+kms_hdr at invalid-hdr
+kms_invalid_mode at clock-too-high
+kms_invalid_mode at zero-clock
+kms_invalid_mode at int-max-clock
+kms_invalid_mode at uint-max-clock
+kms_invalid_mode at zero-hdisplay
+kms_invalid_mode at zero-vdisplay
+kms_invalid_mode at bad-hsync-start
+kms_invalid_mode at bad-vsync-start
+kms_invalid_mode at bad-hsync-end
+kms_invalid_mode at bad-vsync-end
+kms_invalid_mode at bad-htotal
+kms_invalid_mode at bad-vtotal
+kms_legacy_colorkey at basic
+kms_legacy_colorkey at invalid-plane
+kms_multipipe_modeset at basic-max-pipe-crc-check
+kms_panel_fitting at legacy
+kms_panel_fitting at atomic-fastset
+kms_pipe_b_c_ivb at pipe-B-dpms-off-modeset-pipe-C
+kms_pipe_b_c_ivb at pipe-B-double-modeset-then-modeset-pipe-C
+kms_pipe_b_c_ivb at disable-pipe-B-enable-pipe-C
+kms_pipe_b_c_ivb at from-pipe-C-to-B-with-3-lanes
+kms_pipe_b_c_ivb at enable-pipe-C-while-B-has-3-lanes
+kms_pipe_crc_basic at bad-source
+kms_pipe_crc_basic at read-crc
+kms_pipe_crc_basic at read-crc-frame-sequence
+kms_pipe_crc_basic at nonblocking-crc
+kms_pipe_crc_basic at nonblocking-crc-frame-sequence
+kms_pipe_crc_basic at suspend-read-crc
+kms_pipe_crc_basic at hang-read-crc
+kms_pipe_crc_basic at disable-crc-after-crtc
+kms_pipe_crc_basic at compare-crc-sanitycheck-xr24
+kms_pipe_crc_basic at compare-crc-sanitycheck-nv12
+kms_plane at pixel-format
+kms_plane at pixel-format-source-clamping
+kms_plane at plane-position-covered
+kms_plane at plane-position-hole
+kms_plane at plane-position-hole-dpms
+kms_plane at plane-panning-top-left
+kms_plane at plane-panning-bottom-right
+kms_plane at plane-panning-bottom-right-suspend
+kms_plane at invalid-pixel-format-settings
+kms_plane_alpha_blend at alpha-basic
+kms_plane_alpha_blend at alpha-7efc
+kms_plane_alpha_blend at coverage-7efc
+kms_plane_alpha_blend at coverage-vs-premult-vs-constant
+kms_plane_alpha_blend at alpha-transparent-fb
+kms_plane_alpha_blend at alpha-opaque-fb
+kms_plane_alpha_blend at constant-alpha-min
+kms_plane_alpha_blend at constant-alpha-mid
+kms_plane_alpha_blend at constant-alpha-max
+kms_plane_cursor at primary
+kms_plane_cursor at overlay
+kms_plane_cursor at viewport
+kms_plane_lowres at tiling-none
+kms_plane_lowres at tiling-x
+kms_plane_lowres at tiling-y
+kms_plane_lowres at tiling-yf
+kms_plane_lowres at tiling-4
+kms_plane_multiple at tiling-none
+kms_plane_multiple at tiling-x
+kms_plane_multiple at tiling-y
+kms_plane_multiple at tiling-yf
+kms_plane_multiple at tiling-4
+kms_plane_scaling at plane-upscale-with-pixel-format-20x20
+kms_plane_scaling at plane-upscale-with-pixel-format-factor-0-25
+kms_plane_scaling at plane-downscale-with-pixel-format-factor-0-25
+kms_plane_scaling at plane-downscale-with-pixel-format-factor-0-5
+kms_plane_scaling at plane-downscale-with-pixel-format-factor-0-75
+kms_plane_scaling at plane-scaler-with-pixel-format-unity-scaling
+kms_plane_scaling at plane-upscale-with-rotation-20x20
+kms_plane_scaling at plane-upscale-with-rotation-factor-0-25
+kms_plane_scaling at plane-downscale-with-rotation-factor-0-25
+kms_plane_scaling at plane-downscale-with-rotation-factor-0-5
+kms_plane_scaling at plane-downscale-with-rotation-factor-0-75
+kms_plane_scaling at plane-scaler-with-rotation-unity-scaling
+kms_plane_scaling at plane-upscale-with-modifiers-20x20
+kms_plane_scaling at plane-upscale-with-modifiers-factor-0-25
+kms_plane_scaling at plane-downscale-with-modifiers-factor-0-25
+kms_plane_scaling at plane-downscale-with-modifiers-factor-0-5
+kms_plane_scaling at plane-downscale-with-modifiers-factor-0-75
+kms_plane_scaling at plane-scaler-with-modifiers-unity-scaling
+kms_plane_scaling at plane-scaler-with-clipping-clamping-pixel-formats
+kms_plane_scaling at plane-scaler-with-clipping-clamping-rotation
+kms_plane_scaling at plane-scaler-with-clipping-clamping-modifiers
+kms_plane_scaling at planes-upscale-20x20
+kms_plane_scaling at planes-upscale-factor-0-25
+kms_plane_scaling at planes-scaler-unity-scaling
+kms_plane_scaling at planes-downscale-factor-0-25
+kms_plane_scaling at planes-downscale-factor-0-5
+kms_plane_scaling at planes-downscale-factor-0-75
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-25
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-5
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-75
+kms_plane_scaling at planes-upscale-factor-0-25-downscale-factor-0-25
+kms_plane_scaling at planes-upscale-factor-0-25-downscale-factor-0-5
+kms_plane_scaling at planes-upscale-factor-0-25-downscale-factor-0-75
+kms_plane_scaling at planes-unity-scaling-downscale-factor-0-25
+kms_plane_scaling at planes-unity-scaling-downscale-factor-0-5
+kms_plane_scaling at planes-unity-scaling-downscale-factor-0-75
+kms_plane_scaling at planes-downscale-factor-0-25-upscale-20x20
+kms_plane_scaling at planes-downscale-factor-0-25-upscale-factor-0-25
+kms_plane_scaling at planes-downscale-factor-0-25-unity-scaling
+kms_plane_scaling at planes-downscale-factor-0-5-upscale-20x20
+kms_plane_scaling at planes-downscale-factor-0-5-upscale-factor-0-25
+kms_plane_scaling at planes-downscale-factor-0-5-unity-scaling
+kms_plane_scaling at planes-downscale-factor-0-75-upscale-20x20
+kms_plane_scaling at planes-downscale-factor-0-75-upscale-factor-0-25
+kms_plane_scaling at planes-downscale-factor-0-75-unity-scaling
+kms_plane_scaling at intel-max-src-size
+kms_plane_scaling at invalid-num-scalers
+kms_plane_scaling at invalid-parameters
+kms_plane_scaling at 2x-scaler-multi-pipe
+kms_prime at basic-crc-hybrid
+kms_prime at basic-modeset-hybrid
+kms_prime at D3hot
+kms_prime at basic-crc-vgem
+kms_prop_blob at basic
+kms_prop_blob at blob-prop-core
+kms_prop_blob at blob-prop-validate
+kms_prop_blob at blob-prop-lifetime
+kms_prop_blob at blob-multiple
+kms_prop_blob at invalid-get-prop-any
+kms_prop_blob at invalid-get-prop
+kms_prop_blob at invalid-set-prop-any
+kms_prop_blob at invalid-set-prop
+kms_properties at plane-properties-legacy
+kms_properties at plane-properties-atomic
+kms_properties at crtc-properties-legacy
+kms_properties at crtc-properties-atomic
+kms_properties at connector-properties-legacy
+kms_properties at connector-properties-atomic
+kms_properties at invalid-properties-legacy
+kms_properties at invalid-properties-atomic
+kms_properties at get_properties-sanity-atomic
+kms_properties at get_properties-sanity-non-atomic
+kms_psr at basic
+kms_psr at no_drrs
+kms_psr at primary_page_flip
+kms_psr at primary_mmap_gtt
+kms_psr at primary_mmap_cpu
+kms_psr at primary_blt
+kms_psr at primary_render
+kms_psr at sprite_mmap_gtt
+kms_psr at cursor_mmap_gtt
+kms_psr at sprite_mmap_cpu
+kms_psr at cursor_mmap_cpu
+kms_psr at sprite_blt
+kms_psr at cursor_blt
+kms_psr at sprite_render
+kms_psr at cursor_render
+kms_psr at sprite_plane_move
+kms_psr at cursor_plane_move
+kms_psr at sprite_plane_onoff
+kms_psr at cursor_plane_onoff
+kms_psr at dpms
+kms_psr at suspend
+kms_psr at psr2_basic
+kms_psr at psr2_no_drrs
+kms_psr at psr2_primary_page_flip
+kms_psr at psr2_primary_mmap_gtt
+kms_psr at psr2_primary_mmap_cpu
+kms_psr at psr2_primary_blt
+kms_psr at psr2_primary_render
+kms_psr at psr2_sprite_mmap_gtt
+kms_psr at psr2_cursor_mmap_gtt
+kms_psr at psr2_sprite_mmap_cpu
+kms_psr at psr2_cursor_mmap_cpu
+kms_psr at psr2_sprite_blt
+kms_psr at psr2_cursor_blt
+kms_psr at psr2_sprite_render
+kms_psr at psr2_cursor_render
+kms_psr at psr2_sprite_plane_move
+kms_psr at psr2_cursor_plane_move
+kms_psr at psr2_sprite_plane_onoff
+kms_psr at psr2_cursor_plane_onoff
+kms_psr at psr2_dpms
+kms_psr at psr2_suspend
+kms_psr2_sf at primary-plane-update-sf-dmg-area
+kms_psr2_sf at primary-plane-update-sf-dmg-area-big-fb
+kms_psr2_sf at overlay-plane-update-sf-dmg-area
+kms_psr2_sf at cursor-plane-update-sf
+kms_psr2_sf at cursor-plane-move-continuous-sf
+kms_psr2_sf at cursor-plane-move-continuous-exceed-sf
+kms_psr2_sf at cursor-plane-move-continuous-exceed-fully-sf
+kms_psr2_sf at plane-move-sf-dmg-area
+kms_psr2_sf at overlay-plane-move-continuous-sf
+kms_psr2_sf at overlay-plane-move-continuous-exceed-sf
+kms_psr2_sf at overlay-plane-move-continuous-exceed-fully-sf
+kms_psr2_sf at overlay-primary-update-sf-dmg-area
+kms_psr2_sf at overlay-plane-update-continuous-sf
+kms_psr2_su at page_flip-XRGB8888
+kms_psr2_su at page_flip-NV12
+kms_psr2_su at page_flip-P010
+kms_psr2_su at frontbuffer-XRGB8888
+kms_pwrite_crc
+kms_rmfb at rmfb-ioctl
+kms_rmfb at close-fd
+kms_rotation_crc at primary-rotation-90
+kms_rotation_crc at primary-rotation-180
+kms_rotation_crc at primary-rotation-270
+kms_rotation_crc at sprite-rotation-90
+kms_rotation_crc at sprite-rotation-180
+kms_rotation_crc at sprite-rotation-270
+kms_rotation_crc at cursor-rotation-180
+kms_rotation_crc at sprite-rotation-90-pos-100-0
+kms_rotation_crc at bad-pixel-format
+kms_rotation_crc at bad-tiling
+kms_rotation_crc at primary-x-tiled-reflect-x-0
+kms_rotation_crc at primary-x-tiled-reflect-x-180
+kms_rotation_crc at primary-y-tiled-reflect-x-0
+kms_rotation_crc at primary-y-tiled-reflect-x-90
+kms_rotation_crc at primary-y-tiled-reflect-x-180
+kms_rotation_crc at primary-y-tiled-reflect-x-270
+kms_rotation_crc at primary-yf-tiled-reflect-x-0
+kms_rotation_crc at primary-yf-tiled-reflect-x-90
+kms_rotation_crc at primary-yf-tiled-reflect-x-180
+kms_rotation_crc at primary-yf-tiled-reflect-x-270
+kms_rotation_crc at primary-4-tiled-reflect-x-0
+kms_rotation_crc at primary-4-tiled-reflect-x-180
+kms_rotation_crc at multiplane-rotation
+kms_rotation_crc at multiplane-rotation-cropping-top
+kms_rotation_crc at multiplane-rotation-cropping-bottom
+kms_rotation_crc at exhaust-fences
+kms_scaling_modes at scaling-mode-full
+kms_scaling_modes at scaling-mode-center
+kms_scaling_modes at scaling-mode-full-aspect
+kms_scaling_modes at scaling-mode-none
+kms_selftest at drm_cmdline
+kms_selftest at drm_damage
+kms_selftest at drm_dp_mst
+kms_selftest at drm_format_helper
+kms_selftest at drm_format
+kms_selftest at framebuffer
+kms_selftest at drm_plane
+kms_setmode at basic
+kms_setmode at basic-clone-single-crtc
+kms_setmode at invalid-clone-single-crtc
+kms_setmode at invalid-clone-exclusive-crtc
+kms_setmode at clone-exclusive-crtc
+kms_setmode at invalid-clone-single-crtc-stealing
+kms_sysfs_edid_timing
+kms_tv_load_detect at load-detect
+kms_universal_plane at universal-plane-pipe-A-functional
+kms_universal_plane at universal-plane-pipe-A-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-A
+kms_universal_plane at cursor-fb-leak-pipe-A
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-A
+kms_universal_plane at universal-plane-pipe-B-functional
+kms_universal_plane at universal-plane-pipe-B-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-B
+kms_universal_plane at cursor-fb-leak-pipe-B
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-B
+kms_universal_plane at universal-plane-pipe-C-functional
+kms_universal_plane at universal-plane-pipe-C-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-C
+kms_universal_plane at cursor-fb-leak-pipe-C
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-C
+kms_universal_plane at universal-plane-pipe-D-functional
+kms_universal_plane at universal-plane-pipe-D-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-D
+kms_universal_plane at cursor-fb-leak-pipe-D
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-D
+kms_universal_plane at universal-plane-pipe-E-functional
+kms_universal_plane at universal-plane-pipe-E-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-E
+kms_universal_plane at cursor-fb-leak-pipe-E
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-E
+kms_universal_plane at universal-plane-pipe-F-functional
+kms_universal_plane at universal-plane-pipe-F-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-F
+kms_universal_plane at cursor-fb-leak-pipe-F
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-F
+kms_universal_plane at universal-plane-pipe-G-functional
+kms_universal_plane at universal-plane-pipe-G-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-G
+kms_universal_plane at cursor-fb-leak-pipe-G
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-G
+kms_universal_plane at universal-plane-pipe-H-functional
+kms_universal_plane at universal-plane-pipe-H-sanity
+kms_universal_plane at disable-primary-vs-flip-pipe-H
+kms_universal_plane at cursor-fb-leak-pipe-H
+kms_universal_plane at universal-plane-pageflip-windowed-pipe-H
+kms_vblank at invalid
+kms_vblank at crtc-id
+kms_vblank at pipe-A-accuracy-idle
+kms_vblank at pipe-A-query-idle
+kms_vblank at pipe-A-query-idle-hang
+kms_vblank at pipe-A-query-forked
+kms_vblank at pipe-A-query-forked-hang
+kms_vblank at pipe-A-query-busy
+kms_vblank at pipe-A-query-busy-hang
+kms_vblank at pipe-A-query-forked-busy
+kms_vblank at pipe-A-query-forked-busy-hang
+kms_vblank at pipe-A-wait-idle
+kms_vblank at pipe-A-wait-idle-hang
+kms_vblank at pipe-A-wait-forked
+kms_vblank at pipe-A-wait-forked-hang
+kms_vblank at pipe-A-wait-busy
+kms_vblank at pipe-A-wait-busy-hang
+kms_vblank at pipe-A-wait-forked-busy
+kms_vblank at pipe-A-wait-forked-busy-hang
+kms_vblank at pipe-A-ts-continuation-idle
+kms_vblank at pipe-A-ts-continuation-idle-hang
+kms_vblank at pipe-A-ts-continuation-dpms-rpm
+kms_vblank at pipe-A-ts-continuation-dpms-suspend
+kms_vblank at pipe-A-ts-continuation-suspend
+kms_vblank at pipe-A-ts-continuation-modeset
+kms_vblank at pipe-A-ts-continuation-modeset-hang
+kms_vblank at pipe-A-ts-continuation-modeset-rpm
+kms_vblank at pipe-B-accuracy-idle
+kms_vblank at pipe-B-query-idle
+kms_vblank at pipe-B-query-idle-hang
+kms_vblank at pipe-B-query-forked
+kms_vblank at pipe-B-query-forked-hang
+kms_vblank at pipe-B-query-busy
+kms_vblank at pipe-B-query-busy-hang
+kms_vblank at pipe-B-query-forked-busy
+kms_vblank at pipe-B-query-forked-busy-hang
+kms_vblank at pipe-B-wait-idle
+kms_vblank at pipe-B-wait-idle-hang
+kms_vblank at pipe-B-wait-forked
+kms_vblank at pipe-B-wait-forked-hang
+kms_vblank at pipe-B-wait-busy
+kms_vblank at pipe-B-wait-busy-hang
+kms_vblank at pipe-B-wait-forked-busy
+kms_vblank at pipe-B-wait-forked-busy-hang
+kms_vblank at pipe-B-ts-continuation-idle
+kms_vblank at pipe-B-ts-continuation-idle-hang
+kms_vblank at pipe-B-ts-continuation-dpms-rpm
+kms_vblank at pipe-B-ts-continuation-dpms-suspend
+kms_vblank at pipe-B-ts-continuation-suspend
+kms_vblank at pipe-B-ts-continuation-modeset
+kms_vblank at pipe-B-ts-continuation-modeset-hang
+kms_vblank at pipe-B-ts-continuation-modeset-rpm
+kms_vblank at pipe-C-accuracy-idle
+kms_vblank at pipe-C-query-idle
+kms_vblank at pipe-C-query-idle-hang
+kms_vblank at pipe-C-query-forked
+kms_vblank at pipe-C-query-forked-hang
+kms_vblank at pipe-C-query-busy
+kms_vblank at pipe-C-query-busy-hang
+kms_vblank at pipe-C-query-forked-busy
+kms_vblank at pipe-C-query-forked-busy-hang
+kms_vblank at pipe-C-wait-idle
+kms_vblank at pipe-C-wait-idle-hang
+kms_vblank at pipe-C-wait-forked
+kms_vblank at pipe-C-wait-forked-hang
+kms_vblank at pipe-C-wait-busy
+kms_vblank at pipe-C-wait-busy-hang
+kms_vblank at pipe-C-wait-forked-busy
+kms_vblank at pipe-C-wait-forked-busy-hang
+kms_vblank at pipe-C-ts-continuation-idle
+kms_vblank at pipe-C-ts-continuation-idle-hang
+kms_vblank at pipe-C-ts-continuation-dpms-rpm
+kms_vblank at pipe-C-ts-continuation-dpms-suspend
+kms_vblank at pipe-C-ts-continuation-suspend
+kms_vblank at pipe-C-ts-continuation-modeset
+kms_vblank at pipe-C-ts-continuation-modeset-hang
+kms_vblank at pipe-C-ts-continuation-modeset-rpm
+kms_vblank at pipe-D-accuracy-idle
+kms_vblank at pipe-D-query-idle
+kms_vblank at pipe-D-query-idle-hang
+kms_vblank at pipe-D-query-forked
+kms_vblank at pipe-D-query-forked-hang
+kms_vblank at pipe-D-query-busy
+kms_vblank at pipe-D-query-busy-hang
+kms_vblank at pipe-D-query-forked-busy
+kms_vblank at pipe-D-query-forked-busy-hang
+kms_vblank at pipe-D-wait-idle
+kms_vblank at pipe-D-wait-idle-hang
+kms_vblank at pipe-D-wait-forked
+kms_vblank at pipe-D-wait-forked-hang
+kms_vblank at pipe-D-wait-busy
+kms_vblank at pipe-D-wait-busy-hang
+kms_vblank at pipe-D-wait-forked-busy
+kms_vblank at pipe-D-wait-forked-busy-hang
+kms_vblank at pipe-D-ts-continuation-idle
+kms_vblank at pipe-D-ts-continuation-idle-hang
+kms_vblank at pipe-D-ts-continuation-dpms-rpm
+kms_vblank at pipe-D-ts-continuation-dpms-suspend
+kms_vblank at pipe-D-ts-continuation-suspend
+kms_vblank at pipe-D-ts-continuation-modeset
+kms_vblank at pipe-D-ts-continuation-modeset-hang
+kms_vblank at pipe-D-ts-continuation-modeset-rpm
+kms_vblank at pipe-E-accuracy-idle
+kms_vblank at pipe-E-query-idle
+kms_vblank at pipe-E-query-idle-hang
+kms_vblank at pipe-E-query-forked
+kms_vblank at pipe-E-query-forked-hang
+kms_vblank at pipe-E-query-busy
+kms_vblank at pipe-E-query-busy-hang
+kms_vblank at pipe-E-query-forked-busy
+kms_vblank at pipe-E-query-forked-busy-hang
+kms_vblank at pipe-E-wait-idle
+kms_vblank at pipe-E-wait-idle-hang
+kms_vblank at pipe-E-wait-forked
+kms_vblank at pipe-E-wait-forked-hang
+kms_vblank at pipe-E-wait-busy
+kms_vblank at pipe-E-wait-busy-hang
+kms_vblank at pipe-E-wait-forked-busy
+kms_vblank at pipe-E-wait-forked-busy-hang
+kms_vblank at pipe-E-ts-continuation-idle
+kms_vblank at pipe-E-ts-continuation-idle-hang
+kms_vblank at pipe-E-ts-continuation-dpms-rpm
+kms_vblank at pipe-E-ts-continuation-dpms-suspend
+kms_vblank at pipe-E-ts-continuation-suspend
+kms_vblank at pipe-E-ts-continuation-modeset
+kms_vblank at pipe-E-ts-continuation-modeset-hang
+kms_vblank at pipe-E-ts-continuation-modeset-rpm
+kms_vblank at pipe-F-accuracy-idle
+kms_vblank at pipe-F-query-idle
+kms_vblank at pipe-F-query-idle-hang
+kms_vblank at pipe-F-query-forked
+kms_vblank at pipe-F-query-forked-hang
+kms_vblank at pipe-F-query-busy
+kms_vblank at pipe-F-query-busy-hang
+kms_vblank at pipe-F-query-forked-busy
+kms_vblank at pipe-F-query-forked-busy-hang
+kms_vblank at pipe-F-wait-idle
+kms_vblank at pipe-F-wait-idle-hang
+kms_vblank at pipe-F-wait-forked
+kms_vblank at pipe-F-wait-forked-hang
+kms_vblank at pipe-F-wait-busy
+kms_vblank at pipe-F-wait-busy-hang
+kms_vblank at pipe-F-wait-forked-busy
+kms_vblank at pipe-F-wait-forked-busy-hang
+kms_vblank at pipe-F-ts-continuation-idle
+kms_vblank at pipe-F-ts-continuation-idle-hang
+kms_vblank at pipe-F-ts-continuation-dpms-rpm
+kms_vblank at pipe-F-ts-continuation-dpms-suspend
+kms_vblank at pipe-F-ts-continuation-suspend
+kms_vblank at pipe-F-ts-continuation-modeset
+kms_vblank at pipe-F-ts-continuation-modeset-hang
+kms_vblank at pipe-F-ts-continuation-modeset-rpm
+kms_vblank at pipe-G-accuracy-idle
+kms_vblank at pipe-G-query-idle
+kms_vblank at pipe-G-query-idle-hang
+kms_vblank at pipe-G-query-forked
+kms_vblank at pipe-G-query-forked-hang
+kms_vblank at pipe-G-query-busy
+kms_vblank at pipe-G-query-busy-hang
+kms_vblank at pipe-G-query-forked-busy
+kms_vblank at pipe-G-query-forked-busy-hang
+kms_vblank at pipe-G-wait-idle
+kms_vblank at pipe-G-wait-idle-hang
+kms_vblank at pipe-G-wait-forked
+kms_vblank at pipe-G-wait-forked-hang
+kms_vblank at pipe-G-wait-busy
+kms_vblank at pipe-G-wait-busy-hang
+kms_vblank at pipe-G-wait-forked-busy
+kms_vblank at pipe-G-wait-forked-busy-hang
+kms_vblank at pipe-G-ts-continuation-idle
+kms_vblank at pipe-G-ts-continuation-idle-hang
+kms_vblank at pipe-G-ts-continuation-dpms-rpm
+kms_vblank at pipe-G-ts-continuation-dpms-suspend
+kms_vblank at pipe-G-ts-continuation-suspend
+kms_vblank at pipe-G-ts-continuation-modeset
+kms_vblank at pipe-G-ts-continuation-modeset-hang
+kms_vblank at pipe-G-ts-continuation-modeset-rpm
+kms_vblank at pipe-H-accuracy-idle
+kms_vblank at pipe-H-query-idle
+kms_vblank at pipe-H-query-idle-hang
+kms_vblank at pipe-H-query-forked
+kms_vblank at pipe-H-query-forked-hang
+kms_vblank at pipe-H-query-busy
+kms_vblank at pipe-H-query-busy-hang
+kms_vblank at pipe-H-query-forked-busy
+kms_vblank at pipe-H-query-forked-busy-hang
+kms_vblank at pipe-H-wait-idle
+kms_vblank at pipe-H-wait-idle-hang
+kms_vblank at pipe-H-wait-forked
+kms_vblank at pipe-H-wait-forked-hang
+kms_vblank at pipe-H-wait-busy
+kms_vblank at pipe-H-wait-busy-hang
+kms_vblank at pipe-H-wait-forked-busy
+kms_vblank at pipe-H-wait-forked-busy-hang
+kms_vblank at pipe-H-ts-continuation-idle
+kms_vblank at pipe-H-ts-continuation-idle-hang
+kms_vblank at pipe-H-ts-continuation-dpms-rpm
+kms_vblank at pipe-H-ts-continuation-dpms-suspend
+kms_vblank at pipe-H-ts-continuation-suspend
+kms_vblank at pipe-H-ts-continuation-modeset
+kms_vblank at pipe-H-ts-continuation-modeset-hang
+kms_vblank at pipe-H-ts-continuation-modeset-rpm
+kms_vrr at flip-basic
+kms_vrr at flip-dpms
+kms_vrr at flip-suspend
+kms_vrr at flipline
+kms_vrr at negative-basic
+kms_writeback at writeback-pixel-formats
+kms_writeback at writeback-invalid-parameters
+kms_writeback at writeback-fb-id
+kms_writeback at writeback-check-output
+prime_mmap_kms at buffer-sharing
diff --git a/drivers/gpu/drm/ci/x86_64.config b/drivers/gpu/drm/ci/x86_64.config
new file mode 100644
index 000000000000..1cbd49a5b23a
--- /dev/null
+++ b/drivers/gpu/drm/ci/x86_64.config
@@ -0,0 +1,111 @@
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_DEBUG_KERNEL=y
+
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_ZRAM=y
+CONFIG_ZSMALLOC_STAT=y
+
+CONFIG_PWM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_OF=y
+CONFIG_CROS_EC=y
+
+# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
+CONFIG_BLK_DEV_INITRD=n
+
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_DEVFREQ_GOV_PASSIVE=y
+
+CONFIG_DRM=y
+CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_PWM_CROS_EC=y
+CONFIG_BACKLIGHT_PWM=y
+
+# Strip out some stuff we don't need for graphics testing, to reduce
+# the build.
+CONFIG_CAN=n
+CONFIG_WIRELESS=n
+CONFIG_RFKILL=n
+CONFIG_WLAN=n
+
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR=y
+
+CONFIG_REGULATOR_VCTRL=y
+
+CONFIG_KASAN=n
+CONFIG_KASAN_INLINE=n
+CONFIG_STACKTRACE=n
+
+CONFIG_TMPFS=y
+
+CONFIG_PROVE_LOCKING=n
+CONFIG_DEBUG_LOCKDEP=n
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
+
+CONFIG_DETECT_HUNG_TASK=y
+
+CONFIG_USB_USBNET=y
+CONFIG_NETDEVICES=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_ETH=y
+
+CONFIG_FW_LOADER_COMPRESS=y
+
+# options for AMD devices
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_ACPI_VIDEO=y
+CONFIG_X86_AMD_FREQ_SENSITIVITY=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AMD=y
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_USERPTR=y
+CONFIG_DRM_AMD_ACP=n
+CONFIG_ACPI_WMI=y
+CONFIG_MXM_WMI=y
+CONFIG_PARPORT=y
+CONFIG_PARPORT_PC=y
+CONFIG_PARPORT_SERIAL=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_KVM_AMD=m
+
+#options for Intel devices
+CONFIG_MFD_INTEL_LPSS_PCI=y
+CONFIG_KVM_INTEL=m
+
+#options for KVM guests
+CONFIG_FUSE_FS=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_KVM=y
+CONFIG_KVM_GUEST=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO_FS=y
+CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_VIRTIO_NET=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_PARAVIRT=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_CRYPTO_DEV_VIRTIO=y
+CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_TUN=y
+CONFIG_VSOCKETS=y
+CONFIG_VIRTIO_VSOCKETS=y
+CONFIG_VHOST_VSOCK=m
diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
new file mode 100644
index 000000000000..0dac88719967
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-fails.txt
@@ -0,0 +1,22 @@
+kms_bw at linear-tiling-1-displays-2560x1440p,Fail
+kms_bw at linear-tiling-1-displays-3840x2160p,Fail
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_bw at linear-tiling-3-displays-1920x1080p,Fail
+kms_cursor_crc at pipe-A-cursor-size-change,Fail
+kms_cursor_crc at pipe-B-cursor-size-change,Fail
+kms_hdr at bpc-switch,Fail
+kms_hdr at bpc-switch-dpms,Fail
+kms_plane_multiple at atomic-pipe-A-tiling-none,Fail
+kms_rotation_crc at primary-rotation-180,Fail
+kms_async_flips at async-flip-with-page-flip-events,Fail
+kms_async_flips at crc,Fail
+kms_async_flips at invalid-async-flip,Fail
+kms_addfb_basic at bad-pitch-65536,Fail
+kms_addfb_basic at bo-too-small,Fail
+kms_atomic_transition at plane-toggle-modeset-transition,Fail
+kms_color at degamma,Fail
+kms_cursor_crc at cursor-size-change,Fail
+kms_cursor_legacy at forked-move,Fail
+kms_flip at flip-vs-blocking-wf-vblank,Fail
+kms_flip at plain-flip-fb-recreate,Fail
+kms_flip at plain-flip-interruptible,Fail
diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt
new file mode 100644
index 000000000000..16bbe46c7459
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-flakes.txt
@@ -0,0 +1,19 @@
+kms_addfb_basic at too-high
+kms_atomic_transition at plane-all-modeset-transition-internal-panels
+kms_atomic_transition at plane-all-transition
+kms_atomic_transition at plane-use-after-nonblocking-unbind
+kms_bw at linear-tiling-1-displays-1920x1080p
+kms_bw at linear-tiling-2-displays-1920x1080p
+kms_bw at linear-tiling-2-displays-2560x1440p
+kms_bw at linear-tiling-3-displays-2560x1440p
+kms_bw at linear-tiling-3-displays-3840x2160p
+kms_cursor_crc at pipe-A-cursor-alpha-opaque
+kms_cursor_crc at pipe-B-cursor-alpha-opaque
+kms_plane_multiple at atomic-pipe-B-tiling-none
+kms_plane at pixel-format
+kms_plane_scaling at downscale-with-rotation-factor-0-5
+kms_universal_plane at disable-primary-vs-flip-pipe-A
+kms_async_flips at alternate-sync-async-flip
+kms_async_flips at test-cursor
+kms_async_flips at test-time-stamp
+kms_universal_plane at disable-primary-vs-flip-pipe-B
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
new file mode 100644
index 000000000000..e2c538a0f954
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/amdgpu-stoney-skips.txt
@@ -0,0 +1,2 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/i915-amly-fails.txt b/drivers/gpu/drm/ci/xfails/i915-amly-fails.txt
new file mode 100644
index 000000000000..5f513c638beb
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-amly-fails.txt
@@ -0,0 +1,17 @@
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_plane_alpha_blend at alpha-basic,Fail
+kms_plane_alpha_blend at alpha-opaque-fb,Fail
+kms_plane_alpha_blend at alpha-transparent-fb,Fail
+kms_plane_alpha_blend at constant-alpha-max,Fail
diff --git a/drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt b/drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
new file mode 100644
index 000000000000..d5000515a315
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-amly-flakes.txt
@@ -0,0 +1,32 @@
+kms_bw at linear-tiling-2-displays-1920x1080p
+kms_bw at linear-tiling-2-displays-2560x1440p
+kms_bw at linear-tiling-2-displays-3840x2160p
+kms_bw at linear-tiling-3-displays-1920x1080p
+kms_bw at linear-tiling-3-displays-2560x1440p
+kms_bw at linear-tiling-3-displays-3840x2160p
+kms_bw at linear-tiling-4-displays-1920x1080p
+kms_bw at linear-tiling-4-displays-2560x1440p
+kms_bw at linear-tiling-4-displays-3840x2160p
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
+kms_plane_alpha_blend at pipe-A-alpha-basic
+kms_plane_alpha_blend at pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-A-constant-alpha-max
+kms_plane_alpha_blend at pipe-B-alpha-basic
+kms_plane_alpha_blend at pipe-B-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-B-constant-alpha-max
+kms_plane_alpha_blend at pipe-C-alpha-basic
+kms_plane_alpha_blend at pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-C-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-C-constant-alpha-max
+kms_sysfs_edid_timing
diff --git a/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt b/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
new file mode 100644
index 000000000000..fe55540a3f9a
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-amly-skips.txt
@@ -0,0 +1,4 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+# This is generating kernel oops with divide error
+kms_plane_scaling at invalid-parameters
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/i915-apl-fails.txt b/drivers/gpu/drm/ci/xfails/i915-apl-fails.txt
new file mode 100644
index 000000000000..cf13a0e07cc1
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-apl-fails.txt
@@ -0,0 +1,57 @@
+kms_3d,Timeout
+kms_bw at linear-tiling-2-displays-1920x1080p,Fail
+kms_bw at linear-tiling-2-displays-2560x1440p,Fail
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_bw at linear-tiling-3-displays-1920x1080p,Fail
+kms_bw at linear-tiling-3-displays-2560x1440p,Fail
+kms_bw at linear-tiling-3-displays-3840x2160p,Fail
+kms_bw at linear-tiling-4-displays-1920x1080p,Fail
+kms_bw at linear-tiling-4-displays-2560x1440p,Fail
+kms_bw at linear-tiling-4-displays-3840x2160p,Fail
+kms_color at ctm-0-25,Fail
+kms_color at ctm-0-50,Fail
+kms_color at ctm-0-75,Fail
+kms_color at ctm-max,Fail
+kms_color at ctm-negative,Fail
+kms_color at ctm-red-to-blue,Fail
+kms_color at ctm-signed,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_plane at plane-position-hole,Timeout
+kms_plane_alpha_blend at alpha-basic,Fail
+kms_plane_alpha_blend at alpha-opaque-fb,Fail
+kms_plane_alpha_blend at alpha-transparent-fb,Fail
+kms_plane_alpha_blend at constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-A-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-A-alpha-transparent-fb,Fail
+kms_plane_alpha_blend at pipe-A-constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-B-alpha-transparent-fb,Fail
+kms_plane_alpha_blend at pipe-B-constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-C-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-C-alpha-transparent-fb,Fail
+kms_plane_alpha_blend at pipe-C-constant-alpha-max,Fail
+kms_plane_multiple at tiling-y,Timeout
+kms_pwrite_crc,Timeout
+kms_sysfs_edid_timing,Fail
diff --git a/drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt b/drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
new file mode 100644
index 000000000000..331c5841bb41
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-apl-flakes.txt
@@ -0,0 +1 @@
+kms_frontbuffer_tracking at fbc-tiling-linear
diff --git a/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt b/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
new file mode 100644
index 000000000000..fe55540a3f9a
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-apl-skips.txt
@@ -0,0 +1,4 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+# This is generating kernel oops with divide error
+kms_plane_scaling at invalid-parameters
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/i915-cml-fails.txt b/drivers/gpu/drm/ci/xfails/i915-cml-fails.txt
new file mode 100644
index 000000000000..df9161518336
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-cml-fails.txt
@@ -0,0 +1,18 @@
+kms_color at ctm-0-25,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_plane_alpha_blend at alpha-basic,Fail
+kms_plane_alpha_blend at alpha-opaque-fb,Fail
+kms_plane_alpha_blend at alpha-transparent-fb,Fail
+kms_plane_alpha_blend at constant-alpha-max,Fail
+kms_plane_alpha_blend at constant-alpha-min,Fail
diff --git a/drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt b/drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
new file mode 100644
index 000000000000..5ca34144cfdc
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-cml-flakes.txt
@@ -0,0 +1,37 @@
+kms_bw at linear-tiling-2-displays-1920x1080p
+kms_bw at linear-tiling-2-displays-2560x1440p
+kms_bw at linear-tiling-2-displays-3840x2160p
+kms_bw at linear-tiling-3-displays-1920x1080p
+kms_bw at linear-tiling-3-displays-2560x1440p
+kms_bw at linear-tiling-3-displays-3840x2160p
+kms_bw at linear-tiling-4-displays-1920x1080p
+kms_bw at linear-tiling-4-displays-2560x1440p
+kms_bw at linear-tiling-4-displays-3840x2160p
+kms_draw_crc at draw-method-xrgb8888-render-xtiled
+kms_flip at flip-vs-suspend
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
+kms_hdr at bpc-switch-suspend
+kms_plane_alpha_blend at pipe-A-alpha-basic
+kms_plane_alpha_blend at pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-A-constant-alpha-max
+kms_plane_alpha_blend at pipe-B-alpha-basic
+kms_plane_alpha_blend at pipe-B-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-B-constant-alpha-max
+kms_plane_alpha_blend at pipe-C-alpha-basic
+kms_plane_alpha_blend at pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-C-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-C-constant-alpha-max
+kms_psr2_su at page_flip-NV12
+kms_psr2_su at page_flip-P010
+kms_setmode at basic
diff --git a/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt b/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
new file mode 100644
index 000000000000..6d3d7ddc377f
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-cml-skips.txt
@@ -0,0 +1,2 @@
+# This is generating kernel oops with divide error
+kms_plane_scaling at invalid-parameters
diff --git a/drivers/gpu/drm/ci/xfails/i915-glk-fails.txt b/drivers/gpu/drm/ci/xfails/i915-glk-fails.txt
new file mode 100644
index 000000000000..d1196f13a7ca
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-glk-fails.txt
@@ -0,0 +1,18 @@
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_frontbuffer_tracking at fbcdrrs-tiling-linear,Fail
+kms_plane_alpha_blend at alpha-basic,Fail
+kms_plane_alpha_blend at alpha-opaque-fb,Fail
+kms_plane_alpha_blend at alpha-transparent-fb,Fail
+kms_plane_alpha_blend at constant-alpha-max,Fail
diff --git a/drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt b/drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
new file mode 100644
index 000000000000..fc41d13a2d56
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-glk-flakes.txt
@@ -0,0 +1,41 @@
+kms_bw at linear-tiling-1-displays-3840x2160p
+kms_bw at linear-tiling-2-displays-1920x1080p
+kms_bw at linear-tiling-2-displays-2560x1440p
+kms_bw at linear-tiling-2-displays-3840x2160p
+kms_bw at linear-tiling-3-displays-1920x1080p
+kms_bw at linear-tiling-3-displays-2560x1440p
+kms_bw at linear-tiling-3-displays-3840x2160p
+kms_bw at linear-tiling-4-displays-1920x1080p
+kms_bw at linear-tiling-4-displays-2560x1440p
+kms_bw at linear-tiling-4-displays-3840x2160p
+kms_flip at blocking-wf_vblank
+kms_flip at wf_vblank-ts-check
+kms_flip at wf_vblank-ts-check-interruptible
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
+kms_frontbuffer_tracking at fbc-tiling-linear
+kms_plane_alpha_blend at pipe-A-alpha-basic
+kms_plane_alpha_blend at pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-A-constant-alpha-max
+kms_plane_alpha_blend at pipe-B-alpha-basic
+kms_plane_alpha_blend at pipe-B-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-B-constant-alpha-max
+kms_plane_alpha_blend at pipe-C-alpha-basic
+kms_plane_alpha_blend at pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-C-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-C-constant-alpha-max
+kms_prop_blob at invalid-set-prop-any
+kms_rotation_crc at multiplane-rotation
+kms_rotation_crc at multiplane-rotation-cropping-bottom
+kms_rotation_crc at multiplane-rotation-cropping-top
+kms_setmode at basic
diff --git a/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt b/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
new file mode 100644
index 000000000000..4c7d00ce14bc
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-glk-skips.txt
@@ -0,0 +1,5 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+
+# This is generating kernel oops with divide error
+kms_plane_scaling at invalid-parameters
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt b/drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt
new file mode 100644
index 000000000000..fa0af6cf81be
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-kbl-fails.txt
@@ -0,0 +1,26 @@
+kms_bw at linear-tiling-2-displays-2560x1440p,Fail
+kms_bw at linear-tiling-4-displays-2560x1440p,Fail
+kms_color at ctm-0-25,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_plane_alpha_blend at alpha-basic,Fail
+kms_plane_alpha_blend at alpha-opaque-fb,Fail
+kms_plane_alpha_blend at alpha-transparent-fb,Fail
+kms_plane_alpha_blend at constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-A-constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-C-constant-alpha-max,Fail
diff --git a/drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt b/drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt
new file mode 100644
index 000000000000..95ffa734a267
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-kbl-flakes.txt
@@ -0,0 +1,25 @@
+kms_async_flips at crc
+kms_bw at linear-tiling-2-displays-1920x1080p
+kms_bw at linear-tiling-2-displays-3840x2160p
+kms_bw at linear-tiling-3-displays-1920x1080p
+kms_bw at linear-tiling-3-displays-2560x1440p
+kms_bw at linear-tiling-3-displays-3840x2160p
+kms_bw at linear-tiling-4-displays-1920x1080p
+kms_bw at linear-tiling-4-displays-3840x2160p
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_plane_alpha_blend at pipe-A-alpha-basic
+kms_plane_alpha_blend at pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-B-alpha-basic
+kms_plane_alpha_blend at pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend at pipe-B-constant-alpha-max
+kms_plane_alpha_blend at pipe-C-alpha-basic
+kms_plane_alpha_blend at pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend at pipe-C-alpha-transparent-fb
+kms_sysfs_edid_timing
diff --git a/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt b/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
new file mode 100644
index 000000000000..4c7d00ce14bc
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-kbl-skips.txt
@@ -0,0 +1,5 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+
+# This is generating kernel oops with divide error
+kms_plane_scaling at invalid-parameters
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt b/drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt
new file mode 100644
index 000000000000..a6da5544e198
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-tgl-fails.txt
@@ -0,0 +1,37 @@
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_bw at linear-tiling-3-displays-1920x1080p,Fail
+kms_bw at linear-tiling-3-displays-2560x1440p,Fail
+kms_bw at linear-tiling-3-displays-3840x2160p,Fail
+kms_bw at linear-tiling-4-displays-1920x1080p,Fail
+kms_bw at linear-tiling-4-displays-2560x1440p,Fail
+kms_bw at linear-tiling-4-displays-3840x2160p,Fail
+kms_bw at linear-tiling-5-displays-1920x1080p,Fail
+kms_bw at linear-tiling-5-displays-2560x1440p,Fail
+kms_bw at linear-tiling-5-displays-3840x2160p,Fail
+kms_color at ctm-0-25,Fail
+kms_flip at flip-vs-panning-vs-hang,Timeout
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_rotation_crc at bad-pixel-format,Fail
+kms_rotation_crc at multiplane-rotation,Fail
+kms_rotation_crc at multiplane-rotation-cropping-bottom,Fail
+kms_rotation_crc at multiplane-rotation-cropping-top,Fail
diff --git a/drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt b/drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt
new file mode 100644
index 000000000000..1cd910ee06df
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-tgl-flakes.txt
@@ -0,0 +1,5 @@
+kms_draw_crc at .*
+kms_flip at blocking-absolute-wf_vblank
+kms_flip at bo-too-big-interruptible
+kms_flip at busy-flip
+kms_flip at flip-vs-rmfb-interruptible
diff --git a/drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt b/drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt
new file mode 100644
index 000000000000..1d0621750b14
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-tgl-skips.txt
@@ -0,0 +1,11 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+
+# GPU hangs, then the whole machine
+gem_eio.*
+
+# Whole machine hangs
+kms_flip at absolute-wf_vblank@a-edp1
+
+# This is generating kernel oops with divide error
+kms_plane_scaling at invalid-parameters
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/i915-whl-fails.txt b/drivers/gpu/drm/ci/xfails/i915-whl-fails.txt
new file mode 100644
index 000000000000..65c630f9a833
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-whl-fails.txt
@@ -0,0 +1,47 @@
+kms_bw at linear-tiling-2-displays-1920x1080p,Fail
+kms_bw at linear-tiling-2-displays-2560x1440p,Fail
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_bw at linear-tiling-3-displays-1920x1080p,Fail
+kms_bw at linear-tiling-3-displays-2560x1440p,Fail
+kms_bw at linear-tiling-3-displays-3840x2160p,Fail
+kms_bw at linear-tiling-4-displays-1920x1080p,Fail
+kms_bw at linear-tiling-4-displays-2560x1440p,Fail
+kms_bw at linear-tiling-4-displays-3840x2160p,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
+kms_flip_scaled_crc at flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_frontbuffer_tracking at fbc-tiling-linear,Fail
+kms_plane_alpha_blend at alpha-basic,Fail
+kms_plane_alpha_blend at alpha-opaque-fb,Fail
+kms_plane_alpha_blend at alpha-transparent-fb,Fail
+kms_plane_alpha_blend at constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-A-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-A-alpha-transparent-fb,Fail
+kms_plane_alpha_blend at pipe-A-constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-B-alpha-transparent-fb,Fail
+kms_plane_alpha_blend at pipe-B-constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-C-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-C-alpha-transparent-fb,Fail
+kms_plane_alpha_blend at pipe-C-constant-alpha-max,Fail
+kms_sysfs_edid_timing,Fail
diff --git a/drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt b/drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
new file mode 100644
index 000000000000..c33202e7e2a1
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-whl-flakes.txt
@@ -0,0 +1 @@
+kms_flip at flip-vs-suspend
diff --git a/drivers/gpu/drm/ci/xfails/i915-whl-skips.txt b/drivers/gpu/drm/ci/xfails/i915-whl-skips.txt
new file mode 100644
index 000000000000..f3be0888a214
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/i915-whl-skips.txt
@@ -0,0 +1,2 @@
+# This is generating kernel oops with divide error
+kms_plane_scaling at invalid-parameters
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/mediatek-mt8173-fails.txt b/drivers/gpu/drm/ci/xfails/mediatek-mt8173-fails.txt
new file mode 100644
index 000000000000..671916067dba
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/mediatek-mt8173-fails.txt
@@ -0,0 +1,29 @@
+kms_3d,Fail
+kms_addfb_basic at addfb25-bad-modifier,Fail
+kms_bw at linear-tiling-1-displays-1920x1080p,Fail
+kms_bw at linear-tiling-1-displays-2560x1440p,Fail
+kms_bw at linear-tiling-1-displays-3840x2160p,Fail
+kms_bw at linear-tiling-2-displays-1920x1080p,Fail
+kms_bw at linear-tiling-2-displays-2560x1440p,Fail
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_bw at linear-tiling-3-displays-1920x1080p,Fail
+kms_bw at linear-tiling-3-displays-2560x1440p,Fail
+kms_bw at linear-tiling-3-displays-3840x2160p,Fail
+kms_color at pipe-A-invalid-gamma-lut-sizes,Fail
+kms_color at pipe-B-invalid-gamma-lut-sizes,Fail
+kms_force_connector_basic at force-connector-state,Fail
+kms_force_connector_basic at force-edid,Fail
+kms_force_connector_basic at force-load-detect,Fail
+kms_force_connector_basic at prune-stale-modes,Fail
+kms_invalid_mode at int-max-clock,Fail
+kms_plane_scaling at planes-upscale-20x20,Fail
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-25,Fail
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-5,Fail
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-75,Fail
+kms_plane_scaling at upscale-with-modifier-20x20,Fail
+kms_plane_scaling at upscale-with-pixel-format-20x20,Fail
+kms_plane_scaling at upscale-with-rotation-20x20,Fail
+kms_properties at get_properties-sanity-atomic,Fail
+kms_properties at plane-properties-atomic,Fail
+kms_properties at plane-properties-legacy,Fail
+kms_rmfb at close-fd,Fail
diff --git a/drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt b/drivers/gpu/drm/ci/xfails/mediatek-mt8173-flakes.txt
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/drivers/gpu/drm/ci/xfails/mediatek-mt8183-fails.txt b/drivers/gpu/drm/ci/xfails/mediatek-mt8183-fails.txt
new file mode 100644
index 000000000000..6ff81d00e84e
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/mediatek-mt8183-fails.txt
@@ -0,0 +1,10 @@
+kms_addfb_basic at addfb25-bad-modifier,Fail
+kms_bw at linear-tiling-1-displays-2560x1440p,Fail
+kms_bw at linear-tiling-2-displays-1920x1080p,Fail
+kms_bw at linear-tiling-2-displays-2560x1440p,Fail
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_bw at linear-tiling-3-displays-2560x1440p,Fail
+kms_bw at linear-tiling-3-displays-3840x2160p,Fail
+kms_color at pipe-A-invalid-gamma-lut-sizes,Fail
+kms_plane_scaling at upscale-with-rotation-20x20,Fail
+kms_rmfb at close-fd,Fail
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt b/drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt
new file mode 100644
index 000000000000..208890b79eb0
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/mediatek-mt8183-flakes.txt
@@ -0,0 +1,14 @@
+core_setmaster_vs_auth
+kms_bw at linear-tiling-1-displays-1920x1080p
+kms_bw at linear-tiling-1-displays-3840x2160p
+kms_bw at linear-tiling-3-displays-1920x1080p
+kms_cursor_legacy at cursor-vs-flip-atomic
+kms_plane_scaling at invalid-num-scalers
+kms_plane_scaling at planes-upscale-20x20
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-5
+kms_plane_scaling at upscale-with-modifier-20x20
+kms_plane_scaling at upscale-with-pixel-format-20x20
+kms_prop_blob at invalid-set-prop-any
+kms_properties at get_properties-sanity-atomic
+kms_properties at plane-properties-atomic
+kms_properties at plane-properties-legacy
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/meson-g12b-fails.txt b/drivers/gpu/drm/ci/xfails/meson-g12b-fails.txt
new file mode 100644
index 000000000000..860e702091e2
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/meson-g12b-fails.txt
@@ -0,0 +1,12 @@
+kms_3d,Fail
+kms_properties at connector-properties-atomic,Fail
+kms_properties at get_properties-sanity-atomic,Fail
+kms_properties at get_properties-sanity-non-atomic,Fail
+kms_properties at connector-properties-legacy,Fail
+kms_cursor_legacy at forked-bo,Fail
+kms_cursor_legacy at forked-move,Fail
+kms_cursor_legacy at single-bo,Fail
+kms_cursor_legacy at single-move,Fail
+kms_cursor_legacy at torture-bo,Fail
+kms_cursor_legacy at torture-move,Fail
+kms_hdmi_inject at inject-4k,Fail
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt b/drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt
new file mode 100644
index 000000000000..b63329d06767
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/meson-g12b-flakes.txt
@@ -0,0 +1,4 @@
+kms_force_connector_basic at force-connector-state
+kms_force_connector_basic at force-edid
+kms_force_connector_basic at force-load-detect
+kms_force_connector_basic at prune-stale-modes
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt
new file mode 100644
index 000000000000..9981682feab2
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt
@@ -0,0 +1,15 @@
+kms_3d,Fail
+kms_addfb_basic at addfb25-bad-modifier,Fail
+kms_cursor_legacy at all-pipes-forked-bo,Fail
+kms_cursor_legacy at all-pipes-forked-move,Fail
+kms_cursor_legacy at all-pipes-single-bo,Fail
+kms_cursor_legacy at all-pipes-single-move,Fail
+kms_cursor_legacy at all-pipes-torture-bo,Fail
+kms_cursor_legacy at all-pipes-torture-move,Fail
+kms_cursor_legacy at pipe-A-forked-bo,Fail
+kms_cursor_legacy at pipe-A-forked-move,Fail
+kms_cursor_legacy at pipe-A-single-bo,Fail
+kms_cursor_legacy at pipe-A-single-move,Fail
+kms_cursor_legacy at pipe-A-torture-bo,Fail
+kms_cursor_legacy at pipe-A-torture-move,Fail
+kms_hdmi_inject at inject-4k,Fail
diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt
new file mode 100644
index 000000000000..0e3b60d3fade
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-apq8016-flakes.txt
@@ -0,0 +1,4 @@
+kms_force_connector_basic at force-connector-state
+kms_force_connector_basic at force-edid
+kms_force_connector_basic at force-load-detect
+kms_force_connector_basic at prune-stale-modes
diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt
new file mode 100644
index 000000000000..88a1fc0a3b0d
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt
@@ -0,0 +1,2 @@
+kms_3d,Fail
+kms_addfb_basic at addfb25-bad-modifier,Fail
diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
new file mode 100644
index 000000000000..0e3b60d3fade
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-apq8096-flakes.txt
@@ -0,0 +1,4 @@
+kms_force_connector_basic at force-connector-state
+kms_force_connector_basic at force-edid
+kms_force_connector_basic at force-load-detect
+kms_force_connector_basic at prune-stale-modes
diff --git a/drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txt b/drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txt
new file mode 100644
index 000000000000..cd49c8ce2059
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-apq8096-skips.txt
@@ -0,0 +1,2 @@
+# Whole machine hangs
+kms_cursor_legacy at all-pipes-torture-move
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt
new file mode 100644
index 000000000000..14adeba3b62d
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt
@@ -0,0 +1,25 @@
+kms_cursor_legacy at cursor-vs-flip-toggle,Fail
+kms_cursor_legacy at cursor-vs-flip-varying-size,Fail
+kms_cursor_legacy at cursorA-vs-flipA-atomic-transitions,Crash
+kms_pipe_crc_basic at compare-crc-sanitycheck-nv12,Fail
+kms_plane at pixel-format,Fail
+kms_plane at pixel-format-source-clamping,Fail
+kms_plane at plane-position-covered,Fail
+kms_plane at plane-position-hole,Fail
+kms_plane at plane-position-hole-dpms,Fail
+kms_plane_alpha_blend at alpha-7efc,Fail
+kms_plane_alpha_blend at coverage-7efc,Fail
+kms_plane_alpha_blend at coverage-vs-premult-vs-constant,Fail
+kms_plane_alpha_blend at pipe-A-alpha-7efc,Fail
+kms_plane_alpha_blend at pipe-A-coverage-7efc,Fail
+kms_plane_alpha_blend at pipe-A-coverage-vs-premult-vs-constant,Fail
+kms_plane_alpha_blend at pipe-B-alpha-7efc,Fail
+kms_plane_alpha_blend at pipe-B-alpha-basic,Fail
+kms_plane_alpha_blend at pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend at pipe-B-constant-alpha-max,Fail
+kms_plane_alpha_blend at pipe-B-constant-alpha-mid,Fail
+kms_plane_alpha_blend at pipe-B-coverage-7efc,Fail
+kms_plane_alpha_blend at pipe-B-coverage-vs-premult-vs-constant,Fail
+kms_rmfb at close-fd,Fail
+kms_universal_plane at disable-primary-vs-flip-pipe-b,Fail
+kms_universal_plane at universal-plane-pipe-B-sanity,Fail
diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt
new file mode 100644
index 000000000000..636563d3e59a
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt
@@ -0,0 +1,7 @@
+
+# Test ends up reading CRC from frame before cursor update
+# bug
+# sometimes.. tbd if this is a kernel CRC bug or a test
+kms_cursor_crc at .*
+kms_plane_multiple at atomic-pipe-A-tiling-none
+kms_atomic_transition at modeset-transition-nonblocking-fencing,Fail
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt b/drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt
new file mode 100644
index 000000000000..410e0eeb3161
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt
@@ -0,0 +1,23 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+
+# Test incorrectly assumes that CTM support implies gamma/degamma
+# LUT support.  None of the subtests handle the case of only having
+# CTM support
+kms_color.*
+
+# 4k at 60 is not supported on this hw, but driver doesn't handle it
+# too gracefully.. https://gitlab.freedesktop.org/drm/msm/-/issues/15
+kms_bw at linear-tiling-.*-displays-3840x2160p
+
+# Until igt fix lands: https://patchwork.freedesktop.org/patch/493175/
+kms_bw at linear-tiling-2.*
+kms_bw at linear-tiling-3.*
+kms_bw at linear-tiling-4.*
+kms_bw at linear-tiling-5.*
+kms_bw at linear-tiling-6.*
+
+# igt fix posted: https://patchwork.freedesktop.org/patch/499926/
+# failure mode is flakey due to randomization but fails frequently
+# enough to be detected as a Crash or occasionally UnexpectedPass.
+kms_plane_multiple at atomic-pipe-A-tiling-none
diff --git a/drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt b/drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt
new file mode 100644
index 000000000000..09c0c623cd75
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt
@@ -0,0 +1,68 @@
+kms_color at ctm-0-25,Fail
+kms_color at ctm-0-50,Fail
+kms_color at ctm-0-75,Fail
+kms_color at ctm-blue-to-red,Fail
+kms_color at ctm-green-to-red,Fail
+kms_color at ctm-negative,Fail
+kms_color at ctm-red-to-blue,Fail
+kms_color at ctm-signed,Fail
+kms_color at pipe-A-ctm-0-25,Fail
+kms_color at pipe-A-ctm-0-5,Fail
+kms_color at pipe-A-ctm-0-75,Fail
+kms_color at pipe-A-ctm-blue-to-red,Fail
+kms_color at pipe-A-ctm-green-to-red,Fail
+kms_color at pipe-A-ctm-max,Fail
+kms_color at pipe-A-ctm-negative,Fail
+kms_color at pipe-A-ctm-red-to-blue,Fail
+kms_color at pipe-A-legacy-gamma,Fail
+kms_cursor_legacy at basic-flip-after-cursor-atomic,Fail
+kms_cursor_legacy at basic-flip-after-cursor-legacy,Fail
+kms_cursor_legacy at basic-flip-after-cursor-varying-size,Fail
+kms_cursor_legacy at basic-flip-before-cursor-atomic,Fail
+kms_cursor_legacy at basic-flip-before-cursor-legacy,Fail
+kms_cursor_legacy at basic-flip-before-cursor-varying-size,Fail
+kms_cursor_legacy at cursor-vs-flip-atomic,Fail
+kms_cursor_legacy at cursor-vs-flip-atomic-transitions,Fail
+kms_cursor_legacy at cursor-vs-flip-atomic-transitions-varying-size,Fail
+kms_cursor_legacy at cursor-vs-flip-legacy,Fail
+kms_cursor_legacy at cursor-vs-flip-toggle,Fail
+kms_cursor_legacy at cursor-vs-flip-varying-size,Fail
+kms_cursor_legacy at cursorA-vs-flipA-toggle,Fail
+kms_cursor_legacy at flip-vs-cursor-atomic,Fail
+kms_cursor_legacy at flip-vs-cursor-crc-atomic,Fail
+kms_cursor_legacy at flip-vs-cursor-crc-legacy,Fail
+kms_cursor_legacy at flip-vs-cursor-legacy,Fail
+kms_cursor_legacy at short-flip-after-cursor-atomic-transitions,Fail
+kms_cursor_legacy at short-flip-after-cursor-atomic-transitions-varying-size,Fail
+kms_cursor_legacy at short-flip-after-cursor-toggle,Fail
+kms_cursor_legacy at short-flip-before-cursor-atomic-transitions,Fail
+kms_cursor_legacy at short-flip-before-cursor-atomic-transitions-varying-size,Fail
+kms_pipe_crc_basic at compare-crc-sanitycheck-nv12,Fail
+kms_plane at pixel-format,Fail
+kms_plane at pixel-format-source-clamping,Fail
+kms_plane_alpha_blend at alpha-7efc,Fail
+kms_plane_alpha_blend at coverage-7efc,Fail
+kms_plane_alpha_blend at coverage-vs-premult-vs-constant,Fail
+kms_plane_alpha_blend at pipe-A-alpha-7efc,Fail
+kms_plane_alpha_blend at pipe-A-coverage-7efc,Fail
+kms_plane_alpha_blend at pipe-A-coverage-vs-premult-vs-constant,Fail
+kms_plane_cursor at overlay,Fail
+kms_plane_cursor at pipe-A-overlay-size-128,Fail
+kms_plane_cursor at pipe-A-overlay-size-256,Fail
+kms_plane_cursor at pipe-A-overlay-size-64,Fail
+kms_plane_cursor at pipe-A-viewport-size-128,Fail
+kms_plane_cursor at pipe-A-viewport-size-256,Fail
+kms_plane_cursor at pipe-A-viewport-size-64,Fail
+kms_plane_cursor at viewport,Fail
+kms_plane_scaling at downscale-with-pixel-format-factor-0-25,Timeout
+kms_plane_scaling at downscale-with-pixel-format-factor-0-5,Timeout
+kms_plane_scaling at downscale-with-pixel-format-factor-0-75,Timeout
+kms_plane_scaling at plane-downscale-with-pixel-format-factor-0-25,Timeout
+kms_plane_scaling at plane-downscale-with-pixel-format-factor-0-5,Timeout
+kms_plane_scaling at plane-downscale-with-pixel-format-factor-0-75,Timeout
+kms_plane_scaling at plane-scaler-with-clipping-clamping-pixel-formats,Timeout
+kms_plane_scaling at plane-scaler-with-pixel-format-unity-scaling,Timeout
+kms_plane_scaling at planes-downscale-factor-0-25,Fail
+kms_plane_scaling at scaler-with-clipping-clamping,Timeout
+kms_plane_scaling at scaler-with-pixel-format-unity-scaling,Timeout
+kms_rmfb at close-fd,Fail
diff --git a/drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt b/drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt
new file mode 100644
index 000000000000..5b3aaab7ac3f
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt
@@ -0,0 +1,11 @@
+
+
+# Test ends up reading CRC from frame before cursor update
+# bug
+# sometimes.. tbd if this is a kernel CRC bug or a test
+kms_cursor_crc at .*
+kms_cursor_legacy at flip-vs-cursor-toggle
+kms_cursor_legacy at pipe-A-forked-bo
+kms_cursor_legacy at pipe-A-forked-move
+kms_cursor_legacy at short-flip-before-cursor-toggle
+kms_flip at dpms-vs-vblank-race-interruptible
diff --git a/drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt b/drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt
new file mode 100644
index 000000000000..42675f1c6d76
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt
@@ -0,0 +1,2 @@
+# Hangs machine
+kms_bw.*
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/rockchip-rk3288-fails.txt b/drivers/gpu/drm/ci/xfails/rockchip-rk3288-fails.txt
new file mode 100644
index 000000000000..5594e700f618
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/rockchip-rk3288-fails.txt
@@ -0,0 +1,49 @@
+kms_3d,Crash
+kms_bw at linear-tiling-2-displays-1920x1080p,Fail
+kms_bw at linear-tiling-2-displays-2560x1440p,Fail
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_bw at linear-tiling-3-displays-1920x1080p,Fail
+kms_bw at linear-tiling-3-displays-2560x1440p,Fail
+kms_bw at linear-tiling-3-displays-3840x2160p,Fail
+kms_flip at basic-flip-vs-wf_vblank,Crash
+kms_force_connector_basic at force-load-detect,Fail
+kms_invalid_mode at int-max-clock,Crash
+kms_plane at pixel-format,Crash
+kms_plane at pixel-format-source-clamping,Crash
+kms_plane at plane-position-hole,Crash
+kms_plane at plane-position-hole-dpms,Crash
+kms_plane_cursor at overlay,Crash
+kms_plane_cursor at pipe-A-overlay-size-128,Fail
+kms_plane_cursor at pipe-A-overlay-size-256,Fail
+kms_plane_cursor at pipe-A-overlay-size-64,Fail
+kms_plane_cursor at pipe-A-primary-size-128,Fail
+kms_plane_cursor at pipe-A-primary-size-256,Fail
+kms_plane_cursor at pipe-A-primary-size-64,Fail
+kms_plane_cursor at pipe-A-viewport-size-128,Fail
+kms_plane_cursor at pipe-A-viewport-size-256,Fail
+kms_plane_cursor at pipe-A-viewport-size-64,Fail
+kms_plane_cursor at pipe-B-overlay-size-128,Fail
+kms_plane_cursor at pipe-B-overlay-size-256,Fail
+kms_plane_cursor at pipe-B-overlay-size-64,Fail
+kms_plane_cursor at pipe-B-primary-size-128,Fail
+kms_plane_cursor at pipe-B-primary-size-256,Fail
+kms_plane_cursor at pipe-B-primary-size-64,Fail
+kms_plane_cursor at pipe-B-viewport-size-128,Fail
+kms_plane_cursor at pipe-B-viewport-size-256,Fail
+kms_plane_cursor at pipe-B-viewport-size-64,Fail
+kms_plane_cursor at primary,Crash
+kms_plane_cursor at viewport,Crash
+kms_plane_lowres at tiling-none,Fail
+kms_plane_scaling at downscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling at downscale-with-rotation-factor-0-25,Fail
+kms_plane_scaling at upscale-with-modifier-20x20,Fail
+kms_plane_scaling at upscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling at upscale-with-pixel-format-20x20,Fail
+kms_plane_scaling at upscale-with-pixel-format-factor-0-25,Fail
+kms_plane_scaling at upscale-with-rotation-20x20,Fail
+kms_prime at basic-crc,Fail
+kms_properties at connector-properties-atomic,Crash
+kms_properties at connector-properties-legacy,Crash
+kms_properties at get_properties-sanity-atomic,Crash
+kms_properties at get_properties-sanity-non-atomic,Crash
+kms_setmode at invalid-clone-single-crtc,Crash
diff --git a/drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt b/drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt
new file mode 100644
index 000000000000..bc28fcc3eb47
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/rockchip-rk3288-flakes.txt
@@ -0,0 +1,8 @@
+kms_addfb_basic at addfb25-bad-modifier
+kms_cursor_crc at .*
+kms_invalid_mode at int-max-clock,Crash
+kms_pipe_crc_basic at .*
+kms_properties at connector-properties-atomic,Crash
+kms_properties at get_properties-sanity-atomic,Crash
+kms_properties at get_properties-sanity-non-atomic,Crash
+kms_rmfb at close-fd
diff --git a/drivers/gpu/drm/ci/xfails/rockchip-rk3288-skips.txt b/drivers/gpu/drm/ci/xfails/rockchip-rk3288-skips.txt
new file mode 100644
index 000000000000..f20c3574b75a
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/rockchip-rk3288-skips.txt
@@ -0,0 +1,52 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+
+# Too unstable, machine ends up hanging after lots of Oopses
+kms_cursor_legacy.*
+
+# Started hanging the machine on Linux 5.19-rc2:
+#
+# [IGT] kms_plane_lowres: executing
+# [IGT] kms_plane_lowres: starting subtest pipe-F-tiling-y
+# [IGT] kms_plane_lowres: exiting, ret=77
+# Console: switching to colour frame buffer device 170x48
+# rockchip-drm display-subsystem: [drm] *ERROR* flip_done timed out
+# rockchip-drm display-subsystem: [drm] *ERROR* [CRTC:35:crtc-0] commit wait timed out
+# BUG: spinlock bad magic on CPU#3, kms_plane_lowre/482
+# 8<--- cut here ---
+# Unable to handle kernel paging request at virtual address 7812078e
+# [7812078e] *pgd=00000000
+# Internal error: Oops: 5 [#1] SMP ARM
+# Modules linked in:
+# CPU: 3 PID: 482 Comm: kms_plane_lowre Tainted: G        W         5.19.0-rc2-323596-g00535de92171 #1
+# Hardware name: Rockchip (Device Tree)
+# Process kms_plane_lowre (pid: 482, stack limit = 0x1193ac2b)
+#  spin_dump from do_raw_spin_lock+0xa4/0xe8
+#  do_raw_spin_lock from wait_for_completion_timeout+0x2c/0x120
+#  wait_for_completion_timeout from drm_crtc_commit_wait+0x18/0x7c
+#  drm_crtc_commit_wait from drm_atomic_helper_wait_for_dependencies+0x44/0x168
+#  drm_atomic_helper_wait_for_dependencies from commit_tail+0x34/0x180
+#  commit_tail from drm_atomic_helper_commit+0x164/0x18c
+#  drm_atomic_helper_commit from drm_atomic_commit+0xac/0xe4
+#  drm_atomic_commit from drm_client_modeset_commit_atomic+0x23c/0x284
+#  drm_client_modeset_commit_atomic from drm_client_modeset_commit_locked+0x60/0x1c8
+#  drm_client_modeset_commit_locked from drm_client_modeset_commit+0x24/0x40
+#  drm_client_modeset_commit from drm_fbdev_client_restore+0x58/0x94
+#  drm_fbdev_client_restore from drm_client_dev_restore+0x70/0xbc
+#  drm_client_dev_restore from drm_release+0xf4/0x114
+#  drm_release from __fput+0x74/0x240
+#  __fput from task_work_run+0x84/0xb4
+#  task_work_run from do_exit+0x34c/0xa20
+#  do_exit from do_group_exit+0x34/0x98
+#  do_group_exit from __wake_up_parent+0x0/0x18
+# Code: e595c008 12843d19 03e00000 03093168 (15940508)
+# ---[ end trace 0000000000000000 ]---
+# note: kms_plane_lowre[482] exited with preempt_count 1
+# Fixing recursive fault but reboot is needed!
+kms_plane_lowres at pipe-F-tiling-y
+
+# Take too long, we have only two machines, and these are very flaky
+kms_cursor_crc.*
+
+# Machine is hanging in this test, so skip it
+kms_pipe_crc_basic at disable-crc-after-crtc
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/rockchip-rk3399-fails.txt b/drivers/gpu/drm/ci/xfails/rockchip-rk3399-fails.txt
new file mode 100644
index 000000000000..f210ecb08076
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/rockchip-rk3399-fails.txt
@@ -0,0 +1,39 @@
+kms_color at legacy-gamma,Fail
+kms_color at pipe-A-legacy-gamma,Fail
+kms_color at pipe-B-legacy-gamma,Fail
+kms_flip at basic-flip-vs-wf_vblank,Fail
+kms_flip at blocking-wf_vblank,Fail
+kms_flip at dpms-vs-vblank-race,Fail
+kms_flip at flip-vs-absolute-wf_vblank,Fail
+kms_flip at flip-vs-absolute-wf_vblank-interruptible,Fail
+kms_flip at flip-vs-blocking-wf-vblank,Fail
+kms_flip at flip-vs-panning,Fail
+kms_flip at flip-vs-panning-interruptible,Fail
+kms_flip at flip-vs-wf_vblank-interruptible,Fail
+kms_flip at modeset-vs-vblank-race,Fail
+kms_flip at modeset-vs-vblank-race-interruptible,Fail
+kms_flip at plain-flip-fb-recreate,Fail
+kms_flip at plain-flip-fb-recreate-interruptible,Fail
+kms_flip at plain-flip-ts-check,Fail
+kms_flip at plain-flip-ts-check-interruptible,Fail
+kms_flip at wf_vblank-ts-check,Fail
+kms_flip at wf_vblank-ts-check-interruptible,Fail
+kms_invalid_mode at int-max-clock,Fail
+kms_plane at pixel-format,Fail
+kms_plane at pixel-format-source-clamping,Fail
+kms_plane at plane-panning-bottom-right,Fail
+kms_plane at plane-panning-top-left,Fail
+kms_plane at plane-position-covered,Fail
+kms_plane_cursor at pipe-B-overlay-size-128,Fail
+kms_plane_cursor at pipe-B-overlay-size-256,Fail
+kms_plane_cursor at pipe-B-overlay-size-64,Fail
+kms_plane_cursor at pipe-B-primary-size-128,Fail
+kms_plane_cursor at pipe-B-primary-size-256,Fail
+kms_plane_cursor at pipe-B-primary-size-64,Fail
+kms_plane_cursor at pipe-B-viewport-size-128,Fail
+kms_plane_cursor at pipe-B-viewport-size-256,Fail
+kms_plane_cursor at pipe-B-viewport-size-64,Fail
+kms_plane_multiple at atomic-pipe-B-tiling-none,Fail
+kms_plane_multiple at tiling-none,Fail
+kms_prime at basic-crc,Fail
+kms_rmfb at close-fd,Fail
diff --git a/drivers/gpu/drm/ci/xfails/rockchip-rk3399-flakes.txt b/drivers/gpu/drm/ci/xfails/rockchip-rk3399-flakes.txt
new file mode 100644
index 000000000000..82a9c4329216
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/rockchip-rk3399-flakes.txt
@@ -0,0 +1,23 @@
+
+kms_cursor_crc at .*
+kms_flip at flip-vs-expired-vblank
+kms_flip at modeset-vs-vblank-race-interruptible,Fail
+kms_pipe_crc_basic at .*
+kms_pipe_crc_basic at compare-crc-sanitycheck-pipe-A
+kms_pipe_crc_basic at compare-crc-sanitycheck-pipe-B
+kms_plane at plane-position-hole
+kms_plane_multiple at atomic-pipe-A-tiling-none
+kms_plane_multiple at atomic-pipe-B-tiling-none
+kms_sequence at get-forked
+kms_sequence at get-forked-busy
+kms_setmode at basic
+kms_universal_plane at universal-plane-pipe-B-functional,UnexpectedPass
+kms_vblank at pipe-A-accuracy-idle
+kms_vblank at pipe-A-query-busy
+kms_vblank at pipe-A-query-forked-busy
+kms_vblank at pipe-A-wait-idle
+kms_vblank at pipe-B-accuracy-idle
+kms_vblank at pipe-B-query-busy
+kms_vblank at pipe-B-query-forked-busy
+kms_vblank at pipe-B-wait-idle
+kms_flip at dpms-vs-vblank-race-interruptible
\ No newline at end of file
diff --git a/drivers/gpu/drm/ci/xfails/rockchip-rk3399-skips.txt b/drivers/gpu/drm/ci/xfails/rockchip-rk3399-skips.txt
new file mode 100644
index 000000000000..10c3d81a919a
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/rockchip-rk3399-skips.txt
@@ -0,0 +1,5 @@
+# Suspend to RAM seems to be broken on this machine
+.*suspend.*
+
+# Too unstable, machine ends up hanging after lots of Oopses
+kms_cursor_legacy.*
diff --git a/drivers/gpu/drm/ci/xfails/virtio_gpu-none-fails.txt b/drivers/gpu/drm/ci/xfails/virtio_gpu-none-fails.txt
new file mode 100644
index 000000000000..9586b2339f6f
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/virtio_gpu-none-fails.txt
@@ -0,0 +1,38 @@
+kms_addfb_basic at addfb25-bad-modifier,Fail
+kms_addfb_basic at bad-pitch-65536,Fail
+kms_addfb_basic at bo-too-small,Fail
+kms_addfb_basic at size-max,Fail
+kms_addfb_basic at too-high,Fail
+kms_atomic_transition at plane-primary-toggle-with-vblank-wait,Fail
+kms_bw at linear-tiling-1-displays-1920x1080p,Fail
+kms_bw at linear-tiling-1-displays-2560x1440p,Fail
+kms_bw at linear-tiling-1-displays-3840x2160p,Fail
+kms_bw at linear-tiling-2-displays-1920x1080p,Fail
+kms_bw at linear-tiling-2-displays-2560x1440p,Fail
+kms_bw at linear-tiling-2-displays-3840x2160p,Fail
+kms_invalid_mode at int-max-clock,Fail
+kms_plane_scaling at downscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling at downscale-with-rotation-factor-0-25,Fail
+kms_plane_scaling at planes-upscale-20x20,Fail
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-25,Fail
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-5,Fail
+kms_plane_scaling at planes-upscale-20x20-downscale-factor-0-75,Fail
+kms_plane_scaling at upscale-with-modifier-20x20,Fail
+kms_plane_scaling at upscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling at upscale-with-pixel-format-20x20,Fail
+kms_plane_scaling at upscale-with-pixel-format-factor-0-25,Fail
+kms_plane_scaling at upscale-with-rotation-20x20,Fail
+kms_vblank at crtc-id,Fail
+kms_vblank at invalid,Fail
+kms_vblank at pipe-A-accuracy-idle,Fail
+kms_vblank at pipe-A-query-busy,Fail
+kms_vblank at pipe-A-query-forked,Fail
+kms_vblank at pipe-A-query-forked-busy,Fail
+kms_vblank at pipe-A-query-idle,Fail
+kms_vblank at pipe-A-ts-continuation-idle,Fail
+kms_vblank at pipe-A-ts-continuation-modeset,Fail
+kms_vblank at pipe-A-ts-continuation-suspend,Fail
+kms_vblank at pipe-A-wait-busy,Fail
+kms_vblank at pipe-A-wait-forked,Fail
+kms_vblank at pipe-A-wait-forked-busy,Fail
+kms_vblank at pipe-A-wait-idle,Fail
diff --git a/drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt b/drivers/gpu/drm/ci/xfails/virtio_gpu-none-flakes.txt
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/drivers/gpu/drm/ci/xfails/virtio_gpu-none-skips.txt b/drivers/gpu/drm/ci/xfails/virtio_gpu-none-skips.txt
new file mode 100644
index 000000000000..78be18174012
--- /dev/null
+++ b/drivers/gpu/drm/ci/xfails/virtio_gpu-none-skips.txt
@@ -0,0 +1,6 @@
+# Hits a "refcount_t: underflow; use-after-free" in virtio_gpu_fence_event_process
+# When run in a particular order with other tests
+kms_cursor_legacy.*
+
+# Job just hangs without any output
+kms_flip at flip-vs-suspend.*
\ No newline at end of file
diff --git a/test b/test
new file mode 100644
index 000000000000..e69de29bb2d1
-- 
2.34.1




More information about the Linux-mediatek mailing list