[PATCH i-g-t v4 0/8] tests/kms_colorop: don't request colorop updates indefinitely and other improvements

Melissa Wen <[email protected]>
Newsgroups org.freedesktop.lists.igt-dev
Message-ID <[email protected]>
IGT currently lets colorop property changes be staged on color pipelines that
aren't active, which the uAPI will reject after some kernel fixes [1]:
colorop properties may only change on a currently active pipeline, or on one
activated or deactivated in the same atomic commit. This series fixes the
lib/igt_kms and colorop property tests to respect it.

- Patch 1 clears the colorop changed flag after a commit, so that later
  commits don't re-submit changes on an inactive color pipeline.

- Patch 2 prevents a colorop from being marked as changed just for checking
  whether a property enum value is supported. Together with patch 1, this
  matches the current expectation of allowing property changes on colorops
  that are part of a currently active color pipeline, or of a color pipeline
  that will be activated or deactivated in the same atomic commit, while
  rejecting attempts to change inactive colorops.

- Patch 3 restricts colorop property testing to planes that support the plane
  COLOR_PIPELINE property, i.e. planes that have a colorop pipeline, since not
  all planes have to support it.

- Patch 4 attaches a different framebuffer to non-primary planes so that the
  primary plane stays enabled and, with it, the CRTC under test: AMD requires
  an active primary plane to keep the CRTC active.

- Patch 5 (new) extends igt_plane_set_color_pipeline() to accept NULL as the
  "Bypass" color pipeline and removes set_color_pipeline_bypass(), converting
  all its callers.

- Patch 6 fixes the kms_properties tests to match the colorop update
  requirement of only allowing changes to colorops that are part of an active
  plane color pipeline.

- Patch 7 ensures kms_color_pipeline only runs on Intel devices. As color
  validation works better with writeback than with CRC, other devices should
  prefer kms_colorop if they have writeback support. If not, they should work
  on adapting kms_color_pipeline to their specs.

- Patch 8 (new) adds macros for walking the colorops in a color pipeline, as
  well as all the color pipelines supported by a given plane.

[1] https://lore.kernel.org/dri-devel/[email protected]/

Let me know your thoughts!

Melissa

[v1] https://lore.kernel.org/igt-dev/[email protected]/
Changes:
- cover kms_properties (John H)
- add Alex H t-b tags

[v2] https://lore.kernel.org/igt-dev/[email protected]/
Changes:
- split patch 3 into three: one that checks that the COLOR_PIPELINE property
  exists before testing colorops of a given plane; another to ensure an active
  primary plane for each CRTC to match AMD's requirement; and the last one to
  only check colorop properties if they're part of an active color pipeline
- extra space fix

[v3] https://lore.kernel.org/igt-dev/[email protected]/
Changes:
- fix memory leak when enabling/disabling non-primary planes (Alex H/Chaitanya)
- fix type of variable to match igt_find_colorop (Alex H)
- fix typo and grammar in commit messages (Alex H)
- do the Intel device check earlier
- new patch extending igt_plane_set_color_pipeline() to accept NULL as
  "Bypass", replacing the open-coded setting in patch 6
- new patch adding macros for walking color pipelines and colorops (Jani)

Melissa Wen (8):
  lib/igt_kms: clear colorop-changed flag after commit
  tests/kms_colorop_helper: only check if a given enum value exists
  tests/kms_properties: don't check colorop if no plane color pipeline
    prop
  tests/kms_properties: give non-primary planes their own fb
  lib/igt_kms: extend igt_plane_set_color_pipeline to accept Bypass
  tests/kms_properties: check colorop properties on active color
    pipelines
  tests/kms_color_pipeline: skip if not an Intel device
  lib/igt_kms: add macros to iterate color pipelines and colorops

 lib/igt_kms.c                                 | 90 ++++++++++++++-----
 lib/igt_kms.h                                 | 13 +++
 .../chamelium/kms_chamelium_color_pipeline.c  |  2 +-
 tests/kms_color_pipeline.c                    |  4 +-
 tests/kms_colorop.c                           | 23 ++---
 tests/kms_colorop_helper.c                    | 49 ++++------
 tests/kms_colorop_helper.h                    |  1 -
 tests/kms_properties.c                        | 42 ++++++---
 8 files changed, 143 insertions(+), 81 deletions(-)

-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.