lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ad029e1c-8f00-9f5e-e25a-957b3f70c385@collabora.com>
Date:   Sat, 29 Jul 2023 12:08:42 +0300
From:   David Heidelberg <david.heidelberg@...labora.com>
To:     Maira Canal <mcanal@...lia.com>,
        Helen Koike <helen.koike@...labora.com>,
        dri-devel@...ts.freedesktop.org, jasuarez@...lia.com,
        eric@...lia.com
Cc:     emma@...olt.net, linux-doc@...r.kernel.org,
        linux-amlogic@...ts.infradead.org, jbrunet@...libre.com,
        robdclark@...gle.com, corbet@....net, khilman@...libre.com,
        sergi.blanch.torne@...labora.com, gustavo.padovan@...labora.com,
        linux-rockchip@...ts.infradead.org, daniels@...labora.com,
        martin.blumenstingl@...glemail.com, robclark@...edesktop.org,
        anholt@...gle.com, linux-mediatek@...ts.infradead.org,
        mripard@...nel.org, matthias.bgg@...il.com,
        linux-arm-kernel@...ts.infradead.org,
        angelogioacchino.delregno@...labora.com, neil.armstrong@...aro.org,
        guilherme.gallo@...labora.com, linux-kernel@...r.kernel.org,
        tzimmermann@...e.de
Subject: Re: [PATCH v10] drm: Add initial ci/ subdirectory

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@...labora.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@...labora.com>
>> Signed-off-by: Helen Koike <helen.koike@...labora.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@...labora.com>
>> +L:    dri-devel@...ts.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@...il.com>
>>   L:    linux-media@...r.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@...mple.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@...client-simple
>> +core_auth@...client-master-drop
>> +core_auth@...ic-auth
>> +core_auth@...y-magics
>> +core_getclient
>> +core_getstats
>> +core_getversion
>> +core_setmaster_vs_auth
>> +drm_read@...alid-buffer
>> +drm_read@...lt-buffer
>> +drm_read@...ty-block
>> +drm_read@...ty-nonblock
>> +drm_read@...rt-buffer-block
>> +drm_read@...rt-buffer-nonblock
>> +drm_read@...rt-buffer-wakeup
>> +gem_eio@...ottle
>> +gem_eio@...ate
>> +gem_eio@...ate-ext
>> +gem_eio@...text-create
>> +gem_eio@...cbuf
>> +gem_eio@...ned
>> +gem_eio@...pend
>> +gem_eio@...ernate
>> +gem_eio@...flight-external
>> +gem_eio@...flight-suspend
>> +gem_eio@...et-stress
>> +gem_eio@...edge-stress
>> +gem_eio@...t-immediate
>> +gem_eio@...t-wedge-immediate
>> +gem_eio@...flight-immediate
>> +gem_eio@...flight-contexts-immediate
>> +gem_eio@...flight-internal-immediate
>> +gem_eio@...t-1us
>> +gem_eio@...t-wedge-1us
>> +gem_eio@...flight-1us
>> +gem_eio@...flight-contexts-1us
>> +gem_eio@...flight-internal-1us
>> +gem_eio@...t-10ms
>> +gem_eio@...t-wedge-10ms
>> +gem_eio@...flight-10ms
>> +gem_eio@...flight-contexts-10ms
>> +gem_eio@...flight-internal-10ms
>> +gem_eio@kms
>> +kms_3d
>> +kms_addfb_basic@...sed-handle
>> +kms_addfb_basic@...sed-pitches
>> +kms_addfb_basic@...sed-offsets
>> +kms_addfb_basic@...sed-modifier
>> +kms_addfb_basic@...bberred-modifier
>> +kms_addfb_basic@...alid-smem-bo-on-discrete
>> +kms_addfb_basic@...acy-format
>> +kms_addfb_basic@...handle
>> +kms_addfb_basic@...ic
>> +kms_addfb_basic@...-pitch-0
>> +kms_addfb_basic@...-pitch-32
>> +kms_addfb_basic@...-pitch-63
>> +kms_addfb_basic@...-pitch-128
>> +kms_addfb_basic@...-pitch-256
>> +kms_addfb_basic@...-pitch-1024
>> +kms_addfb_basic@...-pitch-999
>> +kms_addfb_basic@...-pitch-65536
>> +kms_addfb_basic@...alid-get-prop-any
>> +kms_addfb_basic@...alid-get-prop
>> +kms_addfb_basic@...alid-set-prop-any
>> +kms_addfb_basic@...alid-set-prop
>> +kms_addfb_basic@...ter-rmfb
>> +kms_addfb_basic@...fb25-modifier-no-flag
>> +kms_addfb_basic@...fb25-bad-modifier
>> +kms_addfb_basic@...fb25-x-tiled-mismatch-legacy
>> +kms_addfb_basic@...fb25-x-tiled-legacy
>> +kms_addfb_basic@...fb25-framebuffer-vs-set-tiling
>> +kms_addfb_basic@...ic-x-tiled-legacy
>> +kms_addfb_basic@...mebuffer-vs-set-tiling
>> +kms_addfb_basic@...e-pitch-mismatch
>> +kms_addfb_basic@...ic-y-tiled-legacy
>> +kms_addfb_basic@...e-max
>> +kms_addfb_basic@...-wide
>> +kms_addfb_basic@...-high
>> +kms_addfb_basic@...too-small
>> +kms_addfb_basic@...ll-bo
>> +kms_addfb_basic@...too-small-due-to-tiling
>> +kms_addfb_basic@...fb25-y-tiled-legacy
>> +kms_addfb_basic@...fb25-yf-tiled-legacy
>> +kms_addfb_basic@...fb25-y-tiled-small-legacy
>> +kms_addfb_basic@...fb25-4-tiled
>> +kms_async_flips@...nc-flip-with-page-flip-events
>> +kms_async_flips@...ernate-sync-async-flip
>> +kms_async_flips@...t-time-stamp
>> +kms_async_flips@...t-cursor
>> +kms_async_flips@...alid-async-flip
>> +kms_async_flips@crc
>> +kms_atomic@...ne-overlay-legacy
>> +kms_atomic@...ne-primary-legacy
>> +kms_atomic@...ne-primary-overlay-mutable-zpos
>> +kms_atomic@...ne-immutable-zpos
>> +kms_atomic@...t-only
>> +kms_atomic@...ne-cursor-legacy
>> +kms_atomic@...ne-invalid-params
>> +kms_atomic@...ne-invalid-params-fence
>> +kms_atomic@...c-invalid-params
>> +kms_atomic@...c-invalid-params-fence
>> +kms_atomic@...mic-invalid-params
>> +kms_atomic@...mic_plane_damage
>> +kms_atomic_interruptible@...acy-setmode
>> +kms_atomic_interruptible@...mic-setmode
>> +kms_atomic_interruptible@...acy-dpms
>> +kms_atomic_interruptible@...acy-pageflip
>> +kms_atomic_interruptible@...acy-cursor
>> +kms_atomic_interruptible@...versal-setplane-primary
>> +kms_atomic_interruptible@...versal-setplane-cursor
>> +kms_atomic_transition@...ne-primary-toggle-with-vblank-wait
>> +kms_atomic_transition@...ne-all-transition
>> +kms_atomic_transition@...ne-all-transition-fencing
>> +kms_atomic_transition@...ne-all-transition-nonblocking
>> +kms_atomic_transition@...ne-all-transition-nonblocking-fencing
>> +kms_atomic_transition@...ne-use-after-nonblocking-unbind
>> +kms_atomic_transition@...ne-use-after-nonblocking-unbind-fencing
>> +kms_atomic_transition@...ne-all-modeset-transition
>> +kms_atomic_transition@...ne-all-modeset-transition-fencing
>> +kms_atomic_transition@...ne-all-modeset-transition-internal-panels
>> +kms_atomic_transition@...ne-all-modeset-transition-fencing-internal-panels 
>>
>> +kms_atomic_transition@...ne-toggle-modeset-transition
>> +kms_atomic_transition@...eset-transition
>> +kms_atomic_transition@...eset-transition-fencing
>> +kms_atomic_transition@...eset-transition-nonblocking
>> +kms_atomic_transition@...eset-transition-nonblocking-fencing
>> +kms_big_fb@...iled-addfb-size-overflow
>> +kms_big_fb@...iled-addfb-size-overflow
>> +kms_big_fb@...tiled-addfb-size-overflow
>> +kms_big_fb@...iled-addfb-size-overflow
>> +kms_big_fb@...iled-addfb-size-offset-overflow
>> +kms_big_fb@...iled-addfb-size-offset-overflow
>> +kms_big_fb@...tiled-addfb-size-offset-overflow
>> +kms_big_fb@...iled-addfb-size-offset-overflow
>> +kms_big_fb@...ear-addfb
>> +kms_big_fb@...iled-addfb
>> +kms_big_fb@...iled-addfb
>> +kms_big_fb@...tiled-addfb
>> +kms_big_fb@...iled-addfb
>> +kms_big_fb@...ear-8bpp-rotate-0
>> +kms_big_fb@...ear-8bpp-rotate-90
>> +kms_big_fb@...ear-8bpp-rotate-180
>> +kms_big_fb@...ear-8bpp-rotate-270
>> +kms_big_fb@...ear-16bpp-rotate-0
>> +kms_big_fb@...ear-16bpp-rotate-90
>> +kms_big_fb@...ear-16bpp-rotate-180
>> +kms_big_fb@...ear-16bpp-rotate-270
>> +kms_big_fb@...ear-32bpp-rotate-0
>> +kms_big_fb@...ear-32bpp-rotate-90
>> +kms_big_fb@...ear-32bpp-rotate-180
>> +kms_big_fb@...ear-32bpp-rotate-270
>> +kms_big_fb@...ear-64bpp-rotate-0
>> +kms_big_fb@...ear-64bpp-rotate-90
>> +kms_big_fb@...ear-64bpp-rotate-180
>> +kms_big_fb@...ear-64bpp-rotate-270
>> +kms_big_fb@...iled-8bpp-rotate-0
>> +kms_big_fb@...iled-8bpp-rotate-90
>> +kms_big_fb@...iled-8bpp-rotate-180
>> +kms_big_fb@...iled-8bpp-rotate-270
>> +kms_big_fb@...iled-16bpp-rotate-0
>> +kms_big_fb@...iled-16bpp-rotate-90
>> +kms_big_fb@...iled-16bpp-rotate-180
>> +kms_big_fb@...iled-16bpp-rotate-270
>> +kms_big_fb@...iled-32bpp-rotate-0
>> +kms_big_fb@...iled-32bpp-rotate-90
>> +kms_big_fb@...iled-32bpp-rotate-180
>> +kms_big_fb@...iled-32bpp-rotate-270
>> +kms_big_fb@...iled-64bpp-rotate-0
>> +kms_big_fb@...iled-64bpp-rotate-90
>> +kms_big_fb@...iled-64bpp-rotate-180
>> +kms_big_fb@...iled-64bpp-rotate-270
>> +kms_big_fb@...iled-8bpp-rotate-0
>> +kms_big_fb@...iled-8bpp-rotate-90
>> +kms_big_fb@...iled-8bpp-rotate-180
>> +kms_big_fb@...iled-8bpp-rotate-270
>> +kms_big_fb@...iled-16bpp-rotate-0
>> +kms_big_fb@...iled-16bpp-rotate-90
>> +kms_big_fb@...iled-16bpp-rotate-180
>> +kms_big_fb@...iled-16bpp-rotate-270
>> +kms_big_fb@...iled-32bpp-rotate-0
>> +kms_big_fb@...iled-32bpp-rotate-90
>> +kms_big_fb@...iled-32bpp-rotate-180
>> +kms_big_fb@...iled-32bpp-rotate-270
>> +kms_big_fb@...iled-64bpp-rotate-0
>> +kms_big_fb@...iled-64bpp-rotate-90
>> +kms_big_fb@...iled-64bpp-rotate-180
>> +kms_big_fb@...iled-64bpp-rotate-270
>> +kms_big_fb@...tiled-8bpp-rotate-0
>> +kms_big_fb@...tiled-8bpp-rotate-90
>> +kms_big_fb@...tiled-8bpp-rotate-180
>> +kms_big_fb@...tiled-8bpp-rotate-270
>> +kms_big_fb@...tiled-16bpp-rotate-0
>> +kms_big_fb@...tiled-16bpp-rotate-90
>> +kms_big_fb@...tiled-16bpp-rotate-180
>> +kms_big_fb@...tiled-16bpp-rotate-270
>> +kms_big_fb@...tiled-32bpp-rotate-0
>> +kms_big_fb@...tiled-32bpp-rotate-90
>> +kms_big_fb@...tiled-32bpp-rotate-180
>> +kms_big_fb@...tiled-32bpp-rotate-270
>> +kms_big_fb@...tiled-64bpp-rotate-0
>> +kms_big_fb@...tiled-64bpp-rotate-90
>> +kms_big_fb@...tiled-64bpp-rotate-180
>> +kms_big_fb@...tiled-64bpp-rotate-270
>> +kms_big_fb@...iled-8bpp-rotate-0
>> +kms_big_fb@...iled-8bpp-rotate-90
>> +kms_big_fb@...iled-8bpp-rotate-180
>> +kms_big_fb@...iled-8bpp-rotate-270
>> +kms_big_fb@...iled-16bpp-rotate-0
>> +kms_big_fb@...iled-16bpp-rotate-90
>> +kms_big_fb@...iled-16bpp-rotate-180
>> +kms_big_fb@...iled-16bpp-rotate-270
>> +kms_big_fb@...iled-32bpp-rotate-0
>> +kms_big_fb@...iled-32bpp-rotate-90
>> +kms_big_fb@...iled-32bpp-rotate-180
>> +kms_big_fb@...iled-32bpp-rotate-270
>> +kms_big_fb@...iled-64bpp-rotate-0
>> +kms_big_fb@...iled-64bpp-rotate-90
>> +kms_big_fb@...iled-64bpp-rotate-180
>> +kms_big_fb@...iled-64bpp-rotate-270
>> +kms_big_fb@...ear-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@...ear-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@...ear-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@...ear-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@...tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@...tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-hflip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-hflip
>> +kms_big_fb@...iled-max-hw-stride-32bpp-rotate-180-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-hflip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-0-hflip-async-flip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-hflip
>> +kms_big_fb@...iled-max-hw-stride-64bpp-rotate-180-hflip-async-flip
>> +kms_big_joiner@...ic
>> +kms_big_joiner@...alid-modeset
>> +kms_big_joiner@...modeset
>> +kms_busy@...ic
>> +kms_busy@...ic-hang
>> +kms_busy@...ended-pageflip-modeset-hang-oldfb
>> +kms_busy@...ended-pageflip-hang-oldfb
>> +kms_busy@...ended-pageflip-hang-newfb
>> +kms_busy@...ended-modeset-hang-oldfb
>> +kms_busy@...ended-modeset-hang-newfb
>> +kms_busy@...ended-modeset-hang-oldfb-with-reset
>> +kms_busy@...ended-modeset-hang-newfb-with-reset
>> +kms_bw@...ear-tiling-1-displays-1920x1080p
>> +kms_bw@...ear-tiling-1-displays-2560x1440p
>> +kms_bw@...ear-tiling-1-displays-3840x2160p
>> +kms_bw@...ear-tiling-2-displays-1920x1080p
>> +kms_bw@...ear-tiling-2-displays-2560x1440p
>> +kms_bw@...ear-tiling-2-displays-3840x2160p
>> +kms_bw@...ear-tiling-3-displays-1920x1080p
>> +kms_bw@...ear-tiling-3-displays-2560x1440p
>> +kms_bw@...ear-tiling-3-displays-3840x2160p
>> +kms_bw@...ear-tiling-4-displays-1920x1080p
>> +kms_bw@...ear-tiling-4-displays-2560x1440p
>> +kms_bw@...ear-tiling-4-displays-3840x2160p
>> +kms_bw@...ear-tiling-5-displays-1920x1080p
>> +kms_bw@...ear-tiling-5-displays-2560x1440p
>> +kms_bw@...ear-tiling-5-displays-3840x2160p
>> +kms_bw@...ear-tiling-6-displays-1920x1080p
>> +kms_bw@...ear-tiling-6-displays-2560x1440p
>> +kms_bw@...ear-tiling-6-displays-3840x2160p
>> +kms_bw@...ear-tiling-7-displays-1920x1080p
>> +kms_bw@...ear-tiling-7-displays-2560x1440p
>> +kms_bw@...ear-tiling-7-displays-3840x2160p
>> +kms_bw@...ear-tiling-8-displays-1920x1080p
>> +kms_bw@...ear-tiling-8-displays-2560x1440p
>> +kms_bw@...ear-tiling-8-displays-3840x2160p
>> +kms_ccs@...e-A-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-A-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-A-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-A-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-A-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-A-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-A-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-A-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-A-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-A-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-A-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-A-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-A-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-A-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-A-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-A-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-A-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-A-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-A-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-A-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-A-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-A-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-A-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-A-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-A-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-A-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-A-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-A-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-B-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-B-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-B-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-B-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-B-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-B-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-B-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-B-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-B-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-B-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-B-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-B-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-B-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-B-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-B-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-B-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-B-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-B-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-B-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-B-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-B-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-B-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-B-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-B-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-B-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-B-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-B-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-C-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-C-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-C-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-C-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-C-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-C-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-C-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-C-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-C-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-C-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-C-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-C-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-C-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-C-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-C-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-C-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-C-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-C-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-C-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-C-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-C-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-C-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-C-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-C-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-C-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-C-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-C-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-D-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-D-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-D-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-D-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-D-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-D-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-D-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-D-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-D-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-D-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-D-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-D-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-D-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-D-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-D-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-D-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-D-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-D-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-D-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-D-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-D-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-D-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-D-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-D-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-D-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-D-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-D-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-E-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-E-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-E-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-E-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-E-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-E-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-E-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-E-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-E-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-E-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-E-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-E-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-E-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-E-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-E-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-E-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-E-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-E-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-E-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-E-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-E-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-E-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-E-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-E-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-E-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-E-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-E-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-F-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-F-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-F-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-F-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-F-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-F-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-F-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-F-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-F-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-F-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-F-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-F-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-F-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-F-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-F-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-F-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-F-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-F-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-F-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-F-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-F-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-F-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-F-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-F-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-F-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-F-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-F-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-G-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-G-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-G-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-G-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-G-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-G-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-G-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-G-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-G-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-G-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-G-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-G-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-G-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-G-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-G-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-G-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-G-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-G-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-G-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-G-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-G-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-G-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-G-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-G-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-G-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-G-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-G-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-bad-pixel-format-y_tiled_ccs
>> +kms_ccs@...e-H-bad-pixel-format-yf_tiled_ccs
>> +kms_ccs@...e-H-bad-pixel-format-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-bad-pixel-format-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-bad-pixel-format-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-bad-pixel-format-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-H-bad-pixel-format-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-H-bad-pixel-format-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-H-bad-pixel-format-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-bad-pixel-format-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-bad-pixel-format-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-bad-rotation-90-y_tiled_ccs
>> +kms_ccs@...e-H-bad-rotation-90-yf_tiled_ccs
>> +kms_ccs@...e-H-bad-rotation-90-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-bad-rotation-90-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-bad-rotation-90-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-bad-rotation-90-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-H-bad-rotation-90-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-H-bad-rotation-90-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-H-bad-rotation-90-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-bad-rotation-90-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-bad-rotation-90-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-crc-primary-basic-y_tiled_ccs
>> +kms_ccs@...e-H-crc-primary-basic-yf_tiled_ccs
>> +kms_ccs@...e-H-crc-primary-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-crc-primary-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-crc-primary-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-crc-primary-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-H-crc-primary-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-H-crc-primary-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-H-crc-primary-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-crc-primary-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-crc-primary-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-crc-primary-rotation-180-y_tiled_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-yf_tiled_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-crc-primary-rotation-180-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-crc-primary-rotation-180-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-random-ccs-data-y_tiled_ccs
>> +kms_ccs@...e-H-random-ccs-data-yf_tiled_ccs
>> +kms_ccs@...e-H-random-ccs-data-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-random-ccs-data-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-random-ccs-data-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-random-ccs-data-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-H-random-ccs-data-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-H-random-ccs-data-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-H-random-ccs-data-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-random-ccs-data-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-random-ccs-data-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-missing-ccs-buffer-y_tiled_ccs
>> +kms_ccs@...e-H-missing-ccs-buffer-yf_tiled_ccs
>> +kms_ccs@...e-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-missing-ccs-buffer-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-missing-ccs-buffer-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-ccs-on-another-bo-y_tiled_ccs
>> +kms_ccs@...e-H-ccs-on-another-bo-yf_tiled_ccs
>> +kms_ccs@...e-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-ccs-on-another-bo-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-ccs-on-another-bo-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-ccs-on-another-bo-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-bad-aux-stride-y_tiled_ccs
>> +kms_ccs@...e-H-bad-aux-stride-yf_tiled_ccs
>> +kms_ccs@...e-H-bad-aux-stride-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-bad-aux-stride-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-bad-aux-stride-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-bad-aux-stride-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-bad-aux-stride-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-bad-aux-stride-4_tiled_mtl_rc_ccs_cc
>> +kms_ccs@...e-H-crc-sprite-planes-basic-y_tiled_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-yf_tiled_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc
>> +kms_ccs@...e-H-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc
>> +kms_ccs@...e-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-4_tiled_mtl_mc_ccs
>> +kms_ccs@...e-H-crc-sprite-planes-basic-4_tiled_mtl_rc_ccs_cc
>> +kms_cdclk@...ne-scaling
>> +kms_cdclk@...e-transition
>> +kms_cdclk@...e-transition-all-outputs
>> +kms_color@...amma
>> +kms_color@...ma
>> +kms_color@...acy-gamma
>> +kms_color@...acy-gamma-reset
>> +kms_color@...-red-to-blue
>> +kms_color@...-green-to-red
>> +kms_color@...-blue-to-red
>> +kms_color@...-max
>> +kms_color@...-negative
>> +kms_color@...-0-25
>> +kms_color@...-0-50
>> +kms_color@...-0-75
>> +kms_color@...-signed
>> +kms_color@...p-color
>> +kms_color@...alid-gamma-lut-sizes
>> +kms_color@...alid-degamma-lut-sizes
>> +kms_color@...alid-ctm-matrix-sizes
>> +kms_concurrent@...e-A
>> +kms_concurrent@...e-B
>> +kms_concurrent@...e-C
>> +kms_concurrent@...e-D
>> +kms_concurrent@...e-E
>> +kms_concurrent@...e-F
>> +kms_concurrent@...e-G
>> +kms_concurrent@...e-H
>> +kms_content_protection@...acy
>> +kms_content_protection@...mic
>> +kms_content_protection@...mic-dpms
>> +kms_content_protection@LIC
>> +kms_content_protection@...e1
>> +kms_content_protection@..._interface
>> +kms_content_protection@...tent_type_change
>> +kms_content_protection@...ent
>> +kms_content_protection@srm
>> +kms_content_protection@...mst-type-0
>> +kms_content_protection@...mst-lic-type-0
>> +kms_content_protection@...mst-type-1
>> +kms_content_protection@...mst-lic-type-1
>> +kms_cursor_crc@...sor-size-change
>> +kms_cursor_crc@...sor-alpha-opaque
>> +kms_cursor_crc@...sor-alpha-transparent
>> +kms_cursor_crc@...sor-dpms
>> +kms_cursor_crc@...sor-suspend
>> +kms_cursor_crc@...sor-onscreen-32x32
>> +kms_cursor_crc@...sor-offscreen-32x32
>> +kms_cursor_crc@...sor-sliding-32x32
>> +kms_cursor_crc@...sor-random-32x32
>> +kms_cursor_crc@...sor-rapid-movement-32x32
>> +kms_cursor_crc@...sor-onscreen-32x10
>> +kms_cursor_crc@...sor-offscreen-32x10
>> +kms_cursor_crc@...sor-sliding-32x10
>> +kms_cursor_crc@...sor-random-32x10
>> +kms_cursor_crc@...sor-rapid-movement-32x10
>> +kms_cursor_crc@...sor-onscreen-64x64
>> +kms_cursor_crc@...sor-offscreen-64x64
>> +kms_cursor_crc@...sor-sliding-64x64
>> +kms_cursor_crc@...sor-random-64x64
>> +kms_cursor_crc@...sor-rapid-movement-64x64
>> +kms_cursor_crc@...sor-onscreen-64x21
>> +kms_cursor_crc@...sor-offscreen-64x21
>> +kms_cursor_crc@...sor-sliding-64x21
>> +kms_cursor_crc@...sor-random-64x21
>> +kms_cursor_crc@...sor-rapid-movement-64x21
>> +kms_cursor_crc@...sor-onscreen-128x128
>> +kms_cursor_crc@...sor-offscreen-128x128
>> +kms_cursor_crc@...sor-sliding-128x128
>> +kms_cursor_crc@...sor-random-128x128
>> +kms_cursor_crc@...sor-rapid-movement-128x128
>> +kms_cursor_crc@...sor-onscreen-128x42
>> +kms_cursor_crc@...sor-offscreen-128x42
>> +kms_cursor_crc@...sor-sliding-128x42
>> +kms_cursor_crc@...sor-random-128x42
>> +kms_cursor_crc@...sor-rapid-movement-128x42
>> +kms_cursor_crc@...sor-onscreen-256x256
>> +kms_cursor_crc@...sor-offscreen-256x256
>> +kms_cursor_crc@...sor-sliding-256x256
>> +kms_cursor_crc@...sor-random-256x256
>> +kms_cursor_crc@...sor-rapid-movement-256x256
>> +kms_cursor_crc@...sor-onscreen-256x85
>> +kms_cursor_crc@...sor-offscreen-256x85
>> +kms_cursor_crc@...sor-sliding-256x85
>> +kms_cursor_crc@...sor-random-256x85
>> +kms_cursor_crc@...sor-rapid-movement-256x85
>> +kms_cursor_crc@...sor-onscreen-512x512
>> +kms_cursor_crc@...sor-offscreen-512x512
>> +kms_cursor_crc@...sor-sliding-512x512
>> +kms_cursor_crc@...sor-random-512x512
>> +kms_cursor_crc@...sor-rapid-movement-512x512
>> +kms_cursor_crc@...sor-onscreen-512x170
>> +kms_cursor_crc@...sor-offscreen-512x170
>> +kms_cursor_crc@...sor-sliding-512x170
>> +kms_cursor_crc@...sor-random-512x170
>> +kms_cursor_crc@...sor-rapid-movement-512x170
>> +kms_cursor_crc@...sor-onscreen-max-size
>> +kms_cursor_crc@...sor-offscreen-max-size
>> +kms_cursor_crc@...sor-sliding-max-size
>> +kms_cursor_crc@...sor-random-max-size
>> +kms_cursor_crc@...sor-rapid-movement-max-size
>> +kms_cursor_legacy@...gle-bo
>> +kms_cursor_legacy@...gle-move
>> +kms_cursor_legacy@...ked-bo
>> +kms_cursor_legacy@...ked-move
>> +kms_cursor_legacy@...ture-bo
>> +kms_cursor_legacy@...ture-move
>> +kms_cursor_legacy@...blocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@...g-nonblocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@...flip-vs-cursor-legacy
>> +kms_cursor_legacy@...flip-vs-cursor-atomic
>> +kms_cursor_legacy@...long-flip-vs-cursor-legacy
>> +kms_cursor_legacy@...long-flip-vs-cursor-atomic
>> +kms_cursor_legacy@...nonblocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@...long-nonblocking-modeset-vs-cursor-atomic
>> +kms_cursor_legacy@...cursor-vs-flip-legacy
>> +kms_cursor_legacy@...long-cursor-vs-flip-legacy
>> +kms_cursor_legacy@...cursor-vs-flip-atomic
>> +kms_cursor_legacy@...long-cursor-vs-flip-atomic
>> +kms_cursor_legacy@...p-vs-cursor-crc-legacy
>> +kms_cursor_legacy@...p-vs-cursor-crc-atomic
>> +kms_cursor_legacy@...p-vs-cursor-busy-crc-legacy
>> +kms_cursor_legacy@...p-vs-cursor-busy-crc-atomic
>> +kms_cursor_legacy@...ic-flip-before-cursor-legacy
>> +kms_cursor_legacy@...ic-busy-flip-before-cursor-legacy
>> +kms_cursor_legacy@...ic-flip-after-cursor-legacy
>> +kms_cursor_legacy@...ic-flip-before-cursor-varying-size
>> +kms_cursor_legacy@...ic-busy-flip-before-cursor-varying-size
>> +kms_cursor_legacy@...ic-flip-after-cursor-varying-size
>> +kms_cursor_legacy@...rt-flip-before-cursor-toggle
>> +kms_cursor_legacy@...rt-busy-flip-before-cursor-toggle
>> +kms_cursor_legacy@...rt-flip-after-cursor-toggle
>> +kms_cursor_legacy@...ic-flip-before-cursor-atomic
>> +kms_cursor_legacy@...ic-busy-flip-before-cursor-atomic
>> +kms_cursor_legacy@...ic-flip-after-cursor-atomic
>> +kms_cursor_legacy@...rt-flip-before-cursor-atomic-transitions
>> +kms_cursor_legacy@...rt-busy-flip-before-cursor-atomic-transitions
>> +kms_cursor_legacy@...rt-flip-after-cursor-atomic-transitions
>> +kms_cursor_legacy@...rt-flip-before-cursor-atomic-transitions-varying-size 
>>
>> +kms_cursor_legacy@...rt-busy-flip-before-cursor-atomic-transitions-varying-size 
>>
>> +kms_cursor_legacy@...rt-flip-after-cursor-atomic-transitions-varying-size 
>>
>> +kms_cursor_legacy@...sor-vs-flip-legacy
>> +kms_cursor_legacy@...p-vs-cursor-legacy
>> +kms_cursor_legacy@...sorA-vs-flipA-legacy
>> +kms_cursor_legacy@...sorA-vs-flipB-legacy
>> +kms_cursor_legacy@...sorB-vs-flipA-legacy
>> +kms_cursor_legacy@...sorB-vs-flipB-legacy
>> +kms_cursor_legacy@...sor-vs-flip-varying-size
>> +kms_cursor_legacy@...p-vs-cursor-varying-size
>> +kms_cursor_legacy@...sorA-vs-flipA-varying-size
>> +kms_cursor_legacy@...sorA-vs-flipB-varying-size
>> +kms_cursor_legacy@...sorB-vs-flipA-varying-size
>> +kms_cursor_legacy@...sorB-vs-flipB-varying-size
>> +kms_cursor_legacy@...sor-vs-flip-toggle
>> +kms_cursor_legacy@...p-vs-cursor-toggle
>> +kms_cursor_legacy@...sorA-vs-flipA-toggle
>> +kms_cursor_legacy@...sorA-vs-flipB-toggle
>> +kms_cursor_legacy@...sorB-vs-flipA-toggle
>> +kms_cursor_legacy@...sorB-vs-flipB-toggle
>> +kms_cursor_legacy@...sor-vs-flip-atomic
>> +kms_cursor_legacy@...p-vs-cursor-atomic
>> +kms_cursor_legacy@...sorA-vs-flipA-atomic
>> +kms_cursor_legacy@...sorA-vs-flipB-atomic
>> +kms_cursor_legacy@...sorB-vs-flipA-atomic
>> +kms_cursor_legacy@...sorB-vs-flipB-atomic
>> +kms_cursor_legacy@...sor-vs-flip-atomic-transitions
>> +kms_cursor_legacy@...p-vs-cursor-atomic-transitions
>> +kms_cursor_legacy@...sorA-vs-flipA-atomic-transitions
>> +kms_cursor_legacy@...sorA-vs-flipB-atomic-transitions
>> +kms_cursor_legacy@...sorB-vs-flipA-atomic-transitions
>> +kms_cursor_legacy@...sorB-vs-flipB-atomic-transitions
>> +kms_cursor_legacy@...sor-vs-flip-atomic-transitions-varying-size
>> +kms_cursor_legacy@...p-vs-cursor-atomic-transitions-varying-size
>> +kms_cursor_legacy@...sorA-vs-flipA-atomic-transitions-varying-size
>> +kms_cursor_legacy@...sorA-vs-flipB-atomic-transitions-varying-size
>> +kms_cursor_legacy@...sorB-vs-flipA-atomic-transitions-varying-size
>> +kms_cursor_legacy@...sorB-vs-flipB-atomic-transitions-varying-size
>> +kms_dither@...8BPC-Vs-Panel-6BPC
>> +kms_dither@...8BPC-Vs-Panel-8BPC
>> +kms_dp_aux_dev
>> +kms_tiled_display@...ic-test-pattern
>> +kms_tiled_display@...ic-test-pattern-with-chamelium
>> +kms_draw_crc@...w-method-mmap-cpu
>> +kms_draw_crc@...w-method-mmap-gtt
>> +kms_draw_crc@...w-method-mmap-wc
>> +kms_draw_crc@...w-method-pwrite
>> +kms_draw_crc@...w-method-blt
>> +kms_draw_crc@...w-method-render
>> +kms_draw_crc@...l-fb
>> +kms_dsc@...-basic
>> +kms_dsc@...-with-formats
>> +kms_dsc@...-with-bpc
>> +kms_dsc@...-with-bpc-formats
>> +kms_dsc@...-with-output-formats
>> +kms_fbcon_fbt@fbc
>> +kms_fbcon_fbt@psr
>> +kms_fbcon_fbt@...-suspend
>> +kms_fbcon_fbt@...-suspend
>> +kms_fence_pin_leak
>> +kms_flip@...blocking-read
>> +kms_flip@...vblank-ts-check
>> +kms_flip@...wf_vblank-ts-check
>> +kms_flip@...cking-wf_vblank
>> +kms_flip@...blocking-wf_vblank
>> +kms_flip@...olute-wf_vblank
>> +kms_flip@...absolute-wf_vblank
>> +kms_flip@...cking-absolute-wf_vblank
>> +kms_flip@...blocking-absolute-wf_vblank
>> +kms_flip@...ic-plain-flip
>> +kms_flip@...plain-flip
>> +kms_flip@...y-flip
>> +kms_flip@...busy-flip
>> +kms_flip@...p-vs-fences
>> +kms_flip@...flip-vs-fences
>> +kms_flip@...in-flip-ts-check
>> +kms_flip@...plain-flip-ts-check
>> +kms_flip@...in-flip-fb-recreate
>> +kms_flip@...plain-flip-fb-recreate
>> +kms_flip@...p-vs-rmfb
>> +kms_flip@...flip-vs-rmfb
>> +kms_flip@...ic-flip-vs-dpms
>> +kms_flip@...flip-vs-dpms
>> +kms_flip@...p-vs-panning
>> +kms_flip@...flip-vs-panning
>> +kms_flip@...ic-flip-vs-modeset
>> +kms_flip@...flip-vs-modeset
>> +kms_flip@...p-vs-expired-vblank
>> +kms_flip@...flip-vs-expired-vblank
>> +kms_flip@...p-vs-absolute-wf_vblank
>> +kms_flip@...flip-vs-absolute-wf_vblank
>> +kms_flip@...ic-flip-vs-wf_vblank
>> +kms_flip@...flip-vs-wf_vblank
>> +kms_flip@...p-vs-blocking-wf-vblank
>> +kms_flip@...flip-vs-blocking-wf-vblank
>> +kms_flip@...p-vs-modeset-vs-hang
>> +kms_flip@...flip-vs-modeset-vs-hang
>> +kms_flip@...p-vs-panning-vs-hang
>> +kms_flip@...flip-vs-panning-vs-hang
>> +kms_flip@...p-vs-dpms-off-vs-modeset
>> +kms_flip@...flip-vs-dpms-off-vs-modeset
>> +kms_flip@...gle-buffer-flip-vs-dpms-off-vs-modeset
>> +kms_flip@...single-buffer-flip-vs-dpms-off-vs-modeset
>> +kms_flip@...s-off-confusion
>> +kms_flip@...existing-fb
>> +kms_flip@...nonexisting-fb
>> +kms_flip@...s-vs-vblank-race
>> +kms_flip@...dpms-vs-vblank-race
>> +kms_flip@...eset-vs-vblank-race
>> +kms_flip@...modeset-vs-vblank-race
>> +kms_flip@...too-big
>> +kms_flip@...p-vs-suspend
>> +kms_flip@...flip-vs-suspend
>> +kms_flip@...vblank-ts-check-interruptible
>> +kms_flip@...wf_vblank-ts-check-interruptible
>> +kms_flip@...olute-wf_vblank-interruptible
>> +kms_flip@...absolute-wf_vblank-interruptible
>> +kms_flip@...cking-absolute-wf_vblank-interruptible
>> +kms_flip@...blocking-absolute-wf_vblank-interruptible
>> +kms_flip@...in-flip-interruptible
>> +kms_flip@...plain-flip-interruptible
>> +kms_flip@...p-vs-fences-interruptible
>> +kms_flip@...flip-vs-fences-interruptible
>> +kms_flip@...in-flip-ts-check-interruptible
>> +kms_flip@...plain-flip-ts-check-interruptible
>> +kms_flip@...in-flip-fb-recreate-interruptible
>> +kms_flip@...plain-flip-fb-recreate-interruptible
>> +kms_flip@...p-vs-rmfb-interruptible
>> +kms_flip@...flip-vs-rmfb-interruptible
>> +kms_flip@...p-vs-panning-interruptible
>> +kms_flip@...flip-vs-panning-interruptible
>> +kms_flip@...p-vs-expired-vblank-interruptible
>> +kms_flip@...flip-vs-expired-vblank-interruptible
>> +kms_flip@...p-vs-absolute-wf_vblank-interruptible
>> +kms_flip@...flip-vs-absolute-wf_vblank-interruptible
>> +kms_flip@...p-vs-wf_vblank-interruptible
>> +kms_flip@...flip-vs-wf_vblank-interruptible
>> +kms_flip@...p-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@...flip-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@...gle-buffer-flip-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@...single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
>> +kms_flip@...s-off-confusion-interruptible
>> +kms_flip@...existing-fb-interruptible
>> +kms_flip@...nonexisting-fb-interruptible
>> +kms_flip@...s-vs-vblank-race-interruptible
>> +kms_flip@...dpms-vs-vblank-race-interruptible
>> +kms_flip@...eset-vs-vblank-race-interruptible
>> +kms_flip@...modeset-vs-vblank-race-interruptible
>> +kms_flip@...too-big-interruptible
>> +kms_flip@...p-vs-suspend-interruptible
>> +kms_flip@...flip-vs-suspend-interruptible
>> +kms_flip_event_leak@...ic
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-yftile-to-64bpp-yftile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-4tile-to-64bpp-4tile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-yftile-to-32bpp-yftile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-4tile-to-32bpp-4tile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-yftile-to-16bpp-yftile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-4tile-to-16bpp-4tile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-yftileccs-to-64bpp-yftile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling 
>>
>> +kms_flip_scaled_crc@...p-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-32bpp-ytileccs-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-yftile-to-32bpp-yftileccs-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-yftile-to-64bpp-yftile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-4tile-to-64bpp-4tile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-yftile-to-32bpp-yftile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-4tile-to-32bpp-4tile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-yftile-to-16bpp-yftile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-4tile-to-16bpp-4tile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-yftileccs-to-64bpp-yftile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-32bpp-ytileccs-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-yftile-to-32bpp-yftileccs-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling
>> +kms_force_connector_basic@...ce-load-detect
>> +kms_force_connector_basic@...ce-connector-state
>> +kms_force_connector_basic@...ce-edid
>> +kms_force_connector_basic@...ne-stale-modes
>> +kms_frontbuffer_tracking@...-1p-rte
>> +kms_frontbuffer_tracking@...-2p-rte
>> +kms_frontbuffer_tracking@...-1p-rte
>> +kms_frontbuffer_tracking@...-2p-rte
>> +kms_frontbuffer_tracking@...psr-1p-rte
>> +kms_frontbuffer_tracking@...psr-2p-rte
>> +kms_frontbuffer_tracking@...s-1p-rte
>> +kms_frontbuffer_tracking@...s-2p-rte
>> +kms_frontbuffer_tracking@...drrs-1p-rte
>> +kms_frontbuffer_tracking@...drrs-2p-rte
>> +kms_frontbuffer_tracking@...drrs-1p-rte
>> +kms_frontbuffer_tracking@...drrs-2p-rte
>> +kms_frontbuffer_tracking@...psrdrrs-1p-rte
>> +kms_frontbuffer_tracking@...psrdrrs-2p-rte
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...-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@...s-1p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...s-1p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-1p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-1p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-1p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...s-1p-offscren-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-shrfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-shrfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-shrfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-shrfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-shrfb-draw-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-pri-shrfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-draw-render
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-spr-indfb-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-spr-indfb-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-spr-indfb-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-spr-indfb-draw-pwrite
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-spr-indfb-draw-blt
>> +kms_frontbuffer_tracking@...s-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@...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@...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@...-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...-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@...s-1p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...s-1p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...s-2p-primscrn-shrfb-plflip-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-indfb-pgflip-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-indfb-msflip-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-indfb-plflip-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-shrfb-pgflip-blt
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-shrfb-msflip-blt
>> +kms_frontbuffer_tracking@...s-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@...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@...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@...-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psr-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psr-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psr-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psr-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...drrs-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...drrs-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...drrs-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...drrs-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psrdrrs-1p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psrdrrs-1p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psrdrrs-2p-indfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...psrdrrs-2p-shrfb-fliptrack-mmap-gtt
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...-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@...s-1p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...s-1p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...s-1p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...s-2p-primscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-onoff
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-move
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-cur-indfb-onoff
>> +kms_frontbuffer_tracking@...s-2p-scndscrn-spr-indfb-move
>> +kms_frontbuffer_tracking@...s-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@...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@...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@...-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@...-2p-scndscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@...-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@...-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@...-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@...s-1p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@...s-2p-primscrn-spr-indfb-fullscreen
>> +kms_frontbuffer_tracking@...s-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@...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@...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@...-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...psr-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...psr-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...s-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...s-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...drrs-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...drrs-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...drrs-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...drrs-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...psrdrrs-1p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...psrdrrs-2p-pri-indfb-multidraw
>> +kms_frontbuffer_tracking@...-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@...-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@...psr-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@...s-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@...drrs-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@...drrs-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@...psrdrrs-farfromfence-mmap-gtt
>> +kms_frontbuffer_tracking@...-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@...-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@...-rgb565-draw-blt
>> +kms_frontbuffer_tracking@...-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@...-rgb565-draw-render
>> +kms_frontbuffer_tracking@...-rgb101010-draw-render
>> +kms_frontbuffer_tracking@...-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@...-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@...-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@...-rgb565-draw-blt
>> +kms_frontbuffer_tracking@...-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@...-rgb565-draw-render
>> +kms_frontbuffer_tracking@...-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@...s-rgb565-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-rgb101010-draw-mmap-cpu
>> +kms_frontbuffer_tracking@...s-rgb565-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-rgb101010-draw-mmap-gtt
>> +kms_frontbuffer_tracking@...s-rgb565-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-rgb101010-draw-mmap-wc
>> +kms_frontbuffer_tracking@...s-rgb565-draw-pwrite
>> +kms_frontbuffer_tracking@...s-rgb101010-draw-pwrite
>> +kms_frontbuffer_tracking@...s-rgb565-draw-blt
>> +kms_frontbuffer_tracking@...s-rgb101010-draw-blt
>> +kms_frontbuffer_tracking@...s-rgb565-draw-render
>> +kms_frontbuffer_tracking@...s-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@...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@...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@...-indfb-scaledprimary
>> +kms_frontbuffer_tracking@...-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@...-indfb-scaledprimary
>> +kms_frontbuffer_tracking@...-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@...psr-indfb-scaledprimary
>> +kms_frontbuffer_tracking@...psr-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@...s-indfb-scaledprimary
>> +kms_frontbuffer_tracking@...s-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@...drrs-indfb-scaledprimary
>> +kms_frontbuffer_tracking@...drrs-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@...drrs-indfb-scaledprimary
>> +kms_frontbuffer_tracking@...drrs-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@...psrdrrs-indfb-scaledprimary
>> +kms_frontbuffer_tracking@...psrdrrs-shrfb-scaledprimary
>> +kms_frontbuffer_tracking@...-modesetfrombusy
>> +kms_frontbuffer_tracking@...-badstride
>> +kms_frontbuffer_tracking@...-stridechange
>> +kms_frontbuffer_tracking@...-tiling-linear
>> +kms_frontbuffer_tracking@...-tiling-y
>> +kms_frontbuffer_tracking@...-tiling-4
>> +kms_frontbuffer_tracking@...-suspend
>> +kms_frontbuffer_tracking@...-modesetfrombusy
>> +kms_frontbuffer_tracking@...-slowdraw
>> +kms_frontbuffer_tracking@...-suspend
>> +kms_frontbuffer_tracking@...psr-modesetfrombusy
>> +kms_frontbuffer_tracking@...psr-badstride
>> +kms_frontbuffer_tracking@...psr-stridechange
>> +kms_frontbuffer_tracking@...psr-tiling-linear
>> +kms_frontbuffer_tracking@...psr-tiling-y
>> +kms_frontbuffer_tracking@...psr-tiling-4
>> +kms_frontbuffer_tracking@...psr-slowdraw
>> +kms_frontbuffer_tracking@...psr-suspend
>> +kms_frontbuffer_tracking@...s-modesetfrombusy
>> +kms_frontbuffer_tracking@...s-slowdraw
>> +kms_frontbuffer_tracking@...s-suspend
>> +kms_frontbuffer_tracking@...drrs-modesetfrombusy
>> +kms_frontbuffer_tracking@...drrs-badstride
>> +kms_frontbuffer_tracking@...drrs-stridechange
>> +kms_frontbuffer_tracking@...drrs-tiling-linear
>> +kms_frontbuffer_tracking@...drrs-tiling-y
>> +kms_frontbuffer_tracking@...drrs-tiling-4
>> +kms_frontbuffer_tracking@...drrs-slowdraw
>> +kms_frontbuffer_tracking@...drrs-suspend
>> +kms_frontbuffer_tracking@...drrs-modesetfrombusy
>> +kms_frontbuffer_tracking@...drrs-slowdraw
>> +kms_frontbuffer_tracking@...drrs-suspend
>> +kms_frontbuffer_tracking@...psrdrrs-modesetfrombusy
>> +kms_frontbuffer_tracking@...psrdrrs-badstride
>> +kms_frontbuffer_tracking@...psrdrrs-stridechange
>> +kms_frontbuffer_tracking@...psrdrrs-tiling-linear
>> +kms_frontbuffer_tracking@...psrdrrs-tiling-y
>> +kms_frontbuffer_tracking@...psrdrrs-tiling-4
>> +kms_frontbuffer_tracking@...psrdrrs-slowdraw
>> +kms_frontbuffer_tracking@...psrdrrs-suspend
>> +kms_frontbuffer_tracking@...ic
>> +kms_getfb@...fb-handle-zero
>> +kms_getfb@...fb-handle-valid
>> +kms_getfb@...fb-handle-closed
>> +kms_getfb@...fb-handle-not-fb
>> +kms_getfb@...fb-addfb-different-handles
>> +kms_getfb@...fb-repeated-different-handles
>> +kms_getfb@...fb-reject-ccs
>> +kms_getfb@...fb2-handle-zero
>> +kms_getfb@...fb2-handle-closed
>> +kms_getfb@...fb2-handle-not-fb
>> +kms_getfb@...fb2-accept-ccs
>> +kms_getfb@...fb2-into-addfb2
>> +kms_getfb@...fb-handle-protection
>> +kms_getfb@...fb2-handle-protection
>> +kms_hdmi_inject@...ect-4k
>> +kms_hdmi_inject@...ect-audio
>> +kms_hdr@...-switch
>> +kms_hdr@...-switch-dpms
>> +kms_hdr@...-switch-suspend
>> +kms_hdr@...tic-toggle
>> +kms_hdr@...tic-toggle-dpms
>> +kms_hdr@...tic-toggle-suspend
>> +kms_hdr@...tic-swap
>> +kms_hdr@...alid-metadata-sizes
>> +kms_hdr@...alid-hdr
>> +kms_invalid_mode@...ck-too-high
>> +kms_invalid_mode@...o-clock
>> +kms_invalid_mode@...-max-clock
>> +kms_invalid_mode@...t-max-clock
>> +kms_invalid_mode@...o-hdisplay
>> +kms_invalid_mode@...o-vdisplay
>> +kms_invalid_mode@...-hsync-start
>> +kms_invalid_mode@...-vsync-start
>> +kms_invalid_mode@...-hsync-end
>> +kms_invalid_mode@...-vsync-end
>> +kms_invalid_mode@...-htotal
>> +kms_invalid_mode@...-vtotal
>> +kms_legacy_colorkey@...ic
>> +kms_legacy_colorkey@...alid-plane
>> +kms_multipipe_modeset@...ic-max-pipe-crc-check
>> +kms_panel_fitting@...acy
>> +kms_panel_fitting@...mic-fastset
>> +kms_pipe_b_c_ivb@...e-B-dpms-off-modeset-pipe-C
>> +kms_pipe_b_c_ivb@...e-B-double-modeset-then-modeset-pipe-C
>> +kms_pipe_b_c_ivb@...able-pipe-B-enable-pipe-C
>> +kms_pipe_b_c_ivb@...m-pipe-C-to-B-with-3-lanes
>> +kms_pipe_b_c_ivb@...ble-pipe-C-while-B-has-3-lanes
>> +kms_pipe_crc_basic@...-source
>> +kms_pipe_crc_basic@...d-crc
>> +kms_pipe_crc_basic@...d-crc-frame-sequence
>> +kms_pipe_crc_basic@...blocking-crc
>> +kms_pipe_crc_basic@...blocking-crc-frame-sequence
>> +kms_pipe_crc_basic@...pend-read-crc
>> +kms_pipe_crc_basic@...g-read-crc
>> +kms_pipe_crc_basic@...able-crc-after-crtc
>> +kms_pipe_crc_basic@...pare-crc-sanitycheck-xr24
>> +kms_pipe_crc_basic@...pare-crc-sanitycheck-nv12
>> +kms_plane@...el-format
>> +kms_plane@...el-format-source-clamping
>> +kms_plane@...ne-position-covered
>> +kms_plane@...ne-position-hole
>> +kms_plane@...ne-position-hole-dpms
>> +kms_plane@...ne-panning-top-left
>> +kms_plane@...ne-panning-bottom-right
>> +kms_plane@...ne-panning-bottom-right-suspend
>> +kms_plane@...alid-pixel-format-settings
>> +kms_plane_alpha_blend@...ha-basic
>> +kms_plane_alpha_blend@...ha-7efc
>> +kms_plane_alpha_blend@...erage-7efc
>> +kms_plane_alpha_blend@...erage-vs-premult-vs-constant
>> +kms_plane_alpha_blend@...ha-transparent-fb
>> +kms_plane_alpha_blend@...ha-opaque-fb
>> +kms_plane_alpha_blend@...stant-alpha-min
>> +kms_plane_alpha_blend@...stant-alpha-mid
>> +kms_plane_alpha_blend@...stant-alpha-max
>> +kms_plane_cursor@...mary
>> +kms_plane_cursor@...rlay
>> +kms_plane_cursor@...wport
>> +kms_plane_lowres@...ing-none
>> +kms_plane_lowres@...ing-x
>> +kms_plane_lowres@...ing-y
>> +kms_plane_lowres@...ing-yf
>> +kms_plane_lowres@...ing-4
>> +kms_plane_multiple@...ing-none
>> +kms_plane_multiple@...ing-x
>> +kms_plane_multiple@...ing-y
>> +kms_plane_multiple@...ing-yf
>> +kms_plane_multiple@...ing-4
>> +kms_plane_scaling@...ne-upscale-with-pixel-format-20x20
>> +kms_plane_scaling@...ne-upscale-with-pixel-format-factor-0-25
>> +kms_plane_scaling@...ne-downscale-with-pixel-format-factor-0-25
>> +kms_plane_scaling@...ne-downscale-with-pixel-format-factor-0-5
>> +kms_plane_scaling@...ne-downscale-with-pixel-format-factor-0-75
>> +kms_plane_scaling@...ne-scaler-with-pixel-format-unity-scaling
>> +kms_plane_scaling@...ne-upscale-with-rotation-20x20
>> +kms_plane_scaling@...ne-upscale-with-rotation-factor-0-25
>> +kms_plane_scaling@...ne-downscale-with-rotation-factor-0-25
>> +kms_plane_scaling@...ne-downscale-with-rotation-factor-0-5
>> +kms_plane_scaling@...ne-downscale-with-rotation-factor-0-75
>> +kms_plane_scaling@...ne-scaler-with-rotation-unity-scaling
>> +kms_plane_scaling@...ne-upscale-with-modifiers-20x20
>> +kms_plane_scaling@...ne-upscale-with-modifiers-factor-0-25
>> +kms_plane_scaling@...ne-downscale-with-modifiers-factor-0-25
>> +kms_plane_scaling@...ne-downscale-with-modifiers-factor-0-5
>> +kms_plane_scaling@...ne-downscale-with-modifiers-factor-0-75
>> +kms_plane_scaling@...ne-scaler-with-modifiers-unity-scaling
>> +kms_plane_scaling@...ne-scaler-with-clipping-clamping-pixel-formats
>> +kms_plane_scaling@...ne-scaler-with-clipping-clamping-rotation
>> +kms_plane_scaling@...ne-scaler-with-clipping-clamping-modifiers
>> +kms_plane_scaling@...nes-upscale-20x20
>> +kms_plane_scaling@...nes-upscale-factor-0-25
>> +kms_plane_scaling@...nes-scaler-unity-scaling
>> +kms_plane_scaling@...nes-downscale-factor-0-25
>> +kms_plane_scaling@...nes-downscale-factor-0-5
>> +kms_plane_scaling@...nes-downscale-factor-0-75
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-25
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-5
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-75
>> +kms_plane_scaling@...nes-upscale-factor-0-25-downscale-factor-0-25
>> +kms_plane_scaling@...nes-upscale-factor-0-25-downscale-factor-0-5
>> +kms_plane_scaling@...nes-upscale-factor-0-25-downscale-factor-0-75
>> +kms_plane_scaling@...nes-unity-scaling-downscale-factor-0-25
>> +kms_plane_scaling@...nes-unity-scaling-downscale-factor-0-5
>> +kms_plane_scaling@...nes-unity-scaling-downscale-factor-0-75
>> +kms_plane_scaling@...nes-downscale-factor-0-25-upscale-20x20
>> +kms_plane_scaling@...nes-downscale-factor-0-25-upscale-factor-0-25
>> +kms_plane_scaling@...nes-downscale-factor-0-25-unity-scaling
>> +kms_plane_scaling@...nes-downscale-factor-0-5-upscale-20x20
>> +kms_plane_scaling@...nes-downscale-factor-0-5-upscale-factor-0-25
>> +kms_plane_scaling@...nes-downscale-factor-0-5-unity-scaling
>> +kms_plane_scaling@...nes-downscale-factor-0-75-upscale-20x20
>> +kms_plane_scaling@...nes-downscale-factor-0-75-upscale-factor-0-25
>> +kms_plane_scaling@...nes-downscale-factor-0-75-unity-scaling
>> +kms_plane_scaling@...el-max-src-size
>> +kms_plane_scaling@...alid-num-scalers
>> +kms_plane_scaling@...alid-parameters
>> +kms_plane_scaling@...scaler-multi-pipe
>> +kms_prime@...ic-crc-hybrid
>> +kms_prime@...ic-modeset-hybrid
>> +kms_prime@...ot
>> +kms_prime@...ic-crc-vgem
>> +kms_prop_blob@...ic
>> +kms_prop_blob@...b-prop-core
>> +kms_prop_blob@...b-prop-validate
>> +kms_prop_blob@...b-prop-lifetime
>> +kms_prop_blob@...b-multiple
>> +kms_prop_blob@...alid-get-prop-any
>> +kms_prop_blob@...alid-get-prop
>> +kms_prop_blob@...alid-set-prop-any
>> +kms_prop_blob@...alid-set-prop
>> +kms_properties@...ne-properties-legacy
>> +kms_properties@...ne-properties-atomic
>> +kms_properties@...c-properties-legacy
>> +kms_properties@...c-properties-atomic
>> +kms_properties@...nector-properties-legacy
>> +kms_properties@...nector-properties-atomic
>> +kms_properties@...alid-properties-legacy
>> +kms_properties@...alid-properties-atomic
>> +kms_properties@..._properties-sanity-atomic
>> +kms_properties@..._properties-sanity-non-atomic
>> +kms_psr@...ic
>> +kms_psr@...drrs
>> +kms_psr@...mary_page_flip
>> +kms_psr@...mary_mmap_gtt
>> +kms_psr@...mary_mmap_cpu
>> +kms_psr@...mary_blt
>> +kms_psr@...mary_render
>> +kms_psr@...ite_mmap_gtt
>> +kms_psr@...sor_mmap_gtt
>> +kms_psr@...ite_mmap_cpu
>> +kms_psr@...sor_mmap_cpu
>> +kms_psr@...ite_blt
>> +kms_psr@...sor_blt
>> +kms_psr@...ite_render
>> +kms_psr@...sor_render
>> +kms_psr@...ite_plane_move
>> +kms_psr@...sor_plane_move
>> +kms_psr@...ite_plane_onoff
>> +kms_psr@...sor_plane_onoff
>> +kms_psr@...s
>> +kms_psr@...pend
>> +kms_psr@...2_basic
>> +kms_psr@...2_no_drrs
>> +kms_psr@...2_primary_page_flip
>> +kms_psr@...2_primary_mmap_gtt
>> +kms_psr@...2_primary_mmap_cpu
>> +kms_psr@...2_primary_blt
>> +kms_psr@...2_primary_render
>> +kms_psr@...2_sprite_mmap_gtt
>> +kms_psr@...2_cursor_mmap_gtt
>> +kms_psr@...2_sprite_mmap_cpu
>> +kms_psr@...2_cursor_mmap_cpu
>> +kms_psr@...2_sprite_blt
>> +kms_psr@...2_cursor_blt
>> +kms_psr@...2_sprite_render
>> +kms_psr@...2_cursor_render
>> +kms_psr@...2_sprite_plane_move
>> +kms_psr@...2_cursor_plane_move
>> +kms_psr@...2_sprite_plane_onoff
>> +kms_psr@...2_cursor_plane_onoff
>> +kms_psr@...2_dpms
>> +kms_psr@...2_suspend
>> +kms_psr2_sf@...mary-plane-update-sf-dmg-area
>> +kms_psr2_sf@...mary-plane-update-sf-dmg-area-big-fb
>> +kms_psr2_sf@...rlay-plane-update-sf-dmg-area
>> +kms_psr2_sf@...sor-plane-update-sf
>> +kms_psr2_sf@...sor-plane-move-continuous-sf
>> +kms_psr2_sf@...sor-plane-move-continuous-exceed-sf
>> +kms_psr2_sf@...sor-plane-move-continuous-exceed-fully-sf
>> +kms_psr2_sf@...ne-move-sf-dmg-area
>> +kms_psr2_sf@...rlay-plane-move-continuous-sf
>> +kms_psr2_sf@...rlay-plane-move-continuous-exceed-sf
>> +kms_psr2_sf@...rlay-plane-move-continuous-exceed-fully-sf
>> +kms_psr2_sf@...rlay-primary-update-sf-dmg-area
>> +kms_psr2_sf@...rlay-plane-update-continuous-sf
>> +kms_psr2_su@...e_flip-XRGB8888
>> +kms_psr2_su@...e_flip-NV12
>> +kms_psr2_su@...e_flip-P010
>> +kms_psr2_su@...ntbuffer-XRGB8888
>> +kms_pwrite_crc
>> +kms_rmfb@...b-ioctl
>> +kms_rmfb@...se-fd
>> +kms_rotation_crc@...mary-rotation-90
>> +kms_rotation_crc@...mary-rotation-180
>> +kms_rotation_crc@...mary-rotation-270
>> +kms_rotation_crc@...ite-rotation-90
>> +kms_rotation_crc@...ite-rotation-180
>> +kms_rotation_crc@...ite-rotation-270
>> +kms_rotation_crc@...sor-rotation-180
>> +kms_rotation_crc@...ite-rotation-90-pos-100-0
>> +kms_rotation_crc@...-pixel-format
>> +kms_rotation_crc@...-tiling
>> +kms_rotation_crc@...mary-x-tiled-reflect-x-0
>> +kms_rotation_crc@...mary-x-tiled-reflect-x-180
>> +kms_rotation_crc@...mary-y-tiled-reflect-x-0
>> +kms_rotation_crc@...mary-y-tiled-reflect-x-90
>> +kms_rotation_crc@...mary-y-tiled-reflect-x-180
>> +kms_rotation_crc@...mary-y-tiled-reflect-x-270
>> +kms_rotation_crc@...mary-yf-tiled-reflect-x-0
>> +kms_rotation_crc@...mary-yf-tiled-reflect-x-90
>> +kms_rotation_crc@...mary-yf-tiled-reflect-x-180
>> +kms_rotation_crc@...mary-yf-tiled-reflect-x-270
>> +kms_rotation_crc@...mary-4-tiled-reflect-x-0
>> +kms_rotation_crc@...mary-4-tiled-reflect-x-180
>> +kms_rotation_crc@...tiplane-rotation
>> +kms_rotation_crc@...tiplane-rotation-cropping-top
>> +kms_rotation_crc@...tiplane-rotation-cropping-bottom
>> +kms_rotation_crc@...aust-fences
>> +kms_scaling_modes@...ling-mode-full
>> +kms_scaling_modes@...ling-mode-center
>> +kms_scaling_modes@...ling-mode-full-aspect
>> +kms_scaling_modes@...ling-mode-none
>> +kms_selftest@..._cmdline
>> +kms_selftest@..._damage
>> +kms_selftest@..._dp_mst
>> +kms_selftest@..._format_helper
>> +kms_selftest@..._format
>> +kms_selftest@...mebuffer
>> +kms_selftest@..._plane
>> +kms_setmode@...ic
>> +kms_setmode@...ic-clone-single-crtc
>> +kms_setmode@...alid-clone-single-crtc
>> +kms_setmode@...alid-clone-exclusive-crtc
>> +kms_setmode@...ne-exclusive-crtc
>> +kms_setmode@...alid-clone-single-crtc-stealing
>> +kms_sysfs_edid_timing
>> +kms_tv_load_detect@...d-detect
>> +kms_universal_plane@...versal-plane-pipe-A-functional
>> +kms_universal_plane@...versal-plane-pipe-A-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-A
>> +kms_universal_plane@...sor-fb-leak-pipe-A
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-A
>> +kms_universal_plane@...versal-plane-pipe-B-functional
>> +kms_universal_plane@...versal-plane-pipe-B-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-B
>> +kms_universal_plane@...sor-fb-leak-pipe-B
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-B
>> +kms_universal_plane@...versal-plane-pipe-C-functional
>> +kms_universal_plane@...versal-plane-pipe-C-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-C
>> +kms_universal_plane@...sor-fb-leak-pipe-C
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-C
>> +kms_universal_plane@...versal-plane-pipe-D-functional
>> +kms_universal_plane@...versal-plane-pipe-D-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-D
>> +kms_universal_plane@...sor-fb-leak-pipe-D
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-D
>> +kms_universal_plane@...versal-plane-pipe-E-functional
>> +kms_universal_plane@...versal-plane-pipe-E-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-E
>> +kms_universal_plane@...sor-fb-leak-pipe-E
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-E
>> +kms_universal_plane@...versal-plane-pipe-F-functional
>> +kms_universal_plane@...versal-plane-pipe-F-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-F
>> +kms_universal_plane@...sor-fb-leak-pipe-F
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-F
>> +kms_universal_plane@...versal-plane-pipe-G-functional
>> +kms_universal_plane@...versal-plane-pipe-G-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-G
>> +kms_universal_plane@...sor-fb-leak-pipe-G
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-G
>> +kms_universal_plane@...versal-plane-pipe-H-functional
>> +kms_universal_plane@...versal-plane-pipe-H-sanity
>> +kms_universal_plane@...able-primary-vs-flip-pipe-H
>> +kms_universal_plane@...sor-fb-leak-pipe-H
>> +kms_universal_plane@...versal-plane-pageflip-windowed-pipe-H
>> +kms_vblank@...alid
>> +kms_vblank@...c-id
>> +kms_vblank@...e-A-accuracy-idle
>> +kms_vblank@...e-A-query-idle
>> +kms_vblank@...e-A-query-idle-hang
>> +kms_vblank@...e-A-query-forked
>> +kms_vblank@...e-A-query-forked-hang
>> +kms_vblank@...e-A-query-busy
>> +kms_vblank@...e-A-query-busy-hang
>> +kms_vblank@...e-A-query-forked-busy
>> +kms_vblank@...e-A-query-forked-busy-hang
>> +kms_vblank@...e-A-wait-idle
>> +kms_vblank@...e-A-wait-idle-hang
>> +kms_vblank@...e-A-wait-forked
>> +kms_vblank@...e-A-wait-forked-hang
>> +kms_vblank@...e-A-wait-busy
>> +kms_vblank@...e-A-wait-busy-hang
>> +kms_vblank@...e-A-wait-forked-busy
>> +kms_vblank@...e-A-wait-forked-busy-hang
>> +kms_vblank@...e-A-ts-continuation-idle
>> +kms_vblank@...e-A-ts-continuation-idle-hang
>> +kms_vblank@...e-A-ts-continuation-dpms-rpm
>> +kms_vblank@...e-A-ts-continuation-dpms-suspend
>> +kms_vblank@...e-A-ts-continuation-suspend
>> +kms_vblank@...e-A-ts-continuation-modeset
>> +kms_vblank@...e-A-ts-continuation-modeset-hang
>> +kms_vblank@...e-A-ts-continuation-modeset-rpm
>> +kms_vblank@...e-B-accuracy-idle
>> +kms_vblank@...e-B-query-idle
>> +kms_vblank@...e-B-query-idle-hang
>> +kms_vblank@...e-B-query-forked
>> +kms_vblank@...e-B-query-forked-hang
>> +kms_vblank@...e-B-query-busy
>> +kms_vblank@...e-B-query-busy-hang
>> +kms_vblank@...e-B-query-forked-busy
>> +kms_vblank@...e-B-query-forked-busy-hang
>> +kms_vblank@...e-B-wait-idle
>> +kms_vblank@...e-B-wait-idle-hang
>> +kms_vblank@...e-B-wait-forked
>> +kms_vblank@...e-B-wait-forked-hang
>> +kms_vblank@...e-B-wait-busy
>> +kms_vblank@...e-B-wait-busy-hang
>> +kms_vblank@...e-B-wait-forked-busy
>> +kms_vblank@...e-B-wait-forked-busy-hang
>> +kms_vblank@...e-B-ts-continuation-idle
>> +kms_vblank@...e-B-ts-continuation-idle-hang
>> +kms_vblank@...e-B-ts-continuation-dpms-rpm
>> +kms_vblank@...e-B-ts-continuation-dpms-suspend
>> +kms_vblank@...e-B-ts-continuation-suspend
>> +kms_vblank@...e-B-ts-continuation-modeset
>> +kms_vblank@...e-B-ts-continuation-modeset-hang
>> +kms_vblank@...e-B-ts-continuation-modeset-rpm
>> +kms_vblank@...e-C-accuracy-idle
>> +kms_vblank@...e-C-query-idle
>> +kms_vblank@...e-C-query-idle-hang
>> +kms_vblank@...e-C-query-forked
>> +kms_vblank@...e-C-query-forked-hang
>> +kms_vblank@...e-C-query-busy
>> +kms_vblank@...e-C-query-busy-hang
>> +kms_vblank@...e-C-query-forked-busy
>> +kms_vblank@...e-C-query-forked-busy-hang
>> +kms_vblank@...e-C-wait-idle
>> +kms_vblank@...e-C-wait-idle-hang
>> +kms_vblank@...e-C-wait-forked
>> +kms_vblank@...e-C-wait-forked-hang
>> +kms_vblank@...e-C-wait-busy
>> +kms_vblank@...e-C-wait-busy-hang
>> +kms_vblank@...e-C-wait-forked-busy
>> +kms_vblank@...e-C-wait-forked-busy-hang
>> +kms_vblank@...e-C-ts-continuation-idle
>> +kms_vblank@...e-C-ts-continuation-idle-hang
>> +kms_vblank@...e-C-ts-continuation-dpms-rpm
>> +kms_vblank@...e-C-ts-continuation-dpms-suspend
>> +kms_vblank@...e-C-ts-continuation-suspend
>> +kms_vblank@...e-C-ts-continuation-modeset
>> +kms_vblank@...e-C-ts-continuation-modeset-hang
>> +kms_vblank@...e-C-ts-continuation-modeset-rpm
>> +kms_vblank@...e-D-accuracy-idle
>> +kms_vblank@...e-D-query-idle
>> +kms_vblank@...e-D-query-idle-hang
>> +kms_vblank@...e-D-query-forked
>> +kms_vblank@...e-D-query-forked-hang
>> +kms_vblank@...e-D-query-busy
>> +kms_vblank@...e-D-query-busy-hang
>> +kms_vblank@...e-D-query-forked-busy
>> +kms_vblank@...e-D-query-forked-busy-hang
>> +kms_vblank@...e-D-wait-idle
>> +kms_vblank@...e-D-wait-idle-hang
>> +kms_vblank@...e-D-wait-forked
>> +kms_vblank@...e-D-wait-forked-hang
>> +kms_vblank@...e-D-wait-busy
>> +kms_vblank@...e-D-wait-busy-hang
>> +kms_vblank@...e-D-wait-forked-busy
>> +kms_vblank@...e-D-wait-forked-busy-hang
>> +kms_vblank@...e-D-ts-continuation-idle
>> +kms_vblank@...e-D-ts-continuation-idle-hang
>> +kms_vblank@...e-D-ts-continuation-dpms-rpm
>> +kms_vblank@...e-D-ts-continuation-dpms-suspend
>> +kms_vblank@...e-D-ts-continuation-suspend
>> +kms_vblank@...e-D-ts-continuation-modeset
>> +kms_vblank@...e-D-ts-continuation-modeset-hang
>> +kms_vblank@...e-D-ts-continuation-modeset-rpm
>> +kms_vblank@...e-E-accuracy-idle
>> +kms_vblank@...e-E-query-idle
>> +kms_vblank@...e-E-query-idle-hang
>> +kms_vblank@...e-E-query-forked
>> +kms_vblank@...e-E-query-forked-hang
>> +kms_vblank@...e-E-query-busy
>> +kms_vblank@...e-E-query-busy-hang
>> +kms_vblank@...e-E-query-forked-busy
>> +kms_vblank@...e-E-query-forked-busy-hang
>> +kms_vblank@...e-E-wait-idle
>> +kms_vblank@...e-E-wait-idle-hang
>> +kms_vblank@...e-E-wait-forked
>> +kms_vblank@...e-E-wait-forked-hang
>> +kms_vblank@...e-E-wait-busy
>> +kms_vblank@...e-E-wait-busy-hang
>> +kms_vblank@...e-E-wait-forked-busy
>> +kms_vblank@...e-E-wait-forked-busy-hang
>> +kms_vblank@...e-E-ts-continuation-idle
>> +kms_vblank@...e-E-ts-continuation-idle-hang
>> +kms_vblank@...e-E-ts-continuation-dpms-rpm
>> +kms_vblank@...e-E-ts-continuation-dpms-suspend
>> +kms_vblank@...e-E-ts-continuation-suspend
>> +kms_vblank@...e-E-ts-continuation-modeset
>> +kms_vblank@...e-E-ts-continuation-modeset-hang
>> +kms_vblank@...e-E-ts-continuation-modeset-rpm
>> +kms_vblank@...e-F-accuracy-idle
>> +kms_vblank@...e-F-query-idle
>> +kms_vblank@...e-F-query-idle-hang
>> +kms_vblank@...e-F-query-forked
>> +kms_vblank@...e-F-query-forked-hang
>> +kms_vblank@...e-F-query-busy
>> +kms_vblank@...e-F-query-busy-hang
>> +kms_vblank@...e-F-query-forked-busy
>> +kms_vblank@...e-F-query-forked-busy-hang
>> +kms_vblank@...e-F-wait-idle
>> +kms_vblank@...e-F-wait-idle-hang
>> +kms_vblank@...e-F-wait-forked
>> +kms_vblank@...e-F-wait-forked-hang
>> +kms_vblank@...e-F-wait-busy
>> +kms_vblank@...e-F-wait-busy-hang
>> +kms_vblank@...e-F-wait-forked-busy
>> +kms_vblank@...e-F-wait-forked-busy-hang
>> +kms_vblank@...e-F-ts-continuation-idle
>> +kms_vblank@...e-F-ts-continuation-idle-hang
>> +kms_vblank@...e-F-ts-continuation-dpms-rpm
>> +kms_vblank@...e-F-ts-continuation-dpms-suspend
>> +kms_vblank@...e-F-ts-continuation-suspend
>> +kms_vblank@...e-F-ts-continuation-modeset
>> +kms_vblank@...e-F-ts-continuation-modeset-hang
>> +kms_vblank@...e-F-ts-continuation-modeset-rpm
>> +kms_vblank@...e-G-accuracy-idle
>> +kms_vblank@...e-G-query-idle
>> +kms_vblank@...e-G-query-idle-hang
>> +kms_vblank@...e-G-query-forked
>> +kms_vblank@...e-G-query-forked-hang
>> +kms_vblank@...e-G-query-busy
>> +kms_vblank@...e-G-query-busy-hang
>> +kms_vblank@...e-G-query-forked-busy
>> +kms_vblank@...e-G-query-forked-busy-hang
>> +kms_vblank@...e-G-wait-idle
>> +kms_vblank@...e-G-wait-idle-hang
>> +kms_vblank@...e-G-wait-forked
>> +kms_vblank@...e-G-wait-forked-hang
>> +kms_vblank@...e-G-wait-busy
>> +kms_vblank@...e-G-wait-busy-hang
>> +kms_vblank@...e-G-wait-forked-busy
>> +kms_vblank@...e-G-wait-forked-busy-hang
>> +kms_vblank@...e-G-ts-continuation-idle
>> +kms_vblank@...e-G-ts-continuation-idle-hang
>> +kms_vblank@...e-G-ts-continuation-dpms-rpm
>> +kms_vblank@...e-G-ts-continuation-dpms-suspend
>> +kms_vblank@...e-G-ts-continuation-suspend
>> +kms_vblank@...e-G-ts-continuation-modeset
>> +kms_vblank@...e-G-ts-continuation-modeset-hang
>> +kms_vblank@...e-G-ts-continuation-modeset-rpm
>> +kms_vblank@...e-H-accuracy-idle
>> +kms_vblank@...e-H-query-idle
>> +kms_vblank@...e-H-query-idle-hang
>> +kms_vblank@...e-H-query-forked
>> +kms_vblank@...e-H-query-forked-hang
>> +kms_vblank@...e-H-query-busy
>> +kms_vblank@...e-H-query-busy-hang
>> +kms_vblank@...e-H-query-forked-busy
>> +kms_vblank@...e-H-query-forked-busy-hang
>> +kms_vblank@...e-H-wait-idle
>> +kms_vblank@...e-H-wait-idle-hang
>> +kms_vblank@...e-H-wait-forked
>> +kms_vblank@...e-H-wait-forked-hang
>> +kms_vblank@...e-H-wait-busy
>> +kms_vblank@...e-H-wait-busy-hang
>> +kms_vblank@...e-H-wait-forked-busy
>> +kms_vblank@...e-H-wait-forked-busy-hang
>> +kms_vblank@...e-H-ts-continuation-idle
>> +kms_vblank@...e-H-ts-continuation-idle-hang
>> +kms_vblank@...e-H-ts-continuation-dpms-rpm
>> +kms_vblank@...e-H-ts-continuation-dpms-suspend
>> +kms_vblank@...e-H-ts-continuation-suspend
>> +kms_vblank@...e-H-ts-continuation-modeset
>> +kms_vblank@...e-H-ts-continuation-modeset-hang
>> +kms_vblank@...e-H-ts-continuation-modeset-rpm
>> +kms_vrr@...p-basic
>> +kms_vrr@...p-dpms
>> +kms_vrr@...p-suspend
>> +kms_vrr@...pline
>> +kms_vrr@...ative-basic
>> +kms_writeback@...teback-pixel-formats
>> +kms_writeback@...teback-invalid-parameters
>> +kms_writeback@...teback-fb-id
>> +kms_writeback@...teback-check-output
>> +prime_mmap_kms@...fer-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@...ear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-1-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-3-displays-1920x1080p,Fail
>> +kms_cursor_crc@...e-A-cursor-size-change,Fail
>> +kms_cursor_crc@...e-B-cursor-size-change,Fail
>> +kms_hdr@...-switch,Fail
>> +kms_hdr@...-switch-dpms,Fail
>> +kms_plane_multiple@...mic-pipe-A-tiling-none,Fail
>> +kms_rotation_crc@...mary-rotation-180,Fail
>> +kms_async_flips@...nc-flip-with-page-flip-events,Fail
>> +kms_async_flips@crc,Fail
>> +kms_async_flips@...alid-async-flip,Fail
>> +kms_addfb_basic@...-pitch-65536,Fail
>> +kms_addfb_basic@...too-small,Fail
>> +kms_atomic_transition@...ne-toggle-modeset-transition,Fail
>> +kms_color@...amma,Fail
>> +kms_cursor_crc@...sor-size-change,Fail
>> +kms_cursor_legacy@...ked-move,Fail
>> +kms_flip@...p-vs-blocking-wf-vblank,Fail
>> +kms_flip@...in-flip-fb-recreate,Fail
>> +kms_flip@...in-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@...-high
>> +kms_atomic_transition@...ne-all-modeset-transition-internal-panels
>> +kms_atomic_transition@...ne-all-transition
>> +kms_atomic_transition@...ne-use-after-nonblocking-unbind
>> +kms_bw@...ear-tiling-1-displays-1920x1080p
>> +kms_bw@...ear-tiling-2-displays-1920x1080p
>> +kms_bw@...ear-tiling-2-displays-2560x1440p
>> +kms_bw@...ear-tiling-3-displays-2560x1440p
>> +kms_bw@...ear-tiling-3-displays-3840x2160p
>> +kms_cursor_crc@...e-A-cursor-alpha-opaque
>> +kms_cursor_crc@...e-B-cursor-alpha-opaque
>> +kms_plane_multiple@...mic-pipe-B-tiling-none
>> +kms_plane@...el-format
>> +kms_plane_scaling@...nscale-with-rotation-factor-0-5
>> +kms_universal_plane@...able-primary-vs-flip-pipe-A
>> +kms_async_flips@...ernate-sync-async-flip
>> +kms_async_flips@...t-cursor
>> +kms_async_flips@...t-time-stamp
>> +kms_universal_plane@...able-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@...p-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_plane_alpha_blend@...ha-basic,Fail
>> +kms_plane_alpha_blend@...ha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...ha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...stant-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@...ear-tiling-2-displays-1920x1080p
>> +kms_bw@...ear-tiling-2-displays-2560x1440p
>> +kms_bw@...ear-tiling-2-displays-3840x2160p
>> +kms_bw@...ear-tiling-3-displays-1920x1080p
>> +kms_bw@...ear-tiling-3-displays-2560x1440p
>> +kms_bw@...ear-tiling-3-displays-3840x2160p
>> +kms_bw@...ear-tiling-4-displays-1920x1080p
>> +kms_bw@...ear-tiling-4-displays-2560x1440p
>> +kms_bw@...ear-tiling-4-displays-3840x2160p
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-upscaling
>> +kms_plane_alpha_blend@...e-A-alpha-basic
>> +kms_plane_alpha_blend@...e-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-A-constant-alpha-max
>> +kms_plane_alpha_blend@...e-B-alpha-basic
>> +kms_plane_alpha_blend@...e-B-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-B-constant-alpha-max
>> +kms_plane_alpha_blend@...e-C-alpha-basic
>> +kms_plane_alpha_blend@...e-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-C-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-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@...alid-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@...ear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-3-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-4-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-4-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-4-displays-3840x2160p,Fail
>> +kms_color@...-0-25,Fail
>> +kms_color@...-0-50,Fail
>> +kms_color@...-0-75,Fail
>> +kms_color@...-max,Fail
>> +kms_color@...-negative,Fail
>> +kms_color@...-red-to-blue,Fail
>> +kms_color@...-signed,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail 
>>
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_plane@...ne-position-hole,Timeout
>> +kms_plane_alpha_blend@...ha-basic,Fail
>> +kms_plane_alpha_blend@...ha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...ha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...stant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-A-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-A-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...e-A-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...e-B-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-C-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-C-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...e-C-constant-alpha-max,Fail
>> +kms_plane_multiple@...ing-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@...-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@...alid-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@...-0-25,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_plane_alpha_blend@...ha-basic,Fail
>> +kms_plane_alpha_blend@...ha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...ha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...stant-alpha-max,Fail
>> +kms_plane_alpha_blend@...stant-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@...ear-tiling-2-displays-1920x1080p
>> +kms_bw@...ear-tiling-2-displays-2560x1440p
>> +kms_bw@...ear-tiling-2-displays-3840x2160p
>> +kms_bw@...ear-tiling-3-displays-1920x1080p
>> +kms_bw@...ear-tiling-3-displays-2560x1440p
>> +kms_bw@...ear-tiling-3-displays-3840x2160p
>> +kms_bw@...ear-tiling-4-displays-1920x1080p
>> +kms_bw@...ear-tiling-4-displays-2560x1440p
>> +kms_bw@...ear-tiling-4-displays-3840x2160p
>> +kms_draw_crc@...w-method-xrgb8888-render-xtiled
>> +kms_flip@...p-vs-suspend
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-upscaling
>> +kms_hdr@...-switch-suspend
>> +kms_plane_alpha_blend@...e-A-alpha-basic
>> +kms_plane_alpha_blend@...e-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-A-constant-alpha-max
>> +kms_plane_alpha_blend@...e-B-alpha-basic
>> +kms_plane_alpha_blend@...e-B-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-B-constant-alpha-max
>> +kms_plane_alpha_blend@...e-C-alpha-basic
>> +kms_plane_alpha_blend@...e-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-C-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-C-constant-alpha-max
>> +kms_psr2_su@...e_flip-NV12
>> +kms_psr2_su@...e_flip-P010
>> +kms_setmode@...ic
>> 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@...alid-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@...p-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_frontbuffer_tracking@...drrs-tiling-linear,Fail
>> +kms_plane_alpha_blend@...ha-basic,Fail
>> +kms_plane_alpha_blend@...ha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...ha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...stant-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@...ear-tiling-1-displays-3840x2160p
>> +kms_bw@...ear-tiling-2-displays-1920x1080p
>> +kms_bw@...ear-tiling-2-displays-2560x1440p
>> +kms_bw@...ear-tiling-2-displays-3840x2160p
>> +kms_bw@...ear-tiling-3-displays-1920x1080p
>> +kms_bw@...ear-tiling-3-displays-2560x1440p
>> +kms_bw@...ear-tiling-3-displays-3840x2160p
>> +kms_bw@...ear-tiling-4-displays-1920x1080p
>> +kms_bw@...ear-tiling-4-displays-2560x1440p
>> +kms_bw@...ear-tiling-4-displays-3840x2160p
>> +kms_flip@...cking-wf_vblank
>> +kms_flip@...vblank-ts-check
>> +kms_flip@...vblank-ts-check-interruptible
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-upscaling
>> +kms_frontbuffer_tracking@...-tiling-linear
>> +kms_plane_alpha_blend@...e-A-alpha-basic
>> +kms_plane_alpha_blend@...e-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-A-constant-alpha-max
>> +kms_plane_alpha_blend@...e-B-alpha-basic
>> +kms_plane_alpha_blend@...e-B-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-B-constant-alpha-max
>> +kms_plane_alpha_blend@...e-C-alpha-basic
>> +kms_plane_alpha_blend@...e-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-C-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-C-constant-alpha-max
>> +kms_prop_blob@...alid-set-prop-any
>> +kms_rotation_crc@...tiplane-rotation
>> +kms_rotation_crc@...tiplane-rotation-cropping-bottom
>> +kms_rotation_crc@...tiplane-rotation-cropping-top
>> +kms_setmode@...ic
>> 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@...alid-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@...ear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-4-displays-2560x1440p,Fail
>> +kms_color@...-0-25,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_plane_alpha_blend@...ha-basic,Fail
>> +kms_plane_alpha_blend@...ha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...ha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...stant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-A-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-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@...ear-tiling-2-displays-1920x1080p
>> +kms_bw@...ear-tiling-2-displays-3840x2160p
>> +kms_bw@...ear-tiling-3-displays-1920x1080p
>> +kms_bw@...ear-tiling-3-displays-2560x1440p
>> +kms_bw@...ear-tiling-3-displays-3840x2160p
>> +kms_bw@...ear-tiling-4-displays-1920x1080p
>> +kms_bw@...ear-tiling-4-displays-3840x2160p
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling
>> +kms_plane_alpha_blend@...e-A-alpha-basic
>> +kms_plane_alpha_blend@...e-A-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-A-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-B-alpha-basic
>> +kms_plane_alpha_blend@...e-B-alpha-transparent-fb
>> +kms_plane_alpha_blend@...e-B-constant-alpha-max
>> +kms_plane_alpha_blend@...e-C-alpha-basic
>> +kms_plane_alpha_blend@...e-C-alpha-opaque-fb
>> +kms_plane_alpha_blend@...e-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@...alid-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@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-3-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-4-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-4-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-4-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-5-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-5-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-5-displays-3840x2160p,Fail
>> +kms_color@...-0-25,Fail
>> +kms_flip@...p-vs-panning-vs-hang,Timeout
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail 
>>
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_rotation_crc@...-pixel-format,Fail
>> +kms_rotation_crc@...tiplane-rotation,Fail
>> +kms_rotation_crc@...tiplane-rotation-cropping-bottom,Fail
>> +kms_rotation_crc@...tiplane-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@...cking-absolute-wf_vblank
>> +kms_flip@...too-big-interruptible
>> +kms_flip@...y-flip
>> +kms_flip@...p-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@...olute-wf_vblank@...dp1
>> +
>> +# This is generating kernel oops with divide error
>> +kms_plane_scaling@...alid-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@...ear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-3-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-4-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-4-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-4-displays-3840x2160p,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-linear-to-64bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-xtile-to-64bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytile-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-32bpp-ytileccs-to-64bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-16bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-linear-to-32bpp-linear-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-16bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-xtile-to-32bpp-xtile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-16bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-downscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytile-upscaling,Fail
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling,Fail 
>>
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-downscaling,Fail 
>>
>> +kms_flip_scaled_crc@...p-64bpp-ytile-to-32bpp-ytilercccs-upscaling,Fail
>> +kms_frontbuffer_tracking@...-tiling-linear,Fail
>> +kms_plane_alpha_blend@...ha-basic,Fail
>> +kms_plane_alpha_blend@...ha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...ha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...stant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-A-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-A-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...e-A-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...e-B-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-C-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-C-alpha-transparent-fb,Fail
>> +kms_plane_alpha_blend@...e-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@...p-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@...alid-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@...fb25-bad-modifier,Fail
>> +kms_bw@...ear-tiling-1-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-1-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-3-displays-3840x2160p,Fail
>> +kms_color@...e-A-invalid-gamma-lut-sizes,Fail
>> +kms_color@...e-B-invalid-gamma-lut-sizes,Fail
>> +kms_force_connector_basic@...ce-connector-state,Fail
>> +kms_force_connector_basic@...ce-edid,Fail
>> +kms_force_connector_basic@...ce-load-detect,Fail
>> +kms_force_connector_basic@...ne-stale-modes,Fail
>> +kms_invalid_mode@...-max-clock,Fail
>> +kms_plane_scaling@...nes-upscale-20x20,Fail
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-25,Fail
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-5,Fail
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-75,Fail
>> +kms_plane_scaling@...cale-with-modifier-20x20,Fail
>> +kms_plane_scaling@...cale-with-pixel-format-20x20,Fail
>> +kms_plane_scaling@...cale-with-rotation-20x20,Fail
>> +kms_properties@..._properties-sanity-atomic,Fail
>> +kms_properties@...ne-properties-atomic,Fail
>> +kms_properties@...ne-properties-legacy,Fail
>> +kms_rmfb@...se-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@...fb25-bad-modifier,Fail
>> +kms_bw@...ear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-3-displays-3840x2160p,Fail
>> +kms_color@...e-A-invalid-gamma-lut-sizes,Fail
>> +kms_plane_scaling@...cale-with-rotation-20x20,Fail
>> +kms_rmfb@...se-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@...ear-tiling-1-displays-1920x1080p
>> +kms_bw@...ear-tiling-1-displays-3840x2160p
>> +kms_bw@...ear-tiling-3-displays-1920x1080p
>> +kms_cursor_legacy@...sor-vs-flip-atomic
>> +kms_plane_scaling@...alid-num-scalers
>> +kms_plane_scaling@...nes-upscale-20x20
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-5
>> +kms_plane_scaling@...cale-with-modifier-20x20
>> +kms_plane_scaling@...cale-with-pixel-format-20x20
>> +kms_prop_blob@...alid-set-prop-any
>> +kms_properties@..._properties-sanity-atomic
>> +kms_properties@...ne-properties-atomic
>> +kms_properties@...ne-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@...nector-properties-atomic,Fail
>> +kms_properties@..._properties-sanity-atomic,Fail
>> +kms_properties@..._properties-sanity-non-atomic,Fail
>> +kms_properties@...nector-properties-legacy,Fail
>> +kms_cursor_legacy@...ked-bo,Fail
>> +kms_cursor_legacy@...ked-move,Fail
>> +kms_cursor_legacy@...gle-bo,Fail
>> +kms_cursor_legacy@...gle-move,Fail
>> +kms_cursor_legacy@...ture-bo,Fail
>> +kms_cursor_legacy@...ture-move,Fail
>> +kms_hdmi_inject@...ect-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@...ce-connector-state
>> +kms_force_connector_basic@...ce-edid
>> +kms_force_connector_basic@...ce-load-detect
>> +kms_force_connector_basic@...ne-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@...fb25-bad-modifier,Fail
>> +kms_cursor_legacy@...-pipes-forked-bo,Fail
>> +kms_cursor_legacy@...-pipes-forked-move,Fail
>> +kms_cursor_legacy@...-pipes-single-bo,Fail
>> +kms_cursor_legacy@...-pipes-single-move,Fail
>> +kms_cursor_legacy@...-pipes-torture-bo,Fail
>> +kms_cursor_legacy@...-pipes-torture-move,Fail
>> +kms_cursor_legacy@...e-A-forked-bo,Fail
>> +kms_cursor_legacy@...e-A-forked-move,Fail
>> +kms_cursor_legacy@...e-A-single-bo,Fail
>> +kms_cursor_legacy@...e-A-single-move,Fail
>> +kms_cursor_legacy@...e-A-torture-bo,Fail
>> +kms_cursor_legacy@...e-A-torture-move,Fail
>> +kms_hdmi_inject@...ect-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@...ce-connector-state
>> +kms_force_connector_basic@...ce-edid
>> +kms_force_connector_basic@...ce-load-detect
>> +kms_force_connector_basic@...ne-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@...fb25-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@...ce-connector-state
>> +kms_force_connector_basic@...ce-edid
>> +kms_force_connector_basic@...ce-load-detect
>> +kms_force_connector_basic@...ne-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@...-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@...sor-vs-flip-toggle,Fail
>> +kms_cursor_legacy@...sor-vs-flip-varying-size,Fail
>> +kms_cursor_legacy@...sorA-vs-flipA-atomic-transitions,Crash
>> +kms_pipe_crc_basic@...pare-crc-sanitycheck-nv12,Fail
>> +kms_plane@...el-format,Fail
>> +kms_plane@...el-format-source-clamping,Fail
>> +kms_plane@...ne-position-covered,Fail
>> +kms_plane@...ne-position-hole,Fail
>> +kms_plane@...ne-position-hole-dpms,Fail
>> +kms_plane_alpha_blend@...ha-7efc,Fail
>> +kms_plane_alpha_blend@...erage-7efc,Fail
>> +kms_plane_alpha_blend@...erage-vs-premult-vs-constant,Fail
>> +kms_plane_alpha_blend@...e-A-alpha-7efc,Fail
>> +kms_plane_alpha_blend@...e-A-coverage-7efc,Fail
>> +kms_plane_alpha_blend@...e-A-coverage-vs-premult-vs-constant,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-7efc,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-basic,Fail
>> +kms_plane_alpha_blend@...e-B-alpha-opaque-fb,Fail
>> +kms_plane_alpha_blend@...e-B-constant-alpha-max,Fail
>> +kms_plane_alpha_blend@...e-B-constant-alpha-mid,Fail
>> +kms_plane_alpha_blend@...e-B-coverage-7efc,Fail
>> +kms_plane_alpha_blend@...e-B-coverage-vs-premult-vs-constant,Fail
>> +kms_rmfb@...se-fd,Fail
>> +kms_universal_plane@...able-primary-vs-flip-pipe-b,Fail
>> +kms_universal_plane@...versal-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@...mic-pipe-A-tiling-none
>> +kms_atomic_transition@...eset-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@...ear-tiling-.*-displays-3840x2160p
>> +
>> +# Until igt fix lands: https://patchwork.freedesktop.org/patch/493175/
>> +kms_bw@...ear-tiling-2.*
>> +kms_bw@...ear-tiling-3.*
>> +kms_bw@...ear-tiling-4.*
>> +kms_bw@...ear-tiling-5.*
>> +kms_bw@...ear-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@...mic-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@...-0-25,Fail
>> +kms_color@...-0-50,Fail
>> +kms_color@...-0-75,Fail
>> +kms_color@...-blue-to-red,Fail
>> +kms_color@...-green-to-red,Fail
>> +kms_color@...-negative,Fail
>> +kms_color@...-red-to-blue,Fail
>> +kms_color@...-signed,Fail
>> +kms_color@...e-A-ctm-0-25,Fail
>> +kms_color@...e-A-ctm-0-5,Fail
>> +kms_color@...e-A-ctm-0-75,Fail
>> +kms_color@...e-A-ctm-blue-to-red,Fail
>> +kms_color@...e-A-ctm-green-to-red,Fail
>> +kms_color@...e-A-ctm-max,Fail
>> +kms_color@...e-A-ctm-negative,Fail
>> +kms_color@...e-A-ctm-red-to-blue,Fail
>> +kms_color@...e-A-legacy-gamma,Fail
>> +kms_cursor_legacy@...ic-flip-after-cursor-atomic,Fail
>> +kms_cursor_legacy@...ic-flip-after-cursor-legacy,Fail
>> +kms_cursor_legacy@...ic-flip-after-cursor-varying-size,Fail
>> +kms_cursor_legacy@...ic-flip-before-cursor-atomic,Fail
>> +kms_cursor_legacy@...ic-flip-before-cursor-legacy,Fail
>> +kms_cursor_legacy@...ic-flip-before-cursor-varying-size,Fail
>> +kms_cursor_legacy@...sor-vs-flip-atomic,Fail
>> +kms_cursor_legacy@...sor-vs-flip-atomic-transitions,Fail
>> +kms_cursor_legacy@...sor-vs-flip-atomic-transitions-varying-size,Fail
>> +kms_cursor_legacy@...sor-vs-flip-legacy,Fail
>> +kms_cursor_legacy@...sor-vs-flip-toggle,Fail
>> +kms_cursor_legacy@...sor-vs-flip-varying-size,Fail
>> +kms_cursor_legacy@...sorA-vs-flipA-toggle,Fail
>> +kms_cursor_legacy@...p-vs-cursor-atomic,Fail
>> +kms_cursor_legacy@...p-vs-cursor-crc-atomic,Fail
>> +kms_cursor_legacy@...p-vs-cursor-crc-legacy,Fail
>> +kms_cursor_legacy@...p-vs-cursor-legacy,Fail
>> +kms_cursor_legacy@...rt-flip-after-cursor-atomic-transitions,Fail
>> +kms_cursor_legacy@...rt-flip-after-cursor-atomic-transitions-varying-size,Fail 
>>
>> +kms_cursor_legacy@...rt-flip-after-cursor-toggle,Fail
>> +kms_cursor_legacy@...rt-flip-before-cursor-atomic-transitions,Fail
>> +kms_cursor_legacy@...rt-flip-before-cursor-atomic-transitions-varying-size,Fail 
>>
>> +kms_pipe_crc_basic@...pare-crc-sanitycheck-nv12,Fail
>> +kms_plane@...el-format,Fail
>> +kms_plane@...el-format-source-clamping,Fail
>> +kms_plane_alpha_blend@...ha-7efc,Fail
>> +kms_plane_alpha_blend@...erage-7efc,Fail
>> +kms_plane_alpha_blend@...erage-vs-premult-vs-constant,Fail
>> +kms_plane_alpha_blend@...e-A-alpha-7efc,Fail
>> +kms_plane_alpha_blend@...e-A-coverage-7efc,Fail
>> +kms_plane_alpha_blend@...e-A-coverage-vs-premult-vs-constant,Fail
>> +kms_plane_cursor@...rlay,Fail
>> +kms_plane_cursor@...e-A-overlay-size-128,Fail
>> +kms_plane_cursor@...e-A-overlay-size-256,Fail
>> +kms_plane_cursor@...e-A-overlay-size-64,Fail
>> +kms_plane_cursor@...e-A-viewport-size-128,Fail
>> +kms_plane_cursor@...e-A-viewport-size-256,Fail
>> +kms_plane_cursor@...e-A-viewport-size-64,Fail
>> +kms_plane_cursor@...wport,Fail
>> +kms_plane_scaling@...nscale-with-pixel-format-factor-0-25,Timeout
>> +kms_plane_scaling@...nscale-with-pixel-format-factor-0-5,Timeout
>> +kms_plane_scaling@...nscale-with-pixel-format-factor-0-75,Timeout
>> +kms_plane_scaling@...ne-downscale-with-pixel-format-factor-0-25,Timeout
>> +kms_plane_scaling@...ne-downscale-with-pixel-format-factor-0-5,Timeout
>> +kms_plane_scaling@...ne-downscale-with-pixel-format-factor-0-75,Timeout
>> +kms_plane_scaling@...ne-scaler-with-clipping-clamping-pixel-formats,Timeout 
>>
>> +kms_plane_scaling@...ne-scaler-with-pixel-format-unity-scaling,Timeout
>> +kms_plane_scaling@...nes-downscale-factor-0-25,Fail
>> +kms_plane_scaling@...ler-with-clipping-clamping,Timeout
>> +kms_plane_scaling@...ler-with-pixel-format-unity-scaling,Timeout
>> +kms_rmfb@...se-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@...p-vs-cursor-toggle
>> +kms_cursor_legacy@...e-A-forked-bo
>> +kms_cursor_legacy@...e-A-forked-move
>> +kms_cursor_legacy@...rt-flip-before-cursor-toggle
>> +kms_flip@...s-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@...ear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-3-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-3-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-3-displays-3840x2160p,Fail
>> +kms_flip@...ic-flip-vs-wf_vblank,Crash
>> +kms_force_connector_basic@...ce-load-detect,Fail
>> +kms_invalid_mode@...-max-clock,Crash
>> +kms_plane@...el-format,Crash
>> +kms_plane@...el-format-source-clamping,Crash
>> +kms_plane@...ne-position-hole,Crash
>> +kms_plane@...ne-position-hole-dpms,Crash
>> +kms_plane_cursor@...rlay,Crash
>> +kms_plane_cursor@...e-A-overlay-size-128,Fail
>> +kms_plane_cursor@...e-A-overlay-size-256,Fail
>> +kms_plane_cursor@...e-A-overlay-size-64,Fail
>> +kms_plane_cursor@...e-A-primary-size-128,Fail
>> +kms_plane_cursor@...e-A-primary-size-256,Fail
>> +kms_plane_cursor@...e-A-primary-size-64,Fail
>> +kms_plane_cursor@...e-A-viewport-size-128,Fail
>> +kms_plane_cursor@...e-A-viewport-size-256,Fail
>> +kms_plane_cursor@...e-A-viewport-size-64,Fail
>> +kms_plane_cursor@...e-B-overlay-size-128,Fail
>> +kms_plane_cursor@...e-B-overlay-size-256,Fail
>> +kms_plane_cursor@...e-B-overlay-size-64,Fail
>> +kms_plane_cursor@...e-B-primary-size-128,Fail
>> +kms_plane_cursor@...e-B-primary-size-256,Fail
>> +kms_plane_cursor@...e-B-primary-size-64,Fail
>> +kms_plane_cursor@...e-B-viewport-size-128,Fail
>> +kms_plane_cursor@...e-B-viewport-size-256,Fail
>> +kms_plane_cursor@...e-B-viewport-size-64,Fail
>> +kms_plane_cursor@...mary,Crash
>> +kms_plane_cursor@...wport,Crash
>> +kms_plane_lowres@...ing-none,Fail
>> +kms_plane_scaling@...nscale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@...nscale-with-rotation-factor-0-25,Fail
>> +kms_plane_scaling@...cale-with-modifier-20x20,Fail
>> +kms_plane_scaling@...cale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@...cale-with-pixel-format-20x20,Fail
>> +kms_plane_scaling@...cale-with-pixel-format-factor-0-25,Fail
>> +kms_plane_scaling@...cale-with-rotation-20x20,Fail
>> +kms_prime@...ic-crc,Fail
>> +kms_properties@...nector-properties-atomic,Crash
>> +kms_properties@...nector-properties-legacy,Crash
>> +kms_properties@..._properties-sanity-atomic,Crash
>> +kms_properties@..._properties-sanity-non-atomic,Crash
>> +kms_setmode@...alid-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@...fb25-bad-modifier
>> +kms_cursor_crc@.*
>> +kms_invalid_mode@...-max-clock,Crash
>> +kms_pipe_crc_basic@.*
>> +kms_properties@...nector-properties-atomic,Crash
>> +kms_properties@..._properties-sanity-atomic,Crash
>> +kms_properties@..._properties-sanity-non-atomic,Crash
>> +kms_rmfb@...se-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@...e-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@...able-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@...acy-gamma,Fail
>> +kms_color@...e-A-legacy-gamma,Fail
>> +kms_color@...e-B-legacy-gamma,Fail
>> +kms_flip@...ic-flip-vs-wf_vblank,Fail
>> +kms_flip@...cking-wf_vblank,Fail
>> +kms_flip@...s-vs-vblank-race,Fail
>> +kms_flip@...p-vs-absolute-wf_vblank,Fail
>> +kms_flip@...p-vs-absolute-wf_vblank-interruptible,Fail
>> +kms_flip@...p-vs-blocking-wf-vblank,Fail
>> +kms_flip@...p-vs-panning,Fail
>> +kms_flip@...p-vs-panning-interruptible,Fail
>> +kms_flip@...p-vs-wf_vblank-interruptible,Fail
>> +kms_flip@...eset-vs-vblank-race,Fail
>> +kms_flip@...eset-vs-vblank-race-interruptible,Fail
>> +kms_flip@...in-flip-fb-recreate,Fail
>> +kms_flip@...in-flip-fb-recreate-interruptible,Fail
>> +kms_flip@...in-flip-ts-check,Fail
>> +kms_flip@...in-flip-ts-check-interruptible,Fail
>> +kms_flip@...vblank-ts-check,Fail
>> +kms_flip@...vblank-ts-check-interruptible,Fail
>> +kms_invalid_mode@...-max-clock,Fail
>> +kms_plane@...el-format,Fail
>> +kms_plane@...el-format-source-clamping,Fail
>> +kms_plane@...ne-panning-bottom-right,Fail
>> +kms_plane@...ne-panning-top-left,Fail
>> +kms_plane@...ne-position-covered,Fail
>> +kms_plane_cursor@...e-B-overlay-size-128,Fail
>> +kms_plane_cursor@...e-B-overlay-size-256,Fail
>> +kms_plane_cursor@...e-B-overlay-size-64,Fail
>> +kms_plane_cursor@...e-B-primary-size-128,Fail
>> +kms_plane_cursor@...e-B-primary-size-256,Fail
>> +kms_plane_cursor@...e-B-primary-size-64,Fail
>> +kms_plane_cursor@...e-B-viewport-size-128,Fail
>> +kms_plane_cursor@...e-B-viewport-size-256,Fail
>> +kms_plane_cursor@...e-B-viewport-size-64,Fail
>> +kms_plane_multiple@...mic-pipe-B-tiling-none,Fail
>> +kms_plane_multiple@...ing-none,Fail
>> +kms_prime@...ic-crc,Fail
>> +kms_rmfb@...se-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@...p-vs-expired-vblank
>> +kms_flip@...eset-vs-vblank-race-interruptible,Fail
>> +kms_pipe_crc_basic@.*
>> +kms_pipe_crc_basic@...pare-crc-sanitycheck-pipe-A
>> +kms_pipe_crc_basic@...pare-crc-sanitycheck-pipe-B
>> +kms_plane@...ne-position-hole
>> +kms_plane_multiple@...mic-pipe-A-tiling-none
>> +kms_plane_multiple@...mic-pipe-B-tiling-none
>> +kms_sequence@...-forked
>> +kms_sequence@...-forked-busy
>> +kms_setmode@...ic
>> +kms_universal_plane@...versal-plane-pipe-B-functional,UnexpectedPass
>> +kms_vblank@...e-A-accuracy-idle
>> +kms_vblank@...e-A-query-busy
>> +kms_vblank@...e-A-query-forked-busy
>> +kms_vblank@...e-A-wait-idle
>> +kms_vblank@...e-B-accuracy-idle
>> +kms_vblank@...e-B-query-busy
>> +kms_vblank@...e-B-query-forked-busy
>> +kms_vblank@...e-B-wait-idle
>> +kms_flip@...s-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@...fb25-bad-modifier,Fail
>> +kms_addfb_basic@...-pitch-65536,Fail
>> +kms_addfb_basic@...too-small,Fail
>> +kms_addfb_basic@...e-max,Fail
>> +kms_addfb_basic@...-high,Fail
>> +kms_atomic_transition@...ne-primary-toggle-with-vblank-wait,Fail
>> +kms_bw@...ear-tiling-1-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-1-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-1-displays-3840x2160p,Fail
>> +kms_bw@...ear-tiling-2-displays-1920x1080p,Fail
>> +kms_bw@...ear-tiling-2-displays-2560x1440p,Fail
>> +kms_bw@...ear-tiling-2-displays-3840x2160p,Fail
>> +kms_invalid_mode@...-max-clock,Fail
>> +kms_plane_scaling@...nscale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@...nscale-with-rotation-factor-0-25,Fail
>> +kms_plane_scaling@...nes-upscale-20x20,Fail
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-25,Fail
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-5,Fail
>> +kms_plane_scaling@...nes-upscale-20x20-downscale-factor-0-75,Fail
>> +kms_plane_scaling@...cale-with-modifier-20x20,Fail
>> +kms_plane_scaling@...cale-with-modifier-factor-0-25,Fail
>> +kms_plane_scaling@...cale-with-pixel-format-20x20,Fail
>> +kms_plane_scaling@...cale-with-pixel-format-factor-0-25,Fail
>> +kms_plane_scaling@...cale-with-rotation-20x20,Fail
>> +kms_vblank@...c-id,Fail
>> +kms_vblank@...alid,Fail
>> +kms_vblank@...e-A-accuracy-idle,Fail
>> +kms_vblank@...e-A-query-busy,Fail
>> +kms_vblank@...e-A-query-forked,Fail
>> +kms_vblank@...e-A-query-forked-busy,Fail
>> +kms_vblank@...e-A-query-idle,Fail
>> +kms_vblank@...e-A-ts-continuation-idle,Fail
>> +kms_vblank@...e-A-ts-continuation-modeset,Fail
>> +kms_vblank@...e-A-ts-continuation-suspend,Fail
>> +kms_vblank@...e-A-wait-busy,Fail
>> +kms_vblank@...e-A-wait-forked,Fail
>> +kms_vblank@...e-A-wait-forked-busy,Fail
>> +kms_vblank@...e-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@...p-vs-suspend.*
>> \ No newline at end of file
>> diff --git a/test b/test
>> new file mode 100644
>> index 000000000000..e69de29bb2d1

-- 
David Heidelberg
Consultant Software Engineer

Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
Registered in England & Wales, no. 5513718


Download attachment "OpenPGP_0x69F567861C1EC014.asc" of type "application/pgp-keys" (682 bytes)

Download attachment "OpenPGP_signature.asc" of type "application/pgp-signature" (229 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ