diff mbox series

[v10] drm: Add initial ci/ subdirectory

Message ID 20230720152737.102382-1-helen.koike@collabora.com (mailing list archive)
State New, archived
Headers show
Series [v10] drm: Add initial ci/ subdirectory | expand

Commit Message

Helen Mae Koike Fornazier July 20, 2023, 3:27 p.m. UTC
From: Tomeu Vizoso <tomeu.vizoso@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@collabora.com>
Signed-off-by: Helen Koike <helen.koike@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

Comments

Rob Clark July 27, 2023, 7:49 p.m. UTC | #1
On Thu, Jul 20, 2023 at 8:27 AM Helen Koike <helen.koike@collabora.com> wrote:
>
> From: Tomeu Vizoso <tomeu.vizoso@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@collabora.com>
> Signed-off-by: Helen Koike <helen.koike@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
>

[snip]

> 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

nit, I think this comment mostly doesn't make sense since everyone
would be using the same version of this gitlab-ci.yml, Ie. we can't
have msm and nouveau and intel and so on with there own conflicting
patches on gitlab-ci.yml

I did run into a bit of a chicken vs. egg problem with testing the "in
tree" version (compared to earlier versions which kept most of the yml
and scripts in a separate tree), is that it actually requires this
commit to exist in the branch you want to run CI on.  My earlier
workaround of pulling the drm/ci commit in via
${branchname}-external-fixes no longer works.

BR,
-R
Rob Clark July 27, 2023, 9:47 p.m. UTC | #2
On Thu, Jul 27, 2023 at 12:49 PM Rob Clark <robdclark@gmail.com> wrote:
>
> On Thu, Jul 20, 2023 at 8:27 AM Helen Koike <helen.koike@collabora.com> wrote:
> >
> > From: Tomeu Vizoso <tomeu.vizoso@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@collabora.com>
> > Signed-off-by: Helen Koike <helen.koike@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
> >
>
> [snip]
>
> > 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
>
> nit, I think this comment mostly doesn't make sense since everyone
> would be using the same version of this gitlab-ci.yml, Ie. we can't
> have msm and nouveau and intel and so on with there own conflicting
> patches on gitlab-ci.yml
>
> I did run into a bit of a chicken vs. egg problem with testing the "in
> tree" version (compared to earlier versions which kept most of the yml
> and scripts in a separate tree), is that it actually requires this
> commit to exist in the branch you want to run CI on.  My earlier
> workaround of pulling the drm/ci commit in via
> ${branchname}-external-fixes no longer works.

After unwinding some more gitlab repo settings that were for the
previous out-of-tree yml setup, I have this working.

Tested-by: Rob Clark <robdclark@gmail.com>
Acked-by: Rob Clark <robdclark@gmail.com>
Daniel Stone July 28, 2023, 5:26 a.m. UTC | #3
On Thu, 27 Jul 2023 at 22:47, Rob Clark <robdclark@gmail.com> wrote:
> > I did run into a bit of a chicken vs. egg problem with testing the "in
> > tree" version (compared to earlier versions which kept most of the yml
> > and scripts in a separate tree), is that it actually requires this
> > commit to exist in the branch you want to run CI on.  My earlier
> > workaround of pulling the drm/ci commit in via
> > ${branchname}-external-fixes no longer works.
>
> After unwinding some more gitlab repo settings that were for the
> previous out-of-tree yml setup, I have this working.
>
> Tested-by: Rob Clark <robdclark@gmail.com>
> Acked-by: Rob Clark <robdclark@gmail.com>

And it's also:
Acked-by: Daniel Stone <daniels@collabora.com>

It's been back and forth a few times by now and reviewed pretty
heavily by all the people who are across the CI details. I think the
next step is to answer all the workflow questions by actually getting
it into trees and using it in anger. There was some discussion about
whether this should come in from drm-misc, or the core DRM tree, or a
completely separate pull, but I'm not sure what the conclusion was ...
maintainers, thoughts?

Cheers,
Daniel
Maxime Ripard July 28, 2023, 8:48 a.m. UTC | #4
Hi,

On Fri, Jul 28, 2023 at 06:26:39AM +0100, Daniel Stone wrote:
> On Thu, 27 Jul 2023 at 22:47, Rob Clark <robdclark@gmail.com> wrote:
> > > I did run into a bit of a chicken vs. egg problem with testing the "in
> > > tree" version (compared to earlier versions which kept most of the yml
> > > and scripts in a separate tree), is that it actually requires this
> > > commit to exist in the branch you want to run CI on.  My earlier
> > > workaround of pulling the drm/ci commit in via
> > > ${branchname}-external-fixes no longer works.
> >
> > After unwinding some more gitlab repo settings that were for the
> > previous out-of-tree yml setup, I have this working.
> >
> > Tested-by: Rob Clark <robdclark@gmail.com>
> > Acked-by: Rob Clark <robdclark@gmail.com>
> 
> And it's also:
> Acked-by: Daniel Stone <daniels@collabora.com>
> 
> It's been back and forth a few times by now and reviewed pretty
> heavily by all the people who are across the CI details. I think the
> next step is to answer all the workflow questions by actually getting
> it into trees and using it in anger. There was some discussion about
> whether this should come in from drm-misc, or the core DRM tree, or a
> completely separate pull, but I'm not sure what the conclusion was ...
> maintainers, thoughts?

I'd be ok with merging it through drm-misc

Maxime
Maíra Canal July 28, 2023, 11:38 a.m. UTC | #5
Hi Helen,

Great to see this coming to the DRM!

Just wondering, any chance we could add a stage to perform tests on
VKMS? The main way of validating VKMS is through IGT tests, so I feel
it would be a perfect match to have VKMS as a stage on the CI. As a
generic KMS driver, VKMS is also great to validate changes on DRM core.

Another question, could we add V3D to the default arm and arm64 config?

Best Regards,
- Maíra

On 7/20/23 12:27, Helen Koike wrote:
> From: Tomeu Vizoso <tomeu.vizoso@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@collabora.com>
> Signed-off-by: Helen Koike <helen.koike@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@collabora.com>
> +L:	dri-devel@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@gmail.com>
>   L:	linux-media@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@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@getclient-simple
> +core_auth@getclient-master-drop
> +core_auth@basic-auth
> +core_auth@many-magics
> +core_getclient
> +core_getstats
> +core_getversion
> +core_setmaster_vs_auth
> +drm_read@invalid-buffer
> +drm_read@fault-buffer
> +drm_read@empty-block
> +drm_read@empty-nonblock
> +drm_read@short-buffer-block
> +drm_read@short-buffer-nonblock
> +drm_read@short-buffer-wakeup
> +gem_eio@throttle
> +gem_eio@create
> +gem_eio@create-ext
> +gem_eio@context-create
> +gem_eio@execbuf
> +gem_eio@banned
> +gem_eio@suspend
> +gem_eio@hibernate
> +gem_eio@in-flight-external
> +gem_eio@in-flight-suspend
> +gem_eio@reset-stress
> +gem_eio@unwedge-stress
> +gem_eio@wait-immediate
> +gem_eio@wait-wedge-immediate
> +gem_eio@in-flight-immediate
> +gem_eio@in-flight-contexts-immediate
> +gem_eio@in-flight-internal-immediate
> +gem_eio@wait-1us
> +gem_eio@wait-wedge-1us
> +gem_eio@in-flight-1us
> +gem_eio@in-flight-contexts-1us
> +gem_eio@in-flight-internal-1us
> +gem_eio@wait-10ms
> +gem_eio@wait-wedge-10ms
> +gem_eio@in-flight-10ms
> +gem_eio@in-flight-contexts-10ms
> +gem_eio@in-flight-internal-10ms
> +gem_eio@kms
> +kms_3d
> +kms_addfb_basic@unused-handle
> +kms_addfb_basic@unused-pitches
> +kms_addfb_basic@unused-offsets
> +kms_addfb_basic@unused-modifier
> +kms_addfb_basic@clobberred-modifier
> +kms_addfb_basic@invalid-smem-bo-on-discrete
> +kms_addfb_basic@legacy-format
> +kms_addfb_basic@no-handle
> +kms_addfb_basic@basic
> +kms_addfb_basic@bad-pitch-0
> +kms_addfb_basic@bad-pitch-32
> +kms_addfb_basic@bad-pitch-63
> +kms_addfb_basic@bad-pitch-128
> +kms_addfb_basic@bad-pitch-256
> +kms_addfb_basic@bad-pitch-1024
> +kms_addfb_basic@bad-pitch-999
> +kms_addfb_basic@bad-pitch-65536
> +kms_addfb_basic@invalid-get-prop-any
> +kms_addfb_basic@invalid-get-prop
> +kms_addfb_basic@invalid-set-prop-any
> +kms_addfb_basic@invalid-set-prop
> +kms_addfb_basic@master-rmfb
> +kms_addfb_basic@addfb25-modifier-no-flag
> +kms_addfb_basic@addfb25-bad-modifier
> +kms_addfb_basic@addfb25-x-tiled-mismatch-legacy
> +kms_addfb_basic@addfb25-x-tiled-legacy
> +kms_addfb_basic@addfb25-framebuffer-vs-set-tiling
> +kms_addfb_basic@basic-x-tiled-legacy
> +kms_addfb_basic@framebuffer-vs-set-tiling
> +kms_addfb_basic@tile-pitch-mismatch
> +kms_addfb_basic@basic-y-tiled-legacy
> +kms_addfb_basic@size-max
> +kms_addfb_basic@too-wide
> +kms_addfb_basic@too-high
> +kms_addfb_basic@bo-too-small
> +kms_addfb_basic@small-bo
> +kms_addfb_basic@bo-too-small-due-to-tiling
> +kms_addfb_basic@addfb25-y-tiled-legacy
> +kms_addfb_basic@addfb25-yf-tiled-legacy
> +kms_addfb_basic@addfb25-y-tiled-small-legacy
> +kms_addfb_basic@addfb25-4-tiled
> +kms_async_flips@async-flip-with-page-flip-events
> +kms_async_flips@alternate-sync-async-flip
> +kms_async_flips@test-time-stamp
> +kms_async_flips@test-cursor
> +kms_async_flips@invalid-async-flip
> +kms_async_flips@crc
> +kms_atomic@plane-overlay-legacy
> +kms_atomic@plane-primary-legacy
> +kms_atomic@plane-primary-overlay-mutable-zpos
> +kms_atomic@plane-immutable-zpos
> +kms_atomic@test-only
> +kms_atomic@plane-cursor-legacy
> +kms_atomic@plane-invalid-params
> +kms_atomic@plane-invalid-params-fence
> +kms_atomic@crtc-invalid-params
> +kms_atomic@crtc-invalid-params-fence
> +kms_atomic@atomic-invalid-params
> +kms_atomic@atomic_plane_damage
> +kms_atomic_interruptible@legacy-setmode
> +kms_atomic_interruptible@atomic-setmode
> +kms_atomic_interruptible@legacy-dpms
> +kms_atomic_interruptible@legacy-pageflip
> +kms_atomic_interruptible@legacy-cursor
> +kms_atomic_interruptible@universal-setplane-primary
> +kms_atomic_interruptible@universal-setplane-cursor
> +kms_atomic_transition@plane-primary-toggle-with-vblank-wait
> +kms_atomic_transition@plane-all-transition
> +kms_atomic_transition@plane-all-transition-fencing
> +kms_atomic_transition@plane-all-transition-nonblocking
> +kms_atomic_transition@plane-all-transition-nonblocking-fencing
> +kms_atomic_transition@plane-use-after-nonblocking-unbind
> +kms_atomic_transition@plane-use-after-nonblocking-unbind-fencing
> +kms_atomic_transition@plane-all-modeset-transition
> +kms_atomic_transition@plane-all-modeset-transition-fencing
> +kms_atomic_transition@plane-all-modeset-transition-internal-panels
> +kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels
> +kms_atomic_transition@plane-toggle-modeset-transition
> +kms_atomic_transition@modeset-transition
> +kms_atomic_transition@modeset-transition-fencing
> +kms_atomic_transition@modeset-transition-nonblocking
> +kms_atomic_transition@modeset-transition-nonblocking-fencing
> +kms_big_fb@x-tiled-addfb-size-overflow
> +kms_big_fb@y-tiled-addfb-size-overflow
> +kms_big_fb@yf-tiled-addfb-size-overflow
> +kms_big_fb@4-tiled-addfb-size-overflow
> +kms_big_fb@x-tiled-addfb-size-offset-overflow
> +kms_big_fb@y-tiled-addfb-size-offset-overflow
> +kms_big_fb@yf-tiled-addfb-size-offset-overflow
> +kms_big_fb@4-tiled-addfb-size-offset-overflow
> +kms_big_fb@linear-addfb
> +kms_big_fb@x-tiled-addfb
> +kms_big_fb@y-tiled-addfb
> +kms_big_fb@yf-tiled-addfb
> +kms_big_fb@4-tiled-addfb
> +kms_big_fb@linear-8bpp-rotate-0
> +kms_big_fb@linear-8bpp-rotate-90
> +kms_big_fb@linear-8bpp-rotate-180
> +kms_big_fb@linear-8bpp-rotate-270
> +kms_big_fb@linear-16bpp-rotate-0
> +kms_big_fb@linear-16bpp-rotate-90
> +kms_big_fb@linear-16bpp-rotate-180
> +kms_big_fb@linear-16bpp-rotate-270
> +kms_big_fb@linear-32bpp-rotate-0
> +kms_big_fb@linear-32bpp-rotate-90
> +kms_big_fb@linear-32bpp-rotate-180
> +kms_big_fb@linear-32bpp-rotate-270
> +kms_big_fb@linear-64bpp-rotate-0
> +kms_big_fb@linear-64bpp-rotate-90
> +kms_big_fb@linear-64bpp-rotate-180
> +kms_big_fb@linear-64bpp-rotate-270
> +kms_big_fb@x-tiled-8bpp-rotate-0
> +kms_big_fb@x-tiled-8bpp-rotate-90
> +kms_big_fb@x-tiled-8bpp-rotate-180
> +kms_big_fb@x-tiled-8bpp-rotate-270
> +kms_big_fb@x-tiled-16bpp-rotate-0
> +kms_big_fb@x-tiled-16bpp-rotate-90
> +kms_big_fb@x-tiled-16bpp-rotate-180
> +kms_big_fb@x-tiled-16bpp-rotate-270
> +kms_big_fb@x-tiled-32bpp-rotate-0
> +kms_big_fb@x-tiled-32bpp-rotate-90
> +kms_big_fb@x-tiled-32bpp-rotate-180
> +kms_big_fb@x-tiled-32bpp-rotate-270
> +kms_big_fb@x-tiled-64bpp-rotate-0
> +kms_big_fb@x-tiled-64bpp-rotate-90
> +kms_big_fb@x-tiled-64bpp-rotate-180
> +kms_big_fb@x-tiled-64bpp-rotate-270
> +kms_big_fb@y-tiled-8bpp-rotate-0
> +kms_big_fb@y-tiled-8bpp-rotate-90
> +kms_big_fb@y-tiled-8bpp-rotate-180
> +kms_big_fb@y-tiled-8bpp-rotate-270
> +kms_big_fb@y-tiled-16bpp-rotate-0
> +kms_big_fb@y-tiled-16bpp-rotate-90
> +kms_big_fb@y-tiled-16bpp-rotate-180
> +kms_big_fb@y-tiled-16bpp-rotate-270
> +kms_big_fb@y-tiled-32bpp-rotate-0
> +kms_big_fb@y-tiled-32bpp-rotate-90
> +kms_big_fb@y-tiled-32bpp-rotate-180
> +kms_big_fb@y-tiled-32bpp-rotate-270
> +kms_big_fb@y-tiled-64bpp-rotate-0
> +kms_big_fb@y-tiled-64bpp-rotate-90
> +kms_big_fb@y-tiled-64bpp-rotate-180
> +kms_big_fb@y-tiled-64bpp-rotate-270
> +kms_big_fb@yf-tiled-8bpp-rotate-0
> +kms_big_fb@yf-tiled-8bpp-rotate-90
> +kms_big_fb@yf-tiled-8bpp-rotate-180
> +kms_big_fb@yf-tiled-8bpp-rotate-270
> +kms_big_fb@yf-tiled-16bpp-rotate-0
> +kms_big_fb@yf-tiled-16bpp-rotate-90
> +kms_big_fb@yf-tiled-16bpp-rotate-180
> +kms_big_fb@yf-tiled-16bpp-rotate-270
> +kms_big_fb@yf-tiled-32bpp-rotate-0
> +kms_big_fb@yf-tiled-32bpp-rotate-90
> +kms_big_fb@yf-tiled-32bpp-rotate-180
> +kms_big_fb@yf-tiled-32bpp-rotate-270
> +kms_big_fb@yf-tiled-64bpp-rotate-0
> +kms_big_fb@yf-tiled-64bpp-rotate-90
> +kms_big_fb@yf-tiled-64bpp-rotate-180
> +kms_big_fb@yf-tiled-64bpp-rotate-270
> +kms_big_fb@4-tiled-8bpp-rotate-0
> +kms_big_fb@4-tiled-8bpp-rotate-90
> +kms_big_fb@4-tiled-8bpp-rotate-180
> +kms_big_fb@4-tiled-8bpp-rotate-270
> +kms_big_fb@4-tiled-16bpp-rotate-0
> +kms_big_fb@4-tiled-16bpp-rotate-90
> +kms_big_fb@4-tiled-16bpp-rotate-180
> +kms_big_fb@4-tiled-16bpp-rotate-270
> +kms_big_fb@4-tiled-32bpp-rotate-0
> +kms_big_fb@4-tiled-32bpp-rotate-90
> +kms_big_fb@4-tiled-32bpp-rotate-180
> +kms_big_fb@4-tiled-32bpp-rotate-270
> +kms_big_fb@4-tiled-64bpp-rotate-0
> +kms_big_fb@4-tiled-64bpp-rotate-90
> +kms_big_fb@4-tiled-64bpp-rotate-180
> +kms_big_fb@4-tiled-64bpp-rotate-270
> +kms_big_fb@linear-max-hw-stride-32bpp-rotate-0
> +kms_big_fb@linear-max-hw-stride-32bpp-rotate-180
> +kms_big_fb@linear-max-hw-stride-64bpp-rotate-0
> +kms_big_fb@linear-max-hw-stride-64bpp-rotate-180
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip
> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip
> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip
> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip
> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip
> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip
> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip
> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip
> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
> +kms_big_joiner@basic
> +kms_big_joiner@invalid-modeset
> +kms_big_joiner@2x-modeset
> +kms_busy@basic
> +kms_busy@basic-hang
> +kms_busy@extended-pageflip-modeset-hang-oldfb
> +kms_busy@extended-pageflip-hang-oldfb
> +kms_busy@extended-pageflip-hang-newfb
> +kms_busy@extended-modeset-hang-oldfb
> +kms_busy@extended-modeset-hang-newfb
> +kms_busy@extended-modeset-hang-oldfb-with-reset
> +kms_busy@extended-modeset-hang-newfb-with-reset
> +kms_bw@linear-tiling-1-displays-1920x1080p
> +kms_bw@linear-tiling-1-displays-2560x1440p
> +kms_bw@linear-tiling-1-displays-3840x2160p
> +kms_bw@linear-tiling-2-displays-1920x1080p
> +kms_bw@linear-tiling-2-displays-2560x1440p
> +kms_bw@linear-tiling-2-displays-3840x2160p
> +kms_bw@linear-tiling-3-displays-1920x1080p
> +kms_bw@linear-tiling-3-displays-2560x1440p
> +kms_bw@linear-tiling-3-displays-3840x2160p
> +kms_bw@linear-tiling-4-displays-1920x1080p
> +kms_bw@linear-tiling-4-displays-2560x1440p
> +kms_bw@linear-tiling-4-displays-3840x2160p
> +kms_bw@linear-tiling-5-displays-1920x1080p
> +kms_bw@linear-tiling-5-displays-2560x1440p
> +kms_bw@linear-tiling-5-displays-3840x2160p
> +kms_bw@linear-tiling-6-displays-1920x1080p
> +kms_bw@linear-tiling-6-displays-2560x1440p
> +kms_bw@linear-tiling-6-displays-3840x2160p
> +kms_bw@linear-tiling-7-displays-1920x1080p
> +kms_bw@linear-tiling-7-displays-2560x1440p
> +kms_bw@linear-tiling-7-displays-3840x2160p
> +kms_bw@linear-tiling-8-displays-1920x1080p
> +kms_bw@linear-tiling-8-displays-2560x1440p
> +kms_bw@linear-tiling-8-displays-3840x2160p
> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-A-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-A-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-A-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-A-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-A-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-A-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-A-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-B-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-B-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-B-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-B-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-B-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-B-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-B-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-C-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-C-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-C-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-C-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-C-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-C-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-C-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-D-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-D-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-D-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-D-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-D-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-D-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-D-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-E-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-E-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-E-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-E-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-E-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-E-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-E-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-F-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-F-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-F-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-F-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-F-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-F-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-F-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-G-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-G-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-G-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-G-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-G-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-G-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-G-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_ccs
> +kms_ccs@pipe-H-bad-pixel-format-yf_tiled_ccs
> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_ccs
> +kms_ccs@pipe-H-bad-rotation-90-yf_tiled_ccs
> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_ccs
> +kms_ccs@pipe-H-crc-primary-basic-yf_tiled_ccs
> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-yf_tiled_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-random-ccs-data-y_tiled_ccs
> +kms_ccs@pipe-H-random-ccs-data-yf_tiled_ccs
> +kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_ccs
> +kms_ccs@pipe-H-missing-ccs-buffer-yf_tiled_ccs
> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_ccs
> +kms_ccs@pipe-H-ccs-on-another-bo-yf_tiled_ccs
> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_ccs
> +kms_ccs@pipe-H-bad-aux-stride-yf_tiled_ccs
> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-yf_tiled_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
> +kms_cdclk@plane-scaling
> +kms_cdclk@mode-transition
> +kms_cdclk@mode-transition-all-outputs
> +kms_color@degamma
> +kms_color@gamma
> +kms_color@legacy-gamma
> +kms_color@legacy-gamma-reset
> +kms_color@ctm-red-to-blue
> +kms_color@ctm-green-to-red
> +kms_color@ctm-blue-to-red
> +kms_color@ctm-max
> +kms_color@ctm-negative
> +kms_color@ctm-0-25
> +kms_color@ctm-0-50
> +kms_color@ctm-0-75
> +kms_color@ctm-signed
> +kms_color@deep-color
> +kms_color@invalid-gamma-lut-sizes
> +kms_color@invalid-degamma-lut-sizes
> +kms_color@invalid-ctm-matrix-sizes
> +kms_concurrent@pipe-A
> +kms_concurrent@pipe-B
> +kms_concurrent@pipe-C
> +kms_concurrent@pipe-D
> +kms_concurrent@pipe-E
> +kms_concurrent@pipe-F
> +kms_concurrent@pipe-G
> +kms_concurrent@pipe-H
> +kms_content_protection@legacy
> +kms_content_protection@atomic
> +kms_content_protection@atomic-dpms
> +kms_content_protection@LIC
> +kms_content_protection@type1
> +kms_content_protection@mei_interface
> +kms_content_protection@content_type_change
> +kms_content_protection@uevent
> +kms_content_protection@srm
> +kms_content_protection@dp-mst-type-0
> +kms_content_protection@dp-mst-lic-type-0
> +kms_content_protection@dp-mst-type-1
> +kms_content_protection@dp-mst-lic-type-1
> +kms_cursor_crc@cursor-size-change
> +kms_cursor_crc@cursor-alpha-opaque
> +kms_cursor_crc@cursor-alpha-transparent
> +kms_cursor_crc@cursor-dpms
> +kms_cursor_crc@cursor-suspend
> +kms_cursor_crc@cursor-onscreen-32x32
> +kms_cursor_crc@cursor-offscreen-32x32
> +kms_cursor_crc@cursor-sliding-32x32
> +kms_cursor_crc@cursor-random-32x32
> +kms_cursor_crc@cursor-rapid-movement-32x32
> +kms_cursor_crc@cursor-onscreen-32x10
> +kms_cursor_crc@cursor-offscreen-32x10
> +kms_cursor_crc@cursor-sliding-32x10
> +kms_cursor_crc@cursor-random-32x10
> +kms_cursor_crc@cursor-rapid-movement-32x10
> +kms_cursor_crc@cursor-onscreen-64x64
> +kms_cursor_crc@cursor-offscreen-64x64
> +kms_cursor_crc@cursor-sliding-64x64
> +kms_cursor_crc@cursor-random-64x64
> +kms_cursor_crc@cursor-rapid-movement-64x64
> +kms_cursor_crc@cursor-onscreen-64x21
> +kms_cursor_crc@cursor-offscreen-64x21
> +kms_cursor_crc@cursor-sliding-64x21
> +kms_cursor_crc@cursor-random-64x21
> +kms_cursor_crc@cursor-rapid-movement-64x21
> +kms_cursor_crc@cursor-onscreen-128x128
> +kms_cursor_crc@cursor-offscreen-128x128
> +kms_cursor_crc@cursor-sliding-128x128
> +kms_cursor_crc@cursor-random-128x128
> +kms_cursor_crc@cursor-rapid-movement-128x128
> +kms_cursor_crc@cursor-onscreen-128x42
> +kms_cursor_crc@cursor-offscreen-128x42
> +kms_cursor_crc@cursor-sliding-128x42
> +kms_cursor_crc@cursor-random-128x42
> +kms_cursor_crc@cursor-rapid-movement-128x42
> +kms_cursor_crc@cursor-onscreen-256x256
> +kms_cursor_crc@cursor-offscreen-256x256
> +kms_cursor_crc@cursor-sliding-256x256
> +kms_cursor_crc@cursor-random-256x256
> +kms_cursor_crc@cursor-rapid-movement-256x256
> +kms_cursor_crc@cursor-onscreen-256x85
> +kms_cursor_crc@cursor-offscreen-256x85
> +kms_cursor_crc@cursor-sliding-256x85
> +kms_cursor_crc@cursor-random-256x85
> +kms_cursor_crc@cursor-rapid-movement-256x85
> +kms_cursor_crc@cursor-onscreen-512x512
> +kms_cursor_crc@cursor-offscreen-512x512
> +kms_cursor_crc@cursor-sliding-512x512
> +kms_cursor_crc@cursor-random-512x512
> +kms_cursor_crc@cursor-rapid-movement-512x512
> +kms_cursor_crc@cursor-onscreen-512x170
> +kms_cursor_crc@cursor-offscreen-512x170
> +kms_cursor_crc@cursor-sliding-512x170
> +kms_cursor_crc@cursor-random-512x170
> +kms_cursor_crc@cursor-rapid-movement-512x170
> +kms_cursor_crc@cursor-onscreen-max-size
> +kms_cursor_crc@cursor-offscreen-max-size
> +kms_cursor_crc@cursor-sliding-max-size
> +kms_cursor_crc@cursor-random-max-size
> +kms_cursor_crc@cursor-rapid-movement-max-size
> +kms_cursor_legacy@single-bo
> +kms_cursor_legacy@single-move
> +kms_cursor_legacy@forked-bo
> +kms_cursor_legacy@forked-move
> +kms_cursor_legacy@torture-bo
> +kms_cursor_legacy@torture-move
> +kms_cursor_legacy@nonblocking-modeset-vs-cursor-atomic
> +kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic
> +kms_cursor_legacy@2x-flip-vs-cursor-legacy
> +kms_cursor_legacy@2x-flip-vs-cursor-atomic
> +kms_cursor_legacy@2x-long-flip-vs-cursor-legacy
> +kms_cursor_legacy@2x-long-flip-vs-cursor-atomic
> +kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic
> +kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic
> +kms_cursor_legacy@2x-cursor-vs-flip-legacy
> +kms_cursor_legacy@2x-long-cursor-vs-flip-legacy
> +kms_cursor_legacy@2x-cursor-vs-flip-atomic
> +kms_cursor_legacy@2x-long-cursor-vs-flip-atomic
> +kms_cursor_legacy@flip-vs-cursor-crc-legacy
> +kms_cursor_legacy@flip-vs-cursor-crc-atomic
> +kms_cursor_legacy@flip-vs-cursor-busy-crc-legacy
> +kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic
> +kms_cursor_legacy@basic-flip-before-cursor-legacy
> +kms_cursor_legacy@basic-busy-flip-before-cursor-legacy
> +kms_cursor_legacy@basic-flip-after-cursor-legacy
> +kms_cursor_legacy@basic-flip-before-cursor-varying-size
> +kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size
> +kms_cursor_legacy@basic-flip-after-cursor-varying-size
> +kms_cursor_legacy@short-flip-before-cursor-toggle
> +kms_cursor_legacy@short-busy-flip-before-cursor-toggle
> +kms_cursor_legacy@short-flip-after-cursor-toggle
> +kms_cursor_legacy@basic-flip-before-cursor-atomic
> +kms_cursor_legacy@basic-busy-flip-before-cursor-atomic
> +kms_cursor_legacy@basic-flip-after-cursor-atomic
> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions
> +kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions
> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions
> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size
> +kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size
> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size
> +kms_cursor_legacy@cursor-vs-flip-legacy
> +kms_cursor_legacy@flip-vs-cursor-legacy
> +kms_cursor_legacy@cursorA-vs-flipA-legacy
> +kms_cursor_legacy@cursorA-vs-flipB-legacy
> +kms_cursor_legacy@cursorB-vs-flipA-legacy
> +kms_cursor_legacy@cursorB-vs-flipB-legacy
> +kms_cursor_legacy@cursor-vs-flip-varying-size
> +kms_cursor_legacy@flip-vs-cursor-varying-size
> +kms_cursor_legacy@cursorA-vs-flipA-varying-size
> +kms_cursor_legacy@cursorA-vs-flipB-varying-size
> +kms_cursor_legacy@cursorB-vs-flipA-varying-size
> +kms_cursor_legacy@cursorB-vs-flipB-varying-size
> +kms_cursor_legacy@cursor-vs-flip-toggle
> +kms_cursor_legacy@flip-vs-cursor-toggle
> +kms_cursor_legacy@cursorA-vs-flipA-toggle
> +kms_cursor_legacy@cursorA-vs-flipB-toggle
> +kms_cursor_legacy@cursorB-vs-flipA-toggle
> +kms_cursor_legacy@cursorB-vs-flipB-toggle
> +kms_cursor_legacy@cursor-vs-flip-atomic
> +kms_cursor_legacy@flip-vs-cursor-atomic
> +kms_cursor_legacy@cursorA-vs-flipA-atomic
> +kms_cursor_legacy@cursorA-vs-flipB-atomic
> +kms_cursor_legacy@cursorB-vs-flipA-atomic
> +kms_cursor_legacy@cursorB-vs-flipB-atomic
> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions
> +kms_cursor_legacy@flip-vs-cursor-atomic-transitions
> +kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions
> +kms_cursor_legacy@cursorA-vs-flipB-atomic-transitions
> +kms_cursor_legacy@cursorB-vs-flipA-atomic-transitions
> +kms_cursor_legacy@cursorB-vs-flipB-atomic-transitions
> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size
> +kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size
> +kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions-varying-size
> +kms_cursor_legacy@cursorA-vs-flipB-atomic-transitions-varying-size
> +kms_cursor_legacy@cursorB-vs-flipA-atomic-transitions-varying-size
> +kms_cursor_legacy@cursorB-vs-flipB-atomic-transitions-varying-size
> +kms_dither@FB-8BPC-Vs-Panel-6BPC
> +kms_dither@FB-8BPC-Vs-Panel-8BPC
> +kms_dp_aux_dev
> +kms_tiled_display@basic-test-pattern
> +kms_tiled_display@basic-test-pattern-with-chamelium
> +kms_draw_crc@draw-method-mmap-cpu
> +kms_draw_crc@draw-method-mmap-gtt
> +kms_draw_crc@draw-method-mmap-wc
> +kms_draw_crc@draw-method-pwrite
> +kms_draw_crc@draw-method-blt
> +kms_draw_crc@draw-method-render
> +kms_draw_crc@fill-fb
> +kms_dsc@dsc-basic
> +kms_dsc@dsc-with-formats
> +kms_dsc@dsc-with-bpc
> +kms_dsc@dsc-with-bpc-formats
> +kms_dsc@dsc-with-output-formats
> +kms_fbcon_fbt@fbc
> +kms_fbcon_fbt@psr
> +kms_fbcon_fbt@fbc-suspend
> +kms_fbcon_fbt@psr-suspend
> +kms_fence_pin_leak
> +kms_flip@nonblocking-read
> +kms_flip@wf_vblank-ts-check
> +kms_flip@2x-wf_vblank-ts-check
> +kms_flip@blocking-wf_vblank
> +kms_flip@2x-blocking-wf_vblank
> +kms_flip@absolute-wf_vblank
> +kms_flip@2x-absolute-wf_vblank
> +kms_flip@blocking-absolute-wf_vblank
> +kms_flip@2x-blocking-absolute-wf_vblank
> +kms_flip@basic-plain-flip
> +kms_flip@2x-plain-flip
> +kms_flip@busy-flip
> +kms_flip@2x-busy-flip
> +kms_flip@flip-vs-fences
> +kms_flip@2x-flip-vs-fences
> +kms_flip@plain-flip-ts-check
> +kms_flip@2x-plain-flip-ts-check
> +kms_flip@plain-flip-fb-recreate
> +kms_flip@2x-plain-flip-fb-recreate
> +kms_flip@flip-vs-rmfb
> +kms_flip@2x-flip-vs-rmfb
> +kms_flip@basic-flip-vs-dpms
> +kms_flip@2x-flip-vs-dpms
> +kms_flip@flip-vs-panning
> +kms_flip@2x-flip-vs-panning
> +kms_flip@basic-flip-vs-modeset
> +kms_flip@2x-flip-vs-modeset
> +kms_flip@flip-vs-expired-vblank
> +kms_flip@2x-flip-vs-expired-vblank
> +kms_flip@flip-vs-absolute-wf_vblank
> +kms_flip@2x-flip-vs-absolute-wf_vblank
> +kms_flip@basic-flip-vs-wf_vblank
> +kms_flip@2x-flip-vs-wf_vblank
> +kms_flip@flip-vs-blocking-wf-vblank
> +kms_flip@2x-flip-vs-blocking-wf-vblank
> +kms_flip@flip-vs-modeset-vs-hang
> +kms_flip@2x-flip-vs-modeset-vs-hang
> +kms_flip@flip-vs-panning-vs-hang
> +kms_flip@2x-flip-vs-panning-vs-hang
> +kms_flip@flip-vs-dpms-off-vs-modeset
> +kms_flip@2x-flip-vs-dpms-off-vs-modeset
> +kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset
> +kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset
> +kms_flip@dpms-off-confusion
> +kms_flip@nonexisting-fb
> +kms_flip@2x-nonexisting-fb
> +kms_flip@dpms-vs-vblank-race
> +kms_flip@2x-dpms-vs-vblank-race
> +kms_flip@modeset-vs-vblank-race
> +kms_flip@2x-modeset-vs-vblank-race
> +kms_flip@bo-too-big
> +kms_flip@flip-vs-suspend
> +kms_flip@2x-flip-vs-suspend
> +kms_flip@wf_vblank-ts-check-interruptible
> +kms_flip@2x-wf_vblank-ts-check-interruptible
> +kms_flip@absolute-wf_vblank-interruptible
> +kms_flip@2x-absolute-wf_vblank-interruptible
> +kms_flip@blocking-absolute-wf_vblank-interruptible
> +kms_flip@2x-blocking-absolute-wf_vblank-interruptible
> +kms_flip@plain-flip-interruptible
> +kms_flip@2x-plain-flip-interruptible
> +kms_flip@flip-vs-fences-interruptible
> +kms_flip@2x-flip-vs-fences-interruptible
> +kms_flip@plain-flip-ts-check-interruptible
> +kms_flip@2x-plain-flip-ts-check-interruptible
> +kms_flip@plain-flip-fb-recreate-interruptible
> +kms_flip@2x-plain-flip-fb-recreate-interruptible
> +kms_flip@flip-vs-rmfb-interruptible
> +kms_flip@2x-flip-vs-rmfb-interruptible
> +kms_flip@flip-vs-panning-interruptible
> +kms_flip@2x-flip-vs-panning-interruptible
> +kms_flip@flip-vs-expired-vblank-interruptible
> +kms_flip@2x-flip-vs-expired-vblank-interruptible
> +kms_flip@flip-vs-absolute-wf_vblank-interruptible
> +kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible
> +kms_flip@flip-vs-wf_vblank-interruptible
> +kms_flip@2x-flip-vs-wf_vblank-interruptible
> +kms_flip@flip-vs-dpms-off-vs-modeset-interruptible
> +kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible
> +kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
> +kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
> +kms_flip@dpms-off-confusion-interruptible
> +kms_flip@nonexisting-fb-interruptible
> +kms_flip@2x-nonexisting-fb-interruptible
> +kms_flip@dpms-vs-vblank-race-interruptible
> +kms_flip@2x-dpms-vs-vblank-race-interruptible
> +kms_flip@modeset-vs-vblank-race-interruptible
> +kms_flip@2x-modeset-vs-vblank-race-interruptible
> +kms_flip@bo-too-big-interruptible
> +kms_flip@flip-vs-suspend-interruptible
> +kms_flip@2x-flip-vs-suspend-interruptible
> +kms_flip_event_leak@basic
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling
> +kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling
> +kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
> +kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling
> +kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
> +kms_force_connector_basic@force-load-detect
> +kms_force_connector_basic@force-connector-state
> +kms_force_connector_basic@force-edid
> +kms_force_connector_basic@prune-stale-modes
> +kms_frontbuffer_tracking@fbc-1p-rte
> +kms_frontbuffer_tracking@fbc-2p-rte
> +kms_frontbuffer_tracking@psr-1p-rte
> +kms_frontbuffer_tracking@psr-2p-rte
> +kms_frontbuffer_tracking@fbcpsr-1p-rte
> +kms_frontbuffer_tracking@fbcpsr-2p-rte
> +kms_frontbuffer_tracking@drrs-1p-rte
> +kms_frontbuffer_tracking@drrs-2p-rte
> +kms_frontbuffer_tracking@fbcdrrs-1p-rte
> +kms_frontbuffer_tracking@fbcdrrs-2p-rte
> +kms_frontbuffer_tracking@psrdrrs-1p-rte
> +kms_frontbuffer_tracking@psrdrrs-2p-rte
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-rte
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-rte
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-render
> +kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-plflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-pgflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-msflip-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-plflip-blt
> +kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-1p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-1p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-2p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-indfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-shrfb-fliptrack-mmap-gtt
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move
> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-move
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-move
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-move
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-move
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-move
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-move
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-onoff
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-move
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-onoff
> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen
> +kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@psr-2p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@drrs-1p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbcdrrs-1p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbcdrrs-2p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@psrdrrs-1p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@psrdrrs-2p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-pri-indfb-multidraw
> +kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt
> +kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-farfromfence-mmap-gtt
> +kms_frontbuffer_tracking@drrs-farfromfence-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-farfromfence-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-farfromfence-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-farfromfence-mmap-gtt
> +kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc
> +kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite
> +kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite
> +kms_frontbuffer_tracking@fbc-rgb565-draw-blt
> +kms_frontbuffer_tracking@fbc-rgb101010-draw-blt
> +kms_frontbuffer_tracking@fbc-rgb565-draw-render
> +kms_frontbuffer_tracking@fbc-rgb101010-draw-render
> +kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu
> +kms_frontbuffer_tracking@psr-rgb565-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt
> +kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc
> +kms_frontbuffer_tracking@psr-rgb565-draw-pwrite
> +kms_frontbuffer_tracking@psr-rgb101010-draw-pwrite
> +kms_frontbuffer_tracking@psr-rgb565-draw-blt
> +kms_frontbuffer_tracking@psr-rgb101010-draw-blt
> +kms_frontbuffer_tracking@psr-rgb565-draw-render
> +kms_frontbuffer_tracking@psr-rgb101010-draw-render
> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt
> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render
> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render
> +kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-cpu
> +kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-gtt
> +kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-wc
> +kms_frontbuffer_tracking@drrs-rgb565-draw-pwrite
> +kms_frontbuffer_tracking@drrs-rgb101010-draw-pwrite
> +kms_frontbuffer_tracking@drrs-rgb565-draw-blt
> +kms_frontbuffer_tracking@drrs-rgb101010-draw-blt
> +kms_frontbuffer_tracking@drrs-rgb565-draw-render
> +kms_frontbuffer_tracking@drrs-rgb101010-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-pwrite
> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt
> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-render
> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-render
> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-cpu
> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-gtt
> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-wc
> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-pwrite
> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-blt
> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-render
> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-cpu
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-gtt
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-wc
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-pwrite
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-blt
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-render
> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-render
> +kms_frontbuffer_tracking@fbc-indfb-scaledprimary
> +kms_frontbuffer_tracking@fbc-shrfb-scaledprimary
> +kms_frontbuffer_tracking@psr-indfb-scaledprimary
> +kms_frontbuffer_tracking@psr-shrfb-scaledprimary
> +kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary
> +kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary
> +kms_frontbuffer_tracking@drrs-indfb-scaledprimary
> +kms_frontbuffer_tracking@drrs-shrfb-scaledprimary
> +kms_frontbuffer_tracking@fbcdrrs-indfb-scaledprimary
> +kms_frontbuffer_tracking@fbcdrrs-shrfb-scaledprimary
> +kms_frontbuffer_tracking@psrdrrs-indfb-scaledprimary
> +kms_frontbuffer_tracking@psrdrrs-shrfb-scaledprimary
> +kms_frontbuffer_tracking@fbcpsrdrrs-indfb-scaledprimary
> +kms_frontbuffer_tracking@fbcpsrdrrs-shrfb-scaledprimary
> +kms_frontbuffer_tracking@fbc-modesetfrombusy
> +kms_frontbuffer_tracking@fbc-badstride
> +kms_frontbuffer_tracking@fbc-stridechange
> +kms_frontbuffer_tracking@fbc-tiling-linear
> +kms_frontbuffer_tracking@fbc-tiling-y
> +kms_frontbuffer_tracking@fbc-tiling-4
> +kms_frontbuffer_tracking@fbc-suspend
> +kms_frontbuffer_tracking@psr-modesetfrombusy
> +kms_frontbuffer_tracking@psr-slowdraw
> +kms_frontbuffer_tracking@psr-suspend
> +kms_frontbuffer_tracking@fbcpsr-modesetfrombusy
> +kms_frontbuffer_tracking@fbcpsr-badstride
> +kms_frontbuffer_tracking@fbcpsr-stridechange
> +kms_frontbuffer_tracking@fbcpsr-tiling-linear
> +kms_frontbuffer_tracking@fbcpsr-tiling-y
> +kms_frontbuffer_tracking@fbcpsr-tiling-4
> +kms_frontbuffer_tracking@fbcpsr-slowdraw
> +kms_frontbuffer_tracking@fbcpsr-suspend
> +kms_frontbuffer_tracking@drrs-modesetfrombusy
> +kms_frontbuffer_tracking@drrs-slowdraw
> +kms_frontbuffer_tracking@drrs-suspend
> +kms_frontbuffer_tracking@fbcdrrs-modesetfrombusy
> +kms_frontbuffer_tracking@fbcdrrs-badstride
> +kms_frontbuffer_tracking@fbcdrrs-stridechange
> +kms_frontbuffer_tracking@fbcdrrs-tiling-linear
> +kms_frontbuffer_tracking@fbcdrrs-tiling-y
> +kms_frontbuffer_tracking@fbcdrrs-tiling-4
> +kms_frontbuffer_tracking@fbcdrrs-slowdraw
> +kms_frontbuffer_tracking@fbcdrrs-suspend
> +kms_frontbuffer_tracking@psrdrrs-modesetfrombusy
> +kms_frontbuffer_tracking@psrdrrs-slowdraw
> +kms_frontbuffer_tracking@psrdrrs-suspend
> +kms_frontbuffer_tracking@fbcpsrdrrs-modesetfrombusy
> +kms_frontbuffer_tracking@fbcpsrdrrs-badstride
> +kms_frontbuffer_tracking@fbcpsrdrrs-stridechange
> +kms_frontbuffer_tracking@fbcpsrdrrs-tiling-linear
> +kms_frontbuffer_tracking@fbcpsrdrrs-tiling-y
> +kms_frontbuffer_tracking@fbcpsrdrrs-tiling-4
> +kms_frontbuffer_tracking@fbcpsrdrrs-slowdraw
> +kms_frontbuffer_tracking@fbcpsrdrrs-suspend
> +kms_frontbuffer_tracking@basic
> +kms_getfb@getfb-handle-zero
> +kms_getfb@getfb-handle-valid
> +kms_getfb@getfb-handle-closed
> +kms_getfb@getfb-handle-not-fb
> +kms_getfb@getfb-addfb-different-handles
> +kms_getfb@getfb-repeated-different-handles
> +kms_getfb@getfb-reject-ccs
> +kms_getfb@getfb2-handle-zero
> +kms_getfb@getfb2-handle-closed
> +kms_getfb@getfb2-handle-not-fb
> +kms_getfb@getfb2-accept-ccs
> +kms_getfb@getfb2-into-addfb2
> +kms_getfb@getfb-handle-protection
> +kms_getfb@getfb2-handle-protection
> +kms_hdmi_inject@inject-4k
> +kms_hdmi_inject@inject-audio
> +kms_hdr@bpc-switch
> +kms_hdr@bpc-switch-dpms
> +kms_hdr@bpc-switch-suspend
> +kms_hdr@static-toggle
> +kms_hdr@static-toggle-dpms
> +kms_hdr@static-toggle-suspend
> +kms_hdr@static-swap
> +kms_hdr@invalid-metadata-sizes
> +kms_hdr@invalid-hdr
> +kms_invalid_mode@clock-too-high
> +kms_invalid_mode@zero-clock
> +kms_invalid_mode@int-max-clock
> +kms_invalid_mode@uint-max-clock
> +kms_invalid_mode@zero-hdisplay
> +kms_invalid_mode@zero-vdisplay
> +kms_invalid_mode@bad-hsync-start
> +kms_invalid_mode@bad-vsync-start
> +kms_invalid_mode@bad-hsync-end
> +kms_invalid_mode@bad-vsync-end
> +kms_invalid_mode@bad-htotal
> +kms_invalid_mode@bad-vtotal
> +kms_legacy_colorkey@basic
> +kms_legacy_colorkey@invalid-plane
> +kms_multipipe_modeset@basic-max-pipe-crc-check
> +kms_panel_fitting@legacy
> +kms_panel_fitting@atomic-fastset
> +kms_pipe_b_c_ivb@pipe-B-dpms-off-modeset-pipe-C
> +kms_pipe_b_c_ivb@pipe-B-double-modeset-then-modeset-pipe-C
> +kms_pipe_b_c_ivb@disable-pipe-B-enable-pipe-C
> +kms_pipe_b_c_ivb@from-pipe-C-to-B-with-3-lanes
> +kms_pipe_b_c_ivb@enable-pipe-C-while-B-has-3-lanes
> +kms_pipe_crc_basic@bad-source
> +kms_pipe_crc_basic@read-crc
> +kms_pipe_crc_basic@read-crc-frame-sequence
> +kms_pipe_crc_basic@nonblocking-crc
> +kms_pipe_crc_basic@nonblocking-crc-frame-sequence
> +kms_pipe_crc_basic@suspend-read-crc
> +kms_pipe_crc_basic@hang-read-crc
> +kms_pipe_crc_basic@disable-crc-after-crtc
> +kms_pipe_crc_basic@compare-crc-sanitycheck-xr24
> +kms_pipe_crc_basic@compare-crc-sanitycheck-nv12
> +kms_plane@pixel-format
> +kms_plane@pixel-format-source-clamping
> +kms_plane@plane-position-covered
> +kms_plane@plane-position-hole
> +kms_plane@plane-position-hole-dpms
> +kms_plane@plane-panning-top-left
> +kms_plane@plane-panning-bottom-right
> +kms_plane@plane-panning-bottom-right-suspend
> +kms_plane@invalid-pixel-format-settings
> +kms_plane_alpha_blend@alpha-basic
> +kms_plane_alpha_blend@alpha-7efc
> +kms_plane_alpha_blend@coverage-7efc
> +kms_plane_alpha_blend@coverage-vs-premult-vs-constant
> +kms_plane_alpha_blend@alpha-transparent-fb
> +kms_plane_alpha_blend@alpha-opaque-fb
> +kms_plane_alpha_blend@constant-alpha-min
> +kms_plane_alpha_blend@constant-alpha-mid
> +kms_plane_alpha_blend@constant-alpha-max
> +kms_plane_cursor@primary
> +kms_plane_cursor@overlay
> +kms_plane_cursor@viewport
> +kms_plane_lowres@tiling-none
> +kms_plane_lowres@tiling-x
> +kms_plane_lowres@tiling-y
> +kms_plane_lowres@tiling-yf
> +kms_plane_lowres@tiling-4
> +kms_plane_multiple@tiling-none
> +kms_plane_multiple@tiling-x
> +kms_plane_multiple@tiling-y
> +kms_plane_multiple@tiling-yf
> +kms_plane_multiple@tiling-4
> +kms_plane_scaling@plane-upscale-with-pixel-format-20x20
> +kms_plane_scaling@plane-upscale-with-pixel-format-factor-0-25
> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25
> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5
> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-75
> +kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling
> +kms_plane_scaling@plane-upscale-with-rotation-20x20
> +kms_plane_scaling@plane-upscale-with-rotation-factor-0-25
> +kms_plane_scaling@plane-downscale-with-rotation-factor-0-25
> +kms_plane_scaling@plane-downscale-with-rotation-factor-0-5
> +kms_plane_scaling@plane-downscale-with-rotation-factor-0-75
> +kms_plane_scaling@plane-scaler-with-rotation-unity-scaling
> +kms_plane_scaling@plane-upscale-with-modifiers-20x20
> +kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25
> +kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25
> +kms_plane_scaling@plane-downscale-with-modifiers-factor-0-5
> +kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75
> +kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling
> +kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats
> +kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation
> +kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers
> +kms_plane_scaling@planes-upscale-20x20
> +kms_plane_scaling@planes-upscale-factor-0-25
> +kms_plane_scaling@planes-scaler-unity-scaling
> +kms_plane_scaling@planes-downscale-factor-0-25
> +kms_plane_scaling@planes-downscale-factor-0-5
> +kms_plane_scaling@planes-downscale-factor-0-75
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75
> +kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25
> +kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5
> +kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75
> +kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25
> +kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5
> +kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75
> +kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20
> +kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25
> +kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling
> +kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20
> +kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25
> +kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling
> +kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20
> +kms_plane_scaling@planes-downscale-factor-0-75-upscale-factor-0-25
> +kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling
> +kms_plane_scaling@intel-max-src-size
> +kms_plane_scaling@invalid-num-scalers
> +kms_plane_scaling@invalid-parameters
> +kms_plane_scaling@2x-scaler-multi-pipe
> +kms_prime@basic-crc-hybrid
> +kms_prime@basic-modeset-hybrid
> +kms_prime@D3hot
> +kms_prime@basic-crc-vgem
> +kms_prop_blob@basic
> +kms_prop_blob@blob-prop-core
> +kms_prop_blob@blob-prop-validate
> +kms_prop_blob@blob-prop-lifetime
> +kms_prop_blob@blob-multiple
> +kms_prop_blob@invalid-get-prop-any
> +kms_prop_blob@invalid-get-prop
> +kms_prop_blob@invalid-set-prop-any
> +kms_prop_blob@invalid-set-prop
> +kms_properties@plane-properties-legacy
> +kms_properties@plane-properties-atomic
> +kms_properties@crtc-properties-legacy
> +kms_properties@crtc-properties-atomic
> +kms_properties@connector-properties-legacy
> +kms_properties@connector-properties-atomic
> +kms_properties@invalid-properties-legacy
> +kms_properties@invalid-properties-atomic
> +kms_properties@get_properties-sanity-atomic
> +kms_properties@get_properties-sanity-non-atomic
> +kms_psr@basic
> +kms_psr@no_drrs
> +kms_psr@primary_page_flip
> +kms_psr@primary_mmap_gtt
> +kms_psr@primary_mmap_cpu
> +kms_psr@primary_blt
> +kms_psr@primary_render
> +kms_psr@sprite_mmap_gtt
> +kms_psr@cursor_mmap_gtt
> +kms_psr@sprite_mmap_cpu
> +kms_psr@cursor_mmap_cpu
> +kms_psr@sprite_blt
> +kms_psr@cursor_blt
> +kms_psr@sprite_render
> +kms_psr@cursor_render
> +kms_psr@sprite_plane_move
> +kms_psr@cursor_plane_move
> +kms_psr@sprite_plane_onoff
> +kms_psr@cursor_plane_onoff
> +kms_psr@dpms
> +kms_psr@suspend
> +kms_psr@psr2_basic
> +kms_psr@psr2_no_drrs
> +kms_psr@psr2_primary_page_flip
> +kms_psr@psr2_primary_mmap_gtt
> +kms_psr@psr2_primary_mmap_cpu
> +kms_psr@psr2_primary_blt
> +kms_psr@psr2_primary_render
> +kms_psr@psr2_sprite_mmap_gtt
> +kms_psr@psr2_cursor_mmap_gtt
> +kms_psr@psr2_sprite_mmap_cpu
> +kms_psr@psr2_cursor_mmap_cpu
> +kms_psr@psr2_sprite_blt
> +kms_psr@psr2_cursor_blt
> +kms_psr@psr2_sprite_render
> +kms_psr@psr2_cursor_render
> +kms_psr@psr2_sprite_plane_move
> +kms_psr@psr2_cursor_plane_move
> +kms_psr@psr2_sprite_plane_onoff
> +kms_psr@psr2_cursor_plane_onoff
> +kms_psr@psr2_dpms
> +kms_psr@psr2_suspend
> +kms_psr2_sf@primary-plane-update-sf-dmg-area
> +kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb
> +kms_psr2_sf@overlay-plane-update-sf-dmg-area
> +kms_psr2_sf@cursor-plane-update-sf
> +kms_psr2_sf@cursor-plane-move-continuous-sf
> +kms_psr2_sf@cursor-plane-move-continuous-exceed-sf
> +kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf
> +kms_psr2_sf@plane-move-sf-dmg-area
> +kms_psr2_sf@overlay-plane-move-continuous-sf
> +kms_psr2_sf@overlay-plane-move-continuous-exceed-sf
> +kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf
> +kms_psr2_sf@overlay-primary-update-sf-dmg-area
> +kms_psr2_sf@overlay-plane-update-continuous-sf
> +kms_psr2_su@page_flip-XRGB8888
> +kms_psr2_su@page_flip-NV12
> +kms_psr2_su@page_flip-P010
> +kms_psr2_su@frontbuffer-XRGB8888
> +kms_pwrite_crc
> +kms_rmfb@rmfb-ioctl
> +kms_rmfb@close-fd
> +kms_rotation_crc@primary-rotation-90
> +kms_rotation_crc@primary-rotation-180
> +kms_rotation_crc@primary-rotation-270
> +kms_rotation_crc@sprite-rotation-90
> +kms_rotation_crc@sprite-rotation-180
> +kms_rotation_crc@sprite-rotation-270
> +kms_rotation_crc@cursor-rotation-180
> +kms_rotation_crc@sprite-rotation-90-pos-100-0
> +kms_rotation_crc@bad-pixel-format
> +kms_rotation_crc@bad-tiling
> +kms_rotation_crc@primary-x-tiled-reflect-x-0
> +kms_rotation_crc@primary-x-tiled-reflect-x-180
> +kms_rotation_crc@primary-y-tiled-reflect-x-0
> +kms_rotation_crc@primary-y-tiled-reflect-x-90
> +kms_rotation_crc@primary-y-tiled-reflect-x-180
> +kms_rotation_crc@primary-y-tiled-reflect-x-270
> +kms_rotation_crc@primary-yf-tiled-reflect-x-0
> +kms_rotation_crc@primary-yf-tiled-reflect-x-90
> +kms_rotation_crc@primary-yf-tiled-reflect-x-180
> +kms_rotation_crc@primary-yf-tiled-reflect-x-270
> +kms_rotation_crc@primary-4-tiled-reflect-x-0
> +kms_rotation_crc@primary-4-tiled-reflect-x-180
> +kms_rotation_crc@multiplane-rotation
> +kms_rotation_crc@multiplane-rotation-cropping-top
> +kms_rotation_crc@multiplane-rotation-cropping-bottom
> +kms_rotation_crc@exhaust-fences
> +kms_scaling_modes@scaling-mode-full
> +kms_scaling_modes@scaling-mode-center
> +kms_scaling_modes@scaling-mode-full-aspect
> +kms_scaling_modes@scaling-mode-none
> +kms_selftest@drm_cmdline
> +kms_selftest@drm_damage
> +kms_selftest@drm_dp_mst
> +kms_selftest@drm_format_helper
> +kms_selftest@drm_format
> +kms_selftest@framebuffer
> +kms_selftest@drm_plane
> +kms_setmode@basic
> +kms_setmode@basic-clone-single-crtc
> +kms_setmode@invalid-clone-single-crtc
> +kms_setmode@invalid-clone-exclusive-crtc
> +kms_setmode@clone-exclusive-crtc
> +kms_setmode@invalid-clone-single-crtc-stealing
> +kms_sysfs_edid_timing
> +kms_tv_load_detect@load-detect
> +kms_universal_plane@universal-plane-pipe-A-functional
> +kms_universal_plane@universal-plane-pipe-A-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-A
> +kms_universal_plane@cursor-fb-leak-pipe-A
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-A
> +kms_universal_plane@universal-plane-pipe-B-functional
> +kms_universal_plane@universal-plane-pipe-B-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-B
> +kms_universal_plane@cursor-fb-leak-pipe-B
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-B
> +kms_universal_plane@universal-plane-pipe-C-functional
> +kms_universal_plane@universal-plane-pipe-C-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-C
> +kms_universal_plane@cursor-fb-leak-pipe-C
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-C
> +kms_universal_plane@universal-plane-pipe-D-functional
> +kms_universal_plane@universal-plane-pipe-D-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-D
> +kms_universal_plane@cursor-fb-leak-pipe-D
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-D
> +kms_universal_plane@universal-plane-pipe-E-functional
> +kms_universal_plane@universal-plane-pipe-E-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-E
> +kms_universal_plane@cursor-fb-leak-pipe-E
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-E
> +kms_universal_plane@universal-plane-pipe-F-functional
> +kms_universal_plane@universal-plane-pipe-F-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-F
> +kms_universal_plane@cursor-fb-leak-pipe-F
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-F
> +kms_universal_plane@universal-plane-pipe-G-functional
> +kms_universal_plane@universal-plane-pipe-G-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-G
> +kms_universal_plane@cursor-fb-leak-pipe-G
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-G
> +kms_universal_plane@universal-plane-pipe-H-functional
> +kms_universal_plane@universal-plane-pipe-H-sanity
> +kms_universal_plane@disable-primary-vs-flip-pipe-H
> +kms_universal_plane@cursor-fb-leak-pipe-H
> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-H
> +kms_vblank@invalid
> +kms_vblank@crtc-id
> +kms_vblank@pipe-A-accuracy-idle
> +kms_vblank@pipe-A-query-idle
> +kms_vblank@pipe-A-query-idle-hang
> +kms_vblank@pipe-A-query-forked
> +kms_vblank@pipe-A-query-forked-hang
> +kms_vblank@pipe-A-query-busy
> +kms_vblank@pipe-A-query-busy-hang
> +kms_vblank@pipe-A-query-forked-busy
> +kms_vblank@pipe-A-query-forked-busy-hang
> +kms_vblank@pipe-A-wait-idle
> +kms_vblank@pipe-A-wait-idle-hang
> +kms_vblank@pipe-A-wait-forked
> +kms_vblank@pipe-A-wait-forked-hang
> +kms_vblank@pipe-A-wait-busy
> +kms_vblank@pipe-A-wait-busy-hang
> +kms_vblank@pipe-A-wait-forked-busy
> +kms_vblank@pipe-A-wait-forked-busy-hang
> +kms_vblank@pipe-A-ts-continuation-idle
> +kms_vblank@pipe-A-ts-continuation-idle-hang
> +kms_vblank@pipe-A-ts-continuation-dpms-rpm
> +kms_vblank@pipe-A-ts-continuation-dpms-suspend
> +kms_vblank@pipe-A-ts-continuation-suspend
> +kms_vblank@pipe-A-ts-continuation-modeset
> +kms_vblank@pipe-A-ts-continuation-modeset-hang
> +kms_vblank@pipe-A-ts-continuation-modeset-rpm
> +kms_vblank@pipe-B-accuracy-idle
> +kms_vblank@pipe-B-query-idle
> +kms_vblank@pipe-B-query-idle-hang
> +kms_vblank@pipe-B-query-forked
> +kms_vblank@pipe-B-query-forked-hang
> +kms_vblank@pipe-B-query-busy
> +kms_vblank@pipe-B-query-busy-hang
> +kms_vblank@pipe-B-query-forked-busy
> +kms_vblank@pipe-B-query-forked-busy-hang
> +kms_vblank@pipe-B-wait-idle
> +kms_vblank@pipe-B-wait-idle-hang
> +kms_vblank@pipe-B-wait-forked
> +kms_vblank@pipe-B-wait-forked-hang
> +kms_vblank@pipe-B-wait-busy
> +kms_vblank@pipe-B-wait-busy-hang
> +kms_vblank@pipe-B-wait-forked-busy
> +kms_vblank@pipe-B-wait-forked-busy-hang
> +kms_vblank@pipe-B-ts-continuation-idle
> +kms_vblank@pipe-B-ts-continuation-idle-hang
> +kms_vblank@pipe-B-ts-continuation-dpms-rpm
> +kms_vblank@pipe-B-ts-continuation-dpms-suspend
> +kms_vblank@pipe-B-ts-continuation-suspend
> +kms_vblank@pipe-B-ts-continuation-modeset
> +kms_vblank@pipe-B-ts-continuation-modeset-hang
> +kms_vblank@pipe-B-ts-continuation-modeset-rpm
> +kms_vblank@pipe-C-accuracy-idle
> +kms_vblank@pipe-C-query-idle
> +kms_vblank@pipe-C-query-idle-hang
> +kms_vblank@pipe-C-query-forked
> +kms_vblank@pipe-C-query-forked-hang
> +kms_vblank@pipe-C-query-busy
> +kms_vblank@pipe-C-query-busy-hang
> +kms_vblank@pipe-C-query-forked-busy
> +kms_vblank@pipe-C-query-forked-busy-hang
> +kms_vblank@pipe-C-wait-idle
> +kms_vblank@pipe-C-wait-idle-hang
> +kms_vblank@pipe-C-wait-forked
> +kms_vblank@pipe-C-wait-forked-hang
> +kms_vblank@pipe-C-wait-busy
> +kms_vblank@pipe-C-wait-busy-hang
> +kms_vblank@pipe-C-wait-forked-busy
> +kms_vblank@pipe-C-wait-forked-busy-hang
> +kms_vblank@pipe-C-ts-continuation-idle
> +kms_vblank@pipe-C-ts-continuation-idle-hang
> +kms_vblank@pipe-C-ts-continuation-dpms-rpm
> +kms_vblank@pipe-C-ts-continuation-dpms-suspend
> +kms_vblank@pipe-C-ts-continuation-suspend
> +kms_vblank@pipe-C-ts-continuation-modeset
> +kms_vblank@pipe-C-ts-continuation-modeset-hang
> +kms_vblank@pipe-C-ts-continuation-modeset-rpm
> +kms_vblank@pipe-D-accuracy-idle
> +kms_vblank@pipe-D-query-idle
> +kms_vblank@pipe-D-query-idle-hang
> +kms_vblank@pipe-D-query-forked
> +kms_vblank@pipe-D-query-forked-hang
> +kms_vblank@pipe-D-query-busy
> +kms_vblank@pipe-D-query-busy-hang
> +kms_vblank@pipe-D-query-forked-busy
> +kms_vblank@pipe-D-query-forked-busy-hang
> +kms_vblank@pipe-D-wait-idle
> +kms_vblank@pipe-D-wait-idle-hang
> +kms_vblank@pipe-D-wait-forked
> +kms_vblank@pipe-D-wait-forked-hang
> +kms_vblank@pipe-D-wait-busy
> +kms_vblank@pipe-D-wait-busy-hang
> +kms_vblank@pipe-D-wait-forked-busy
> +kms_vblank@pipe-D-wait-forked-busy-hang
> +kms_vblank@pipe-D-ts-continuation-idle
> +kms_vblank@pipe-D-ts-continuation-idle-hang
> +kms_vblank@pipe-D-ts-continuation-dpms-rpm
> +kms_vblank@pipe-D-ts-continuation-dpms-suspend
> +kms_vblank@pipe-D-ts-continuation-suspend
> +kms_vblank@pipe-D-ts-continuation-modeset
> +kms_vblank@pipe-D-ts-continuation-modeset-hang
> +kms_vblank@pipe-D-ts-continuation-modeset-rpm
> +kms_vblank@pipe-E-accuracy-idle
> +kms_vblank@pipe-E-query-idle
> +kms_vblank@pipe-E-query-idle-hang
> +kms_vblank@pipe-E-query-forked
> +kms_vblank@pipe-E-query-forked-hang
> +kms_vblank@pipe-E-query-busy
> +kms_vblank@pipe-E-query-busy-hang
> +kms_vblank@pipe-E-query-forked-busy
> +kms_vblank@pipe-E-query-forked-busy-hang
> +kms_vblank@pipe-E-wait-idle
> +kms_vblank@pipe-E-wait-idle-hang
> +kms_vblank@pipe-E-wait-forked
> +kms_vblank@pipe-E-wait-forked-hang
> +kms_vblank@pipe-E-wait-busy
> +kms_vblank@pipe-E-wait-busy-hang
> +kms_vblank@pipe-E-wait-forked-busy
> +kms_vblank@pipe-E-wait-forked-busy-hang
> +kms_vblank@pipe-E-ts-continuation-idle
> +kms_vblank@pipe-E-ts-continuation-idle-hang
> +kms_vblank@pipe-E-ts-continuation-dpms-rpm
> +kms_vblank@pipe-E-ts-continuation-dpms-suspend
> +kms_vblank@pipe-E-ts-continuation-suspend
> +kms_vblank@pipe-E-ts-continuation-modeset
> +kms_vblank@pipe-E-ts-continuation-modeset-hang
> +kms_vblank@pipe-E-ts-continuation-modeset-rpm
> +kms_vblank@pipe-F-accuracy-idle
> +kms_vblank@pipe-F-query-idle
> +kms_vblank@pipe-F-query-idle-hang
> +kms_vblank@pipe-F-query-forked
> +kms_vblank@pipe-F-query-forked-hang
> +kms_vblank@pipe-F-query-busy
> +kms_vblank@pipe-F-query-busy-hang
> +kms_vblank@pipe-F-query-forked-busy
> +kms_vblank@pipe-F-query-forked-busy-hang
> +kms_vblank@pipe-F-wait-idle
> +kms_vblank@pipe-F-wait-idle-hang
> +kms_vblank@pipe-F-wait-forked
> +kms_vblank@pipe-F-wait-forked-hang
> +kms_vblank@pipe-F-wait-busy
> +kms_vblank@pipe-F-wait-busy-hang
> +kms_vblank@pipe-F-wait-forked-busy
> +kms_vblank@pipe-F-wait-forked-busy-hang
> +kms_vblank@pipe-F-ts-continuation-idle
> +kms_vblank@pipe-F-ts-continuation-idle-hang
> +kms_vblank@pipe-F-ts-continuation-dpms-rpm
> +kms_vblank@pipe-F-ts-continuation-dpms-suspend
> +kms_vblank@pipe-F-ts-continuation-suspend
> +kms_vblank@pipe-F-ts-continuation-modeset
> +kms_vblank@pipe-F-ts-continuation-modeset-hang
> +kms_vblank@pipe-F-ts-continuation-modeset-rpm
> +kms_vblank@pipe-G-accuracy-idle
> +kms_vblank@pipe-G-query-idle
> +kms_vblank@pipe-G-query-idle-hang
> +kms_vblank@pipe-G-query-forked
> +kms_vblank@pipe-G-query-forked-hang
> +kms_vblank@pipe-G-query-busy
> +kms_vblank@pipe-G-query-busy-hang
> +kms_vblank@pipe-G-query-forked-busy
> +kms_vblank@pipe-G-query-forked-busy-hang
> +kms_vblank@pipe-G-wait-idle
> +kms_vblank@pipe-G-wait-idle-hang
> +kms_vblank@pipe-G-wait-forked
> +kms_vblank@pipe-G-wait-forked-hang
> +kms_vblank@pipe-G-wait-busy
> +kms_vblank@pipe-G-wait-busy-hang
> +kms_vblank@pipe-G-wait-forked-busy
> +kms_vblank@pipe-G-wait-forked-busy-hang
> +kms_vblank@pipe-G-ts-continuation-idle
> +kms_vblank@pipe-G-ts-continuation-idle-hang
> +kms_vblank@pipe-G-ts-continuation-dpms-rpm
> +kms_vblank@pipe-G-ts-continuation-dpms-suspend
> +kms_vblank@pipe-G-ts-continuation-suspend
> +kms_vblank@pipe-G-ts-continuation-modeset
> +kms_vblank@pipe-G-ts-continuation-modeset-hang
> +kms_vblank@pipe-G-ts-continuation-modeset-rpm
> +kms_vblank@pipe-H-accuracy-idle
> +kms_vblank@pipe-H-query-idle
> +kms_vblank@pipe-H-query-idle-hang
> +kms_vblank@pipe-H-query-forked
> +kms_vblank@pipe-H-query-forked-hang
> +kms_vblank@pipe-H-query-busy
> +kms_vblank@pipe-H-query-busy-hang
> +kms_vblank@pipe-H-query-forked-busy
> +kms_vblank@pipe-H-query-forked-busy-hang
> +kms_vblank@pipe-H-wait-idle
> +kms_vblank@pipe-H-wait-idle-hang
> +kms_vblank@pipe-H-wait-forked
> +kms_vblank@pipe-H-wait-forked-hang
> +kms_vblank@pipe-H-wait-busy
> +kms_vblank@pipe-H-wait-busy-hang
> +kms_vblank@pipe-H-wait-forked-busy
> +kms_vblank@pipe-H-wait-forked-busy-hang
> +kms_vblank@pipe-H-ts-continuation-idle
> +kms_vblank@pipe-H-ts-continuation-idle-hang
> +kms_vblank@pipe-H-ts-continuation-dpms-rpm
> +kms_vblank@pipe-H-ts-continuation-dpms-suspend
> +kms_vblank@pipe-H-ts-continuation-suspend
> +kms_vblank@pipe-H-ts-continuation-modeset
> +kms_vblank@pipe-H-ts-continuation-modeset-hang
> +kms_vblank@pipe-H-ts-continuation-modeset-rpm
> +kms_vrr@flip-basic
> +kms_vrr@flip-dpms
> +kms_vrr@flip-suspend
> +kms_vrr@flipline
> +kms_vrr@negative-basic
> +kms_writeback@writeback-pixel-formats
> +kms_writeback@writeback-invalid-parameters
> +kms_writeback@writeback-fb-id
> +kms_writeback@writeback-check-output
> +prime_mmap_kms@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@linear-tiling-1-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-1-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
> +kms_cursor_crc@pipe-A-cursor-size-change,Fail
> +kms_cursor_crc@pipe-B-cursor-size-change,Fail
> +kms_hdr@bpc-switch,Fail
> +kms_hdr@bpc-switch-dpms,Fail
> +kms_plane_multiple@atomic-pipe-A-tiling-none,Fail
> +kms_rotation_crc@primary-rotation-180,Fail
> +kms_async_flips@async-flip-with-page-flip-events,Fail
> +kms_async_flips@crc,Fail
> +kms_async_flips@invalid-async-flip,Fail
> +kms_addfb_basic@bad-pitch-65536,Fail
> +kms_addfb_basic@bo-too-small,Fail
> +kms_atomic_transition@plane-toggle-modeset-transition,Fail
> +kms_color@degamma,Fail
> +kms_cursor_crc@cursor-size-change,Fail
> +kms_cursor_legacy@forked-move,Fail
> +kms_flip@flip-vs-blocking-wf-vblank,Fail
> +kms_flip@plain-flip-fb-recreate,Fail
> +kms_flip@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@too-high
> +kms_atomic_transition@plane-all-modeset-transition-internal-panels
> +kms_atomic_transition@plane-all-transition
> +kms_atomic_transition@plane-use-after-nonblocking-unbind
> +kms_bw@linear-tiling-1-displays-1920x1080p
> +kms_bw@linear-tiling-2-displays-1920x1080p
> +kms_bw@linear-tiling-2-displays-2560x1440p
> +kms_bw@linear-tiling-3-displays-2560x1440p
> +kms_bw@linear-tiling-3-displays-3840x2160p
> +kms_cursor_crc@pipe-A-cursor-alpha-opaque
> +kms_cursor_crc@pipe-B-cursor-alpha-opaque
> +kms_plane_multiple@atomic-pipe-B-tiling-none
> +kms_plane@pixel-format
> +kms_plane_scaling@downscale-with-rotation-factor-0-5
> +kms_universal_plane@disable-primary-vs-flip-pipe-A
> +kms_async_flips@alternate-sync-async-flip
> +kms_async_flips@test-cursor
> +kms_async_flips@test-time-stamp
> +kms_universal_plane@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@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
> +kms_plane_alpha_blend@alpha-basic,Fail
> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@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@linear-tiling-2-displays-1920x1080p
> +kms_bw@linear-tiling-2-displays-2560x1440p
> +kms_bw@linear-tiling-2-displays-3840x2160p
> +kms_bw@linear-tiling-3-displays-1920x1080p
> +kms_bw@linear-tiling-3-displays-2560x1440p
> +kms_bw@linear-tiling-3-displays-3840x2160p
> +kms_bw@linear-tiling-4-displays-1920x1080p
> +kms_bw@linear-tiling-4-displays-2560x1440p
> +kms_bw@linear-tiling-4-displays-3840x2160p
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
> +kms_plane_alpha_blend@pipe-A-alpha-basic
> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-A-constant-alpha-max
> +kms_plane_alpha_blend@pipe-B-alpha-basic
> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
> +kms_plane_alpha_blend@pipe-C-alpha-basic
> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
> +kms_plane_alpha_blend@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@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@linear-tiling-2-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-4-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-4-displays-3840x2160p,Fail
> +kms_color@ctm-0-25,Fail
> +kms_color@ctm-0-50,Fail
> +kms_color@ctm-0-75,Fail
> +kms_color@ctm-max,Fail
> +kms_color@ctm-negative,Fail
> +kms_color@ctm-red-to-blue,Fail
> +kms_color@ctm-signed,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
> +kms_plane@plane-position-hole,Timeout
> +kms_plane_alpha_blend@alpha-basic,Fail
> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@pipe-C-constant-alpha-max,Fail
> +kms_plane_multiple@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@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@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@ctm-0-25,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
> +kms_plane_alpha_blend@alpha-basic,Fail
> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@constant-alpha-max,Fail
> +kms_plane_alpha_blend@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@linear-tiling-2-displays-1920x1080p
> +kms_bw@linear-tiling-2-displays-2560x1440p
> +kms_bw@linear-tiling-2-displays-3840x2160p
> +kms_bw@linear-tiling-3-displays-1920x1080p
> +kms_bw@linear-tiling-3-displays-2560x1440p
> +kms_bw@linear-tiling-3-displays-3840x2160p
> +kms_bw@linear-tiling-4-displays-1920x1080p
> +kms_bw@linear-tiling-4-displays-2560x1440p
> +kms_bw@linear-tiling-4-displays-3840x2160p
> +kms_draw_crc@draw-method-xrgb8888-render-xtiled
> +kms_flip@flip-vs-suspend
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
> +kms_hdr@bpc-switch-suspend
> +kms_plane_alpha_blend@pipe-A-alpha-basic
> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-A-constant-alpha-max
> +kms_plane_alpha_blend@pipe-B-alpha-basic
> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
> +kms_plane_alpha_blend@pipe-C-alpha-basic
> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-C-constant-alpha-max
> +kms_psr2_su@page_flip-NV12
> +kms_psr2_su@page_flip-P010
> +kms_setmode@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@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@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
> +kms_frontbuffer_tracking@fbcdrrs-tiling-linear,Fail
> +kms_plane_alpha_blend@alpha-basic,Fail
> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@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@linear-tiling-1-displays-3840x2160p
> +kms_bw@linear-tiling-2-displays-1920x1080p
> +kms_bw@linear-tiling-2-displays-2560x1440p
> +kms_bw@linear-tiling-2-displays-3840x2160p
> +kms_bw@linear-tiling-3-displays-1920x1080p
> +kms_bw@linear-tiling-3-displays-2560x1440p
> +kms_bw@linear-tiling-3-displays-3840x2160p
> +kms_bw@linear-tiling-4-displays-1920x1080p
> +kms_bw@linear-tiling-4-displays-2560x1440p
> +kms_bw@linear-tiling-4-displays-3840x2160p
> +kms_flip@blocking-wf_vblank
> +kms_flip@wf_vblank-ts-check
> +kms_flip@wf_vblank-ts-check-interruptible
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
> +kms_frontbuffer_tracking@fbc-tiling-linear
> +kms_plane_alpha_blend@pipe-A-alpha-basic
> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-A-constant-alpha-max
> +kms_plane_alpha_blend@pipe-B-alpha-basic
> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
> +kms_plane_alpha_blend@pipe-C-alpha-basic
> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-C-constant-alpha-max
> +kms_prop_blob@invalid-set-prop-any
> +kms_rotation_crc@multiplane-rotation
> +kms_rotation_crc@multiplane-rotation-cropping-bottom
> +kms_rotation_crc@multiplane-rotation-cropping-top
> +kms_setmode@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@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@linear-tiling-2-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
> +kms_color@ctm-0-25,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
> +kms_plane_alpha_blend@alpha-basic,Fail
> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@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@crc
> +kms_bw@linear-tiling-2-displays-1920x1080p
> +kms_bw@linear-tiling-2-displays-3840x2160p
> +kms_bw@linear-tiling-3-displays-1920x1080p
> +kms_bw@linear-tiling-3-displays-2560x1440p
> +kms_bw@linear-tiling-3-displays-3840x2160p
> +kms_bw@linear-tiling-4-displays-1920x1080p
> +kms_bw@linear-tiling-4-displays-3840x2160p
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
> +kms_plane_alpha_blend@pipe-A-alpha-basic
> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-B-alpha-basic
> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
> +kms_plane_alpha_blend@pipe-C-alpha-basic
> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
> +kms_plane_alpha_blend@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@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@linear-tiling-2-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-4-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-4-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-5-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-5-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-5-displays-3840x2160p,Fail
> +kms_color@ctm-0-25,Fail
> +kms_flip@flip-vs-panning-vs-hang,Timeout
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
> +kms_rotation_crc@bad-pixel-format,Fail
> +kms_rotation_crc@multiplane-rotation,Fail
> +kms_rotation_crc@multiplane-rotation-cropping-bottom,Fail
> +kms_rotation_crc@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@.*
> +kms_flip@blocking-absolute-wf_vblank
> +kms_flip@bo-too-big-interruptible
> +kms_flip@busy-flip
> +kms_flip@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@absolute-wf_vblank@a-edp1
> +
> +# This is generating kernel oops with divide error
> +kms_plane_scaling@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@linear-tiling-2-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-4-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-4-displays-3840x2160p,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
> +kms_frontbuffer_tracking@fbc-tiling-linear,Fail
> +kms_plane_alpha_blend@alpha-basic,Fail
> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
> +kms_plane_alpha_blend@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@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@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@addfb25-bad-modifier,Fail
> +kms_bw@linear-tiling-1-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-1-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-1-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-2-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
> +kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
> +kms_color@pipe-B-invalid-gamma-lut-sizes,Fail
> +kms_force_connector_basic@force-connector-state,Fail
> +kms_force_connector_basic@force-edid,Fail
> +kms_force_connector_basic@force-load-detect,Fail
> +kms_force_connector_basic@prune-stale-modes,Fail
> +kms_invalid_mode@int-max-clock,Fail
> +kms_plane_scaling@planes-upscale-20x20,Fail
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
> +kms_plane_scaling@upscale-with-modifier-20x20,Fail
> +kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
> +kms_properties@get_properties-sanity-atomic,Fail
> +kms_properties@plane-properties-atomic,Fail
> +kms_properties@plane-properties-legacy,Fail
> +kms_rmfb@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@addfb25-bad-modifier,Fail
> +kms_bw@linear-tiling-1-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-2-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
> +kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
> +kms_rmfb@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@linear-tiling-1-displays-1920x1080p
> +kms_bw@linear-tiling-1-displays-3840x2160p
> +kms_bw@linear-tiling-3-displays-1920x1080p
> +kms_cursor_legacy@cursor-vs-flip-atomic
> +kms_plane_scaling@invalid-num-scalers
> +kms_plane_scaling@planes-upscale-20x20
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5
> +kms_plane_scaling@upscale-with-modifier-20x20
> +kms_plane_scaling@upscale-with-pixel-format-20x20
> +kms_prop_blob@invalid-set-prop-any
> +kms_properties@get_properties-sanity-atomic
> +kms_properties@plane-properties-atomic
> +kms_properties@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@connector-properties-atomic,Fail
> +kms_properties@get_properties-sanity-atomic,Fail
> +kms_properties@get_properties-sanity-non-atomic,Fail
> +kms_properties@connector-properties-legacy,Fail
> +kms_cursor_legacy@forked-bo,Fail
> +kms_cursor_legacy@forked-move,Fail
> +kms_cursor_legacy@single-bo,Fail
> +kms_cursor_legacy@single-move,Fail
> +kms_cursor_legacy@torture-bo,Fail
> +kms_cursor_legacy@torture-move,Fail
> +kms_hdmi_inject@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@force-connector-state
> +kms_force_connector_basic@force-edid
> +kms_force_connector_basic@force-load-detect
> +kms_force_connector_basic@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@addfb25-bad-modifier,Fail
> +kms_cursor_legacy@all-pipes-forked-bo,Fail
> +kms_cursor_legacy@all-pipes-forked-move,Fail
> +kms_cursor_legacy@all-pipes-single-bo,Fail
> +kms_cursor_legacy@all-pipes-single-move,Fail
> +kms_cursor_legacy@all-pipes-torture-bo,Fail
> +kms_cursor_legacy@all-pipes-torture-move,Fail
> +kms_cursor_legacy@pipe-A-forked-bo,Fail
> +kms_cursor_legacy@pipe-A-forked-move,Fail
> +kms_cursor_legacy@pipe-A-single-bo,Fail
> +kms_cursor_legacy@pipe-A-single-move,Fail
> +kms_cursor_legacy@pipe-A-torture-bo,Fail
> +kms_cursor_legacy@pipe-A-torture-move,Fail
> +kms_hdmi_inject@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@force-connector-state
> +kms_force_connector_basic@force-edid
> +kms_force_connector_basic@force-load-detect
> +kms_force_connector_basic@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@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@force-connector-state
> +kms_force_connector_basic@force-edid
> +kms_force_connector_basic@force-load-detect
> +kms_force_connector_basic@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@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@cursor-vs-flip-toggle,Fail
> +kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
> +kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions,Crash
> +kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
> +kms_plane@pixel-format,Fail
> +kms_plane@pixel-format-source-clamping,Fail
> +kms_plane@plane-position-covered,Fail
> +kms_plane@plane-position-hole,Fail
> +kms_plane@plane-position-hole-dpms,Fail
> +kms_plane_alpha_blend@alpha-7efc,Fail
> +kms_plane_alpha_blend@coverage-7efc,Fail
> +kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
> +kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail
> +kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail
> +kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-7efc,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-basic,Fail
> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
> +kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
> +kms_plane_alpha_blend@pipe-B-constant-alpha-mid,Fail
> +kms_plane_alpha_blend@pipe-B-coverage-7efc,Fail
> +kms_plane_alpha_blend@pipe-B-coverage-vs-premult-vs-constant,Fail
> +kms_rmfb@close-fd,Fail
> +kms_universal_plane@disable-primary-vs-flip-pipe-b,Fail
> +kms_universal_plane@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@.*
> +kms_plane_multiple@atomic-pipe-A-tiling-none
> +kms_atomic_transition@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@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@linear-tiling-.*-displays-3840x2160p
> +
> +# Until igt fix lands: https://patchwork.freedesktop.org/patch/493175/
> +kms_bw@linear-tiling-2.*
> +kms_bw@linear-tiling-3.*
> +kms_bw@linear-tiling-4.*
> +kms_bw@linear-tiling-5.*
> +kms_bw@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@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@ctm-0-25,Fail
> +kms_color@ctm-0-50,Fail
> +kms_color@ctm-0-75,Fail
> +kms_color@ctm-blue-to-red,Fail
> +kms_color@ctm-green-to-red,Fail
> +kms_color@ctm-negative,Fail
> +kms_color@ctm-red-to-blue,Fail
> +kms_color@ctm-signed,Fail
> +kms_color@pipe-A-ctm-0-25,Fail
> +kms_color@pipe-A-ctm-0-5,Fail
> +kms_color@pipe-A-ctm-0-75,Fail
> +kms_color@pipe-A-ctm-blue-to-red,Fail
> +kms_color@pipe-A-ctm-green-to-red,Fail
> +kms_color@pipe-A-ctm-max,Fail
> +kms_color@pipe-A-ctm-negative,Fail
> +kms_color@pipe-A-ctm-red-to-blue,Fail
> +kms_color@pipe-A-legacy-gamma,Fail
> +kms_cursor_legacy@basic-flip-after-cursor-atomic,Fail
> +kms_cursor_legacy@basic-flip-after-cursor-legacy,Fail
> +kms_cursor_legacy@basic-flip-after-cursor-varying-size,Fail
> +kms_cursor_legacy@basic-flip-before-cursor-atomic,Fail
> +kms_cursor_legacy@basic-flip-before-cursor-legacy,Fail
> +kms_cursor_legacy@basic-flip-before-cursor-varying-size,Fail
> +kms_cursor_legacy@cursor-vs-flip-atomic,Fail
> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions,Fail
> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size,Fail
> +kms_cursor_legacy@cursor-vs-flip-legacy,Fail
> +kms_cursor_legacy@cursor-vs-flip-toggle,Fail
> +kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
> +kms_cursor_legacy@cursorA-vs-flipA-toggle,Fail
> +kms_cursor_legacy@flip-vs-cursor-atomic,Fail
> +kms_cursor_legacy@flip-vs-cursor-crc-atomic,Fail
> +kms_cursor_legacy@flip-vs-cursor-crc-legacy,Fail
> +kms_cursor_legacy@flip-vs-cursor-legacy,Fail
> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions,Fail
> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size,Fail
> +kms_cursor_legacy@short-flip-after-cursor-toggle,Fail
> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions,Fail
> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size,Fail
> +kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
> +kms_plane@pixel-format,Fail
> +kms_plane@pixel-format-source-clamping,Fail
> +kms_plane_alpha_blend@alpha-7efc,Fail
> +kms_plane_alpha_blend@coverage-7efc,Fail
> +kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
> +kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail
> +kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail
> +kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail
> +kms_plane_cursor@overlay,Fail
> +kms_plane_cursor@pipe-A-overlay-size-128,Fail
> +kms_plane_cursor@pipe-A-overlay-size-256,Fail
> +kms_plane_cursor@pipe-A-overlay-size-64,Fail
> +kms_plane_cursor@pipe-A-viewport-size-128,Fail
> +kms_plane_cursor@pipe-A-viewport-size-256,Fail
> +kms_plane_cursor@pipe-A-viewport-size-64,Fail
> +kms_plane_cursor@viewport,Fail
> +kms_plane_scaling@downscale-with-pixel-format-factor-0-25,Timeout
> +kms_plane_scaling@downscale-with-pixel-format-factor-0-5,Timeout
> +kms_plane_scaling@downscale-with-pixel-format-factor-0-75,Timeout
> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25,Timeout
> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5,Timeout
> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-75,Timeout
> +kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats,Timeout
> +kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling,Timeout
> +kms_plane_scaling@planes-downscale-factor-0-25,Fail
> +kms_plane_scaling@scaler-with-clipping-clamping,Timeout
> +kms_plane_scaling@scaler-with-pixel-format-unity-scaling,Timeout
> +kms_rmfb@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@.*
> +kms_cursor_legacy@flip-vs-cursor-toggle
> +kms_cursor_legacy@pipe-A-forked-bo
> +kms_cursor_legacy@pipe-A-forked-move
> +kms_cursor_legacy@short-flip-before-cursor-toggle
> +kms_flip@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@linear-tiling-2-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
> +kms_flip@basic-flip-vs-wf_vblank,Crash
> +kms_force_connector_basic@force-load-detect,Fail
> +kms_invalid_mode@int-max-clock,Crash
> +kms_plane@pixel-format,Crash
> +kms_plane@pixel-format-source-clamping,Crash
> +kms_plane@plane-position-hole,Crash
> +kms_plane@plane-position-hole-dpms,Crash
> +kms_plane_cursor@overlay,Crash
> +kms_plane_cursor@pipe-A-overlay-size-128,Fail
> +kms_plane_cursor@pipe-A-overlay-size-256,Fail
> +kms_plane_cursor@pipe-A-overlay-size-64,Fail
> +kms_plane_cursor@pipe-A-primary-size-128,Fail
> +kms_plane_cursor@pipe-A-primary-size-256,Fail
> +kms_plane_cursor@pipe-A-primary-size-64,Fail
> +kms_plane_cursor@pipe-A-viewport-size-128,Fail
> +kms_plane_cursor@pipe-A-viewport-size-256,Fail
> +kms_plane_cursor@pipe-A-viewport-size-64,Fail
> +kms_plane_cursor@pipe-B-overlay-size-128,Fail
> +kms_plane_cursor@pipe-B-overlay-size-256,Fail
> +kms_plane_cursor@pipe-B-overlay-size-64,Fail
> +kms_plane_cursor@pipe-B-primary-size-128,Fail
> +kms_plane_cursor@pipe-B-primary-size-256,Fail
> +kms_plane_cursor@pipe-B-primary-size-64,Fail
> +kms_plane_cursor@pipe-B-viewport-size-128,Fail
> +kms_plane_cursor@pipe-B-viewport-size-256,Fail
> +kms_plane_cursor@pipe-B-viewport-size-64,Fail
> +kms_plane_cursor@primary,Crash
> +kms_plane_cursor@viewport,Crash
> +kms_plane_lowres@tiling-none,Fail
> +kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
> +kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
> +kms_plane_scaling@upscale-with-modifier-20x20,Fail
> +kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
> +kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
> +kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
> +kms_prime@basic-crc,Fail
> +kms_properties@connector-properties-atomic,Crash
> +kms_properties@connector-properties-legacy,Crash
> +kms_properties@get_properties-sanity-atomic,Crash
> +kms_properties@get_properties-sanity-non-atomic,Crash
> +kms_setmode@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@addfb25-bad-modifier
> +kms_cursor_crc@.*
> +kms_invalid_mode@int-max-clock,Crash
> +kms_pipe_crc_basic@.*
> +kms_properties@connector-properties-atomic,Crash
> +kms_properties@get_properties-sanity-atomic,Crash
> +kms_properties@get_properties-sanity-non-atomic,Crash
> +kms_rmfb@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@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@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@legacy-gamma,Fail
> +kms_color@pipe-A-legacy-gamma,Fail
> +kms_color@pipe-B-legacy-gamma,Fail
> +kms_flip@basic-flip-vs-wf_vblank,Fail
> +kms_flip@blocking-wf_vblank,Fail
> +kms_flip@dpms-vs-vblank-race,Fail
> +kms_flip@flip-vs-absolute-wf_vblank,Fail
> +kms_flip@flip-vs-absolute-wf_vblank-interruptible,Fail
> +kms_flip@flip-vs-blocking-wf-vblank,Fail
> +kms_flip@flip-vs-panning,Fail
> +kms_flip@flip-vs-panning-interruptible,Fail
> +kms_flip@flip-vs-wf_vblank-interruptible,Fail
> +kms_flip@modeset-vs-vblank-race,Fail
> +kms_flip@modeset-vs-vblank-race-interruptible,Fail
> +kms_flip@plain-flip-fb-recreate,Fail
> +kms_flip@plain-flip-fb-recreate-interruptible,Fail
> +kms_flip@plain-flip-ts-check,Fail
> +kms_flip@plain-flip-ts-check-interruptible,Fail
> +kms_flip@wf_vblank-ts-check,Fail
> +kms_flip@wf_vblank-ts-check-interruptible,Fail
> +kms_invalid_mode@int-max-clock,Fail
> +kms_plane@pixel-format,Fail
> +kms_plane@pixel-format-source-clamping,Fail
> +kms_plane@plane-panning-bottom-right,Fail
> +kms_plane@plane-panning-top-left,Fail
> +kms_plane@plane-position-covered,Fail
> +kms_plane_cursor@pipe-B-overlay-size-128,Fail
> +kms_plane_cursor@pipe-B-overlay-size-256,Fail
> +kms_plane_cursor@pipe-B-overlay-size-64,Fail
> +kms_plane_cursor@pipe-B-primary-size-128,Fail
> +kms_plane_cursor@pipe-B-primary-size-256,Fail
> +kms_plane_cursor@pipe-B-primary-size-64,Fail
> +kms_plane_cursor@pipe-B-viewport-size-128,Fail
> +kms_plane_cursor@pipe-B-viewport-size-256,Fail
> +kms_plane_cursor@pipe-B-viewport-size-64,Fail
> +kms_plane_multiple@atomic-pipe-B-tiling-none,Fail
> +kms_plane_multiple@tiling-none,Fail
> +kms_prime@basic-crc,Fail
> +kms_rmfb@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@.*
> +kms_flip@flip-vs-expired-vblank
> +kms_flip@modeset-vs-vblank-race-interruptible,Fail
> +kms_pipe_crc_basic@.*
> +kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-A
> +kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-B
> +kms_plane@plane-position-hole
> +kms_plane_multiple@atomic-pipe-A-tiling-none
> +kms_plane_multiple@atomic-pipe-B-tiling-none
> +kms_sequence@get-forked
> +kms_sequence@get-forked-busy
> +kms_setmode@basic
> +kms_universal_plane@universal-plane-pipe-B-functional,UnexpectedPass
> +kms_vblank@pipe-A-accuracy-idle
> +kms_vblank@pipe-A-query-busy
> +kms_vblank@pipe-A-query-forked-busy
> +kms_vblank@pipe-A-wait-idle
> +kms_vblank@pipe-B-accuracy-idle
> +kms_vblank@pipe-B-query-busy
> +kms_vblank@pipe-B-query-forked-busy
> +kms_vblank@pipe-B-wait-idle
> +kms_flip@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@addfb25-bad-modifier,Fail
> +kms_addfb_basic@bad-pitch-65536,Fail
> +kms_addfb_basic@bo-too-small,Fail
> +kms_addfb_basic@size-max,Fail
> +kms_addfb_basic@too-high,Fail
> +kms_atomic_transition@plane-primary-toggle-with-vblank-wait,Fail
> +kms_bw@linear-tiling-1-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-1-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-1-displays-3840x2160p,Fail
> +kms_bw@linear-tiling-2-displays-1920x1080p,Fail
> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
> +kms_invalid_mode@int-max-clock,Fail
> +kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
> +kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
> +kms_plane_scaling@planes-upscale-20x20,Fail
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
> +kms_plane_scaling@upscale-with-modifier-20x20,Fail
> +kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
> +kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
> +kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
> +kms_vblank@crtc-id,Fail
> +kms_vblank@invalid,Fail
> +kms_vblank@pipe-A-accuracy-idle,Fail
> +kms_vblank@pipe-A-query-busy,Fail
> +kms_vblank@pipe-A-query-forked,Fail
> +kms_vblank@pipe-A-query-forked-busy,Fail
> +kms_vblank@pipe-A-query-idle,Fail
> +kms_vblank@pipe-A-ts-continuation-idle,Fail
> +kms_vblank@pipe-A-ts-continuation-modeset,Fail
> +kms_vblank@pipe-A-ts-continuation-suspend,Fail
> +kms_vblank@pipe-A-wait-busy,Fail
> +kms_vblank@pipe-A-wait-forked,Fail
> +kms_vblank@pipe-A-wait-forked-busy,Fail
> +kms_vblank@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@flip-vs-suspend.*
> \ No newline at end of file
> diff --git a/test b/test
> new file mode 100644
> index 000000000000..e69de29bb2d1
Maíra Canal July 28, 2023, 11:58 a.m. UTC | #6
Hi Helen,

Great to see this coming to the DRM!

Just wondering, any chance we could add a stage to perform tests on
VKMS? The main way of validating VKMS is through IGT tests, so I feel
it would be a perfect match to have VKMS as a stage on the CI. As a
generic KMS driver, VKMS is also great to validate changes on DRM core.

Another question, could we add V3D to the default arm and arm64 config?

Best Regards,
- Maíra

On 7/20/23 12:27, Helen Koike wrote:
> From: Tomeu Vizoso <tomeu.vizoso@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@collabora.com>
> Signed-off-by: Helen Koike <helen.koike@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
>
Rob Clark July 28, 2023, 2:37 p.m. UTC | #7
On Thu, Jul 27, 2023 at 10:26 PM Daniel Stone <daniel@fooishbar.org> wrote:
>
> On Thu, 27 Jul 2023 at 22:47, Rob Clark <robdclark@gmail.com> wrote:
> > > I did run into a bit of a chicken vs. egg problem with testing the "in
> > > tree" version (compared to earlier versions which kept most of the yml
> > > and scripts in a separate tree), is that it actually requires this
> > > commit to exist in the branch you want to run CI on.  My earlier
> > > workaround of pulling the drm/ci commit in via
> > > ${branchname}-external-fixes no longer works.
> >
> > After unwinding some more gitlab repo settings that were for the
> > previous out-of-tree yml setup, I have this working.
> >
> > Tested-by: Rob Clark <robdclark@gmail.com>
> > Acked-by: Rob Clark <robdclark@gmail.com>
>
> And it's also:
> Acked-by: Daniel Stone <daniels@collabora.com>
>
> It's been back and forth a few times by now and reviewed pretty
> heavily by all the people who are across the CI details. I think the
> next step is to answer all the workflow questions by actually getting
> it into trees and using it in anger. There was some discussion about
> whether this should come in from drm-misc, or the core DRM tree, or a
> completely separate pull, but I'm not sure what the conclusion was ...
> maintainers, thoughts?

I'd prefer a separate pull, so that I could merge it into msm-next as
well without having to pull in all of drm-misc

Possibly some other driver trees would like to do similar?

BR,
-R
David Heidelberg July 29, 2023, 9:08 a.m. UTC | #8
Hello Maira,

Regarding the second question about V3D and V3DV: in the Mesa3D CI, we 
currently use downstream kernels, so we don't build the kernel for 
Raspberry Pi.

However, I've been thinking about the possibility of adding an override 
for the kernel from an external source to our CI. This way, we can also 
test with a provided kernel and override the default option of using the 
downstream kernel on Raspberry Pi.

If we proceed with this, it would be sensible to include V3D* options in 
our kernel builds.

I'm including Juan and Eric for their input on this topic.

David

On 28/07/2023 14:38, Maira Canal wrote:
> Hi Helen,
>
> Great to see this coming to the DRM!
>
> Just wondering, any chance we could add a stage to perform tests on
> VKMS? The main way of validating VKMS is through IGT tests, so I feel
> it would be a perfect match to have VKMS as a stage on the CI. As a
> generic KMS driver, VKMS is also great to validate changes on DRM core.
>
> Another question, could we add V3D to the default arm and arm64 config?
>
> Best Regards,
> - Maíra
>
> On 7/20/23 12:27, Helen Koike wrote:
>> From: Tomeu Vizoso <tomeu.vizoso@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@collabora.com>
>> Signed-off-by: Helen Koike <helen.koike@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@collabora.com>
>> +L:    dri-devel@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@gmail.com>
>>   L:    linux-media@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@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@getclient-simple
>> +core_auth@getclient-master-drop
>> +core_auth@basic-auth
>> +core_auth@many-magics
>> +core_getclient
>> +core_getstats
>> +core_getversion
>> +core_setmaster_vs_auth
>> +drm_read@invalid-buffer
>> +drm_read@fault-buffer
>> +drm_read@empty-block
>> +drm_read@empty-nonblock
>> +drm_read@short-buffer-block
>> +drm_read@short-buffer-nonblock
>> +drm_read@short-buffer-wakeup
>> +gem_eio@throttle
>> +gem_eio@create
>> +gem_eio@create-ext
>> +gem_eio@context-create
>> +gem_eio@execbuf
>> +gem_eio@banned
>> +gem_eio@suspend
>> +gem_eio@hibernate
>> +gem_eio@in-flight-external
>> +gem_eio@in-flight-suspend
>> +gem_eio@reset-stress
>> +gem_eio@unwedge-stress
>> +gem_eio@wait-immediate
>> +gem_eio@wait-wedge-immediate
>> +gem_eio@in-flight-immediate
>> +gem_eio@in-flight-contexts-immediate
>> +gem_eio@in-flight-internal-immediate
>> +gem_eio@wait-1us
>> +gem_eio@wait-wedge-1us
>> +gem_eio@in-flight-1us
>> +gem_eio@in-flight-contexts-1us
>> +gem_eio@in-flight-internal-1us
>> +gem_eio@wait-10ms
>> +gem_eio@wait-wedge-10ms
>> +gem_eio@in-flight-10ms
>> +gem_eio@in-flight-contexts-10ms
>> +gem_eio@in-flight-internal-10ms
>> +gem_eio@kms
>> +kms_3d
>> +kms_addfb_basic@unused-handle
>> +kms_addfb_basic@unused-pitches
>> +kms_addfb_basic@unused-offsets
>> +kms_addfb_basic@unused-modifier
>> +kms_addfb_basic@clobberred-modifier
>> +kms_addfb_basic@invalid-smem-bo-on-discrete
>> +kms_addfb_basic@legacy-format
>> +kms_addfb_basic@no-handle
>> +kms_addfb_basic@basic
>> +kms_addfb_basic@bad-pitch-0
>> +kms_addfb_basic@bad-pitch-32
>> +kms_addfb_basic@bad-pitch-63
>> +kms_addfb_basic@bad-pitch-128
>> +kms_addfb_basic@bad-pitch-256
>> +kms_addfb_basic@bad-pitch-1024
>> +kms_addfb_basic@bad-pitch-999
>> +kms_addfb_basic@bad-pitch-65536
>> +kms_addfb_basic@invalid-get-prop-any
>> +kms_addfb_basic@invalid-get-prop
>> +kms_addfb_basic@invalid-set-prop-any
>> +kms_addfb_basic@invalid-set-prop
>> +kms_addfb_basic@master-rmfb
>> +kms_addfb_basic@addfb25-modifier-no-flag
>> +kms_addfb_basic@addfb25-bad-modifier
>> +kms_addfb_basic@addfb25-x-tiled-mismatch-legacy
>> +kms_addfb_basic@addfb25-x-tiled-legacy
>> +kms_addfb_basic@addfb25-framebuffer-vs-set-tiling
>> +kms_addfb_basic@basic-x-tiled-legacy
>> +kms_addfb_basic@framebuffer-vs-set-tiling
>> +kms_addfb_basic@tile-pitch-mismatch
>> +kms_addfb_basic@basic-y-tiled-legacy
>> +kms_addfb_basic@size-max
>> +kms_addfb_basic@too-wide
>> +kms_addfb_basic@too-high
>> +kms_addfb_basic@bo-too-small
>> +kms_addfb_basic@small-bo
>> +kms_addfb_basic@bo-too-small-due-to-tiling
>> +kms_addfb_basic@addfb25-y-tiled-legacy
>> +kms_addfb_basic@addfb25-yf-tiled-legacy
>> +kms_addfb_basic@addfb25-y-tiled-small-legacy
>> +kms_addfb_basic@addfb25-4-tiled
>> +kms_async_flips@async-flip-with-page-flip-events
>> +kms_async_flips@alternate-sync-async-flip
>> +kms_async_flips@test-time-stamp
>> +kms_async_flips@test-cursor
>> +kms_async_flips@invalid-async-flip
>> +kms_async_flips@crc
>> +kms_atomic@plane-overlay-legacy
>> +kms_atomic@plane-primary-legacy
>> +kms_atomic@plane-primary-overlay-mutable-zpos
>> +kms_atomic@plane-immutable-zpos
>> +kms_atomic@test-only
>> +kms_atomic@plane-cursor-legacy
>> +kms_atomic@plane-invalid-params
>> +kms_atomic@plane-invalid-params-fence
>> +kms_atomic@crtc-invalid-params
>> +kms_atomic@crtc-invalid-params-fence
>> +kms_atomic@atomic-invalid-params
>> +kms_atomic@atomic_plane_damage
>> +kms_atomic_interruptible@legacy-setmode
>> +kms_atomic_interruptible@atomic-setmode
>> +kms_atomic_interruptible@legacy-dpms
>> +kms_atomic_interruptible@legacy-pageflip
>> +kms_atomic_interruptible@legacy-cursor
>> +kms_atomic_interruptible@universal-setplane-primary
>> +kms_atomic_interruptible@universal-setplane-cursor
>> +kms_atomic_transition@plane-primary-toggle-with-vblank-wait
>> +kms_atomic_transition@plane-all-transition
>> +kms_atomic_transition@plane-all-transition-fencing
>> +kms_atomic_transition@plane-all-transition-nonblocking
>> +kms_atomic_transition@plane-all-transition-nonblocking-fencing
>> +kms_atomic_transition@plane-use-after-nonblocking-unbind
>> +kms_atomic_transition@plane-use-after-nonblocking-unbind-fencing
>> +kms_atomic_transition@plane-all-modeset-transition
>> +kms_atomic_transition@plane-all-modeset-transition-fencing
>> +kms_atomic_transition@plane-all-modeset-transition-internal-panels
>> +kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels 
>>
>> +kms_atomic_transition@plane-toggle-modeset-transition
>> +kms_atomic_transition@modeset-transition
>> +kms_atomic_transition@modeset-transition-fencing
>> +kms_atomic_transition@modeset-transition-nonblocking
>> +kms_atomic_transition@modeset-transition-nonblocking-fencing
>> +kms_big_fb@x-tiled-addfb-size-overflow
>> +kms_big_fb@y-tiled-addfb-size-overflow
>> +kms_big_fb@yf-tiled-addfb-size-overflow
>> +kms_big_fb@4-tiled-addfb-size-overflow
>> +kms_big_fb@x-tiled-addfb-size-offset-overflow
>> +kms_big_fb@y-tiled-addfb-size-offset-overflow
>> +kms_big_fb@yf-tiled-addfb-size-offset-overflow
>> +kms_big_fb@4-tiled-addfb-size-offset-overflow
>> +kms_big_fb@linear-addfb
>> +kms_big_fb@x-tiled-addfb
>> +kms_big_fb@y-tiled-addfb
>> +kms_big_fb@yf-tiled-addfb
>> +kms_big_fb@4-tiled-addfb
>> +kms_big_fb@linear-8bpp-rotate-0
>> +kms_big_fb@linear-8bpp-rotate-90
>> +kms_big_fb@linear-8bpp-rotate-180
>> +kms_big_fb@linear-8bpp-rotate-270
>> +kms_big_fb@linear-16bpp-rotate-0
>> +kms_big_fb@linear-16bpp-rotate-90
>> +kms_big_fb@linear-16bpp-rotate-180
>> +kms_big_fb@linear-16bpp-rotate-270
>> +kms_big_fb@linear-32bpp-rotate-0
>> +kms_big_fb@linear-32bpp-rotate-90
>> +kms_big_fb@linear-32bpp-rotate-180
>> +kms_big_fb@linear-32bpp-rotate-270
>> +kms_big_fb@linear-64bpp-rotate-0
>> +kms_big_fb@linear-64bpp-rotate-90
>> +kms_big_fb@linear-64bpp-rotate-180
>> +kms_big_fb@linear-64bpp-rotate-270
>> +kms_big_fb@x-tiled-8bpp-rotate-0
>> +kms_big_fb@x-tiled-8bpp-rotate-90
>> +kms_big_fb@x-tiled-8bpp-rotate-180
>> +kms_big_fb@x-tiled-8bpp-rotate-270
>> +kms_big_fb@x-tiled-16bpp-rotate-0
>> +kms_big_fb@x-tiled-16bpp-rotate-90
>> +kms_big_fb@x-tiled-16bpp-rotate-180
>> +kms_big_fb@x-tiled-16bpp-rotate-270
>> +kms_big_fb@x-tiled-32bpp-rotate-0
>> +kms_big_fb@x-tiled-32bpp-rotate-90
>> +kms_big_fb@x-tiled-32bpp-rotate-180
>> +kms_big_fb@x-tiled-32bpp-rotate-270
>> +kms_big_fb@x-tiled-64bpp-rotate-0
>> +kms_big_fb@x-tiled-64bpp-rotate-90
>> +kms_big_fb@x-tiled-64bpp-rotate-180
>> +kms_big_fb@x-tiled-64bpp-rotate-270
>> +kms_big_fb@y-tiled-8bpp-rotate-0
>> +kms_big_fb@y-tiled-8bpp-rotate-90
>> +kms_big_fb@y-tiled-8bpp-rotate-180
>> +kms_big_fb@y-tiled-8bpp-rotate-270
>> +kms_big_fb@y-tiled-16bpp-rotate-0
>> +kms_big_fb@y-tiled-16bpp-rotate-90
>> +kms_big_fb@y-tiled-16bpp-rotate-180
>> +kms_big_fb@y-tiled-16bpp-rotate-270
>> +kms_big_fb@y-tiled-32bpp-rotate-0
>> +kms_big_fb@y-tiled-32bpp-rotate-90
>> +kms_big_fb@y-tiled-32bpp-rotate-180
>> +kms_big_fb@y-tiled-32bpp-rotate-270
>> +kms_big_fb@y-tiled-64bpp-rotate-0
>> +kms_big_fb@y-tiled-64bpp-rotate-90
>> +kms_big_fb@y-tiled-64bpp-rotate-180
>> +kms_big_fb@y-tiled-64bpp-rotate-270
>> +kms_big_fb@yf-tiled-8bpp-rotate-0
>> +kms_big_fb@yf-tiled-8bpp-rotate-90
>> +kms_big_fb@yf-tiled-8bpp-rotate-180
>> +kms_big_fb@yf-tiled-8bpp-rotate-270
>> +kms_big_fb@yf-tiled-16bpp-rotate-0
>> +kms_big_fb@yf-tiled-16bpp-rotate-90
>> +kms_big_fb@yf-tiled-16bpp-rotate-180
>> +kms_big_fb@yf-tiled-16bpp-rotate-270
>> +kms_big_fb@yf-tiled-32bpp-rotate-0
>> +kms_big_fb@yf-tiled-32bpp-rotate-90
>> +kms_big_fb@yf-tiled-32bpp-rotate-180
>> +kms_big_fb@yf-tiled-32bpp-rotate-270
>> +kms_big_fb@yf-tiled-64bpp-rotate-0
>> +kms_big_fb@yf-tiled-64bpp-rotate-90
>> +kms_big_fb@yf-tiled-64bpp-rotate-180
>> +kms_big_fb@yf-tiled-64bpp-rotate-270
>> +kms_big_fb@4-tiled-8bpp-rotate-0
>> +kms_big_fb@4-tiled-8bpp-rotate-90
>> +kms_big_fb@4-tiled-8bpp-rotate-180
>> +kms_big_fb@4-tiled-8bpp-rotate-270
>> +kms_big_fb@4-tiled-16bpp-rotate-0
>> +kms_big_fb@4-tiled-16bpp-rotate-90
>> +kms_big_fb@4-tiled-16bpp-rotate-180
>> +kms_big_fb@4-tiled-16bpp-rotate-270
>> +kms_big_fb@4-tiled-32bpp-rotate-0
>> +kms_big_fb@4-tiled-32bpp-rotate-90
>> +kms_big_fb@4-tiled-32bpp-rotate-180
>> +kms_big_fb@4-tiled-32bpp-rotate-270
>> +kms_big_fb@4-tiled-64bpp-rotate-0
>> +kms_big_fb@4-tiled-64bpp-rotate-90
>> +kms_big_fb@4-tiled-64bpp-rotate-180
>> +kms_big_fb@4-tiled-64bpp-rotate-270
>> +kms_big_fb@linear-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@linear-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@linear-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@linear-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_joiner@basic
>> +kms_big_joiner@invalid-modeset
>> +kms_big_joiner@2x-modeset
>> +kms_busy@basic
>> +kms_busy@basic-hang
>> +kms_busy@extended-pageflip-modeset-hang-oldfb
>> +kms_busy@extended-pageflip-hang-oldfb
>> +kms_busy@extended-pageflip-hang-newfb
>> +kms_busy@extended-modeset-hang-oldfb
>> +kms_busy@extended-modeset-hang-newfb
>> +kms_busy@extended-modeset-hang-oldfb-with-reset
>> +kms_busy@extended-modeset-hang-newfb-with-reset
>> +kms_bw@linear-tiling-1-displays-1920x1080p
>> +kms_bw@linear-tiling-1-displays-2560x1440p
>> +kms_bw@linear-tiling-1-displays-3840x2160p
>> +kms_bw@linear-tiling-2-displays-1920x1080p
>> +kms_bw@linear-tiling-2-displays-2560x1440p
>> +kms_bw@linear-tiling-2-displays-3840x2160p
>> +kms_bw@linear-tiling-3-displays-1920x1080p
>> +kms_bw@linear-tiling-3-displays-2560x1440p
>> +kms_bw@linear-tiling-3-displays-3840x2160p
>> +kms_bw@linear-tiling-4-displays-1920x1080p
>> +kms_bw@linear-tiling-4-displays-2560x1440p
>> +kms_bw@linear-tiling-4-displays-3840x2160p
>> +kms_bw@linear-tiling-5-displays-1920x1080p
>> +kms_bw@linear-tiling-5-displays-2560x1440p
>> +kms_bw@linear-tiling-5-displays-3840x2160p
>> +kms_bw@linear-tiling-6-displays-1920x1080p
>> +kms_bw@linear-tiling-6-displays-2560x1440p
>> +kms_bw@linear-tiling-6-displays-3840x2160p
>> +kms_bw@linear-tiling-7-displays-1920x1080p
>> +kms_bw@linear-tiling-7-displays-2560x1440p
>> +kms_bw@linear-tiling-7-displays-3840x2160p
>> +kms_bw@linear-tiling-8-displays-1920x1080p
>> +kms_bw@linear-tiling-8-displays-2560x1440p
>> +kms_bw@linear-tiling-8-displays-3840x2160p
>> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-A-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-A-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-A-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-A-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-B-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-B-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-B-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-B-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-C-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-C-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-C-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-C-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-D-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-D-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-D-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-D-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-E-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-E-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-E-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-E-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-F-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-F-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-F-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-F-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-G-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-G-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-G-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-G-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-random-ccs-data-y_tiled_ccs
>> +kms_ccs@pipe-H-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@pipe-H-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@pipe-H-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@pipe-H-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_cdclk@plane-scaling
>> +kms_cdclk@mode-transition
>> +kms_cdclk@mode-transition-all-outputs
>> +kms_color@degamma
>> +kms_color@gamma
>> +kms_color@legacy-gamma
>> +kms_color@legacy-gamma-reset
>> +kms_color@ctm-red-to-blue
>> +kms_color@ctm-green-to-red
>> +kms_color@ctm-blue-to-red
>> +kms_color@ctm-max
>> +kms_color@ctm-negative
>> +kms_color@ctm-0-25
>> +kms_color@ctm-0-50
>> +kms_color@ctm-0-75
>> +kms_color@ctm-signed
>> +kms_color@deep-color
>> +kms_color@invalid-gamma-lut-sizes
>> +kms_color@invalid-degamma-lut-sizes
>> +kms_color@invalid-ctm-matrix-sizes
>> +kms_concurrent@pipe-A
>> +kms_concurrent@pipe-B
>> +kms_concurrent@pipe-C
>> +kms_concurrent@pipe-D
>> +kms_concurrent@pipe-E
>> +kms_concurrent@pipe-F
>> +kms_concurrent@pipe-G
>> +kms_concurrent@pipe-H
>> +kms_content_protection@legacy
>> +kms_content_protection@atomic
>> +kms_content_protection@atomic-dpms
>> +kms_content_protection@LIC
>> +kms_content_protection@type1
>> +kms_content_protection@mei_interface
>> +kms_content_protection@content_type_change
>> +kms_content_protection@uevent
>> +kms_content_protection@srm
>> +kms_content_protection@dp-mst-type-0
>> +kms_content_protection@dp-mst-lic-type-0
>> +kms_content_protection@dp-mst-type-1
>> +kms_content_protection@dp-mst-lic-type-1
>> +kms_cursor_crc@cursor-size-change
>> +kms_cursor_crc@cursor-alpha-opaque
>> +kms_cursor_crc@cursor-alpha-transparent
>> +kms_cursor_crc@cursor-dpms
>> +kms_cursor_crc@cursor-suspend
>> +kms_cursor_crc@cursor-onscreen-32x32
>> +kms_cursor_crc@cursor-offscreen-32x32
>> +kms_cursor_crc@cursor-sliding-32x32
>> +kms_cursor_crc@cursor-random-32x32
>> +kms_cursor_crc@cursor-rapid-movement-32x32
>> +kms_cursor_crc@cursor-onscreen-32x10
>> +kms_cursor_crc@cursor-offscreen-32x10
>> +kms_cursor_crc@cursor-sliding-32x10
>> +kms_cursor_crc@cursor-random-32x10
>> +kms_cursor_crc@cursor-rapid-movement-32x10
>> +kms_cursor_crc@cursor-onscreen-64x64
>> +kms_cursor_crc@cursor-offscreen-64x64
>> +kms_cursor_crc@cursor-sliding-64x64
>> +kms_cursor_crc@cursor-random-64x64
>> +kms_cursor_crc@cursor-rapid-movement-64x64
>> +kms_cursor_crc@cursor-onscreen-64x21
>> +kms_cursor_crc@cursor-offscreen-64x21
>> +kms_cursor_crc@cursor-sliding-64x21
>> +kms_cursor_crc@cursor-random-64x21
>> +kms_cursor_crc@cursor-rapid-movement-64x21
>> +kms_cursor_crc@cursor-onscreen-128x128
>> +kms_cursor_crc@cursor-offscreen-128x128
>> +kms_cursor_crc@cursor-sliding-128x128
>> +kms_cursor_crc@cursor-random-128x128
>> +kms_cursor_crc@cursor-rapid-movement-128x128
>> +kms_cursor_crc@cursor-onscreen-128x42
>> +kms_cursor_crc@cursor-offscreen-128x42
>> +kms_cursor_crc@cursor-sliding-128x42
>> +kms_cursor_crc@cursor-random-128x42
>> +kms_cursor_crc@cursor-rapid-movement-128x42
>> +kms_cursor_crc@cursor-onscreen-256x256
>> +kms_cursor_crc@cursor-offscreen-256x256
>> +kms_cursor_crc@cursor-sliding-256x256
>> +kms_cursor_crc@cursor-random-256x256
>> +kms_cursor_crc@cursor-rapid-movement-256x256
>> +kms_cursor_crc@cursor-onscreen-256x85
>> +kms_cursor_crc@cursor-offscreen-256x85
>> +kms_cursor_crc@cursor-sliding-256x85
>> +kms_cursor_crc@cursor-random-256x85
>> +kms_cursor_crc@cursor-rapid-movement-256x85
>> +kms_cursor_crc@cursor-onscreen-512x512
>> +kms_cursor_crc@cursor-offscreen-512x512
>> +kms_cursor_crc@cursor-sliding-512x512
>> +kms_cursor_crc@cursor-random-512x512
>> +kms_cursor_crc@cursor-rapid-movement-512x512
>> +kms_cursor_crc@cursor-onscreen-512x170
>> +kms_cursor_crc@cursor-offscreen-512x170
>> +kms_cursor_crc@cursor-sliding-512x170
>> +kms_cursor_crc@cursor-random-512x170
>> +kms_cursor_crc@cursor-rapid-movement-512x170
>> +kms_cursor_crc@cursor-onscreen-max-size
>> +kms_cursor_crc@cursor-offscreen-max-size
>> +kms_cursor_crc@cursor-sliding-max-size
>> +kms_cursor_crc@cursor-random-max-size
>> +kms_cursor_crc@cursor-rapid-movement-max-size
>> +kms_cursor_legacy@single-bo
>> +kms_cursor_legacy@single-move
>> +kms_cursor_legacy@forked-bo
>> +kms_cursor_legacy@forked-move
>> +kms_cursor_legacy@torture-bo
>> +kms_cursor_legacy@torture-move
>> +kms_cursor_legacy@nonblocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@2x-flip-vs-cursor-legacy
>> +kms_cursor_legacy@2x-flip-vs-cursor-atomic
>> +kms_cursor_legacy@2x-long-flip-vs-cursor-legacy
>> +kms_cursor_legacy@2x-long-flip-vs-cursor-atomic
>> +kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@2x-cursor-vs-flip-legacy
>> +kms_cursor_legacy@2x-long-cursor-vs-flip-legacy
>> +kms_cursor_legacy@2x-cursor-vs-flip-atomic
>> +kms_cursor_legacy@2x-long-cursor-vs-flip-atomic
>> +kms_cursor_legacy@flip-vs-cursor-crc-legacy
>> +kms_cursor_legacy@flip-vs-cursor-crc-atomic
>> +kms_cursor_legacy@flip-vs-cursor-busy-crc-legacy
>> +kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic
>> +kms_cursor_legacy@basic-flip-before-cursor-legacy
>> +kms_cursor_legacy@basic-busy-flip-before-cursor-legacy
>> +kms_cursor_legacy@basic-flip-after-cursor-legacy
>> +kms_cursor_legacy@basic-flip-before-cursor-varying-size
>> +kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size
>> +kms_cursor_legacy@basic-flip-after-cursor-varying-size
>> +kms_cursor_legacy@short-flip-before-cursor-toggle
>> +kms_cursor_legacy@short-busy-flip-before-cursor-toggle
>> +kms_cursor_legacy@short-flip-after-cursor-toggle
>> +kms_cursor_legacy@basic-flip-before-cursor-atomic
>> +kms_cursor_legacy@basic-busy-flip-before-cursor-atomic
>> +kms_cursor_legacy@basic-flip-after-cursor-atomic
>> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions
>> +kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions
>> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions
>> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size 
>>
>> +kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size 
>>
>> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size 
>>
>> +kms_cursor_legacy@cursor-vs-flip-legacy
>> +kms_cursor_legacy@flip-vs-cursor-legacy
>> +kms_cursor_legacy@cursorA-vs-flipA-legacy
>> +kms_cursor_legacy@cursorA-vs-flipB-legacy
>> +kms_cursor_legacy@cursorB-vs-flipA-legacy
>> +kms_cursor_legacy@cursorB-vs-flipB-legacy
>> +kms_cursor_legacy@cursor-vs-flip-varying-size
>> +kms_cursor_legacy@flip-vs-cursor-varying-size
>> +kms_cursor_legacy@cursorA-vs-flipA-varying-size
>> +kms_cursor_legacy@cursorA-vs-flipB-varying-size
>> +kms_cursor_legacy@cursorB-vs-flipA-varying-size
>> +kms_cursor_legacy@cursorB-vs-flipB-varying-size
>> +kms_cursor_legacy@cursor-vs-flip-toggle
>> +kms_cursor_legacy@flip-vs-cursor-toggle
>> +kms_cursor_legacy@cursorA-vs-flipA-toggle
>> +kms_cursor_legacy@cursorA-vs-flipB-toggle
>> +kms_cursor_legacy@cursorB-vs-flipA-toggle
>> +kms_cursor_legacy@cursorB-vs-flipB-toggle
>> +kms_cursor_legacy@cursor-vs-flip-atomic
>> +kms_cursor_legacy@flip-vs-cursor-atomic
>> +kms_cursor_legacy@cursorA-vs-flipA-atomic
>> +kms_cursor_legacy@cursorA-vs-flipB-atomic
>> +kms_cursor_legacy@cursorB-vs-flipA-atomic
>> +kms_cursor_legacy@cursorB-vs-flipB-atomic
>> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions
>> +kms_cursor_legacy@flip-vs-cursor-atomic-transitions
>> +kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions
>> +kms_cursor_legacy@cursorA-vs-flipB-atomic-transitions
>> +kms_cursor_legacy@cursorB-vs-flipA-atomic-transitions
>> +kms_cursor_legacy@cursorB-vs-flipB-atomic-transitions
>> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size
>> +kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size
>> +kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions-varying-size
>> +kms_cursor_legacy@cursorA-vs-flipB-atomic-transitions-varying-size
>> +kms_cursor_legacy@cursorB-vs-flipA-atomic-transitions-varying-size
>> +kms_cursor_legacy@cursorB-vs-flipB-atomic-transitions-varying-size
>> +kms_dither@FB-8BPC-Vs-Panel-6BPC
>> +kms_dither@FB-8BPC-Vs-Panel-8BPC
>> +kms_dp_aux_dev
>> +kms_tiled_display@basic-test-pattern
>> +kms_tiled_display@basic-test-pattern-with-chamelium
>> +kms_draw_crc@draw-method-mmap-cpu
>> +kms_draw_crc@draw-method-mmap-gtt
>> +kms_draw_crc@draw-method-mmap-wc
>> +kms_draw_crc@draw-method-pwrite
>> +kms_draw_crc@draw-method-blt
>> +kms_draw_crc@draw-method-render
>> +kms_draw_crc@fill-fb
>> +kms_dsc@dsc-basic
>> +kms_dsc@dsc-with-formats
>> +kms_dsc@dsc-with-bpc
>> +kms_dsc@dsc-with-bpc-formats
>> +kms_dsc@dsc-with-output-formats
>> +kms_fbcon_fbt@fbc
>> +kms_fbcon_fbt@psr
>> +kms_fbcon_fbt@fbc-suspend
>> +kms_fbcon_fbt@psr-suspend
>> +kms_fence_pin_leak
>> +kms_flip@nonblocking-read
>> +kms_flip@wf_vblank-ts-check
>> +kms_flip@2x-wf_vblank-ts-check
>> +kms_flip@blocking-wf_vblank
>> +kms_flip@2x-blocking-wf_vblank
>> +kms_flip@absolute-wf_vblank
>> +kms_flip@2x-absolute-wf_vblank
>> +kms_flip@blocking-absolute-wf_vblank
>> +kms_flip@2x-blocking-absolute-wf_vblank
>> +kms_flip@basic-plain-flip
>> +kms_flip@2x-plain-flip
>> +kms_flip@busy-flip
>> +kms_flip@2x-busy-flip
>> +kms_flip@flip-vs-fences
>> +kms_flip@2x-flip-vs-fences
>> +kms_flip@plain-flip-ts-check
>> +kms_flip@2x-plain-flip-ts-check
>> +kms_flip@plain-flip-fb-recreate
>> +kms_flip@2x-plain-flip-fb-recreate
>> +kms_flip@flip-vs-rmfb
>> +kms_flip@2x-flip-vs-rmfb
>> +kms_flip@basic-flip-vs-dpms
>> +kms_flip@2x-flip-vs-dpms
>> +kms_flip@flip-vs-panning
>> +kms_flip@2x-flip-vs-panning
>> +kms_flip@basic-flip-vs-modeset
>> +kms_flip@2x-flip-vs-modeset
>> +kms_flip@flip-vs-expired-vblank
>> +kms_flip@2x-flip-vs-expired-vblank
>> +kms_flip@flip-vs-absolute-wf_vblank
>> +kms_flip@2x-flip-vs-absolute-wf_vblank
>> +kms_flip@basic-flip-vs-wf_vblank
>> +kms_flip@2x-flip-vs-wf_vblank
>> +kms_flip@flip-vs-blocking-wf-vblank
>> +kms_flip@2x-flip-vs-blocking-wf-vblank
>> +kms_flip@flip-vs-modeset-vs-hang
>> +kms_flip@2x-flip-vs-modeset-vs-hang
>> +kms_flip@flip-vs-panning-vs-hang
>> +kms_flip@2x-flip-vs-panning-vs-hang
>> +kms_flip@flip-vs-dpms-off-vs-modeset
>> +kms_flip@2x-flip-vs-dpms-off-vs-modeset
>> +kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset
>> +kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset
>> +kms_flip@dpms-off-confusion
>> +kms_flip@nonexisting-fb
>> +kms_flip@2x-nonexisting-fb
>> +kms_flip@dpms-vs-vblank-race
>> +kms_flip@2x-dpms-vs-vblank-race
>> +kms_flip@modeset-vs-vblank-race
>> +kms_flip@2x-modeset-vs-vblank-race
>> +kms_flip@bo-too-big
>> +kms_flip@flip-vs-suspend
>> +kms_flip@2x-flip-vs-suspend
>> +kms_flip@wf_vblank-ts-check-interruptible
>> +kms_flip@2x-wf_vblank-ts-check-interruptible
>> +kms_flip@absolute-wf_vblank-interruptible
>> +kms_flip@2x-absolute-wf_vblank-interruptible
>> +kms_flip@blocking-absolute-wf_vblank-interruptible
>> +kms_flip@2x-blocking-absolute-wf_vblank-interruptible
>> +kms_flip@plain-flip-interruptible
>> +kms_flip@2x-plain-flip-interruptible
>> +kms_flip@flip-vs-fences-interruptible
>> +kms_flip@2x-flip-vs-fences-interruptible
>> +kms_flip@plain-flip-ts-check-interruptible
>> +kms_flip@2x-plain-flip-ts-check-interruptible
>> +kms_flip@plain-flip-fb-recreate-interruptible
>> +kms_flip@2x-plain-flip-fb-recreate-interruptible
>> +kms_flip@flip-vs-rmfb-interruptible
>> +kms_flip@2x-flip-vs-rmfb-interruptible
>> +kms_flip@flip-vs-panning-interruptible
>> +kms_flip@2x-flip-vs-panning-interruptible
>> +kms_flip@flip-vs-expired-vblank-interruptible
>> +kms_flip@2x-flip-vs-expired-vblank-interruptible
>> +kms_flip@flip-vs-absolute-wf_vblank-interruptible
>> +kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible
>> +kms_flip@flip-vs-wf_vblank-interruptible
>> +kms_flip@2x-flip-vs-wf_vblank-interruptible
>> +kms_flip@flip-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@dpms-off-confusion-interruptible
>> +kms_flip@nonexisting-fb-interruptible
>> +kms_flip@2x-nonexisting-fb-interruptible
>> +kms_flip@dpms-vs-vblank-race-interruptible
>> +kms_flip@2x-dpms-vs-vblank-race-interruptible
>> +kms_flip@modeset-vs-vblank-race-interruptible
>> +kms_flip@2x-modeset-vs-vblank-race-interruptible
>> +kms_flip@bo-too-big-interruptible
>> +kms_flip@flip-vs-suspend-interruptible
>> +kms_flip@2x-flip-vs-suspend-interruptible
>> +kms_flip_event_leak@basic
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling 
>>
>> +kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
>> +kms_force_connector_basic@force-load-detect
>> +kms_force_connector_basic@force-connector-state
>> +kms_force_connector_basic@force-edid
>> +kms_force_connector_basic@prune-stale-modes
>> +kms_frontbuffer_tracking@fbc-1p-rte
>> +kms_frontbuffer_tracking@fbc-2p-rte
>> +kms_frontbuffer_tracking@psr-1p-rte
>> +kms_frontbuffer_tracking@psr-2p-rte
>> +kms_frontbuffer_tracking@fbcpsr-1p-rte
>> +kms_frontbuffer_tracking@fbcpsr-2p-rte
>> +kms_frontbuffer_tracking@drrs-1p-rte
>> +kms_frontbuffer_tracking@drrs-2p-rte
>> +kms_frontbuffer_tracking@fbcdrrs-1p-rte
>> +kms_frontbuffer_tracking@fbcdrrs-2p-rte
>> +kms_frontbuffer_tracking@psrdrrs-1p-rte
>> +kms_frontbuffer_tracking@psrdrrs-2p-rte
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-rte
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-rte
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@psr-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@drrs-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbcdrrs-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbcdrrs-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@psrdrrs-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@psrdrrs-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbcpsrdrrs-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbcpsrdrrs-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@fbc-rgb565-draw-blt
>> +kms_frontbuffer_tracking@fbc-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@fbc-rgb565-draw-render
>> +kms_frontbuffer_tracking@fbc-rgb101010-draw-render
>> +kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psr-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@psr-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@psr-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@psr-rgb565-draw-blt
>> +kms_frontbuffer_tracking@psr-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@psr-rgb565-draw-render
>> +kms_frontbuffer_tracking@psr-rgb101010-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render
>> +kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render
>> +kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@drrs-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@drrs-rgb565-draw-blt
>> +kms_frontbuffer_tracking@drrs-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@drrs-rgb565-draw-render
>> +kms_frontbuffer_tracking@drrs-rgb101010-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-render
>> +kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@psrdrrs-rgb565-draw-render
>> +kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-render
>> +kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-render
>> +kms_frontbuffer_tracking@fbc-indfb-scaledprimary
>> +kms_frontbuffer_tracking@fbc-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@psr-indfb-scaledprimary
>> +kms_frontbuffer_tracking@psr-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary
>> +kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@drrs-indfb-scaledprimary
>> +kms_frontbuffer_tracking@drrs-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@fbcdrrs-indfb-scaledprimary
>> +kms_frontbuffer_tracking@fbcdrrs-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@psrdrrs-indfb-scaledprimary
>> +kms_frontbuffer_tracking@psrdrrs-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@fbcpsrdrrs-indfb-scaledprimary
>> +kms_frontbuffer_tracking@fbcpsrdrrs-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@fbc-modesetfrombusy
>> +kms_frontbuffer_tracking@fbc-badstride
>> +kms_frontbuffer_tracking@fbc-stridechange
>> +kms_frontbuffer_tracking@fbc-tiling-linear
>> +kms_frontbuffer_tracking@fbc-tiling-y
>> +kms_frontbuffer_tracking@fbc-tiling-4
>> +kms_frontbuffer_tracking@fbc-suspend
>> +kms_frontbuffer_tracking@psr-modesetfrombusy
>> +kms_frontbuffer_tracking@psr-slowdraw
>> +kms_frontbuffer_tracking@psr-suspend
>> +kms_frontbuffer_tracking@fbcpsr-modesetfrombusy
>> +kms_frontbuffer_tracking@fbcpsr-badstride
>> +kms_frontbuffer_tracking@fbcpsr-stridechange
>> +kms_frontbuffer_tracking@fbcpsr-tiling-linear
>> +kms_frontbuffer_tracking@fbcpsr-tiling-y
>> +kms_frontbuffer_tracking@fbcpsr-tiling-4
>> +kms_frontbuffer_tracking@fbcpsr-slowdraw
>> +kms_frontbuffer_tracking@fbcpsr-suspend
>> +kms_frontbuffer_tracking@drrs-modesetfrombusy
>> +kms_frontbuffer_tracking@drrs-slowdraw
>> +kms_frontbuffer_tracking@drrs-suspend
>> +kms_frontbuffer_tracking@fbcdrrs-modesetfrombusy
>> +kms_frontbuffer_tracking@fbcdrrs-badstride
>> +kms_frontbuffer_tracking@fbcdrrs-stridechange
>> +kms_frontbuffer_tracking@fbcdrrs-tiling-linear
>> +kms_frontbuffer_tracking@fbcdrrs-tiling-y
>> +kms_frontbuffer_tracking@fbcdrrs-tiling-4
>> +kms_frontbuffer_tracking@fbcdrrs-slowdraw
>> +kms_frontbuffer_tracking@fbcdrrs-suspend
>> +kms_frontbuffer_tracking@psrdrrs-modesetfrombusy
>> +kms_frontbuffer_tracking@psrdrrs-slowdraw
>> +kms_frontbuffer_tracking@psrdrrs-suspend
>> +kms_frontbuffer_tracking@fbcpsrdrrs-modesetfrombusy
>> +kms_frontbuffer_tracking@fbcpsrdrrs-badstride
>> +kms_frontbuffer_tracking@fbcpsrdrrs-stridechange
>> +kms_frontbuffer_tracking@fbcpsrdrrs-tiling-linear
>> +kms_frontbuffer_tracking@fbcpsrdrrs-tiling-y
>> +kms_frontbuffer_tracking@fbcpsrdrrs-tiling-4
>> +kms_frontbuffer_tracking@fbcpsrdrrs-slowdraw
>> +kms_frontbuffer_tracking@fbcpsrdrrs-suspend
>> +kms_frontbuffer_tracking@basic
>> +kms_getfb@getfb-handle-zero
>> +kms_getfb@getfb-handle-valid
>> +kms_getfb@getfb-handle-closed
>> +kms_getfb@getfb-handle-not-fb
>> +kms_getfb@getfb-addfb-different-handles
>> +kms_getfb@getfb-repeated-different-handles
>> +kms_getfb@getfb-reject-ccs
>> +kms_getfb@getfb2-handle-zero
>> +kms_getfb@getfb2-handle-closed
>> +kms_getfb@getfb2-handle-not-fb
>> +kms_getfb@getfb2-accept-ccs
>> +kms_getfb@getfb2-into-addfb2
>> +kms_getfb@getfb-handle-protection
>> +kms_getfb@getfb2-handle-protection
>> +kms_hdmi_inject@inject-4k
>> +kms_hdmi_inject@inject-audio
>> +kms_hdr@bpc-switch
>> +kms_hdr@bpc-switch-dpms
>> +kms_hdr@bpc-switch-suspend
>> +kms_hdr@static-toggle
>> +kms_hdr@static-toggle-dpms
>> +kms_hdr@static-toggle-suspend
>> +kms_hdr@static-swap
>> +kms_hdr@invalid-metadata-sizes
>> +kms_hdr@invalid-hdr
>> +kms_invalid_mode@clock-too-high
>> +kms_invalid_mode@zero-clock
>> +kms_invalid_mode@int-max-clock
>> +kms_invalid_mode@uint-max-clock
>> +kms_invalid_mode@zero-hdisplay
>> +kms_invalid_mode@zero-vdisplay
>> +kms_invalid_mode@bad-hsync-start
>> +kms_invalid_mode@bad-vsync-start
>> +kms_invalid_mode@bad-hsync-end
>> +kms_invalid_mode@bad-vsync-end
>> +kms_invalid_mode@bad-htotal
>> +kms_invalid_mode@bad-vtotal
>> +kms_legacy_colorkey@basic
>> +kms_legacy_colorkey@invalid-plane
>> +kms_multipipe_modeset@basic-max-pipe-crc-check
>> +kms_panel_fitting@legacy
>> +kms_panel_fitting@atomic-fastset
>> +kms_pipe_b_c_ivb@pipe-B-dpms-off-modeset-pipe-C
>> +kms_pipe_b_c_ivb@pipe-B-double-modeset-then-modeset-pipe-C
>> +kms_pipe_b_c_ivb@disable-pipe-B-enable-pipe-C
>> +kms_pipe_b_c_ivb@from-pipe-C-to-B-with-3-lanes
>> +kms_pipe_b_c_ivb@enable-pipe-C-while-B-has-3-lanes
>> +kms_pipe_crc_basic@bad-source
>> +kms_pipe_crc_basic@read-crc
>> +kms_pipe_crc_basic@read-crc-frame-sequence
>> +kms_pipe_crc_basic@nonblocking-crc
>> +kms_pipe_crc_basic@nonblocking-crc-frame-sequence
>> +kms_pipe_crc_basic@suspend-read-crc
>> +kms_pipe_crc_basic@hang-read-crc
>> +kms_pipe_crc_basic@disable-crc-after-crtc
>> +kms_pipe_crc_basic@compare-crc-sanitycheck-xr24
>> +kms_pipe_crc_basic@compare-crc-sanitycheck-nv12
>> +kms_plane@pixel-format
>> +kms_plane@pixel-format-source-clamping
>> +kms_plane@plane-position-covered
>> +kms_plane@plane-position-hole
>> +kms_plane@plane-position-hole-dpms
>> +kms_plane@plane-panning-top-left
>> +kms_plane@plane-panning-bottom-right
>> +kms_plane@plane-panning-bottom-right-suspend
>> +kms_plane@invalid-pixel-format-settings
>> +kms_plane_alpha_blend@alpha-basic
>> +kms_plane_alpha_blend@alpha-7efc
>> +kms_plane_alpha_blend@coverage-7efc
>> +kms_plane_alpha_blend@coverage-vs-premult-vs-constant
>> +kms_plane_alpha_blend@alpha-transparent-fb
>> +kms_plane_alpha_blend@alpha-opaque-fb
>> +kms_plane_alpha_blend@constant-alpha-min
>> +kms_plane_alpha_blend@constant-alpha-mid
>> +kms_plane_alpha_blend@constant-alpha-max
>> +kms_plane_cursor@primary
>> +kms_plane_cursor@overlay
>> +kms_plane_cursor@viewport
>> +kms_plane_lowres@tiling-none
>> +kms_plane_lowres@tiling-x
>> +kms_plane_lowres@tiling-y
>> +kms_plane_lowres@tiling-yf
>> +kms_plane_lowres@tiling-4
>> +kms_plane_multiple@tiling-none
>> +kms_plane_multiple@tiling-x
>> +kms_plane_multiple@tiling-y
>> +kms_plane_multiple@tiling-yf
>> +kms_plane_multiple@tiling-4
>> +kms_plane_scaling@plane-upscale-with-pixel-format-20x20
>> +kms_plane_scaling@plane-upscale-with-pixel-format-factor-0-25
>> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25
>> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5
>> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-75
>> +kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling
>> +kms_plane_scaling@plane-upscale-with-rotation-20x20
>> +kms_plane_scaling@plane-upscale-with-rotation-factor-0-25
>> +kms_plane_scaling@plane-downscale-with-rotation-factor-0-25
>> +kms_plane_scaling@plane-downscale-with-rotation-factor-0-5
>> +kms_plane_scaling@plane-downscale-with-rotation-factor-0-75
>> +kms_plane_scaling@plane-scaler-with-rotation-unity-scaling
>> +kms_plane_scaling@plane-upscale-with-modifiers-20x20
>> +kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25
>> +kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25
>> +kms_plane_scaling@plane-downscale-with-modifiers-factor-0-5
>> +kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75
>> +kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling
>> +kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats
>> +kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation
>> +kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers
>> +kms_plane_scaling@planes-upscale-20x20
>> +kms_plane_scaling@planes-upscale-factor-0-25
>> +kms_plane_scaling@planes-scaler-unity-scaling
>> +kms_plane_scaling@planes-downscale-factor-0-25
>> +kms_plane_scaling@planes-downscale-factor-0-5
>> +kms_plane_scaling@planes-downscale-factor-0-75
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75
>> +kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25
>> +kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5
>> +kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75
>> +kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25
>> +kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5
>> +kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75
>> +kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20
>> +kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25
>> +kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling
>> +kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20
>> +kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25
>> +kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling
>> +kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20
>> +kms_plane_scaling@planes-downscale-factor-0-75-upscale-factor-0-25
>> +kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling
>> +kms_plane_scaling@intel-max-src-size
>> +kms_plane_scaling@invalid-num-scalers
>> +kms_plane_scaling@invalid-parameters
>> +kms_plane_scaling@2x-scaler-multi-pipe
>> +kms_prime@basic-crc-hybrid
>> +kms_prime@basic-modeset-hybrid
>> +kms_prime@D3hot
>> +kms_prime@basic-crc-vgem
>> +kms_prop_blob@basic
>> +kms_prop_blob@blob-prop-core
>> +kms_prop_blob@blob-prop-validate
>> +kms_prop_blob@blob-prop-lifetime
>> +kms_prop_blob@blob-multiple
>> +kms_prop_blob@invalid-get-prop-any
>> +kms_prop_blob@invalid-get-prop
>> +kms_prop_blob@invalid-set-prop-any
>> +kms_prop_blob@invalid-set-prop
>> +kms_properties@plane-properties-legacy
>> +kms_properties@plane-properties-atomic
>> +kms_properties@crtc-properties-legacy
>> +kms_properties@crtc-properties-atomic
>> +kms_properties@connector-properties-legacy
>> +kms_properties@connector-properties-atomic
>> +kms_properties@invalid-properties-legacy
>> +kms_properties@invalid-properties-atomic
>> +kms_properties@get_properties-sanity-atomic
>> +kms_properties@get_properties-sanity-non-atomic
>> +kms_psr@basic
>> +kms_psr@no_drrs
>> +kms_psr@primary_page_flip
>> +kms_psr@primary_mmap_gtt
>> +kms_psr@primary_mmap_cpu
>> +kms_psr@primary_blt
>> +kms_psr@primary_render
>> +kms_psr@sprite_mmap_gtt
>> +kms_psr@cursor_mmap_gtt
>> +kms_psr@sprite_mmap_cpu
>> +kms_psr@cursor_mmap_cpu
>> +kms_psr@sprite_blt
>> +kms_psr@cursor_blt
>> +kms_psr@sprite_render
>> +kms_psr@cursor_render
>> +kms_psr@sprite_plane_move
>> +kms_psr@cursor_plane_move
>> +kms_psr@sprite_plane_onoff
>> +kms_psr@cursor_plane_onoff
>> +kms_psr@dpms
>> +kms_psr@suspend
>> +kms_psr@psr2_basic
>> +kms_psr@psr2_no_drrs
>> +kms_psr@psr2_primary_page_flip
>> +kms_psr@psr2_primary_mmap_gtt
>> +kms_psr@psr2_primary_mmap_cpu
>> +kms_psr@psr2_primary_blt
>> +kms_psr@psr2_primary_render
>> +kms_psr@psr2_sprite_mmap_gtt
>> +kms_psr@psr2_cursor_mmap_gtt
>> +kms_psr@psr2_sprite_mmap_cpu
>> +kms_psr@psr2_cursor_mmap_cpu
>> +kms_psr@psr2_sprite_blt
>> +kms_psr@psr2_cursor_blt
>> +kms_psr@psr2_sprite_render
>> +kms_psr@psr2_cursor_render
>> +kms_psr@psr2_sprite_plane_move
>> +kms_psr@psr2_cursor_plane_move
>> +kms_psr@psr2_sprite_plane_onoff
>> +kms_psr@psr2_cursor_plane_onoff
>> +kms_psr@psr2_dpms
>> +kms_psr@psr2_suspend
>> +kms_psr2_sf@primary-plane-update-sf-dmg-area
>> +kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb
>> +kms_psr2_sf@overlay-plane-update-sf-dmg-area
>> +kms_psr2_sf@cursor-plane-update-sf
>> +kms_psr2_sf@cursor-plane-move-continuous-sf
>> +kms_psr2_sf@cursor-plane-move-continuous-exceed-sf
>> +kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf
>> +kms_psr2_sf@plane-move-sf-dmg-area
>> +kms_psr2_sf@overlay-plane-move-continuous-sf
>> +kms_psr2_sf@overlay-plane-move-continuous-exceed-sf
>> +kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf
>> +kms_psr2_sf@overlay-primary-update-sf-dmg-area
>> +kms_psr2_sf@overlay-plane-update-continuous-sf
>> +kms_psr2_su@page_flip-XRGB8888
>> +kms_psr2_su@page_flip-NV12
>> +kms_psr2_su@page_flip-P010
>> +kms_psr2_su@frontbuffer-XRGB8888
>> +kms_pwrite_crc
>> +kms_rmfb@rmfb-ioctl
>> +kms_rmfb@close-fd
>> +kms_rotation_crc@primary-rotation-90
>> +kms_rotation_crc@primary-rotation-180
>> +kms_rotation_crc@primary-rotation-270
>> +kms_rotation_crc@sprite-rotation-90
>> +kms_rotation_crc@sprite-rotation-180
>> +kms_rotation_crc@sprite-rotation-270
>> +kms_rotation_crc@cursor-rotation-180
>> +kms_rotation_crc@sprite-rotation-90-pos-100-0
>> +kms_rotation_crc@bad-pixel-format
>> +kms_rotation_crc@bad-tiling
>> +kms_rotation_crc@primary-x-tiled-reflect-x-0
>> +kms_rotation_crc@primary-x-tiled-reflect-x-180
>> +kms_rotation_crc@primary-y-tiled-reflect-x-0
>> +kms_rotation_crc@primary-y-tiled-reflect-x-90
>> +kms_rotation_crc@primary-y-tiled-reflect-x-180
>> +kms_rotation_crc@primary-y-tiled-reflect-x-270
>> +kms_rotation_crc@primary-yf-tiled-reflect-x-0
>> +kms_rotation_crc@primary-yf-tiled-reflect-x-90
>> +kms_rotation_crc@primary-yf-tiled-reflect-x-180
>> +kms_rotation_crc@primary-yf-tiled-reflect-x-270
>> +kms_rotation_crc@primary-4-tiled-reflect-x-0
>> +kms_rotation_crc@primary-4-tiled-reflect-x-180
>> +kms_rotation_crc@multiplane-rotation
>> +kms_rotation_crc@multiplane-rotation-cropping-top
>> +kms_rotation_crc@multiplane-rotation-cropping-bottom
>> +kms_rotation_crc@exhaust-fences
>> +kms_scaling_modes@scaling-mode-full
>> +kms_scaling_modes@scaling-mode-center
>> +kms_scaling_modes@scaling-mode-full-aspect
>> +kms_scaling_modes@scaling-mode-none
>> +kms_selftest@drm_cmdline
>> +kms_selftest@drm_damage
>> +kms_selftest@drm_dp_mst
>> +kms_selftest@drm_format_helper
>> +kms_selftest@drm_format
>> +kms_selftest@framebuffer
>> +kms_selftest@drm_plane
>> +kms_setmode@basic
>> +kms_setmode@basic-clone-single-crtc
>> +kms_setmode@invalid-clone-single-crtc
>> +kms_setmode@invalid-clone-exclusive-crtc
>> +kms_setmode@clone-exclusive-crtc
>> +kms_setmode@invalid-clone-single-crtc-stealing
>> +kms_sysfs_edid_timing
>> +kms_tv_load_detect@load-detect
>> +kms_universal_plane@universal-plane-pipe-A-functional
>> +kms_universal_plane@universal-plane-pipe-A-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-A
>> +kms_universal_plane@cursor-fb-leak-pipe-A
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-A
>> +kms_universal_plane@universal-plane-pipe-B-functional
>> +kms_universal_plane@universal-plane-pipe-B-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-B
>> +kms_universal_plane@cursor-fb-leak-pipe-B
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-B
>> +kms_universal_plane@universal-plane-pipe-C-functional
>> +kms_universal_plane@universal-plane-pipe-C-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-C
>> +kms_universal_plane@cursor-fb-leak-pipe-C
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-C
>> +kms_universal_plane@universal-plane-pipe-D-functional
>> +kms_universal_plane@universal-plane-pipe-D-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-D
>> +kms_universal_plane@cursor-fb-leak-pipe-D
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-D
>> +kms_universal_plane@universal-plane-pipe-E-functional
>> +kms_universal_plane@universal-plane-pipe-E-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-E
>> +kms_universal_plane@cursor-fb-leak-pipe-E
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-E
>> +kms_universal_plane@universal-plane-pipe-F-functional
>> +kms_universal_plane@universal-plane-pipe-F-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-F
>> +kms_universal_plane@cursor-fb-leak-pipe-F
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-F
>> +kms_universal_plane@universal-plane-pipe-G-functional
>> +kms_universal_plane@universal-plane-pipe-G-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-G
>> +kms_universal_plane@cursor-fb-leak-pipe-G
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-G
>> +kms_universal_plane@universal-plane-pipe-H-functional
>> +kms_universal_plane@universal-plane-pipe-H-sanity
>> +kms_universal_plane@disable-primary-vs-flip-pipe-H
>> +kms_universal_plane@cursor-fb-leak-pipe-H
>> +kms_universal_plane@universal-plane-pageflip-windowed-pipe-H
>> +kms_vblank@invalid
>> +kms_vblank@crtc-id
>> +kms_vblank@pipe-A-accuracy-idle
>> +kms_vblank@pipe-A-query-idle
>> +kms_vblank@pipe-A-query-idle-hang
>> +kms_vblank@pipe-A-query-forked
>> +kms_vblank@pipe-A-query-forked-hang
>> +kms_vblank@pipe-A-query-busy
>> +kms_vblank@pipe-A-query-busy-hang
>> +kms_vblank@pipe-A-query-forked-busy
>> +kms_vblank@pipe-A-query-forked-busy-hang
>> +kms_vblank@pipe-A-wait-idle
>> +kms_vblank@pipe-A-wait-idle-hang
>> +kms_vblank@pipe-A-wait-forked
>> +kms_vblank@pipe-A-wait-forked-hang
>> +kms_vblank@pipe-A-wait-busy
>> +kms_vblank@pipe-A-wait-busy-hang
>> +kms_vblank@pipe-A-wait-forked-busy
>> +kms_vblank@pipe-A-wait-forked-busy-hang
>> +kms_vblank@pipe-A-ts-continuation-idle
>> +kms_vblank@pipe-A-ts-continuation-idle-hang
>> +kms_vblank@pipe-A-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-A-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-A-ts-continuation-suspend
>> +kms_vblank@pipe-A-ts-continuation-modeset
>> +kms_vblank@pipe-A-ts-continuation-modeset-hang
>> +kms_vblank@pipe-A-ts-continuation-modeset-rpm
>> +kms_vblank@pipe-B-accuracy-idle
>> +kms_vblank@pipe-B-query-idle
>> +kms_vblank@pipe-B-query-idle-hang
>> +kms_vblank@pipe-B-query-forked
>> +kms_vblank@pipe-B-query-forked-hang
>> +kms_vblank@pipe-B-query-busy
>> +kms_vblank@pipe-B-query-busy-hang
>> +kms_vblank@pipe-B-query-forked-busy
>> +kms_vblank@pipe-B-query-forked-busy-hang
>> +kms_vblank@pipe-B-wait-idle
>> +kms_vblank@pipe-B-wait-idle-hang
>> +kms_vblank@pipe-B-wait-forked
>> +kms_vblank@pipe-B-wait-forked-hang
>> +kms_vblank@pipe-B-wait-busy
>> +kms_vblank@pipe-B-wait-busy-hang
>> +kms_vblank@pipe-B-wait-forked-busy
>> +kms_vblank@pipe-B-wait-forked-busy-hang
>> +kms_vblank@pipe-B-ts-continuation-idle
>> +kms_vblank@pipe-B-ts-continuation-idle-hang
>> +kms_vblank@pipe-B-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-B-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-B-ts-continuation-suspend
>> +kms_vblank@pipe-B-ts-continuation-modeset
>> +kms_vblank@pipe-B-ts-continuation-modeset-hang
>> +kms_vblank@pipe-B-ts-continuation-modeset-rpm
>> +kms_vblank@pipe-C-accuracy-idle
>> +kms_vblank@pipe-C-query-idle
>> +kms_vblank@pipe-C-query-idle-hang
>> +kms_vblank@pipe-C-query-forked
>> +kms_vblank@pipe-C-query-forked-hang
>> +kms_vblank@pipe-C-query-busy
>> +kms_vblank@pipe-C-query-busy-hang
>> +kms_vblank@pipe-C-query-forked-busy
>> +kms_vblank@pipe-C-query-forked-busy-hang
>> +kms_vblank@pipe-C-wait-idle
>> +kms_vblank@pipe-C-wait-idle-hang
>> +kms_vblank@pipe-C-wait-forked
>> +kms_vblank@pipe-C-wait-forked-hang
>> +kms_vblank@pipe-C-wait-busy
>> +kms_vblank@pipe-C-wait-busy-hang
>> +kms_vblank@pipe-C-wait-forked-busy
>> +kms_vblank@pipe-C-wait-forked-busy-hang
>> +kms_vblank@pipe-C-ts-continuation-idle
>> +kms_vblank@pipe-C-ts-continuation-idle-hang
>> +kms_vblank@pipe-C-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-C-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-C-ts-continuation-suspend
>> +kms_vblank@pipe-C-ts-continuation-modeset
>> +kms_vblank@pipe-C-ts-continuation-modeset-hang
>> +kms_vblank@pipe-C-ts-continuation-modeset-rpm
>> +kms_vblank@pipe-D-accuracy-idle
>> +kms_vblank@pipe-D-query-idle
>> +kms_vblank@pipe-D-query-idle-hang
>> +kms_vblank@pipe-D-query-forked
>> +kms_vblank@pipe-D-query-forked-hang
>> +kms_vblank@pipe-D-query-busy
>> +kms_vblank@pipe-D-query-busy-hang
>> +kms_vblank@pipe-D-query-forked-busy
>> +kms_vblank@pipe-D-query-forked-busy-hang
>> +kms_vblank@pipe-D-wait-idle
>> +kms_vblank@pipe-D-wait-idle-hang
>> +kms_vblank@pipe-D-wait-forked
>> +kms_vblank@pipe-D-wait-forked-hang
>> +kms_vblank@pipe-D-wait-busy
>> +kms_vblank@pipe-D-wait-busy-hang
>> +kms_vblank@pipe-D-wait-forked-busy
>> +kms_vblank@pipe-D-wait-forked-busy-hang
>> +kms_vblank@pipe-D-ts-continuation-idle
>> +kms_vblank@pipe-D-ts-continuation-idle-hang
>> +kms_vblank@pipe-D-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-D-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-D-ts-continuation-suspend
>> +kms_vblank@pipe-D-ts-continuation-modeset
>> +kms_vblank@pipe-D-ts-continuation-modeset-hang
>> +kms_vblank@pipe-D-ts-continuation-modeset-rpm
>> +kms_vblank@pipe-E-accuracy-idle
>> +kms_vblank@pipe-E-query-idle
>> +kms_vblank@pipe-E-query-idle-hang
>> +kms_vblank@pipe-E-query-forked
>> +kms_vblank@pipe-E-query-forked-hang
>> +kms_vblank@pipe-E-query-busy
>> +kms_vblank@pipe-E-query-busy-hang
>> +kms_vblank@pipe-E-query-forked-busy
>> +kms_vblank@pipe-E-query-forked-busy-hang
>> +kms_vblank@pipe-E-wait-idle
>> +kms_vblank@pipe-E-wait-idle-hang
>> +kms_vblank@pipe-E-wait-forked
>> +kms_vblank@pipe-E-wait-forked-hang
>> +kms_vblank@pipe-E-wait-busy
>> +kms_vblank@pipe-E-wait-busy-hang
>> +kms_vblank@pipe-E-wait-forked-busy
>> +kms_vblank@pipe-E-wait-forked-busy-hang
>> +kms_vblank@pipe-E-ts-continuation-idle
>> +kms_vblank@pipe-E-ts-continuation-idle-hang
>> +kms_vblank@pipe-E-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-E-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-E-ts-continuation-suspend
>> +kms_vblank@pipe-E-ts-continuation-modeset
>> +kms_vblank@pipe-E-ts-continuation-modeset-hang
>> +kms_vblank@pipe-E-ts-continuation-modeset-rpm
>> +kms_vblank@pipe-F-accuracy-idle
>> +kms_vblank@pipe-F-query-idle
>> +kms_vblank@pipe-F-query-idle-hang
>> +kms_vblank@pipe-F-query-forked
>> +kms_vblank@pipe-F-query-forked-hang
>> +kms_vblank@pipe-F-query-busy
>> +kms_vblank@pipe-F-query-busy-hang
>> +kms_vblank@pipe-F-query-forked-busy
>> +kms_vblank@pipe-F-query-forked-busy-hang
>> +kms_vblank@pipe-F-wait-idle
>> +kms_vblank@pipe-F-wait-idle-hang
>> +kms_vblank@pipe-F-wait-forked
>> +kms_vblank@pipe-F-wait-forked-hang
>> +kms_vblank@pipe-F-wait-busy
>> +kms_vblank@pipe-F-wait-busy-hang
>> +kms_vblank@pipe-F-wait-forked-busy
>> +kms_vblank@pipe-F-wait-forked-busy-hang
>> +kms_vblank@pipe-F-ts-continuation-idle
>> +kms_vblank@pipe-F-ts-continuation-idle-hang
>> +kms_vblank@pipe-F-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-F-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-F-ts-continuation-suspend
>> +kms_vblank@pipe-F-ts-continuation-modeset
>> +kms_vblank@pipe-F-ts-continuation-modeset-hang
>> +kms_vblank@pipe-F-ts-continuation-modeset-rpm
>> +kms_vblank@pipe-G-accuracy-idle
>> +kms_vblank@pipe-G-query-idle
>> +kms_vblank@pipe-G-query-idle-hang
>> +kms_vblank@pipe-G-query-forked
>> +kms_vblank@pipe-G-query-forked-hang
>> +kms_vblank@pipe-G-query-busy
>> +kms_vblank@pipe-G-query-busy-hang
>> +kms_vblank@pipe-G-query-forked-busy
>> +kms_vblank@pipe-G-query-forked-busy-hang
>> +kms_vblank@pipe-G-wait-idle
>> +kms_vblank@pipe-G-wait-idle-hang
>> +kms_vblank@pipe-G-wait-forked
>> +kms_vblank@pipe-G-wait-forked-hang
>> +kms_vblank@pipe-G-wait-busy
>> +kms_vblank@pipe-G-wait-busy-hang
>> +kms_vblank@pipe-G-wait-forked-busy
>> +kms_vblank@pipe-G-wait-forked-busy-hang
>> +kms_vblank@pipe-G-ts-continuation-idle
>> +kms_vblank@pipe-G-ts-continuation-idle-hang
>> +kms_vblank@pipe-G-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-G-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-G-ts-continuation-suspend
>> +kms_vblank@pipe-G-ts-continuation-modeset
>> +kms_vblank@pipe-G-ts-continuation-modeset-hang
>> +kms_vblank@pipe-G-ts-continuation-modeset-rpm
>> +kms_vblank@pipe-H-accuracy-idle
>> +kms_vblank@pipe-H-query-idle
>> +kms_vblank@pipe-H-query-idle-hang
>> +kms_vblank@pipe-H-query-forked
>> +kms_vblank@pipe-H-query-forked-hang
>> +kms_vblank@pipe-H-query-busy
>> +kms_vblank@pipe-H-query-busy-hang
>> +kms_vblank@pipe-H-query-forked-busy
>> +kms_vblank@pipe-H-query-forked-busy-hang
>> +kms_vblank@pipe-H-wait-idle
>> +kms_vblank@pipe-H-wait-idle-hang
>> +kms_vblank@pipe-H-wait-forked
>> +kms_vblank@pipe-H-wait-forked-hang
>> +kms_vblank@pipe-H-wait-busy
>> +kms_vblank@pipe-H-wait-busy-hang
>> +kms_vblank@pipe-H-wait-forked-busy
>> +kms_vblank@pipe-H-wait-forked-busy-hang
>> +kms_vblank@pipe-H-ts-continuation-idle
>> +kms_vblank@pipe-H-ts-continuation-idle-hang
>> +kms_vblank@pipe-H-ts-continuation-dpms-rpm
>> +kms_vblank@pipe-H-ts-continuation-dpms-suspend
>> +kms_vblank@pipe-H-ts-continuation-suspend
>> +kms_vblank@pipe-H-ts-continuation-modeset
>> +kms_vblank@pipe-H-ts-continuation-modeset-hang
>> +kms_vblank@pipe-H-ts-continuation-modeset-rpm
>> +kms_vrr@flip-basic
>> +kms_vrr@flip-dpms
>> +kms_vrr@flip-suspend
>> +kms_vrr@flipline
>> +kms_vrr@negative-basic
>> +kms_writeback@writeback-pixel-formats
>> +kms_writeback@writeback-invalid-parameters
>> +kms_writeback@writeback-fb-id
>> +kms_writeback@writeback-check-output
>> +prime_mmap_kms@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@linear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-1-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
>> +kms_cursor_crc@pipe-A-cursor-size-change,Fail
>> +kms_cursor_crc@pipe-B-cursor-size-change,Fail
>> +kms_hdr@bpc-switch,Fail
>> +kms_hdr@bpc-switch-dpms,Fail
>> +kms_plane_multiple@atomic-pipe-A-tiling-none,Fail
>> +kms_rotation_crc@primary-rotation-180,Fail
>> +kms_async_flips@async-flip-with-page-flip-events,Fail
>> +kms_async_flips@crc,Fail
>> +kms_async_flips@invalid-async-flip,Fail
>> +kms_addfb_basic@bad-pitch-65536,Fail
>> +kms_addfb_basic@bo-too-small,Fail
>> +kms_atomic_transition@plane-toggle-modeset-transition,Fail
>> +kms_color@degamma,Fail
>> +kms_cursor_crc@cursor-size-change,Fail
>> +kms_cursor_legacy@forked-move,Fail
>> +kms_flip@flip-vs-blocking-wf-vblank,Fail
>> +kms_flip@plain-flip-fb-recreate,Fail
>> +kms_flip@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@too-high
>> +kms_atomic_transition@plane-all-modeset-transition-internal-panels
>> +kms_atomic_transition@plane-all-transition
>> +kms_atomic_transition@plane-use-after-nonblocking-unbind
>> +kms_bw@linear-tiling-1-displays-1920x1080p
>> +kms_bw@linear-tiling-2-displays-1920x1080p
>> +kms_bw@linear-tiling-2-displays-2560x1440p
>> +kms_bw@linear-tiling-3-displays-2560x1440p
>> +kms_bw@linear-tiling-3-displays-3840x2160p
>> +kms_cursor_crc@pipe-A-cursor-alpha-opaque
>> +kms_cursor_crc@pipe-B-cursor-alpha-opaque
>> +kms_plane_multiple@atomic-pipe-B-tiling-none
>> +kms_plane@pixel-format
>> +kms_plane_scaling@downscale-with-rotation-factor-0-5
>> +kms_universal_plane@disable-primary-vs-flip-pipe-A
>> +kms_async_flips@alternate-sync-async-flip
>> +kms_async_flips@test-cursor
>> +kms_async_flips@test-time-stamp
>> +kms_universal_plane@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@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_plane_alpha_blend@alpha-basic,Fail
>> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@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@linear-tiling-2-displays-1920x1080p
>> +kms_bw@linear-tiling-2-displays-2560x1440p
>> +kms_bw@linear-tiling-2-displays-3840x2160p
>> +kms_bw@linear-tiling-3-displays-1920x1080p
>> +kms_bw@linear-tiling-3-displays-2560x1440p
>> +kms_bw@linear-tiling-3-displays-3840x2160p
>> +kms_bw@linear-tiling-4-displays-1920x1080p
>> +kms_bw@linear-tiling-4-displays-2560x1440p
>> +kms_bw@linear-tiling-4-displays-3840x2160p
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
>> +kms_plane_alpha_blend@pipe-A-alpha-basic
>> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-A-constant-alpha-max
>> +kms_plane_alpha_blend@pipe-B-alpha-basic
>> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
>> +kms_plane_alpha_blend@pipe-C-alpha-basic
>> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
>> +kms_plane_alpha_blend@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@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@linear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-4-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-4-displays-3840x2160p,Fail
>> +kms_color@ctm-0-25,Fail
>> +kms_color@ctm-0-50,Fail
>> +kms_color@ctm-0-75,Fail
>> +kms_color@ctm-max,Fail
>> +kms_color@ctm-negative,Fail
>> +kms_color@ctm-red-to-blue,Fail
>> +kms_color@ctm-signed,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail 
>>
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_plane@plane-position-hole,Timeout
>> +kms_plane_alpha_blend@alpha-basic,Fail
>> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@pipe-C-constant-alpha-max,Fail
>> +kms_plane_multiple@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@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@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@ctm-0-25,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_plane_alpha_blend@alpha-basic,Fail
>> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@constant-alpha-max,Fail
>> +kms_plane_alpha_blend@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@linear-tiling-2-displays-1920x1080p
>> +kms_bw@linear-tiling-2-displays-2560x1440p
>> +kms_bw@linear-tiling-2-displays-3840x2160p
>> +kms_bw@linear-tiling-3-displays-1920x1080p
>> +kms_bw@linear-tiling-3-displays-2560x1440p
>> +kms_bw@linear-tiling-3-displays-3840x2160p
>> +kms_bw@linear-tiling-4-displays-1920x1080p
>> +kms_bw@linear-tiling-4-displays-2560x1440p
>> +kms_bw@linear-tiling-4-displays-3840x2160p
>> +kms_draw_crc@draw-method-xrgb8888-render-xtiled
>> +kms_flip@flip-vs-suspend
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
>> +kms_hdr@bpc-switch-suspend
>> +kms_plane_alpha_blend@pipe-A-alpha-basic
>> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-A-constant-alpha-max
>> +kms_plane_alpha_blend@pipe-B-alpha-basic
>> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
>> +kms_plane_alpha_blend@pipe-C-alpha-basic
>> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-C-constant-alpha-max
>> +kms_psr2_su@page_flip-NV12
>> +kms_psr2_su@page_flip-P010
>> +kms_setmode@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@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@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_frontbuffer_tracking@fbcdrrs-tiling-linear,Fail
>> +kms_plane_alpha_blend@alpha-basic,Fail
>> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@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@linear-tiling-1-displays-3840x2160p
>> +kms_bw@linear-tiling-2-displays-1920x1080p
>> +kms_bw@linear-tiling-2-displays-2560x1440p
>> +kms_bw@linear-tiling-2-displays-3840x2160p
>> +kms_bw@linear-tiling-3-displays-1920x1080p
>> +kms_bw@linear-tiling-3-displays-2560x1440p
>> +kms_bw@linear-tiling-3-displays-3840x2160p
>> +kms_bw@linear-tiling-4-displays-1920x1080p
>> +kms_bw@linear-tiling-4-displays-2560x1440p
>> +kms_bw@linear-tiling-4-displays-3840x2160p
>> +kms_flip@blocking-wf_vblank
>> +kms_flip@wf_vblank-ts-check
>> +kms_flip@wf_vblank-ts-check-interruptible
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
>> +kms_frontbuffer_tracking@fbc-tiling-linear
>> +kms_plane_alpha_blend@pipe-A-alpha-basic
>> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-A-constant-alpha-max
>> +kms_plane_alpha_blend@pipe-B-alpha-basic
>> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
>> +kms_plane_alpha_blend@pipe-C-alpha-basic
>> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-C-constant-alpha-max
>> +kms_prop_blob@invalid-set-prop-any
>> +kms_rotation_crc@multiplane-rotation
>> +kms_rotation_crc@multiplane-rotation-cropping-bottom
>> +kms_rotation_crc@multiplane-rotation-cropping-top
>> +kms_setmode@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@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@linear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
>> +kms_color@ctm-0-25,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_plane_alpha_blend@alpha-basic,Fail
>> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@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@crc
>> +kms_bw@linear-tiling-2-displays-1920x1080p
>> +kms_bw@linear-tiling-2-displays-3840x2160p
>> +kms_bw@linear-tiling-3-displays-1920x1080p
>> +kms_bw@linear-tiling-3-displays-2560x1440p
>> +kms_bw@linear-tiling-3-displays-3840x2160p
>> +kms_bw@linear-tiling-4-displays-1920x1080p
>> +kms_bw@linear-tiling-4-displays-3840x2160p
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_plane_alpha_blend@pipe-A-alpha-basic
>> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-B-alpha-basic
>> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-max
>> +kms_plane_alpha_blend@pipe-C-alpha-basic
>> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@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@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@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-4-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-4-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-5-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-5-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-5-displays-3840x2160p,Fail
>> +kms_color@ctm-0-25,Fail
>> +kms_flip@flip-vs-panning-vs-hang,Timeout
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail 
>>
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_rotation_crc@bad-pixel-format,Fail
>> +kms_rotation_crc@multiplane-rotation,Fail
>> +kms_rotation_crc@multiplane-rotation-cropping-bottom,Fail
>> +kms_rotation_crc@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@.*
>> +kms_flip@blocking-absolute-wf_vblank
>> +kms_flip@bo-too-big-interruptible
>> +kms_flip@busy-flip
>> +kms_flip@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@absolute-wf_vblank@a-edp1
>> +
>> +# This is generating kernel oops with divide error
>> +kms_plane_scaling@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@linear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-4-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-4-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-4-displays-3840x2160p,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail 
>>
>> +kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_frontbuffer_tracking@fbc-tiling-linear,Fail
>> +kms_plane_alpha_blend@alpha-basic,Fail
>> +kms_plane_alpha_blend@alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-A-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@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@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@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@addfb25-bad-modifier,Fail
>> +kms_bw@linear-tiling-1-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-1-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
>> +kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
>> +kms_color@pipe-B-invalid-gamma-lut-sizes,Fail
>> +kms_force_connector_basic@force-connector-state,Fail
>> +kms_force_connector_basic@force-edid,Fail
>> +kms_force_connector_basic@force-load-detect,Fail
>> +kms_force_connector_basic@prune-stale-modes,Fail
>> +kms_invalid_mode@int-max-clock,Fail
>> +kms_plane_scaling@planes-upscale-20x20,Fail
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
>> +kms_plane_scaling@upscale-with-modifier-20x20,Fail
>> +kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
>> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
>> +kms_properties@get_properties-sanity-atomic,Fail
>> +kms_properties@plane-properties-atomic,Fail
>> +kms_properties@plane-properties-legacy,Fail
>> +kms_rmfb@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@addfb25-bad-modifier,Fail
>> +kms_bw@linear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
>> +kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
>> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
>> +kms_rmfb@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@linear-tiling-1-displays-1920x1080p
>> +kms_bw@linear-tiling-1-displays-3840x2160p
>> +kms_bw@linear-tiling-3-displays-1920x1080p
>> +kms_cursor_legacy@cursor-vs-flip-atomic
>> +kms_plane_scaling@invalid-num-scalers
>> +kms_plane_scaling@planes-upscale-20x20
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5
>> +kms_plane_scaling@upscale-with-modifier-20x20
>> +kms_plane_scaling@upscale-with-pixel-format-20x20
>> +kms_prop_blob@invalid-set-prop-any
>> +kms_properties@get_properties-sanity-atomic
>> +kms_properties@plane-properties-atomic
>> +kms_properties@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@connector-properties-atomic,Fail
>> +kms_properties@get_properties-sanity-atomic,Fail
>> +kms_properties@get_properties-sanity-non-atomic,Fail
>> +kms_properties@connector-properties-legacy,Fail
>> +kms_cursor_legacy@forked-bo,Fail
>> +kms_cursor_legacy@forked-move,Fail
>> +kms_cursor_legacy@single-bo,Fail
>> +kms_cursor_legacy@single-move,Fail
>> +kms_cursor_legacy@torture-bo,Fail
>> +kms_cursor_legacy@torture-move,Fail
>> +kms_hdmi_inject@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@force-connector-state
>> +kms_force_connector_basic@force-edid
>> +kms_force_connector_basic@force-load-detect
>> +kms_force_connector_basic@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@addfb25-bad-modifier,Fail
>> +kms_cursor_legacy@all-pipes-forked-bo,Fail
>> +kms_cursor_legacy@all-pipes-forked-move,Fail
>> +kms_cursor_legacy@all-pipes-single-bo,Fail
>> +kms_cursor_legacy@all-pipes-single-move,Fail
>> +kms_cursor_legacy@all-pipes-torture-bo,Fail
>> +kms_cursor_legacy@all-pipes-torture-move,Fail
>> +kms_cursor_legacy@pipe-A-forked-bo,Fail
>> +kms_cursor_legacy@pipe-A-forked-move,Fail
>> +kms_cursor_legacy@pipe-A-single-bo,Fail
>> +kms_cursor_legacy@pipe-A-single-move,Fail
>> +kms_cursor_legacy@pipe-A-torture-bo,Fail
>> +kms_cursor_legacy@pipe-A-torture-move,Fail
>> +kms_hdmi_inject@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@force-connector-state
>> +kms_force_connector_basic@force-edid
>> +kms_force_connector_basic@force-load-detect
>> +kms_force_connector_basic@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@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@force-connector-state
>> +kms_force_connector_basic@force-edid
>> +kms_force_connector_basic@force-load-detect
>> +kms_force_connector_basic@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@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@cursor-vs-flip-toggle,Fail
>> +kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
>> +kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions,Crash
>> +kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
>> +kms_plane@pixel-format,Fail
>> +kms_plane@pixel-format-source-clamping,Fail
>> +kms_plane@plane-position-covered,Fail
>> +kms_plane@plane-position-hole,Fail
>> +kms_plane@plane-position-hole-dpms,Fail
>> +kms_plane_alpha_blend@alpha-7efc,Fail
>> +kms_plane_alpha_blend@coverage-7efc,Fail
>> +kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
>> +kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail
>> +kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail
>> +kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-7efc,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-basic,Fail
>> +kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@pipe-B-constant-alpha-mid,Fail
>> +kms_plane_alpha_blend@pipe-B-coverage-7efc,Fail
>> +kms_plane_alpha_blend@pipe-B-coverage-vs-premult-vs-constant,Fail
>> +kms_rmfb@close-fd,Fail
>> +kms_universal_plane@disable-primary-vs-flip-pipe-b,Fail
>> +kms_universal_plane@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@.*
>> +kms_plane_multiple@atomic-pipe-A-tiling-none
>> +kms_atomic_transition@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@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@linear-tiling-.*-displays-3840x2160p
>> +
>> +# Until igt fix lands: https://patchwork.freedesktop.org/patch/493175/
>> +kms_bw@linear-tiling-2.*
>> +kms_bw@linear-tiling-3.*
>> +kms_bw@linear-tiling-4.*
>> +kms_bw@linear-tiling-5.*
>> +kms_bw@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@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@ctm-0-25,Fail
>> +kms_color@ctm-0-50,Fail
>> +kms_color@ctm-0-75,Fail
>> +kms_color@ctm-blue-to-red,Fail
>> +kms_color@ctm-green-to-red,Fail
>> +kms_color@ctm-negative,Fail
>> +kms_color@ctm-red-to-blue,Fail
>> +kms_color@ctm-signed,Fail
>> +kms_color@pipe-A-ctm-0-25,Fail
>> +kms_color@pipe-A-ctm-0-5,Fail
>> +kms_color@pipe-A-ctm-0-75,Fail
>> +kms_color@pipe-A-ctm-blue-to-red,Fail
>> +kms_color@pipe-A-ctm-green-to-red,Fail
>> +kms_color@pipe-A-ctm-max,Fail
>> +kms_color@pipe-A-ctm-negative,Fail
>> +kms_color@pipe-A-ctm-red-to-blue,Fail
>> +kms_color@pipe-A-legacy-gamma,Fail
>> +kms_cursor_legacy@basic-flip-after-cursor-atomic,Fail
>> +kms_cursor_legacy@basic-flip-after-cursor-legacy,Fail
>> +kms_cursor_legacy@basic-flip-after-cursor-varying-size,Fail
>> +kms_cursor_legacy@basic-flip-before-cursor-atomic,Fail
>> +kms_cursor_legacy@basic-flip-before-cursor-legacy,Fail
>> +kms_cursor_legacy@basic-flip-before-cursor-varying-size,Fail
>> +kms_cursor_legacy@cursor-vs-flip-atomic,Fail
>> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions,Fail
>> +kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size,Fail
>> +kms_cursor_legacy@cursor-vs-flip-legacy,Fail
>> +kms_cursor_legacy@cursor-vs-flip-toggle,Fail
>> +kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
>> +kms_cursor_legacy@cursorA-vs-flipA-toggle,Fail
>> +kms_cursor_legacy@flip-vs-cursor-atomic,Fail
>> +kms_cursor_legacy@flip-vs-cursor-crc-atomic,Fail
>> +kms_cursor_legacy@flip-vs-cursor-crc-legacy,Fail
>> +kms_cursor_legacy@flip-vs-cursor-legacy,Fail
>> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions,Fail
>> +kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size,Fail 
>>
>> +kms_cursor_legacy@short-flip-after-cursor-toggle,Fail
>> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions,Fail
>> +kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size,Fail 
>>
>> +kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
>> +kms_plane@pixel-format,Fail
>> +kms_plane@pixel-format-source-clamping,Fail
>> +kms_plane_alpha_blend@alpha-7efc,Fail
>> +kms_plane_alpha_blend@coverage-7efc,Fail
>> +kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
>> +kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail
>> +kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail
>> +kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail
>> +kms_plane_cursor@overlay,Fail
>> +kms_plane_cursor@pipe-A-overlay-size-128,Fail
>> +kms_plane_cursor@pipe-A-overlay-size-256,Fail
>> +kms_plane_cursor@pipe-A-overlay-size-64,Fail
>> +kms_plane_cursor@pipe-A-viewport-size-128,Fail
>> +kms_plane_cursor@pipe-A-viewport-size-256,Fail
>> +kms_plane_cursor@pipe-A-viewport-size-64,Fail
>> +kms_plane_cursor@viewport,Fail
>> +kms_plane_scaling@downscale-with-pixel-format-factor-0-25,Timeout
>> +kms_plane_scaling@downscale-with-pixel-format-factor-0-5,Timeout
>> +kms_plane_scaling@downscale-with-pixel-format-factor-0-75,Timeout
>> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25,Timeout
>> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5,Timeout
>> +kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-75,Timeout
>> +kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats,Timeout 
>>
>> +kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling,Timeout
>> +kms_plane_scaling@planes-downscale-factor-0-25,Fail
>> +kms_plane_scaling@scaler-with-clipping-clamping,Timeout
>> +kms_plane_scaling@scaler-with-pixel-format-unity-scaling,Timeout
>> +kms_rmfb@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@.*
>> +kms_cursor_legacy@flip-vs-cursor-toggle
>> +kms_cursor_legacy@pipe-A-forked-bo
>> +kms_cursor_legacy@pipe-A-forked-move
>> +kms_cursor_legacy@short-flip-before-cursor-toggle
>> +kms_flip@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@linear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-3-displays-3840x2160p,Fail
>> +kms_flip@basic-flip-vs-wf_vblank,Crash
>> +kms_force_connector_basic@force-load-detect,Fail
>> +kms_invalid_mode@int-max-clock,Crash
>> +kms_plane@pixel-format,Crash
>> +kms_plane@pixel-format-source-clamping,Crash
>> +kms_plane@plane-position-hole,Crash
>> +kms_plane@plane-position-hole-dpms,Crash
>> +kms_plane_cursor@overlay,Crash
>> +kms_plane_cursor@pipe-A-overlay-size-128,Fail
>> +kms_plane_cursor@pipe-A-overlay-size-256,Fail
>> +kms_plane_cursor@pipe-A-overlay-size-64,Fail
>> +kms_plane_cursor@pipe-A-primary-size-128,Fail
>> +kms_plane_cursor@pipe-A-primary-size-256,Fail
>> +kms_plane_cursor@pipe-A-primary-size-64,Fail
>> +kms_plane_cursor@pipe-A-viewport-size-128,Fail
>> +kms_plane_cursor@pipe-A-viewport-size-256,Fail
>> +kms_plane_cursor@pipe-A-viewport-size-64,Fail
>> +kms_plane_cursor@pipe-B-overlay-size-128,Fail
>> +kms_plane_cursor@pipe-B-overlay-size-256,Fail
>> +kms_plane_cursor@pipe-B-overlay-size-64,Fail
>> +kms_plane_cursor@pipe-B-primary-size-128,Fail
>> +kms_plane_cursor@pipe-B-primary-size-256,Fail
>> +kms_plane_cursor@pipe-B-primary-size-64,Fail
>> +kms_plane_cursor@pipe-B-viewport-size-128,Fail
>> +kms_plane_cursor@pipe-B-viewport-size-256,Fail
>> +kms_plane_cursor@pipe-B-viewport-size-64,Fail
>> +kms_plane_cursor@primary,Crash
>> +kms_plane_cursor@viewport,Crash
>> +kms_plane_lowres@tiling-none,Fail
>> +kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
>> +kms_plane_scaling@upscale-with-modifier-20x20,Fail
>> +kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
>> +kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
>> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
>> +kms_prime@basic-crc,Fail
>> +kms_properties@connector-properties-atomic,Crash
>> +kms_properties@connector-properties-legacy,Crash
>> +kms_properties@get_properties-sanity-atomic,Crash
>> +kms_properties@get_properties-sanity-non-atomic,Crash
>> +kms_setmode@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@addfb25-bad-modifier
>> +kms_cursor_crc@.*
>> +kms_invalid_mode@int-max-clock,Crash
>> +kms_pipe_crc_basic@.*
>> +kms_properties@connector-properties-atomic,Crash
>> +kms_properties@get_properties-sanity-atomic,Crash
>> +kms_properties@get_properties-sanity-non-atomic,Crash
>> +kms_rmfb@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@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@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@legacy-gamma,Fail
>> +kms_color@pipe-A-legacy-gamma,Fail
>> +kms_color@pipe-B-legacy-gamma,Fail
>> +kms_flip@basic-flip-vs-wf_vblank,Fail
>> +kms_flip@blocking-wf_vblank,Fail
>> +kms_flip@dpms-vs-vblank-race,Fail
>> +kms_flip@flip-vs-absolute-wf_vblank,Fail
>> +kms_flip@flip-vs-absolute-wf_vblank-interruptible,Fail
>> +kms_flip@flip-vs-blocking-wf-vblank,Fail
>> +kms_flip@flip-vs-panning,Fail
>> +kms_flip@flip-vs-panning-interruptible,Fail
>> +kms_flip@flip-vs-wf_vblank-interruptible,Fail
>> +kms_flip@modeset-vs-vblank-race,Fail
>> +kms_flip@modeset-vs-vblank-race-interruptible,Fail
>> +kms_flip@plain-flip-fb-recreate,Fail
>> +kms_flip@plain-flip-fb-recreate-interruptible,Fail
>> +kms_flip@plain-flip-ts-check,Fail
>> +kms_flip@plain-flip-ts-check-interruptible,Fail
>> +kms_flip@wf_vblank-ts-check,Fail
>> +kms_flip@wf_vblank-ts-check-interruptible,Fail
>> +kms_invalid_mode@int-max-clock,Fail
>> +kms_plane@pixel-format,Fail
>> +kms_plane@pixel-format-source-clamping,Fail
>> +kms_plane@plane-panning-bottom-right,Fail
>> +kms_plane@plane-panning-top-left,Fail
>> +kms_plane@plane-position-covered,Fail
>> +kms_plane_cursor@pipe-B-overlay-size-128,Fail
>> +kms_plane_cursor@pipe-B-overlay-size-256,Fail
>> +kms_plane_cursor@pipe-B-overlay-size-64,Fail
>> +kms_plane_cursor@pipe-B-primary-size-128,Fail
>> +kms_plane_cursor@pipe-B-primary-size-256,Fail
>> +kms_plane_cursor@pipe-B-primary-size-64,Fail
>> +kms_plane_cursor@pipe-B-viewport-size-128,Fail
>> +kms_plane_cursor@pipe-B-viewport-size-256,Fail
>> +kms_plane_cursor@pipe-B-viewport-size-64,Fail
>> +kms_plane_multiple@atomic-pipe-B-tiling-none,Fail
>> +kms_plane_multiple@tiling-none,Fail
>> +kms_prime@basic-crc,Fail
>> +kms_rmfb@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@.*
>> +kms_flip@flip-vs-expired-vblank
>> +kms_flip@modeset-vs-vblank-race-interruptible,Fail
>> +kms_pipe_crc_basic@.*
>> +kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-A
>> +kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-B
>> +kms_plane@plane-position-hole
>> +kms_plane_multiple@atomic-pipe-A-tiling-none
>> +kms_plane_multiple@atomic-pipe-B-tiling-none
>> +kms_sequence@get-forked
>> +kms_sequence@get-forked-busy
>> +kms_setmode@basic
>> +kms_universal_plane@universal-plane-pipe-B-functional,UnexpectedPass
>> +kms_vblank@pipe-A-accuracy-idle
>> +kms_vblank@pipe-A-query-busy
>> +kms_vblank@pipe-A-query-forked-busy
>> +kms_vblank@pipe-A-wait-idle
>> +kms_vblank@pipe-B-accuracy-idle
>> +kms_vblank@pipe-B-query-busy
>> +kms_vblank@pipe-B-query-forked-busy
>> +kms_vblank@pipe-B-wait-idle
>> +kms_flip@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@addfb25-bad-modifier,Fail
>> +kms_addfb_basic@bad-pitch-65536,Fail
>> +kms_addfb_basic@bo-too-small,Fail
>> +kms_addfb_basic@size-max,Fail
>> +kms_addfb_basic@too-high,Fail
>> +kms_atomic_transition@plane-primary-toggle-with-vblank-wait,Fail
>> +kms_bw@linear-tiling-1-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-1-displays-3840x2160p,Fail
>> +kms_bw@linear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@linear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@linear-tiling-2-displays-3840x2160p,Fail
>> +kms_invalid_mode@int-max-clock,Fail
>> +kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
>> +kms_plane_scaling@planes-upscale-20x20,Fail
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
>> +kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
>> +kms_plane_scaling@upscale-with-modifier-20x20,Fail
>> +kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
>> +kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
>> +kms_plane_scaling@upscale-with-rotation-20x20,Fail
>> +kms_vblank@crtc-id,Fail
>> +kms_vblank@invalid,Fail
>> +kms_vblank@pipe-A-accuracy-idle,Fail
>> +kms_vblank@pipe-A-query-busy,Fail
>> +kms_vblank@pipe-A-query-forked,Fail
>> +kms_vblank@pipe-A-query-forked-busy,Fail
>> +kms_vblank@pipe-A-query-idle,Fail
>> +kms_vblank@pipe-A-ts-continuation-idle,Fail
>> +kms_vblank@pipe-A-ts-continuation-modeset,Fail
>> +kms_vblank@pipe-A-ts-continuation-suspend,Fail
>> +kms_vblank@pipe-A-wait-busy,Fail
>> +kms_vblank@pipe-A-wait-forked,Fail
>> +kms_vblank@pipe-A-wait-forked-busy,Fail
>> +kms_vblank@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@flip-vs-suspend.*
>> \ No newline at end of file
>> diff --git a/test b/test
>> new file mode 100644
>> index 000000000000..e69de29bb2d1
Helen Mae Koike Fornazier July 31, 2023, 12:25 p.m. UTC | #9
Hello all,

Thanks for your comments.

On Friday, July 28, 2023 11:37 -03, Rob Clark <robdclark@gmail.com> wrote:

> On Thu, Jul 27, 2023 at 10:26 PM Daniel Stone <daniel@fooishbar.org> wrote:
> >
> > On Thu, 27 Jul 2023 at 22:47, Rob Clark <robdclark@gmail.com> wrote:
> > > > I did run into a bit of a chicken vs. egg problem with testing the "in
> > > > tree" version (compared to earlier versions which kept most of the yml
> > > > and scripts in a separate tree), is that it actually requires this
> > > > commit to exist in the branch you want to run CI on.  My earlier
> > > > workaround of pulling the drm/ci commit in via
> > > > ${branchname}-external-fixes no longer works.
> > >
> > > After unwinding some more gitlab repo settings that were for the
> > > previous out-of-tree yml setup, I have this working.
> > >
> > > Tested-by: Rob Clark <robdclark@gmail.com>
> > > Acked-by: Rob Clark <robdclark@gmail.com>
> >
> > And it's also:
> > Acked-by: Daniel Stone <daniels@collabora.com>
> >
> > It's been back and forth a few times by now and reviewed pretty
> > heavily by all the people who are across the CI details. I think the
> > next step is to answer all the workflow questions by actually getting
> > it into trees and using it in anger. There was some discussion about
> > whether this should come in from drm-misc, or the core DRM tree, or a
> > completely separate pull, but I'm not sure what the conclusion was ...
> > maintainers, thoughts?
> 
> I'd prefer a separate pull, so that I could merge it into msm-next as
> well without having to pull in all of drm-misc

Should we create a drm-ci ?

> 
> Possibly some other driver trees would like to do similar?
> 
> BR,
> -R

Also, please wait for v11, I have a few adjustments to make as pointer by
some comments, and also regarding xfails list and how the configs should
be organized (unless if you are fine merging this version and I can submit
the adjustments later).

Thanks,
Helen
Rob Clark July 31, 2023, 2:51 p.m. UTC | #10
On Mon, Jul 31, 2023 at 5:25 AM Helen Mae Koike Fornazier
<helen.koike@collabora.com> wrote:
>
> Hello all,
>
> Thanks for your comments.
>
> On Friday, July 28, 2023 11:37 -03, Rob Clark <robdclark@gmail.com> wrote:
>
> > On Thu, Jul 27, 2023 at 10:26 PM Daniel Stone <daniel@fooishbar.org> wrote:
> > >
> > > On Thu, 27 Jul 2023 at 22:47, Rob Clark <robdclark@gmail.com> wrote:
> > > > > I did run into a bit of a chicken vs. egg problem with testing the "in
> > > > > tree" version (compared to earlier versions which kept most of the yml
> > > > > and scripts in a separate tree), is that it actually requires this
> > > > > commit to exist in the branch you want to run CI on.  My earlier
> > > > > workaround of pulling the drm/ci commit in via
> > > > > ${branchname}-external-fixes no longer works.
> > > >
> > > > After unwinding some more gitlab repo settings that were for the
> > > > previous out-of-tree yml setup, I have this working.
> > > >
> > > > Tested-by: Rob Clark <robdclark@gmail.com>
> > > > Acked-by: Rob Clark <robdclark@gmail.com>
> > >
> > > And it's also:
> > > Acked-by: Daniel Stone <daniels@collabora.com>
> > >
> > > It's been back and forth a few times by now and reviewed pretty
> > > heavily by all the people who are across the CI details. I think the
> > > next step is to answer all the workflow questions by actually getting
> > > it into trees and using it in anger. There was some discussion about
> > > whether this should come in from drm-misc, or the core DRM tree, or a
> > > completely separate pull, but I'm not sure what the conclusion was ...
> > > maintainers, thoughts?
> >
> > I'd prefer a separate pull, so that I could merge it into msm-next as
> > well without having to pull in all of drm-misc
>
> Should we create a drm-ci ?

I guess we can just wait and see how often it is that drm/ci updates
need to be merged into multiple driver trees.  Hopefully most of the
drm/ci changes are just expectation file updates which should go via
driver tree.  Maybe i-g-t uprevs, if they have a lot of expectation
changes would be something drivers would want to merge into their own
tree?  But I guess we can see how it goes.

> >
> > Possibly some other driver trees would like to do similar?
> >
> > BR,
> > -R
>
> Also, please wait for v11, I have a few adjustments to make as pointer by
> some comments, and also regarding xfails list and how the configs should
> be organized (unless if you are fine merging this version and I can submit
> the adjustments later).

Ok

BR,
-R

> Thanks,
> Helen
>
David Heidelberg Aug. 2, 2023, 11:32 a.m. UTC | #11
On 31/07/2023 10:38, Juan A. Suárez wrote:
> On Sat, 2023-07-29 at 12:08 +0300, David Heidelberg wrote:
>> Hello Maira,
>>
>> Regarding the second question about V3D and V3DV: in the Mesa3D CI, we
>> currently use downstream kernels, so we don't build the kernel for
>> Raspberry Pi.
>>
>>
>>
>
> BM_BOOTFS option can point to a link tarball containing an alternative 
> kernel to use instead of downstream one.
>
> The only drawback is that this tarball must be an already compiled 
> kernel; it won't compile it.
It would be great if you could fill in missing kernel config options for 
machines you use for V3D(V) in
the `kernel/configs/mesa*.config` within the `gfx-ci/Linux repository 
(the config files here origin from there).

If the compiled kernel will work on RPis, then the next step would be 
adding kernel format
and DTB names to the `src/broadcom/ci/gitlab-ci.yml` in the Mesa 
repository so that you can use my Mesa draft MR [1]
to quickly test if your jobs would work with the mainline kernel and any 
other board that won't break due to your changes.

When this integration is done ‒ it's easy to run drm-ci testing on these 
machines.

David

[1] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23563


>
>> However, I've been thinking about the possibility of adding an override
>> for the kernel from an external source to our CI. This way, we can also
>> test with a provided kernel and override the default option of using the
>> downstream kernel on Raspberry Pi.
>>
>> If we proceed with this, it would be sensible to include V3D* options in
>> our kernel builds.
>>
>> I'm including Juan and Eric for their input on this topic.
>>
>>
>
> The idea sounds great. Aren't we already compiling kernels for other 
> hardware? Maybe we can include specific versions for Rpi.
>
> J.A.
>
diff mbox series

Patch

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@collabora.com>
+L:	dri-devel@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@gmail.com>
 L:	linux-media@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@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@getclient-simple
+core_auth@getclient-master-drop
+core_auth@basic-auth
+core_auth@many-magics
+core_getclient
+core_getstats
+core_getversion
+core_setmaster_vs_auth
+drm_read@invalid-buffer
+drm_read@fault-buffer
+drm_read@empty-block
+drm_read@empty-nonblock
+drm_read@short-buffer-block
+drm_read@short-buffer-nonblock
+drm_read@short-buffer-wakeup
+gem_eio@throttle
+gem_eio@create
+gem_eio@create-ext
+gem_eio@context-create
+gem_eio@execbuf
+gem_eio@banned
+gem_eio@suspend
+gem_eio@hibernate
+gem_eio@in-flight-external
+gem_eio@in-flight-suspend
+gem_eio@reset-stress
+gem_eio@unwedge-stress
+gem_eio@wait-immediate
+gem_eio@wait-wedge-immediate
+gem_eio@in-flight-immediate
+gem_eio@in-flight-contexts-immediate
+gem_eio@in-flight-internal-immediate
+gem_eio@wait-1us
+gem_eio@wait-wedge-1us
+gem_eio@in-flight-1us
+gem_eio@in-flight-contexts-1us
+gem_eio@in-flight-internal-1us
+gem_eio@wait-10ms
+gem_eio@wait-wedge-10ms
+gem_eio@in-flight-10ms
+gem_eio@in-flight-contexts-10ms
+gem_eio@in-flight-internal-10ms
+gem_eio@kms
+kms_3d
+kms_addfb_basic@unused-handle
+kms_addfb_basic@unused-pitches
+kms_addfb_basic@unused-offsets
+kms_addfb_basic@unused-modifier
+kms_addfb_basic@clobberred-modifier
+kms_addfb_basic@invalid-smem-bo-on-discrete
+kms_addfb_basic@legacy-format
+kms_addfb_basic@no-handle
+kms_addfb_basic@basic
+kms_addfb_basic@bad-pitch-0
+kms_addfb_basic@bad-pitch-32
+kms_addfb_basic@bad-pitch-63
+kms_addfb_basic@bad-pitch-128
+kms_addfb_basic@bad-pitch-256
+kms_addfb_basic@bad-pitch-1024
+kms_addfb_basic@bad-pitch-999
+kms_addfb_basic@bad-pitch-65536
+kms_addfb_basic@invalid-get-prop-any
+kms_addfb_basic@invalid-get-prop
+kms_addfb_basic@invalid-set-prop-any
+kms_addfb_basic@invalid-set-prop
+kms_addfb_basic@master-rmfb
+kms_addfb_basic@addfb25-modifier-no-flag
+kms_addfb_basic@addfb25-bad-modifier
+kms_addfb_basic@addfb25-x-tiled-mismatch-legacy
+kms_addfb_basic@addfb25-x-tiled-legacy
+kms_addfb_basic@addfb25-framebuffer-vs-set-tiling
+kms_addfb_basic@basic-x-tiled-legacy
+kms_addfb_basic@framebuffer-vs-set-tiling
+kms_addfb_basic@tile-pitch-mismatch
+kms_addfb_basic@basic-y-tiled-legacy
+kms_addfb_basic@size-max
+kms_addfb_basic@too-wide
+kms_addfb_basic@too-high
+kms_addfb_basic@bo-too-small
+kms_addfb_basic@small-bo
+kms_addfb_basic@bo-too-small-due-to-tiling
+kms_addfb_basic@addfb25-y-tiled-legacy
+kms_addfb_basic@addfb25-yf-tiled-legacy
+kms_addfb_basic@addfb25-y-tiled-small-legacy
+kms_addfb_basic@addfb25-4-tiled
+kms_async_flips@async-flip-with-page-flip-events
+kms_async_flips@alternate-sync-async-flip
+kms_async_flips@test-time-stamp
+kms_async_flips@test-cursor
+kms_async_flips@invalid-async-flip
+kms_async_flips@crc
+kms_atomic@plane-overlay-legacy
+kms_atomic@plane-primary-legacy
+kms_atomic@plane-primary-overlay-mutable-zpos
+kms_atomic@plane-immutable-zpos
+kms_atomic@test-only
+kms_atomic@plane-cursor-legacy
+kms_atomic@plane-invalid-params
+kms_atomic@plane-invalid-params-fence
+kms_atomic@crtc-invalid-params
+kms_atomic@crtc-invalid-params-fence
+kms_atomic@atomic-invalid-params
+kms_atomic@atomic_plane_damage
+kms_atomic_interruptible@legacy-setmode
+kms_atomic_interruptible@atomic-setmode
+kms_atomic_interruptible@legacy-dpms
+kms_atomic_interruptible@legacy-pageflip
+kms_atomic_interruptible@legacy-cursor
+kms_atomic_interruptible@universal-setplane-primary
+kms_atomic_interruptible@universal-setplane-cursor
+kms_atomic_transition@plane-primary-toggle-with-vblank-wait
+kms_atomic_transition@plane-all-transition
+kms_atomic_transition@plane-all-transition-fencing
+kms_atomic_transition@plane-all-transition-nonblocking
+kms_atomic_transition@plane-all-transition-nonblocking-fencing
+kms_atomic_transition@plane-use-after-nonblocking-unbind
+kms_atomic_transition@plane-use-after-nonblocking-unbind-fencing
+kms_atomic_transition@plane-all-modeset-transition
+kms_atomic_transition@plane-all-modeset-transition-fencing
+kms_atomic_transition@plane-all-modeset-transition-internal-panels
+kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels
+kms_atomic_transition@plane-toggle-modeset-transition
+kms_atomic_transition@modeset-transition
+kms_atomic_transition@modeset-transition-fencing
+kms_atomic_transition@modeset-transition-nonblocking
+kms_atomic_transition@modeset-transition-nonblocking-fencing
+kms_big_fb@x-tiled-addfb-size-overflow
+kms_big_fb@y-tiled-addfb-size-overflow
+kms_big_fb@yf-tiled-addfb-size-overflow
+kms_big_fb@4-tiled-addfb-size-overflow
+kms_big_fb@x-tiled-addfb-size-offset-overflow
+kms_big_fb@y-tiled-addfb-size-offset-overflow
+kms_big_fb@yf-tiled-addfb-size-offset-overflow
+kms_big_fb@4-tiled-addfb-size-offset-overflow
+kms_big_fb@linear-addfb
+kms_big_fb@x-tiled-addfb
+kms_big_fb@y-tiled-addfb
+kms_big_fb@yf-tiled-addfb
+kms_big_fb@4-tiled-addfb
+kms_big_fb@linear-8bpp-rotate-0
+kms_big_fb@linear-8bpp-rotate-90
+kms_big_fb@linear-8bpp-rotate-180
+kms_big_fb@linear-8bpp-rotate-270
+kms_big_fb@linear-16bpp-rotate-0
+kms_big_fb@linear-16bpp-rotate-90
+kms_big_fb@linear-16bpp-rotate-180
+kms_big_fb@linear-16bpp-rotate-270
+kms_big_fb@linear-32bpp-rotate-0
+kms_big_fb@linear-32bpp-rotate-90
+kms_big_fb@linear-32bpp-rotate-180
+kms_big_fb@linear-32bpp-rotate-270
+kms_big_fb@linear-64bpp-rotate-0
+kms_big_fb@linear-64bpp-rotate-90
+kms_big_fb@linear-64bpp-rotate-180
+kms_big_fb@linear-64bpp-rotate-270
+kms_big_fb@x-tiled-8bpp-rotate-0
+kms_big_fb@x-tiled-8bpp-rotate-90
+kms_big_fb@x-tiled-8bpp-rotate-180
+kms_big_fb@x-tiled-8bpp-rotate-270
+kms_big_fb@x-tiled-16bpp-rotate-0
+kms_big_fb@x-tiled-16bpp-rotate-90
+kms_big_fb@x-tiled-16bpp-rotate-180
+kms_big_fb@x-tiled-16bpp-rotate-270
+kms_big_fb@x-tiled-32bpp-rotate-0
+kms_big_fb@x-tiled-32bpp-rotate-90
+kms_big_fb@x-tiled-32bpp-rotate-180
+kms_big_fb@x-tiled-32bpp-rotate-270
+kms_big_fb@x-tiled-64bpp-rotate-0
+kms_big_fb@x-tiled-64bpp-rotate-90
+kms_big_fb@x-tiled-64bpp-rotate-180
+kms_big_fb@x-tiled-64bpp-rotate-270
+kms_big_fb@y-tiled-8bpp-rotate-0
+kms_big_fb@y-tiled-8bpp-rotate-90
+kms_big_fb@y-tiled-8bpp-rotate-180
+kms_big_fb@y-tiled-8bpp-rotate-270
+kms_big_fb@y-tiled-16bpp-rotate-0
+kms_big_fb@y-tiled-16bpp-rotate-90
+kms_big_fb@y-tiled-16bpp-rotate-180
+kms_big_fb@y-tiled-16bpp-rotate-270
+kms_big_fb@y-tiled-32bpp-rotate-0
+kms_big_fb@y-tiled-32bpp-rotate-90
+kms_big_fb@y-tiled-32bpp-rotate-180
+kms_big_fb@y-tiled-32bpp-rotate-270
+kms_big_fb@y-tiled-64bpp-rotate-0
+kms_big_fb@y-tiled-64bpp-rotate-90
+kms_big_fb@y-tiled-64bpp-rotate-180
+kms_big_fb@y-tiled-64bpp-rotate-270
+kms_big_fb@yf-tiled-8bpp-rotate-0
+kms_big_fb@yf-tiled-8bpp-rotate-90
+kms_big_fb@yf-tiled-8bpp-rotate-180
+kms_big_fb@yf-tiled-8bpp-rotate-270
+kms_big_fb@yf-tiled-16bpp-rotate-0
+kms_big_fb@yf-tiled-16bpp-rotate-90
+kms_big_fb@yf-tiled-16bpp-rotate-180
+kms_big_fb@yf-tiled-16bpp-rotate-270
+kms_big_fb@yf-tiled-32bpp-rotate-0
+kms_big_fb@yf-tiled-32bpp-rotate-90
+kms_big_fb@yf-tiled-32bpp-rotate-180
+kms_big_fb@yf-tiled-32bpp-rotate-270
+kms_big_fb@yf-tiled-64bpp-rotate-0
+kms_big_fb@yf-tiled-64bpp-rotate-90
+kms_big_fb@yf-tiled-64bpp-rotate-180
+kms_big_fb@yf-tiled-64bpp-rotate-270
+kms_big_fb@4-tiled-8bpp-rotate-0
+kms_big_fb@4-tiled-8bpp-rotate-90
+kms_big_fb@4-tiled-8bpp-rotate-180
+kms_big_fb@4-tiled-8bpp-rotate-270
+kms_big_fb@4-tiled-16bpp-rotate-0
+kms_big_fb@4-tiled-16bpp-rotate-90
+kms_big_fb@4-tiled-16bpp-rotate-180
+kms_big_fb@4-tiled-16bpp-rotate-270
+kms_big_fb@4-tiled-32bpp-rotate-0
+kms_big_fb@4-tiled-32bpp-rotate-90
+kms_big_fb@4-tiled-32bpp-rotate-180
+kms_big_fb@4-tiled-32bpp-rotate-270
+kms_big_fb@4-tiled-64bpp-rotate-0
+kms_big_fb@4-tiled-64bpp-rotate-90
+kms_big_fb@4-tiled-64bpp-rotate-180
+kms_big_fb@4-tiled-64bpp-rotate-270
+kms_big_fb@linear-max-hw-stride-32bpp-rotate-0
+kms_big_fb@linear-max-hw-stride-32bpp-rotate-180
+kms_big_fb@linear-max-hw-stride-64bpp-rotate-0
+kms_big_fb@linear-max-hw-stride-64bpp-rotate-180
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip
+kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip
+kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
+kms_big_joiner@basic
+kms_big_joiner@invalid-modeset
+kms_big_joiner@2x-modeset
+kms_busy@basic
+kms_busy@basic-hang
+kms_busy@extended-pageflip-modeset-hang-oldfb
+kms_busy@extended-pageflip-hang-oldfb
+kms_busy@extended-pageflip-hang-newfb
+kms_busy@extended-modeset-hang-oldfb
+kms_busy@extended-modeset-hang-newfb
+kms_busy@extended-modeset-hang-oldfb-with-reset
+kms_busy@extended-modeset-hang-newfb-with-reset
+kms_bw@linear-tiling-1-displays-1920x1080p
+kms_bw@linear-tiling-1-displays-2560x1440p
+kms_bw@linear-tiling-1-displays-3840x2160p
+kms_bw@linear-tiling-2-displays-1920x1080p
+kms_bw@linear-tiling-2-displays-2560x1440p
+kms_bw@linear-tiling-2-displays-3840x2160p
+kms_bw@linear-tiling-3-displays-1920x1080p
+kms_bw@linear-tiling-3-displays-2560x1440p
+kms_bw@linear-tiling-3-displays-3840x2160p
+kms_bw@linear-tiling-4-displays-1920x1080p
+kms_bw@linear-tiling-4-displays-2560x1440p
+kms_bw@linear-tiling-4-displays-3840x2160p
+kms_bw@linear-tiling-5-displays-1920x1080p
+kms_bw@linear-tiling-5-displays-2560x1440p
+kms_bw@linear-tiling-5-displays-3840x2160p
+kms_bw@linear-tiling-6-displays-1920x1080p
+kms_bw@linear-tiling-6-displays-2560x1440p
+kms_bw@linear-tiling-6-displays-3840x2160p
+kms_bw@linear-tiling-7-displays-1920x1080p
+kms_bw@linear-tiling-7-displays-2560x1440p
+kms_bw@linear-tiling-7-displays-3840x2160p
+kms_bw@linear-tiling-8-displays-1920x1080p
+kms_bw@linear-tiling-8-displays-2560x1440p
+kms_bw@linear-tiling-8-displays-3840x2160p
+kms_ccs@pipe-A-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-A-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-A-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-A-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-A-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-A-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-A-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-A-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-A-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-B-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-B-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-B-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-B-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-B-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-B-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-B-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-B-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-B-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-B-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-B-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-B-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-C-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-C-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-C-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-C-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-C-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-C-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-C-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-C-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-C-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-C-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-C-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-C-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-D-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-D-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-D-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-D-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-D-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-D-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-D-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-D-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-D-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-D-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-D-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-D-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-E-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-E-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-E-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-E-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-E-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-E-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-E-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-E-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-E-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-E-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-E-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-E-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-F-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-F-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-F-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-F-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-F-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-F-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-F-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-F-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-F-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-F-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-F-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-F-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-G-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-G-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-G-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-G-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-G-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-G-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-G-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-G-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-G-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-G-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-G-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-G-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-bad-pixel-format-y_tiled_ccs
+kms_ccs@pipe-H-bad-pixel-format-yf_tiled_ccs
+kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-bad-pixel-format-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-H-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-bad-rotation-90-y_tiled_ccs
+kms_ccs@pipe-H-bad-rotation-90-yf_tiled_ccs
+kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-bad-rotation-90-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-H-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-crc-primary-basic-y_tiled_ccs
+kms_ccs@pipe-H-crc-primary-basic-yf_tiled_ccs
+kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-crc-primary-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-H-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-yf_tiled_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-random-ccs-data-y_tiled_ccs
+kms_ccs@pipe-H-random-ccs-data-yf_tiled_ccs
+kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-random-ccs-data-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-H-random-ccs-data-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-random-ccs-data-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_ccs
+kms_ccs@pipe-H-missing-ccs-buffer-yf_tiled_ccs
+kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-missing-ccs-buffer-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_ccs
+kms_ccs@pipe-H-ccs-on-another-bo-yf_tiled_ccs
+kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-ccs-on-another-bo-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-bad-aux-stride-y_tiled_ccs
+kms_ccs@pipe-H-bad-aux-stride-yf_tiled_ccs
+kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-bad-aux-stride-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
+kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-yf_tiled_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
+kms_ccs@pipe-H-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
+kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
+kms_ccs@pipe-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
+kms_cdclk@plane-scaling
+kms_cdclk@mode-transition
+kms_cdclk@mode-transition-all-outputs
+kms_color@degamma
+kms_color@gamma
+kms_color@legacy-gamma
+kms_color@legacy-gamma-reset
+kms_color@ctm-red-to-blue
+kms_color@ctm-green-to-red
+kms_color@ctm-blue-to-red
+kms_color@ctm-max
+kms_color@ctm-negative
+kms_color@ctm-0-25
+kms_color@ctm-0-50
+kms_color@ctm-0-75
+kms_color@ctm-signed
+kms_color@deep-color
+kms_color@invalid-gamma-lut-sizes
+kms_color@invalid-degamma-lut-sizes
+kms_color@invalid-ctm-matrix-sizes
+kms_concurrent@pipe-A
+kms_concurrent@pipe-B
+kms_concurrent@pipe-C
+kms_concurrent@pipe-D
+kms_concurrent@pipe-E
+kms_concurrent@pipe-F
+kms_concurrent@pipe-G
+kms_concurrent@pipe-H
+kms_content_protection@legacy
+kms_content_protection@atomic
+kms_content_protection@atomic-dpms
+kms_content_protection@LIC
+kms_content_protection@type1
+kms_content_protection@mei_interface
+kms_content_protection@content_type_change
+kms_content_protection@uevent
+kms_content_protection@srm
+kms_content_protection@dp-mst-type-0
+kms_content_protection@dp-mst-lic-type-0
+kms_content_protection@dp-mst-type-1
+kms_content_protection@dp-mst-lic-type-1
+kms_cursor_crc@cursor-size-change
+kms_cursor_crc@cursor-alpha-opaque
+kms_cursor_crc@cursor-alpha-transparent
+kms_cursor_crc@cursor-dpms
+kms_cursor_crc@cursor-suspend
+kms_cursor_crc@cursor-onscreen-32x32
+kms_cursor_crc@cursor-offscreen-32x32
+kms_cursor_crc@cursor-sliding-32x32
+kms_cursor_crc@cursor-random-32x32
+kms_cursor_crc@cursor-rapid-movement-32x32
+kms_cursor_crc@cursor-onscreen-32x10
+kms_cursor_crc@cursor-offscreen-32x10
+kms_cursor_crc@cursor-sliding-32x10
+kms_cursor_crc@cursor-random-32x10
+kms_cursor_crc@cursor-rapid-movement-32x10
+kms_cursor_crc@cursor-onscreen-64x64
+kms_cursor_crc@cursor-offscreen-64x64
+kms_cursor_crc@cursor-sliding-64x64
+kms_cursor_crc@cursor-random-64x64
+kms_cursor_crc@cursor-rapid-movement-64x64
+kms_cursor_crc@cursor-onscreen-64x21
+kms_cursor_crc@cursor-offscreen-64x21
+kms_cursor_crc@cursor-sliding-64x21
+kms_cursor_crc@cursor-random-64x21
+kms_cursor_crc@cursor-rapid-movement-64x21
+kms_cursor_crc@cursor-onscreen-128x128
+kms_cursor_crc@cursor-offscreen-128x128
+kms_cursor_crc@cursor-sliding-128x128
+kms_cursor_crc@cursor-random-128x128
+kms_cursor_crc@cursor-rapid-movement-128x128
+kms_cursor_crc@cursor-onscreen-128x42
+kms_cursor_crc@cursor-offscreen-128x42
+kms_cursor_crc@cursor-sliding-128x42
+kms_cursor_crc@cursor-random-128x42
+kms_cursor_crc@cursor-rapid-movement-128x42
+kms_cursor_crc@cursor-onscreen-256x256
+kms_cursor_crc@cursor-offscreen-256x256
+kms_cursor_crc@cursor-sliding-256x256
+kms_cursor_crc@cursor-random-256x256
+kms_cursor_crc@cursor-rapid-movement-256x256
+kms_cursor_crc@cursor-onscreen-256x85
+kms_cursor_crc@cursor-offscreen-256x85
+kms_cursor_crc@cursor-sliding-256x85
+kms_cursor_crc@cursor-random-256x85
+kms_cursor_crc@cursor-rapid-movement-256x85
+kms_cursor_crc@cursor-onscreen-512x512
+kms_cursor_crc@cursor-offscreen-512x512
+kms_cursor_crc@cursor-sliding-512x512
+kms_cursor_crc@cursor-random-512x512
+kms_cursor_crc@cursor-rapid-movement-512x512
+kms_cursor_crc@cursor-onscreen-512x170
+kms_cursor_crc@cursor-offscreen-512x170
+kms_cursor_crc@cursor-sliding-512x170
+kms_cursor_crc@cursor-random-512x170
+kms_cursor_crc@cursor-rapid-movement-512x170
+kms_cursor_crc@cursor-onscreen-max-size
+kms_cursor_crc@cursor-offscreen-max-size
+kms_cursor_crc@cursor-sliding-max-size
+kms_cursor_crc@cursor-random-max-size
+kms_cursor_crc@cursor-rapid-movement-max-size
+kms_cursor_legacy@single-bo
+kms_cursor_legacy@single-move
+kms_cursor_legacy@forked-bo
+kms_cursor_legacy@forked-move
+kms_cursor_legacy@torture-bo
+kms_cursor_legacy@torture-move
+kms_cursor_legacy@nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy@2x-flip-vs-cursor-legacy
+kms_cursor_legacy@2x-flip-vs-cursor-atomic
+kms_cursor_legacy@2x-long-flip-vs-cursor-legacy
+kms_cursor_legacy@2x-long-flip-vs-cursor-atomic
+kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic
+kms_cursor_legacy@2x-cursor-vs-flip-legacy
+kms_cursor_legacy@2x-long-cursor-vs-flip-legacy
+kms_cursor_legacy@2x-cursor-vs-flip-atomic
+kms_cursor_legacy@2x-long-cursor-vs-flip-atomic
+kms_cursor_legacy@flip-vs-cursor-crc-legacy
+kms_cursor_legacy@flip-vs-cursor-crc-atomic
+kms_cursor_legacy@flip-vs-cursor-busy-crc-legacy
+kms_cursor_legacy@flip-vs-cursor-busy-crc-atomic
+kms_cursor_legacy@basic-flip-before-cursor-legacy
+kms_cursor_legacy@basic-busy-flip-before-cursor-legacy
+kms_cursor_legacy@basic-flip-after-cursor-legacy
+kms_cursor_legacy@basic-flip-before-cursor-varying-size
+kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size
+kms_cursor_legacy@basic-flip-after-cursor-varying-size
+kms_cursor_legacy@short-flip-before-cursor-toggle
+kms_cursor_legacy@short-busy-flip-before-cursor-toggle
+kms_cursor_legacy@short-flip-after-cursor-toggle
+kms_cursor_legacy@basic-flip-before-cursor-atomic
+kms_cursor_legacy@basic-busy-flip-before-cursor-atomic
+kms_cursor_legacy@basic-flip-after-cursor-atomic
+kms_cursor_legacy@short-flip-before-cursor-atomic-transitions
+kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions
+kms_cursor_legacy@short-flip-after-cursor-atomic-transitions
+kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size
+kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size
+kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size
+kms_cursor_legacy@cursor-vs-flip-legacy
+kms_cursor_legacy@flip-vs-cursor-legacy
+kms_cursor_legacy@cursorA-vs-flipA-legacy
+kms_cursor_legacy@cursorA-vs-flipB-legacy
+kms_cursor_legacy@cursorB-vs-flipA-legacy
+kms_cursor_legacy@cursorB-vs-flipB-legacy
+kms_cursor_legacy@cursor-vs-flip-varying-size
+kms_cursor_legacy@flip-vs-cursor-varying-size
+kms_cursor_legacy@cursorA-vs-flipA-varying-size
+kms_cursor_legacy@cursorA-vs-flipB-varying-size
+kms_cursor_legacy@cursorB-vs-flipA-varying-size
+kms_cursor_legacy@cursorB-vs-flipB-varying-size
+kms_cursor_legacy@cursor-vs-flip-toggle
+kms_cursor_legacy@flip-vs-cursor-toggle
+kms_cursor_legacy@cursorA-vs-flipA-toggle
+kms_cursor_legacy@cursorA-vs-flipB-toggle
+kms_cursor_legacy@cursorB-vs-flipA-toggle
+kms_cursor_legacy@cursorB-vs-flipB-toggle
+kms_cursor_legacy@cursor-vs-flip-atomic
+kms_cursor_legacy@flip-vs-cursor-atomic
+kms_cursor_legacy@cursorA-vs-flipA-atomic
+kms_cursor_legacy@cursorA-vs-flipB-atomic
+kms_cursor_legacy@cursorB-vs-flipA-atomic
+kms_cursor_legacy@cursorB-vs-flipB-atomic
+kms_cursor_legacy@cursor-vs-flip-atomic-transitions
+kms_cursor_legacy@flip-vs-cursor-atomic-transitions
+kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions
+kms_cursor_legacy@cursorA-vs-flipB-atomic-transitions
+kms_cursor_legacy@cursorB-vs-flipA-atomic-transitions
+kms_cursor_legacy@cursorB-vs-flipB-atomic-transitions
+kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size
+kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size
+kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions-varying-size
+kms_cursor_legacy@cursorA-vs-flipB-atomic-transitions-varying-size
+kms_cursor_legacy@cursorB-vs-flipA-atomic-transitions-varying-size
+kms_cursor_legacy@cursorB-vs-flipB-atomic-transitions-varying-size
+kms_dither@FB-8BPC-Vs-Panel-6BPC
+kms_dither@FB-8BPC-Vs-Panel-8BPC
+kms_dp_aux_dev
+kms_tiled_display@basic-test-pattern
+kms_tiled_display@basic-test-pattern-with-chamelium
+kms_draw_crc@draw-method-mmap-cpu
+kms_draw_crc@draw-method-mmap-gtt
+kms_draw_crc@draw-method-mmap-wc
+kms_draw_crc@draw-method-pwrite
+kms_draw_crc@draw-method-blt
+kms_draw_crc@draw-method-render
+kms_draw_crc@fill-fb
+kms_dsc@dsc-basic
+kms_dsc@dsc-with-formats
+kms_dsc@dsc-with-bpc
+kms_dsc@dsc-with-bpc-formats
+kms_dsc@dsc-with-output-formats
+kms_fbcon_fbt@fbc
+kms_fbcon_fbt@psr
+kms_fbcon_fbt@fbc-suspend
+kms_fbcon_fbt@psr-suspend
+kms_fence_pin_leak
+kms_flip@nonblocking-read
+kms_flip@wf_vblank-ts-check
+kms_flip@2x-wf_vblank-ts-check
+kms_flip@blocking-wf_vblank
+kms_flip@2x-blocking-wf_vblank
+kms_flip@absolute-wf_vblank
+kms_flip@2x-absolute-wf_vblank
+kms_flip@blocking-absolute-wf_vblank
+kms_flip@2x-blocking-absolute-wf_vblank
+kms_flip@basic-plain-flip
+kms_flip@2x-plain-flip
+kms_flip@busy-flip
+kms_flip@2x-busy-flip
+kms_flip@flip-vs-fences
+kms_flip@2x-flip-vs-fences
+kms_flip@plain-flip-ts-check
+kms_flip@2x-plain-flip-ts-check
+kms_flip@plain-flip-fb-recreate
+kms_flip@2x-plain-flip-fb-recreate
+kms_flip@flip-vs-rmfb
+kms_flip@2x-flip-vs-rmfb
+kms_flip@basic-flip-vs-dpms
+kms_flip@2x-flip-vs-dpms
+kms_flip@flip-vs-panning
+kms_flip@2x-flip-vs-panning
+kms_flip@basic-flip-vs-modeset
+kms_flip@2x-flip-vs-modeset
+kms_flip@flip-vs-expired-vblank
+kms_flip@2x-flip-vs-expired-vblank
+kms_flip@flip-vs-absolute-wf_vblank
+kms_flip@2x-flip-vs-absolute-wf_vblank
+kms_flip@basic-flip-vs-wf_vblank
+kms_flip@2x-flip-vs-wf_vblank
+kms_flip@flip-vs-blocking-wf-vblank
+kms_flip@2x-flip-vs-blocking-wf-vblank
+kms_flip@flip-vs-modeset-vs-hang
+kms_flip@2x-flip-vs-modeset-vs-hang
+kms_flip@flip-vs-panning-vs-hang
+kms_flip@2x-flip-vs-panning-vs-hang
+kms_flip@flip-vs-dpms-off-vs-modeset
+kms_flip@2x-flip-vs-dpms-off-vs-modeset
+kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset
+kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset
+kms_flip@dpms-off-confusion
+kms_flip@nonexisting-fb
+kms_flip@2x-nonexisting-fb
+kms_flip@dpms-vs-vblank-race
+kms_flip@2x-dpms-vs-vblank-race
+kms_flip@modeset-vs-vblank-race
+kms_flip@2x-modeset-vs-vblank-race
+kms_flip@bo-too-big
+kms_flip@flip-vs-suspend
+kms_flip@2x-flip-vs-suspend
+kms_flip@wf_vblank-ts-check-interruptible
+kms_flip@2x-wf_vblank-ts-check-interruptible
+kms_flip@absolute-wf_vblank-interruptible
+kms_flip@2x-absolute-wf_vblank-interruptible
+kms_flip@blocking-absolute-wf_vblank-interruptible
+kms_flip@2x-blocking-absolute-wf_vblank-interruptible
+kms_flip@plain-flip-interruptible
+kms_flip@2x-plain-flip-interruptible
+kms_flip@flip-vs-fences-interruptible
+kms_flip@2x-flip-vs-fences-interruptible
+kms_flip@plain-flip-ts-check-interruptible
+kms_flip@2x-plain-flip-ts-check-interruptible
+kms_flip@plain-flip-fb-recreate-interruptible
+kms_flip@2x-plain-flip-fb-recreate-interruptible
+kms_flip@flip-vs-rmfb-interruptible
+kms_flip@2x-flip-vs-rmfb-interruptible
+kms_flip@flip-vs-panning-interruptible
+kms_flip@2x-flip-vs-panning-interruptible
+kms_flip@flip-vs-expired-vblank-interruptible
+kms_flip@2x-flip-vs-expired-vblank-interruptible
+kms_flip@flip-vs-absolute-wf_vblank-interruptible
+kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible
+kms_flip@flip-vs-wf_vblank-interruptible
+kms_flip@2x-flip-vs-wf_vblank-interruptible
+kms_flip@flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
+kms_flip@dpms-off-confusion-interruptible
+kms_flip@nonexisting-fb-interruptible
+kms_flip@2x-nonexisting-fb-interruptible
+kms_flip@dpms-vs-vblank-race-interruptible
+kms_flip@2x-dpms-vs-vblank-race-interruptible
+kms_flip@modeset-vs-vblank-race-interruptible
+kms_flip@2x-modeset-vs-vblank-race-interruptible
+kms_flip@bo-too-big-interruptible
+kms_flip@flip-vs-suspend-interruptible
+kms_flip@2x-flip-vs-suspend-interruptible
+kms_flip_event_leak@basic
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling
+kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling
+kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling
+kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling
+kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling
+kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling
+kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling
+kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling
+kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
+kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling
+kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
+kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
+kms_force_connector_basic@force-load-detect
+kms_force_connector_basic@force-connector-state
+kms_force_connector_basic@force-edid
+kms_force_connector_basic@prune-stale-modes
+kms_frontbuffer_tracking@fbc-1p-rte
+kms_frontbuffer_tracking@fbc-2p-rte
+kms_frontbuffer_tracking@psr-1p-rte
+kms_frontbuffer_tracking@psr-2p-rte
+kms_frontbuffer_tracking@fbcpsr-1p-rte
+kms_frontbuffer_tracking@fbcpsr-2p-rte
+kms_frontbuffer_tracking@drrs-1p-rte
+kms_frontbuffer_tracking@drrs-2p-rte
+kms_frontbuffer_tracking@fbcdrrs-1p-rte
+kms_frontbuffer_tracking@fbcdrrs-2p-rte
+kms_frontbuffer_tracking@psrdrrs-1p-rte
+kms_frontbuffer_tracking@psrdrrs-2p-rte
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-rte
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-rte
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@drrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-offscren-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-draw-render
+kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-indfb-plflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-pgflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-msflip-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-shrfb-plflip-blt
+kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-indfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-shrfb-fliptrack-mmap-gtt
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-move
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-cur-indfb-onoff
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-move
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-onoff
+kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@psrdrrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@psrdrrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@psrdrrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-primscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen
+kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking@psr-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking@drrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbcdrrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbcdrrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking@psrdrrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking@psrdrrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbcpsrdrrs-1p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbcpsrdrrs-2p-pri-indfb-multidraw
+kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt
+kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-farfromfence-mmap-gtt
+kms_frontbuffer_tracking@drrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-farfromfence-mmap-gtt
+kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite
+kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite
+kms_frontbuffer_tracking@fbc-rgb565-draw-blt
+kms_frontbuffer_tracking@fbc-rgb101010-draw-blt
+kms_frontbuffer_tracking@fbc-rgb565-draw-render
+kms_frontbuffer_tracking@fbc-rgb101010-draw-render
+kms_frontbuffer_tracking@psr-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking@psr-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking@psr-rgb565-draw-pwrite
+kms_frontbuffer_tracking@psr-rgb101010-draw-pwrite
+kms_frontbuffer_tracking@psr-rgb565-draw-blt
+kms_frontbuffer_tracking@psr-rgb101010-draw-blt
+kms_frontbuffer_tracking@psr-rgb565-draw-render
+kms_frontbuffer_tracking@psr-rgb101010-draw-render
+kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite
+kms_frontbuffer_tracking@fbcpsr-rgb565-draw-blt
+kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt
+kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render
+kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-render
+kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking@drrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking@drrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking@drrs-rgb565-draw-blt
+kms_frontbuffer_tracking@drrs-rgb101010-draw-blt
+kms_frontbuffer_tracking@drrs-rgb565-draw-render
+kms_frontbuffer_tracking@drrs-rgb101010-draw-render
+kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt
+kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-render
+kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-render
+kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking@psrdrrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking@psrdrrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking@psrdrrs-rgb565-draw-blt
+kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-blt
+kms_frontbuffer_tracking@psrdrrs-rgb565-draw-render
+kms_frontbuffer_tracking@psrdrrs-rgb101010-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-cpu
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-gtt
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-mmap-wc
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-pwrite
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-blt
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb565-draw-render
+kms_frontbuffer_tracking@fbcpsrdrrs-rgb101010-draw-render
+kms_frontbuffer_tracking@fbc-indfb-scaledprimary
+kms_frontbuffer_tracking@fbc-shrfb-scaledprimary
+kms_frontbuffer_tracking@psr-indfb-scaledprimary
+kms_frontbuffer_tracking@psr-shrfb-scaledprimary
+kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary
+kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary
+kms_frontbuffer_tracking@drrs-indfb-scaledprimary
+kms_frontbuffer_tracking@drrs-shrfb-scaledprimary
+kms_frontbuffer_tracking@fbcdrrs-indfb-scaledprimary
+kms_frontbuffer_tracking@fbcdrrs-shrfb-scaledprimary
+kms_frontbuffer_tracking@psrdrrs-indfb-scaledprimary
+kms_frontbuffer_tracking@psrdrrs-shrfb-scaledprimary
+kms_frontbuffer_tracking@fbcpsrdrrs-indfb-scaledprimary
+kms_frontbuffer_tracking@fbcpsrdrrs-shrfb-scaledprimary
+kms_frontbuffer_tracking@fbc-modesetfrombusy
+kms_frontbuffer_tracking@fbc-badstride
+kms_frontbuffer_tracking@fbc-stridechange
+kms_frontbuffer_tracking@fbc-tiling-linear
+kms_frontbuffer_tracking@fbc-tiling-y
+kms_frontbuffer_tracking@fbc-tiling-4
+kms_frontbuffer_tracking@fbc-suspend
+kms_frontbuffer_tracking@psr-modesetfrombusy
+kms_frontbuffer_tracking@psr-slowdraw
+kms_frontbuffer_tracking@psr-suspend
+kms_frontbuffer_tracking@fbcpsr-modesetfrombusy
+kms_frontbuffer_tracking@fbcpsr-badstride
+kms_frontbuffer_tracking@fbcpsr-stridechange
+kms_frontbuffer_tracking@fbcpsr-tiling-linear
+kms_frontbuffer_tracking@fbcpsr-tiling-y
+kms_frontbuffer_tracking@fbcpsr-tiling-4
+kms_frontbuffer_tracking@fbcpsr-slowdraw
+kms_frontbuffer_tracking@fbcpsr-suspend
+kms_frontbuffer_tracking@drrs-modesetfrombusy
+kms_frontbuffer_tracking@drrs-slowdraw
+kms_frontbuffer_tracking@drrs-suspend
+kms_frontbuffer_tracking@fbcdrrs-modesetfrombusy
+kms_frontbuffer_tracking@fbcdrrs-badstride
+kms_frontbuffer_tracking@fbcdrrs-stridechange
+kms_frontbuffer_tracking@fbcdrrs-tiling-linear
+kms_frontbuffer_tracking@fbcdrrs-tiling-y
+kms_frontbuffer_tracking@fbcdrrs-tiling-4
+kms_frontbuffer_tracking@fbcdrrs-slowdraw
+kms_frontbuffer_tracking@fbcdrrs-suspend
+kms_frontbuffer_tracking@psrdrrs-modesetfrombusy
+kms_frontbuffer_tracking@psrdrrs-slowdraw
+kms_frontbuffer_tracking@psrdrrs-suspend
+kms_frontbuffer_tracking@fbcpsrdrrs-modesetfrombusy
+kms_frontbuffer_tracking@fbcpsrdrrs-badstride
+kms_frontbuffer_tracking@fbcpsrdrrs-stridechange
+kms_frontbuffer_tracking@fbcpsrdrrs-tiling-linear
+kms_frontbuffer_tracking@fbcpsrdrrs-tiling-y
+kms_frontbuffer_tracking@fbcpsrdrrs-tiling-4
+kms_frontbuffer_tracking@fbcpsrdrrs-slowdraw
+kms_frontbuffer_tracking@fbcpsrdrrs-suspend
+kms_frontbuffer_tracking@basic
+kms_getfb@getfb-handle-zero
+kms_getfb@getfb-handle-valid
+kms_getfb@getfb-handle-closed
+kms_getfb@getfb-handle-not-fb
+kms_getfb@getfb-addfb-different-handles
+kms_getfb@getfb-repeated-different-handles
+kms_getfb@getfb-reject-ccs
+kms_getfb@getfb2-handle-zero
+kms_getfb@getfb2-handle-closed
+kms_getfb@getfb2-handle-not-fb
+kms_getfb@getfb2-accept-ccs
+kms_getfb@getfb2-into-addfb2
+kms_getfb@getfb-handle-protection
+kms_getfb@getfb2-handle-protection
+kms_hdmi_inject@inject-4k
+kms_hdmi_inject@inject-audio
+kms_hdr@bpc-switch
+kms_hdr@bpc-switch-dpms
+kms_hdr@bpc-switch-suspend
+kms_hdr@static-toggle
+kms_hdr@static-toggle-dpms
+kms_hdr@static-toggle-suspend
+kms_hdr@static-swap
+kms_hdr@invalid-metadata-sizes
+kms_hdr@invalid-hdr
+kms_invalid_mode@clock-too-high
+kms_invalid_mode@zero-clock
+kms_invalid_mode@int-max-clock
+kms_invalid_mode@uint-max-clock
+kms_invalid_mode@zero-hdisplay
+kms_invalid_mode@zero-vdisplay
+kms_invalid_mode@bad-hsync-start
+kms_invalid_mode@bad-vsync-start
+kms_invalid_mode@bad-hsync-end
+kms_invalid_mode@bad-vsync-end
+kms_invalid_mode@bad-htotal
+kms_invalid_mode@bad-vtotal
+kms_legacy_colorkey@basic
+kms_legacy_colorkey@invalid-plane
+kms_multipipe_modeset@basic-max-pipe-crc-check
+kms_panel_fitting@legacy
+kms_panel_fitting@atomic-fastset
+kms_pipe_b_c_ivb@pipe-B-dpms-off-modeset-pipe-C
+kms_pipe_b_c_ivb@pipe-B-double-modeset-then-modeset-pipe-C
+kms_pipe_b_c_ivb@disable-pipe-B-enable-pipe-C
+kms_pipe_b_c_ivb@from-pipe-C-to-B-with-3-lanes
+kms_pipe_b_c_ivb@enable-pipe-C-while-B-has-3-lanes
+kms_pipe_crc_basic@bad-source
+kms_pipe_crc_basic@read-crc
+kms_pipe_crc_basic@read-crc-frame-sequence
+kms_pipe_crc_basic@nonblocking-crc
+kms_pipe_crc_basic@nonblocking-crc-frame-sequence
+kms_pipe_crc_basic@suspend-read-crc
+kms_pipe_crc_basic@hang-read-crc
+kms_pipe_crc_basic@disable-crc-after-crtc
+kms_pipe_crc_basic@compare-crc-sanitycheck-xr24
+kms_pipe_crc_basic@compare-crc-sanitycheck-nv12
+kms_plane@pixel-format
+kms_plane@pixel-format-source-clamping
+kms_plane@plane-position-covered
+kms_plane@plane-position-hole
+kms_plane@plane-position-hole-dpms
+kms_plane@plane-panning-top-left
+kms_plane@plane-panning-bottom-right
+kms_plane@plane-panning-bottom-right-suspend
+kms_plane@invalid-pixel-format-settings
+kms_plane_alpha_blend@alpha-basic
+kms_plane_alpha_blend@alpha-7efc
+kms_plane_alpha_blend@coverage-7efc
+kms_plane_alpha_blend@coverage-vs-premult-vs-constant
+kms_plane_alpha_blend@alpha-transparent-fb
+kms_plane_alpha_blend@alpha-opaque-fb
+kms_plane_alpha_blend@constant-alpha-min
+kms_plane_alpha_blend@constant-alpha-mid
+kms_plane_alpha_blend@constant-alpha-max
+kms_plane_cursor@primary
+kms_plane_cursor@overlay
+kms_plane_cursor@viewport
+kms_plane_lowres@tiling-none
+kms_plane_lowres@tiling-x
+kms_plane_lowres@tiling-y
+kms_plane_lowres@tiling-yf
+kms_plane_lowres@tiling-4
+kms_plane_multiple@tiling-none
+kms_plane_multiple@tiling-x
+kms_plane_multiple@tiling-y
+kms_plane_multiple@tiling-yf
+kms_plane_multiple@tiling-4
+kms_plane_scaling@plane-upscale-with-pixel-format-20x20
+kms_plane_scaling@plane-upscale-with-pixel-format-factor-0-25
+kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25
+kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5
+kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-75
+kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling
+kms_plane_scaling@plane-upscale-with-rotation-20x20
+kms_plane_scaling@plane-upscale-with-rotation-factor-0-25
+kms_plane_scaling@plane-downscale-with-rotation-factor-0-25
+kms_plane_scaling@plane-downscale-with-rotation-factor-0-5
+kms_plane_scaling@plane-downscale-with-rotation-factor-0-75
+kms_plane_scaling@plane-scaler-with-rotation-unity-scaling
+kms_plane_scaling@plane-upscale-with-modifiers-20x20
+kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25
+kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25
+kms_plane_scaling@plane-downscale-with-modifiers-factor-0-5
+kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75
+kms_plane_scaling@plane-scaler-with-modifiers-unity-scaling
+kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats
+kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation
+kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers
+kms_plane_scaling@planes-upscale-20x20
+kms_plane_scaling@planes-upscale-factor-0-25
+kms_plane_scaling@planes-scaler-unity-scaling
+kms_plane_scaling@planes-downscale-factor-0-25
+kms_plane_scaling@planes-downscale-factor-0-5
+kms_plane_scaling@planes-downscale-factor-0-75
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75
+kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25
+kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5
+kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75
+kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25
+kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5
+kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75
+kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20
+kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25
+kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling
+kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20
+kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25
+kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling
+kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20
+kms_plane_scaling@planes-downscale-factor-0-75-upscale-factor-0-25
+kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling
+kms_plane_scaling@intel-max-src-size
+kms_plane_scaling@invalid-num-scalers
+kms_plane_scaling@invalid-parameters
+kms_plane_scaling@2x-scaler-multi-pipe
+kms_prime@basic-crc-hybrid
+kms_prime@basic-modeset-hybrid
+kms_prime@D3hot
+kms_prime@basic-crc-vgem
+kms_prop_blob@basic
+kms_prop_blob@blob-prop-core
+kms_prop_blob@blob-prop-validate
+kms_prop_blob@blob-prop-lifetime
+kms_prop_blob@blob-multiple
+kms_prop_blob@invalid-get-prop-any
+kms_prop_blob@invalid-get-prop
+kms_prop_blob@invalid-set-prop-any
+kms_prop_blob@invalid-set-prop
+kms_properties@plane-properties-legacy
+kms_properties@plane-properties-atomic
+kms_properties@crtc-properties-legacy
+kms_properties@crtc-properties-atomic
+kms_properties@connector-properties-legacy
+kms_properties@connector-properties-atomic
+kms_properties@invalid-properties-legacy
+kms_properties@invalid-properties-atomic
+kms_properties@get_properties-sanity-atomic
+kms_properties@get_properties-sanity-non-atomic
+kms_psr@basic
+kms_psr@no_drrs
+kms_psr@primary_page_flip
+kms_psr@primary_mmap_gtt
+kms_psr@primary_mmap_cpu
+kms_psr@primary_blt
+kms_psr@primary_render
+kms_psr@sprite_mmap_gtt
+kms_psr@cursor_mmap_gtt
+kms_psr@sprite_mmap_cpu
+kms_psr@cursor_mmap_cpu
+kms_psr@sprite_blt
+kms_psr@cursor_blt
+kms_psr@sprite_render
+kms_psr@cursor_render
+kms_psr@sprite_plane_move
+kms_psr@cursor_plane_move
+kms_psr@sprite_plane_onoff
+kms_psr@cursor_plane_onoff
+kms_psr@dpms
+kms_psr@suspend
+kms_psr@psr2_basic
+kms_psr@psr2_no_drrs
+kms_psr@psr2_primary_page_flip
+kms_psr@psr2_primary_mmap_gtt
+kms_psr@psr2_primary_mmap_cpu
+kms_psr@psr2_primary_blt
+kms_psr@psr2_primary_render
+kms_psr@psr2_sprite_mmap_gtt
+kms_psr@psr2_cursor_mmap_gtt
+kms_psr@psr2_sprite_mmap_cpu
+kms_psr@psr2_cursor_mmap_cpu
+kms_psr@psr2_sprite_blt
+kms_psr@psr2_cursor_blt
+kms_psr@psr2_sprite_render
+kms_psr@psr2_cursor_render
+kms_psr@psr2_sprite_plane_move
+kms_psr@psr2_cursor_plane_move
+kms_psr@psr2_sprite_plane_onoff
+kms_psr@psr2_cursor_plane_onoff
+kms_psr@psr2_dpms
+kms_psr@psr2_suspend
+kms_psr2_sf@primary-plane-update-sf-dmg-area
+kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb
+kms_psr2_sf@overlay-plane-update-sf-dmg-area
+kms_psr2_sf@cursor-plane-update-sf
+kms_psr2_sf@cursor-plane-move-continuous-sf
+kms_psr2_sf@cursor-plane-move-continuous-exceed-sf
+kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf
+kms_psr2_sf@plane-move-sf-dmg-area
+kms_psr2_sf@overlay-plane-move-continuous-sf
+kms_psr2_sf@overlay-plane-move-continuous-exceed-sf
+kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf
+kms_psr2_sf@overlay-primary-update-sf-dmg-area
+kms_psr2_sf@overlay-plane-update-continuous-sf
+kms_psr2_su@page_flip-XRGB8888
+kms_psr2_su@page_flip-NV12
+kms_psr2_su@page_flip-P010
+kms_psr2_su@frontbuffer-XRGB8888
+kms_pwrite_crc
+kms_rmfb@rmfb-ioctl
+kms_rmfb@close-fd
+kms_rotation_crc@primary-rotation-90
+kms_rotation_crc@primary-rotation-180
+kms_rotation_crc@primary-rotation-270
+kms_rotation_crc@sprite-rotation-90
+kms_rotation_crc@sprite-rotation-180
+kms_rotation_crc@sprite-rotation-270
+kms_rotation_crc@cursor-rotation-180
+kms_rotation_crc@sprite-rotation-90-pos-100-0
+kms_rotation_crc@bad-pixel-format
+kms_rotation_crc@bad-tiling
+kms_rotation_crc@primary-x-tiled-reflect-x-0
+kms_rotation_crc@primary-x-tiled-reflect-x-180
+kms_rotation_crc@primary-y-tiled-reflect-x-0
+kms_rotation_crc@primary-y-tiled-reflect-x-90
+kms_rotation_crc@primary-y-tiled-reflect-x-180
+kms_rotation_crc@primary-y-tiled-reflect-x-270
+kms_rotation_crc@primary-yf-tiled-reflect-x-0
+kms_rotation_crc@primary-yf-tiled-reflect-x-90
+kms_rotation_crc@primary-yf-tiled-reflect-x-180
+kms_rotation_crc@primary-yf-tiled-reflect-x-270
+kms_rotation_crc@primary-4-tiled-reflect-x-0
+kms_rotation_crc@primary-4-tiled-reflect-x-180
+kms_rotation_crc@multiplane-rotation
+kms_rotation_crc@multiplane-rotation-cropping-top
+kms_rotation_crc@multiplane-rotation-cropping-bottom
+kms_rotation_crc@exhaust-fences
+kms_scaling_modes@scaling-mode-full
+kms_scaling_modes@scaling-mode-center
+kms_scaling_modes@scaling-mode-full-aspect
+kms_scaling_modes@scaling-mode-none
+kms_selftest@drm_cmdline
+kms_selftest@drm_damage
+kms_selftest@drm_dp_mst
+kms_selftest@drm_format_helper
+kms_selftest@drm_format
+kms_selftest@framebuffer
+kms_selftest@drm_plane
+kms_setmode@basic
+kms_setmode@basic-clone-single-crtc
+kms_setmode@invalid-clone-single-crtc
+kms_setmode@invalid-clone-exclusive-crtc
+kms_setmode@clone-exclusive-crtc
+kms_setmode@invalid-clone-single-crtc-stealing
+kms_sysfs_edid_timing
+kms_tv_load_detect@load-detect
+kms_universal_plane@universal-plane-pipe-A-functional
+kms_universal_plane@universal-plane-pipe-A-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-A
+kms_universal_plane@cursor-fb-leak-pipe-A
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-A
+kms_universal_plane@universal-plane-pipe-B-functional
+kms_universal_plane@universal-plane-pipe-B-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-B
+kms_universal_plane@cursor-fb-leak-pipe-B
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-B
+kms_universal_plane@universal-plane-pipe-C-functional
+kms_universal_plane@universal-plane-pipe-C-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-C
+kms_universal_plane@cursor-fb-leak-pipe-C
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-C
+kms_universal_plane@universal-plane-pipe-D-functional
+kms_universal_plane@universal-plane-pipe-D-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-D
+kms_universal_plane@cursor-fb-leak-pipe-D
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-D
+kms_universal_plane@universal-plane-pipe-E-functional
+kms_universal_plane@universal-plane-pipe-E-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-E
+kms_universal_plane@cursor-fb-leak-pipe-E
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-E
+kms_universal_plane@universal-plane-pipe-F-functional
+kms_universal_plane@universal-plane-pipe-F-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-F
+kms_universal_plane@cursor-fb-leak-pipe-F
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-F
+kms_universal_plane@universal-plane-pipe-G-functional
+kms_universal_plane@universal-plane-pipe-G-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-G
+kms_universal_plane@cursor-fb-leak-pipe-G
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-G
+kms_universal_plane@universal-plane-pipe-H-functional
+kms_universal_plane@universal-plane-pipe-H-sanity
+kms_universal_plane@disable-primary-vs-flip-pipe-H
+kms_universal_plane@cursor-fb-leak-pipe-H
+kms_universal_plane@universal-plane-pageflip-windowed-pipe-H
+kms_vblank@invalid
+kms_vblank@crtc-id
+kms_vblank@pipe-A-accuracy-idle
+kms_vblank@pipe-A-query-idle
+kms_vblank@pipe-A-query-idle-hang
+kms_vblank@pipe-A-query-forked
+kms_vblank@pipe-A-query-forked-hang
+kms_vblank@pipe-A-query-busy
+kms_vblank@pipe-A-query-busy-hang
+kms_vblank@pipe-A-query-forked-busy
+kms_vblank@pipe-A-query-forked-busy-hang
+kms_vblank@pipe-A-wait-idle
+kms_vblank@pipe-A-wait-idle-hang
+kms_vblank@pipe-A-wait-forked
+kms_vblank@pipe-A-wait-forked-hang
+kms_vblank@pipe-A-wait-busy
+kms_vblank@pipe-A-wait-busy-hang
+kms_vblank@pipe-A-wait-forked-busy
+kms_vblank@pipe-A-wait-forked-busy-hang
+kms_vblank@pipe-A-ts-continuation-idle
+kms_vblank@pipe-A-ts-continuation-idle-hang
+kms_vblank@pipe-A-ts-continuation-dpms-rpm
+kms_vblank@pipe-A-ts-continuation-dpms-suspend
+kms_vblank@pipe-A-ts-continuation-suspend
+kms_vblank@pipe-A-ts-continuation-modeset
+kms_vblank@pipe-A-ts-continuation-modeset-hang
+kms_vblank@pipe-A-ts-continuation-modeset-rpm
+kms_vblank@pipe-B-accuracy-idle
+kms_vblank@pipe-B-query-idle
+kms_vblank@pipe-B-query-idle-hang
+kms_vblank@pipe-B-query-forked
+kms_vblank@pipe-B-query-forked-hang
+kms_vblank@pipe-B-query-busy
+kms_vblank@pipe-B-query-busy-hang
+kms_vblank@pipe-B-query-forked-busy
+kms_vblank@pipe-B-query-forked-busy-hang
+kms_vblank@pipe-B-wait-idle
+kms_vblank@pipe-B-wait-idle-hang
+kms_vblank@pipe-B-wait-forked
+kms_vblank@pipe-B-wait-forked-hang
+kms_vblank@pipe-B-wait-busy
+kms_vblank@pipe-B-wait-busy-hang
+kms_vblank@pipe-B-wait-forked-busy
+kms_vblank@pipe-B-wait-forked-busy-hang
+kms_vblank@pipe-B-ts-continuation-idle
+kms_vblank@pipe-B-ts-continuation-idle-hang
+kms_vblank@pipe-B-ts-continuation-dpms-rpm
+kms_vblank@pipe-B-ts-continuation-dpms-suspend
+kms_vblank@pipe-B-ts-continuation-suspend
+kms_vblank@pipe-B-ts-continuation-modeset
+kms_vblank@pipe-B-ts-continuation-modeset-hang
+kms_vblank@pipe-B-ts-continuation-modeset-rpm
+kms_vblank@pipe-C-accuracy-idle
+kms_vblank@pipe-C-query-idle
+kms_vblank@pipe-C-query-idle-hang
+kms_vblank@pipe-C-query-forked
+kms_vblank@pipe-C-query-forked-hang
+kms_vblank@pipe-C-query-busy
+kms_vblank@pipe-C-query-busy-hang
+kms_vblank@pipe-C-query-forked-busy
+kms_vblank@pipe-C-query-forked-busy-hang
+kms_vblank@pipe-C-wait-idle
+kms_vblank@pipe-C-wait-idle-hang
+kms_vblank@pipe-C-wait-forked
+kms_vblank@pipe-C-wait-forked-hang
+kms_vblank@pipe-C-wait-busy
+kms_vblank@pipe-C-wait-busy-hang
+kms_vblank@pipe-C-wait-forked-busy
+kms_vblank@pipe-C-wait-forked-busy-hang
+kms_vblank@pipe-C-ts-continuation-idle
+kms_vblank@pipe-C-ts-continuation-idle-hang
+kms_vblank@pipe-C-ts-continuation-dpms-rpm
+kms_vblank@pipe-C-ts-continuation-dpms-suspend
+kms_vblank@pipe-C-ts-continuation-suspend
+kms_vblank@pipe-C-ts-continuation-modeset
+kms_vblank@pipe-C-ts-continuation-modeset-hang
+kms_vblank@pipe-C-ts-continuation-modeset-rpm
+kms_vblank@pipe-D-accuracy-idle
+kms_vblank@pipe-D-query-idle
+kms_vblank@pipe-D-query-idle-hang
+kms_vblank@pipe-D-query-forked
+kms_vblank@pipe-D-query-forked-hang
+kms_vblank@pipe-D-query-busy
+kms_vblank@pipe-D-query-busy-hang
+kms_vblank@pipe-D-query-forked-busy
+kms_vblank@pipe-D-query-forked-busy-hang
+kms_vblank@pipe-D-wait-idle
+kms_vblank@pipe-D-wait-idle-hang
+kms_vblank@pipe-D-wait-forked
+kms_vblank@pipe-D-wait-forked-hang
+kms_vblank@pipe-D-wait-busy
+kms_vblank@pipe-D-wait-busy-hang
+kms_vblank@pipe-D-wait-forked-busy
+kms_vblank@pipe-D-wait-forked-busy-hang
+kms_vblank@pipe-D-ts-continuation-idle
+kms_vblank@pipe-D-ts-continuation-idle-hang
+kms_vblank@pipe-D-ts-continuation-dpms-rpm
+kms_vblank@pipe-D-ts-continuation-dpms-suspend
+kms_vblank@pipe-D-ts-continuation-suspend
+kms_vblank@pipe-D-ts-continuation-modeset
+kms_vblank@pipe-D-ts-continuation-modeset-hang
+kms_vblank@pipe-D-ts-continuation-modeset-rpm
+kms_vblank@pipe-E-accuracy-idle
+kms_vblank@pipe-E-query-idle
+kms_vblank@pipe-E-query-idle-hang
+kms_vblank@pipe-E-query-forked
+kms_vblank@pipe-E-query-forked-hang
+kms_vblank@pipe-E-query-busy
+kms_vblank@pipe-E-query-busy-hang
+kms_vblank@pipe-E-query-forked-busy
+kms_vblank@pipe-E-query-forked-busy-hang
+kms_vblank@pipe-E-wait-idle
+kms_vblank@pipe-E-wait-idle-hang
+kms_vblank@pipe-E-wait-forked
+kms_vblank@pipe-E-wait-forked-hang
+kms_vblank@pipe-E-wait-busy
+kms_vblank@pipe-E-wait-busy-hang
+kms_vblank@pipe-E-wait-forked-busy
+kms_vblank@pipe-E-wait-forked-busy-hang
+kms_vblank@pipe-E-ts-continuation-idle
+kms_vblank@pipe-E-ts-continuation-idle-hang
+kms_vblank@pipe-E-ts-continuation-dpms-rpm
+kms_vblank@pipe-E-ts-continuation-dpms-suspend
+kms_vblank@pipe-E-ts-continuation-suspend
+kms_vblank@pipe-E-ts-continuation-modeset
+kms_vblank@pipe-E-ts-continuation-modeset-hang
+kms_vblank@pipe-E-ts-continuation-modeset-rpm
+kms_vblank@pipe-F-accuracy-idle
+kms_vblank@pipe-F-query-idle
+kms_vblank@pipe-F-query-idle-hang
+kms_vblank@pipe-F-query-forked
+kms_vblank@pipe-F-query-forked-hang
+kms_vblank@pipe-F-query-busy
+kms_vblank@pipe-F-query-busy-hang
+kms_vblank@pipe-F-query-forked-busy
+kms_vblank@pipe-F-query-forked-busy-hang
+kms_vblank@pipe-F-wait-idle
+kms_vblank@pipe-F-wait-idle-hang
+kms_vblank@pipe-F-wait-forked
+kms_vblank@pipe-F-wait-forked-hang
+kms_vblank@pipe-F-wait-busy
+kms_vblank@pipe-F-wait-busy-hang
+kms_vblank@pipe-F-wait-forked-busy
+kms_vblank@pipe-F-wait-forked-busy-hang
+kms_vblank@pipe-F-ts-continuation-idle
+kms_vblank@pipe-F-ts-continuation-idle-hang
+kms_vblank@pipe-F-ts-continuation-dpms-rpm
+kms_vblank@pipe-F-ts-continuation-dpms-suspend
+kms_vblank@pipe-F-ts-continuation-suspend
+kms_vblank@pipe-F-ts-continuation-modeset
+kms_vblank@pipe-F-ts-continuation-modeset-hang
+kms_vblank@pipe-F-ts-continuation-modeset-rpm
+kms_vblank@pipe-G-accuracy-idle
+kms_vblank@pipe-G-query-idle
+kms_vblank@pipe-G-query-idle-hang
+kms_vblank@pipe-G-query-forked
+kms_vblank@pipe-G-query-forked-hang
+kms_vblank@pipe-G-query-busy
+kms_vblank@pipe-G-query-busy-hang
+kms_vblank@pipe-G-query-forked-busy
+kms_vblank@pipe-G-query-forked-busy-hang
+kms_vblank@pipe-G-wait-idle
+kms_vblank@pipe-G-wait-idle-hang
+kms_vblank@pipe-G-wait-forked
+kms_vblank@pipe-G-wait-forked-hang
+kms_vblank@pipe-G-wait-busy
+kms_vblank@pipe-G-wait-busy-hang
+kms_vblank@pipe-G-wait-forked-busy
+kms_vblank@pipe-G-wait-forked-busy-hang
+kms_vblank@pipe-G-ts-continuation-idle
+kms_vblank@pipe-G-ts-continuation-idle-hang
+kms_vblank@pipe-G-ts-continuation-dpms-rpm
+kms_vblank@pipe-G-ts-continuation-dpms-suspend
+kms_vblank@pipe-G-ts-continuation-suspend
+kms_vblank@pipe-G-ts-continuation-modeset
+kms_vblank@pipe-G-ts-continuation-modeset-hang
+kms_vblank@pipe-G-ts-continuation-modeset-rpm
+kms_vblank@pipe-H-accuracy-idle
+kms_vblank@pipe-H-query-idle
+kms_vblank@pipe-H-query-idle-hang
+kms_vblank@pipe-H-query-forked
+kms_vblank@pipe-H-query-forked-hang
+kms_vblank@pipe-H-query-busy
+kms_vblank@pipe-H-query-busy-hang
+kms_vblank@pipe-H-query-forked-busy
+kms_vblank@pipe-H-query-forked-busy-hang
+kms_vblank@pipe-H-wait-idle
+kms_vblank@pipe-H-wait-idle-hang
+kms_vblank@pipe-H-wait-forked
+kms_vblank@pipe-H-wait-forked-hang
+kms_vblank@pipe-H-wait-busy
+kms_vblank@pipe-H-wait-busy-hang
+kms_vblank@pipe-H-wait-forked-busy
+kms_vblank@pipe-H-wait-forked-busy-hang
+kms_vblank@pipe-H-ts-continuation-idle
+kms_vblank@pipe-H-ts-continuation-idle-hang
+kms_vblank@pipe-H-ts-continuation-dpms-rpm
+kms_vblank@pipe-H-ts-continuation-dpms-suspend
+kms_vblank@pipe-H-ts-continuation-suspend
+kms_vblank@pipe-H-ts-continuation-modeset
+kms_vblank@pipe-H-ts-continuation-modeset-hang
+kms_vblank@pipe-H-ts-continuation-modeset-rpm
+kms_vrr@flip-basic
+kms_vrr@flip-dpms
+kms_vrr@flip-suspend
+kms_vrr@flipline
+kms_vrr@negative-basic
+kms_writeback@writeback-pixel-formats
+kms_writeback@writeback-invalid-parameters
+kms_writeback@writeback-fb-id
+kms_writeback@writeback-check-output
+prime_mmap_kms@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@linear-tiling-1-displays-2560x1440p,Fail
+kms_bw@linear-tiling-1-displays-3840x2160p,Fail
+kms_bw@linear-tiling-2-displays-3840x2160p,Fail
+kms_bw@linear-tiling-3-displays-1920x1080p,Fail
+kms_cursor_crc@pipe-A-cursor-size-change,Fail
+kms_cursor_crc@pipe-B-cursor-size-change,Fail
+kms_hdr@bpc-switch,Fail
+kms_hdr@bpc-switch-dpms,Fail
+kms_plane_multiple@atomic-pipe-A-tiling-none,Fail
+kms_rotation_crc@primary-rotation-180,Fail
+kms_async_flips@async-flip-with-page-flip-events,Fail
+kms_async_flips@crc,Fail
+kms_async_flips@invalid-async-flip,Fail
+kms_addfb_basic@bad-pitch-65536,Fail
+kms_addfb_basic@bo-too-small,Fail
+kms_atomic_transition@plane-toggle-modeset-transition,Fail
+kms_color@degamma,Fail
+kms_cursor_crc@cursor-size-change,Fail
+kms_cursor_legacy@forked-move,Fail
+kms_flip@flip-vs-blocking-wf-vblank,Fail
+kms_flip@plain-flip-fb-recreate,Fail
+kms_flip@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@too-high
+kms_atomic_transition@plane-all-modeset-transition-internal-panels
+kms_atomic_transition@plane-all-transition
+kms_atomic_transition@plane-use-after-nonblocking-unbind
+kms_bw@linear-tiling-1-displays-1920x1080p
+kms_bw@linear-tiling-2-displays-1920x1080p
+kms_bw@linear-tiling-2-displays-2560x1440p
+kms_bw@linear-tiling-3-displays-2560x1440p
+kms_bw@linear-tiling-3-displays-3840x2160p
+kms_cursor_crc@pipe-A-cursor-alpha-opaque
+kms_cursor_crc@pipe-B-cursor-alpha-opaque
+kms_plane_multiple@atomic-pipe-B-tiling-none
+kms_plane@pixel-format
+kms_plane_scaling@downscale-with-rotation-factor-0-5
+kms_universal_plane@disable-primary-vs-flip-pipe-A
+kms_async_flips@alternate-sync-async-flip
+kms_async_flips@test-cursor
+kms_async_flips@test-time-stamp
+kms_universal_plane@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@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_plane_alpha_blend@alpha-basic,Fail
+kms_plane_alpha_blend@alpha-opaque-fb,Fail
+kms_plane_alpha_blend@alpha-transparent-fb,Fail
+kms_plane_alpha_blend@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@linear-tiling-2-displays-1920x1080p
+kms_bw@linear-tiling-2-displays-2560x1440p
+kms_bw@linear-tiling-2-displays-3840x2160p
+kms_bw@linear-tiling-3-displays-1920x1080p
+kms_bw@linear-tiling-3-displays-2560x1440p
+kms_bw@linear-tiling-3-displays-3840x2160p
+kms_bw@linear-tiling-4-displays-1920x1080p
+kms_bw@linear-tiling-4-displays-2560x1440p
+kms_bw@linear-tiling-4-displays-3840x2160p
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
+kms_plane_alpha_blend@pipe-A-alpha-basic
+kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-A-constant-alpha-max
+kms_plane_alpha_blend@pipe-B-alpha-basic
+kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-B-constant-alpha-max
+kms_plane_alpha_blend@pipe-C-alpha-basic
+kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
+kms_plane_alpha_blend@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@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@linear-tiling-2-displays-1920x1080p,Fail
+kms_bw@linear-tiling-2-displays-2560x1440p,Fail
+kms_bw@linear-tiling-2-displays-3840x2160p,Fail
+kms_bw@linear-tiling-3-displays-1920x1080p,Fail
+kms_bw@linear-tiling-3-displays-2560x1440p,Fail
+kms_bw@linear-tiling-3-displays-3840x2160p,Fail
+kms_bw@linear-tiling-4-displays-1920x1080p,Fail
+kms_bw@linear-tiling-4-displays-2560x1440p,Fail
+kms_bw@linear-tiling-4-displays-3840x2160p,Fail
+kms_color@ctm-0-25,Fail
+kms_color@ctm-0-50,Fail
+kms_color@ctm-0-75,Fail
+kms_color@ctm-max,Fail
+kms_color@ctm-negative,Fail
+kms_color@ctm-red-to-blue,Fail
+kms_color@ctm-signed,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_plane@plane-position-hole,Timeout
+kms_plane_alpha_blend@alpha-basic,Fail
+kms_plane_alpha_blend@alpha-opaque-fb,Fail
+kms_plane_alpha_blend@alpha-transparent-fb,Fail
+kms_plane_alpha_blend@constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-A-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
+kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
+kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
+kms_plane_alpha_blend@pipe-C-constant-alpha-max,Fail
+kms_plane_multiple@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@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@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@ctm-0-25,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_plane_alpha_blend@alpha-basic,Fail
+kms_plane_alpha_blend@alpha-opaque-fb,Fail
+kms_plane_alpha_blend@alpha-transparent-fb,Fail
+kms_plane_alpha_blend@constant-alpha-max,Fail
+kms_plane_alpha_blend@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@linear-tiling-2-displays-1920x1080p
+kms_bw@linear-tiling-2-displays-2560x1440p
+kms_bw@linear-tiling-2-displays-3840x2160p
+kms_bw@linear-tiling-3-displays-1920x1080p
+kms_bw@linear-tiling-3-displays-2560x1440p
+kms_bw@linear-tiling-3-displays-3840x2160p
+kms_bw@linear-tiling-4-displays-1920x1080p
+kms_bw@linear-tiling-4-displays-2560x1440p
+kms_bw@linear-tiling-4-displays-3840x2160p
+kms_draw_crc@draw-method-xrgb8888-render-xtiled
+kms_flip@flip-vs-suspend
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
+kms_hdr@bpc-switch-suspend
+kms_plane_alpha_blend@pipe-A-alpha-basic
+kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-A-constant-alpha-max
+kms_plane_alpha_blend@pipe-B-alpha-basic
+kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-B-constant-alpha-max
+kms_plane_alpha_blend@pipe-C-alpha-basic
+kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-C-constant-alpha-max
+kms_psr2_su@page_flip-NV12
+kms_psr2_su@page_flip-P010
+kms_setmode@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@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@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_frontbuffer_tracking@fbcdrrs-tiling-linear,Fail
+kms_plane_alpha_blend@alpha-basic,Fail
+kms_plane_alpha_blend@alpha-opaque-fb,Fail
+kms_plane_alpha_blend@alpha-transparent-fb,Fail
+kms_plane_alpha_blend@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@linear-tiling-1-displays-3840x2160p
+kms_bw@linear-tiling-2-displays-1920x1080p
+kms_bw@linear-tiling-2-displays-2560x1440p
+kms_bw@linear-tiling-2-displays-3840x2160p
+kms_bw@linear-tiling-3-displays-1920x1080p
+kms_bw@linear-tiling-3-displays-2560x1440p
+kms_bw@linear-tiling-3-displays-3840x2160p
+kms_bw@linear-tiling-4-displays-1920x1080p
+kms_bw@linear-tiling-4-displays-2560x1440p
+kms_bw@linear-tiling-4-displays-3840x2160p
+kms_flip@blocking-wf_vblank
+kms_flip@wf_vblank-ts-check
+kms_flip@wf_vblank-ts-check-interruptible
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling
+kms_frontbuffer_tracking@fbc-tiling-linear
+kms_plane_alpha_blend@pipe-A-alpha-basic
+kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-A-constant-alpha-max
+kms_plane_alpha_blend@pipe-B-alpha-basic
+kms_plane_alpha_blend@pipe-B-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-B-constant-alpha-max
+kms_plane_alpha_blend@pipe-C-alpha-basic
+kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-C-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-C-constant-alpha-max
+kms_prop_blob@invalid-set-prop-any
+kms_rotation_crc@multiplane-rotation
+kms_rotation_crc@multiplane-rotation-cropping-bottom
+kms_rotation_crc@multiplane-rotation-cropping-top
+kms_setmode@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@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@linear-tiling-2-displays-2560x1440p,Fail
+kms_bw@linear-tiling-4-displays-2560x1440p,Fail
+kms_color@ctm-0-25,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_plane_alpha_blend@alpha-basic,Fail
+kms_plane_alpha_blend@alpha-opaque-fb,Fail
+kms_plane_alpha_blend@alpha-transparent-fb,Fail
+kms_plane_alpha_blend@constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@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@crc
+kms_bw@linear-tiling-2-displays-1920x1080p
+kms_bw@linear-tiling-2-displays-3840x2160p
+kms_bw@linear-tiling-3-displays-1920x1080p
+kms_bw@linear-tiling-3-displays-2560x1440p
+kms_bw@linear-tiling-3-displays-3840x2160p
+kms_bw@linear-tiling-4-displays-1920x1080p
+kms_bw@linear-tiling-4-displays-3840x2160p
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling
+kms_plane_alpha_blend@pipe-A-alpha-basic
+kms_plane_alpha_blend@pipe-A-alpha-opaque-fb
+kms_plane_alpha_blend@pipe-A-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-B-alpha-basic
+kms_plane_alpha_blend@pipe-B-alpha-transparent-fb
+kms_plane_alpha_blend@pipe-B-constant-alpha-max
+kms_plane_alpha_blend@pipe-C-alpha-basic
+kms_plane_alpha_blend@pipe-C-alpha-opaque-fb
+kms_plane_alpha_blend@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@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@linear-tiling-2-displays-3840x2160p,Fail
+kms_bw@linear-tiling-3-displays-1920x1080p,Fail
+kms_bw@linear-tiling-3-displays-2560x1440p,Fail
+kms_bw@linear-tiling-3-displays-3840x2160p,Fail
+kms_bw@linear-tiling-4-displays-1920x1080p,Fail
+kms_bw@linear-tiling-4-displays-2560x1440p,Fail
+kms_bw@linear-tiling-4-displays-3840x2160p,Fail
+kms_bw@linear-tiling-5-displays-1920x1080p,Fail
+kms_bw@linear-tiling-5-displays-2560x1440p,Fail
+kms_bw@linear-tiling-5-displays-3840x2160p,Fail
+kms_color@ctm-0-25,Fail
+kms_flip@flip-vs-panning-vs-hang,Timeout
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_rotation_crc@bad-pixel-format,Fail
+kms_rotation_crc@multiplane-rotation,Fail
+kms_rotation_crc@multiplane-rotation-cropping-bottom,Fail
+kms_rotation_crc@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@.*
+kms_flip@blocking-absolute-wf_vblank
+kms_flip@bo-too-big-interruptible
+kms_flip@busy-flip
+kms_flip@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@absolute-wf_vblank@a-edp1
+
+# This is generating kernel oops with divide error
+kms_plane_scaling@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@linear-tiling-2-displays-1920x1080p,Fail
+kms_bw@linear-tiling-2-displays-2560x1440p,Fail
+kms_bw@linear-tiling-2-displays-3840x2160p,Fail
+kms_bw@linear-tiling-3-displays-1920x1080p,Fail
+kms_bw@linear-tiling-3-displays-2560x1440p,Fail
+kms_bw@linear-tiling-3-displays-3840x2160p,Fail
+kms_bw@linear-tiling-4-displays-1920x1080p,Fail
+kms_bw@linear-tiling-4-displays-2560x1440p,Fail
+kms_bw@linear-tiling-4-displays-3840x2160p,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail
+kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
+kms_frontbuffer_tracking@fbc-tiling-linear,Fail
+kms_plane_alpha_blend@alpha-basic,Fail
+kms_plane_alpha_blend@alpha-opaque-fb,Fail
+kms_plane_alpha_blend@alpha-transparent-fb,Fail
+kms_plane_alpha_blend@constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-A-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@pipe-A-alpha-transparent-fb,Fail
+kms_plane_alpha_blend@pipe-A-constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@pipe-B-alpha-transparent-fb,Fail
+kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-C-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@pipe-C-alpha-transparent-fb,Fail
+kms_plane_alpha_blend@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@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@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@addfb25-bad-modifier,Fail
+kms_bw@linear-tiling-1-displays-1920x1080p,Fail
+kms_bw@linear-tiling-1-displays-2560x1440p,Fail
+kms_bw@linear-tiling-1-displays-3840x2160p,Fail
+kms_bw@linear-tiling-2-displays-1920x1080p,Fail
+kms_bw@linear-tiling-2-displays-2560x1440p,Fail
+kms_bw@linear-tiling-2-displays-3840x2160p,Fail
+kms_bw@linear-tiling-3-displays-1920x1080p,Fail
+kms_bw@linear-tiling-3-displays-2560x1440p,Fail
+kms_bw@linear-tiling-3-displays-3840x2160p,Fail
+kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
+kms_color@pipe-B-invalid-gamma-lut-sizes,Fail
+kms_force_connector_basic@force-connector-state,Fail
+kms_force_connector_basic@force-edid,Fail
+kms_force_connector_basic@force-load-detect,Fail
+kms_force_connector_basic@prune-stale-modes,Fail
+kms_invalid_mode@int-max-clock,Fail
+kms_plane_scaling@planes-upscale-20x20,Fail
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
+kms_plane_scaling@upscale-with-modifier-20x20,Fail
+kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
+kms_plane_scaling@upscale-with-rotation-20x20,Fail
+kms_properties@get_properties-sanity-atomic,Fail
+kms_properties@plane-properties-atomic,Fail
+kms_properties@plane-properties-legacy,Fail
+kms_rmfb@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@addfb25-bad-modifier,Fail
+kms_bw@linear-tiling-1-displays-2560x1440p,Fail
+kms_bw@linear-tiling-2-displays-1920x1080p,Fail
+kms_bw@linear-tiling-2-displays-2560x1440p,Fail
+kms_bw@linear-tiling-2-displays-3840x2160p,Fail
+kms_bw@linear-tiling-3-displays-2560x1440p,Fail
+kms_bw@linear-tiling-3-displays-3840x2160p,Fail
+kms_color@pipe-A-invalid-gamma-lut-sizes,Fail
+kms_plane_scaling@upscale-with-rotation-20x20,Fail
+kms_rmfb@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@linear-tiling-1-displays-1920x1080p
+kms_bw@linear-tiling-1-displays-3840x2160p
+kms_bw@linear-tiling-3-displays-1920x1080p
+kms_cursor_legacy@cursor-vs-flip-atomic
+kms_plane_scaling@invalid-num-scalers
+kms_plane_scaling@planes-upscale-20x20
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5
+kms_plane_scaling@upscale-with-modifier-20x20
+kms_plane_scaling@upscale-with-pixel-format-20x20
+kms_prop_blob@invalid-set-prop-any
+kms_properties@get_properties-sanity-atomic
+kms_properties@plane-properties-atomic
+kms_properties@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@connector-properties-atomic,Fail
+kms_properties@get_properties-sanity-atomic,Fail
+kms_properties@get_properties-sanity-non-atomic,Fail
+kms_properties@connector-properties-legacy,Fail
+kms_cursor_legacy@forked-bo,Fail
+kms_cursor_legacy@forked-move,Fail
+kms_cursor_legacy@single-bo,Fail
+kms_cursor_legacy@single-move,Fail
+kms_cursor_legacy@torture-bo,Fail
+kms_cursor_legacy@torture-move,Fail
+kms_hdmi_inject@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@force-connector-state
+kms_force_connector_basic@force-edid
+kms_force_connector_basic@force-load-detect
+kms_force_connector_basic@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@addfb25-bad-modifier,Fail
+kms_cursor_legacy@all-pipes-forked-bo,Fail
+kms_cursor_legacy@all-pipes-forked-move,Fail
+kms_cursor_legacy@all-pipes-single-bo,Fail
+kms_cursor_legacy@all-pipes-single-move,Fail
+kms_cursor_legacy@all-pipes-torture-bo,Fail
+kms_cursor_legacy@all-pipes-torture-move,Fail
+kms_cursor_legacy@pipe-A-forked-bo,Fail
+kms_cursor_legacy@pipe-A-forked-move,Fail
+kms_cursor_legacy@pipe-A-single-bo,Fail
+kms_cursor_legacy@pipe-A-single-move,Fail
+kms_cursor_legacy@pipe-A-torture-bo,Fail
+kms_cursor_legacy@pipe-A-torture-move,Fail
+kms_hdmi_inject@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@force-connector-state
+kms_force_connector_basic@force-edid
+kms_force_connector_basic@force-load-detect
+kms_force_connector_basic@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@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@force-connector-state
+kms_force_connector_basic@force-edid
+kms_force_connector_basic@force-load-detect
+kms_force_connector_basic@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@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@cursor-vs-flip-toggle,Fail
+kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
+kms_cursor_legacy@cursorA-vs-flipA-atomic-transitions,Crash
+kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
+kms_plane@pixel-format,Fail
+kms_plane@pixel-format-source-clamping,Fail
+kms_plane@plane-position-covered,Fail
+kms_plane@plane-position-hole,Fail
+kms_plane@plane-position-hole-dpms,Fail
+kms_plane_alpha_blend@alpha-7efc,Fail
+kms_plane_alpha_blend@coverage-7efc,Fail
+kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
+kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail
+kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail
+kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail
+kms_plane_alpha_blend@pipe-B-alpha-7efc,Fail
+kms_plane_alpha_blend@pipe-B-alpha-basic,Fail
+kms_plane_alpha_blend@pipe-B-alpha-opaque-fb,Fail
+kms_plane_alpha_blend@pipe-B-constant-alpha-max,Fail
+kms_plane_alpha_blend@pipe-B-constant-alpha-mid,Fail
+kms_plane_alpha_blend@pipe-B-coverage-7efc,Fail
+kms_plane_alpha_blend@pipe-B-coverage-vs-premult-vs-constant,Fail
+kms_rmfb@close-fd,Fail
+kms_universal_plane@disable-primary-vs-flip-pipe-b,Fail
+kms_universal_plane@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@.*
+kms_plane_multiple@atomic-pipe-A-tiling-none
+kms_atomic_transition@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@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@linear-tiling-.*-displays-3840x2160p
+
+# Until igt fix lands: https://patchwork.freedesktop.org/patch/493175/
+kms_bw@linear-tiling-2.*
+kms_bw@linear-tiling-3.*
+kms_bw@linear-tiling-4.*
+kms_bw@linear-tiling-5.*
+kms_bw@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@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@ctm-0-25,Fail
+kms_color@ctm-0-50,Fail
+kms_color@ctm-0-75,Fail
+kms_color@ctm-blue-to-red,Fail
+kms_color@ctm-green-to-red,Fail
+kms_color@ctm-negative,Fail
+kms_color@ctm-red-to-blue,Fail
+kms_color@ctm-signed,Fail
+kms_color@pipe-A-ctm-0-25,Fail
+kms_color@pipe-A-ctm-0-5,Fail
+kms_color@pipe-A-ctm-0-75,Fail
+kms_color@pipe-A-ctm-blue-to-red,Fail
+kms_color@pipe-A-ctm-green-to-red,Fail
+kms_color@pipe-A-ctm-max,Fail
+kms_color@pipe-A-ctm-negative,Fail
+kms_color@pipe-A-ctm-red-to-blue,Fail
+kms_color@pipe-A-legacy-gamma,Fail
+kms_cursor_legacy@basic-flip-after-cursor-atomic,Fail
+kms_cursor_legacy@basic-flip-after-cursor-legacy,Fail
+kms_cursor_legacy@basic-flip-after-cursor-varying-size,Fail
+kms_cursor_legacy@basic-flip-before-cursor-atomic,Fail
+kms_cursor_legacy@basic-flip-before-cursor-legacy,Fail
+kms_cursor_legacy@basic-flip-before-cursor-varying-size,Fail
+kms_cursor_legacy@cursor-vs-flip-atomic,Fail
+kms_cursor_legacy@cursor-vs-flip-atomic-transitions,Fail
+kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size,Fail
+kms_cursor_legacy@cursor-vs-flip-legacy,Fail
+kms_cursor_legacy@cursor-vs-flip-toggle,Fail
+kms_cursor_legacy@cursor-vs-flip-varying-size,Fail
+kms_cursor_legacy@cursorA-vs-flipA-toggle,Fail
+kms_cursor_legacy@flip-vs-cursor-atomic,Fail
+kms_cursor_legacy@flip-vs-cursor-crc-atomic,Fail
+kms_cursor_legacy@flip-vs-cursor-crc-legacy,Fail
+kms_cursor_legacy@flip-vs-cursor-legacy,Fail
+kms_cursor_legacy@short-flip-after-cursor-atomic-transitions,Fail
+kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size,Fail
+kms_cursor_legacy@short-flip-after-cursor-toggle,Fail
+kms_cursor_legacy@short-flip-before-cursor-atomic-transitions,Fail
+kms_cursor_legacy@short-flip-before-cursor-atomic-transitions-varying-size,Fail
+kms_pipe_crc_basic@compare-crc-sanitycheck-nv12,Fail
+kms_plane@pixel-format,Fail
+kms_plane@pixel-format-source-clamping,Fail
+kms_plane_alpha_blend@alpha-7efc,Fail
+kms_plane_alpha_blend@coverage-7efc,Fail
+kms_plane_alpha_blend@coverage-vs-premult-vs-constant,Fail
+kms_plane_alpha_blend@pipe-A-alpha-7efc,Fail
+kms_plane_alpha_blend@pipe-A-coverage-7efc,Fail
+kms_plane_alpha_blend@pipe-A-coverage-vs-premult-vs-constant,Fail
+kms_plane_cursor@overlay,Fail
+kms_plane_cursor@pipe-A-overlay-size-128,Fail
+kms_plane_cursor@pipe-A-overlay-size-256,Fail
+kms_plane_cursor@pipe-A-overlay-size-64,Fail
+kms_plane_cursor@pipe-A-viewport-size-128,Fail
+kms_plane_cursor@pipe-A-viewport-size-256,Fail
+kms_plane_cursor@pipe-A-viewport-size-64,Fail
+kms_plane_cursor@viewport,Fail
+kms_plane_scaling@downscale-with-pixel-format-factor-0-25,Timeout
+kms_plane_scaling@downscale-with-pixel-format-factor-0-5,Timeout
+kms_plane_scaling@downscale-with-pixel-format-factor-0-75,Timeout
+kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-25,Timeout
+kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5,Timeout
+kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-75,Timeout
+kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats,Timeout
+kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling,Timeout
+kms_plane_scaling@planes-downscale-factor-0-25,Fail
+kms_plane_scaling@scaler-with-clipping-clamping,Timeout
+kms_plane_scaling@scaler-with-pixel-format-unity-scaling,Timeout
+kms_rmfb@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@.*
+kms_cursor_legacy@flip-vs-cursor-toggle
+kms_cursor_legacy@pipe-A-forked-bo
+kms_cursor_legacy@pipe-A-forked-move
+kms_cursor_legacy@short-flip-before-cursor-toggle
+kms_flip@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@linear-tiling-2-displays-1920x1080p,Fail
+kms_bw@linear-tiling-2-displays-2560x1440p,Fail
+kms_bw@linear-tiling-2-displays-3840x2160p,Fail
+kms_bw@linear-tiling-3-displays-1920x1080p,Fail
+kms_bw@linear-tiling-3-displays-2560x1440p,Fail
+kms_bw@linear-tiling-3-displays-3840x2160p,Fail
+kms_flip@basic-flip-vs-wf_vblank,Crash
+kms_force_connector_basic@force-load-detect,Fail
+kms_invalid_mode@int-max-clock,Crash
+kms_plane@pixel-format,Crash
+kms_plane@pixel-format-source-clamping,Crash
+kms_plane@plane-position-hole,Crash
+kms_plane@plane-position-hole-dpms,Crash
+kms_plane_cursor@overlay,Crash
+kms_plane_cursor@pipe-A-overlay-size-128,Fail
+kms_plane_cursor@pipe-A-overlay-size-256,Fail
+kms_plane_cursor@pipe-A-overlay-size-64,Fail
+kms_plane_cursor@pipe-A-primary-size-128,Fail
+kms_plane_cursor@pipe-A-primary-size-256,Fail
+kms_plane_cursor@pipe-A-primary-size-64,Fail
+kms_plane_cursor@pipe-A-viewport-size-128,Fail
+kms_plane_cursor@pipe-A-viewport-size-256,Fail
+kms_plane_cursor@pipe-A-viewport-size-64,Fail
+kms_plane_cursor@pipe-B-overlay-size-128,Fail
+kms_plane_cursor@pipe-B-overlay-size-256,Fail
+kms_plane_cursor@pipe-B-overlay-size-64,Fail
+kms_plane_cursor@pipe-B-primary-size-128,Fail
+kms_plane_cursor@pipe-B-primary-size-256,Fail
+kms_plane_cursor@pipe-B-primary-size-64,Fail
+kms_plane_cursor@pipe-B-viewport-size-128,Fail
+kms_plane_cursor@pipe-B-viewport-size-256,Fail
+kms_plane_cursor@pipe-B-viewport-size-64,Fail
+kms_plane_cursor@primary,Crash
+kms_plane_cursor@viewport,Crash
+kms_plane_lowres@tiling-none,Fail
+kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
+kms_plane_scaling@upscale-with-modifier-20x20,Fail
+kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
+kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
+kms_plane_scaling@upscale-with-rotation-20x20,Fail
+kms_prime@basic-crc,Fail
+kms_properties@connector-properties-atomic,Crash
+kms_properties@connector-properties-legacy,Crash
+kms_properties@get_properties-sanity-atomic,Crash
+kms_properties@get_properties-sanity-non-atomic,Crash
+kms_setmode@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@addfb25-bad-modifier
+kms_cursor_crc@.*
+kms_invalid_mode@int-max-clock,Crash
+kms_pipe_crc_basic@.*
+kms_properties@connector-properties-atomic,Crash
+kms_properties@get_properties-sanity-atomic,Crash
+kms_properties@get_properties-sanity-non-atomic,Crash
+kms_rmfb@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@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@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@legacy-gamma,Fail
+kms_color@pipe-A-legacy-gamma,Fail
+kms_color@pipe-B-legacy-gamma,Fail
+kms_flip@basic-flip-vs-wf_vblank,Fail
+kms_flip@blocking-wf_vblank,Fail
+kms_flip@dpms-vs-vblank-race,Fail
+kms_flip@flip-vs-absolute-wf_vblank,Fail
+kms_flip@flip-vs-absolute-wf_vblank-interruptible,Fail
+kms_flip@flip-vs-blocking-wf-vblank,Fail
+kms_flip@flip-vs-panning,Fail
+kms_flip@flip-vs-panning-interruptible,Fail
+kms_flip@flip-vs-wf_vblank-interruptible,Fail
+kms_flip@modeset-vs-vblank-race,Fail
+kms_flip@modeset-vs-vblank-race-interruptible,Fail
+kms_flip@plain-flip-fb-recreate,Fail
+kms_flip@plain-flip-fb-recreate-interruptible,Fail
+kms_flip@plain-flip-ts-check,Fail
+kms_flip@plain-flip-ts-check-interruptible,Fail
+kms_flip@wf_vblank-ts-check,Fail
+kms_flip@wf_vblank-ts-check-interruptible,Fail
+kms_invalid_mode@int-max-clock,Fail
+kms_plane@pixel-format,Fail
+kms_plane@pixel-format-source-clamping,Fail
+kms_plane@plane-panning-bottom-right,Fail
+kms_plane@plane-panning-top-left,Fail
+kms_plane@plane-position-covered,Fail
+kms_plane_cursor@pipe-B-overlay-size-128,Fail
+kms_plane_cursor@pipe-B-overlay-size-256,Fail
+kms_plane_cursor@pipe-B-overlay-size-64,Fail
+kms_plane_cursor@pipe-B-primary-size-128,Fail
+kms_plane_cursor@pipe-B-primary-size-256,Fail
+kms_plane_cursor@pipe-B-primary-size-64,Fail
+kms_plane_cursor@pipe-B-viewport-size-128,Fail
+kms_plane_cursor@pipe-B-viewport-size-256,Fail
+kms_plane_cursor@pipe-B-viewport-size-64,Fail
+kms_plane_multiple@atomic-pipe-B-tiling-none,Fail
+kms_plane_multiple@tiling-none,Fail
+kms_prime@basic-crc,Fail
+kms_rmfb@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@.*
+kms_flip@flip-vs-expired-vblank
+kms_flip@modeset-vs-vblank-race-interruptible,Fail
+kms_pipe_crc_basic@.*
+kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-A
+kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-B
+kms_plane@plane-position-hole
+kms_plane_multiple@atomic-pipe-A-tiling-none
+kms_plane_multiple@atomic-pipe-B-tiling-none
+kms_sequence@get-forked
+kms_sequence@get-forked-busy
+kms_setmode@basic
+kms_universal_plane@universal-plane-pipe-B-functional,UnexpectedPass
+kms_vblank@pipe-A-accuracy-idle
+kms_vblank@pipe-A-query-busy
+kms_vblank@pipe-A-query-forked-busy
+kms_vblank@pipe-A-wait-idle
+kms_vblank@pipe-B-accuracy-idle
+kms_vblank@pipe-B-query-busy
+kms_vblank@pipe-B-query-forked-busy
+kms_vblank@pipe-B-wait-idle
+kms_flip@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@addfb25-bad-modifier,Fail
+kms_addfb_basic@bad-pitch-65536,Fail
+kms_addfb_basic@bo-too-small,Fail
+kms_addfb_basic@size-max,Fail
+kms_addfb_basic@too-high,Fail
+kms_atomic_transition@plane-primary-toggle-with-vblank-wait,Fail
+kms_bw@linear-tiling-1-displays-1920x1080p,Fail
+kms_bw@linear-tiling-1-displays-2560x1440p,Fail
+kms_bw@linear-tiling-1-displays-3840x2160p,Fail
+kms_bw@linear-tiling-2-displays-1920x1080p,Fail
+kms_bw@linear-tiling-2-displays-2560x1440p,Fail
+kms_bw@linear-tiling-2-displays-3840x2160p,Fail
+kms_invalid_mode@int-max-clock,Fail
+kms_plane_scaling@downscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling@downscale-with-rotation-factor-0-25,Fail
+kms_plane_scaling@planes-upscale-20x20,Fail
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25,Fail
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5,Fail
+kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75,Fail
+kms_plane_scaling@upscale-with-modifier-20x20,Fail
+kms_plane_scaling@upscale-with-modifier-factor-0-25,Fail
+kms_plane_scaling@upscale-with-pixel-format-20x20,Fail
+kms_plane_scaling@upscale-with-pixel-format-factor-0-25,Fail
+kms_plane_scaling@upscale-with-rotation-20x20,Fail
+kms_vblank@crtc-id,Fail
+kms_vblank@invalid,Fail
+kms_vblank@pipe-A-accuracy-idle,Fail
+kms_vblank@pipe-A-query-busy,Fail
+kms_vblank@pipe-A-query-forked,Fail
+kms_vblank@pipe-A-query-forked-busy,Fail
+kms_vblank@pipe-A-query-idle,Fail
+kms_vblank@pipe-A-ts-continuation-idle,Fail
+kms_vblank@pipe-A-ts-continuation-modeset,Fail
+kms_vblank@pipe-A-ts-continuation-suspend,Fail
+kms_vblank@pipe-A-wait-busy,Fail
+kms_vblank@pipe-A-wait-forked,Fail
+kms_vblank@pipe-A-wait-forked-busy,Fail
+kms_vblank@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@flip-vs-suspend.*
\ No newline at end of file
diff --git a/test b/test
new file mode 100644
index 000000000000..e69de29bb2d1