Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v5 0/3] tests/kms_writeback: Add clone mode subtest
@ 2025-01-29  3:29 Jessica Zhang
  2025-01-29  3:29 ` [PATCH i-g-t v5 1/3] lib/igt_kms: Add helper to get encoder index Jessica Zhang
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Jessica Zhang @ 2025-01-29  3:29 UTC (permalink / raw)
  To: Petri Latvala, Arkadiusz Hiler, Kamil Konieczny,
	Juha-Pekka Heikkila, Bhanuprakash Modem, Ashutosh Dixit
  Cc: quic_abhinavk, igt-dev, Alex Hung, Esha Bharadwaj, Jessica Zhang

Add a subtest that will iterate through all pairs of
non-writeback and writeback cloned outputs and dump the writeback
framebuffer for each pair. It also supports performing CRC validation on
each cloned WB pair.

This series includes:

- Adjust the duplicate pipe check in igt_display_refresh() to allow for
  combinations of valid clones
- Moving the writeback dump to its own subtest
- Adding a subtest to dump or perform CRC validation on all
  writeback+non-writeback cloned pairs

To validate the clone mode buffer via CRC, run the following command:

./build/tests/kms_writeback [--run-subtest check-valid-clones]

To dump the clone mode buffer, run the following command:

IGT_FRAME_DUMP_PATH=<dump path> FRAME_PNG_FILE_NAME=<file name> \
	./build/tests/kms_writeback [--run-subtest check-valid-clones] -d

This will output a file named <file name>-encoder<writeback encoder
id>-encoder<primary display encoder id>

---
Changes in v6:
- igt_output_clone_invalid -> igt_output_is_valid_clone (for
  readability)
- Refresh output before checking if nonwb_output and writeback output
  are valid clones so that the check-valid-clones subtest doesn't fail
  for drivers where there are no clones
- Added num_clones counter to mark check-valid-clones subtest as skipped
  for drivers with no clones

Changes in v5:
- Added check for pipes in use back to igt_display_refresh (Abhinav)
- igt_output_clone_valid -> igt_output_clone_invalid (the check returns
  true if the encoder bit *isn't* in the possible_clones mask
- Added support for CRC validation of cloned WB output
- Link to v4: https://lore.kernel.org/r/20240925-igt-cwb-v4-0-e516cd1e888e@quicinc.com

Changes in v4:
- Fix compiler issues with igt_output_clone_valid()
- Add a NULL commit to clean up each non-writeback output
- Link to v3: https://lore.kernel.org/r/20240919-igt-cwb-v3-0-2bb3161f1f96@quicinc.com

Changes in v3:
- Dropped change to force a modeset after igt_display_require()
- Fixed incorrect author name
- Grab the primary display mode as part of the clone mode subtest
  (instead of requiring user to specify the mode)
- Link to v2: https://lore.kernel.org/r/20240828-igt-cwb-v2-0-7b255c730c55@quicinc.com

Changes in v2:
- Corrected author email
- Link to v1: https://lore.kernel.org/r/20240828-igt-cwb-v1-0-48aee421fc97@quicinc.com

---
Esha Bharadwaj (3):
      lib/igt_kms: Add helper to get encoder index
      lib/igt_kms: loosen duplicate check in igt_display_refresh
      tests/kms_writeback: Add subtest for valid clone mode

 lib/igt_kms.c         |  64 ++++++++++++++++++++++++++++++--
 lib/igt_kms.h         |   2 +
 tests/kms_setmode.c   |  14 +------
 tests/kms_writeback.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++++--
 4 files changed, 162 insertions(+), 19 deletions(-)
---
base-commit: 76102a17560c6e6fc6528db29286b0266ccc48ef
change-id: 20240827-igt-cwb-23fd81d3a7a4

Best regards,
-- 
Jessica Zhang <quic_jesszhan@quicinc.com>


^ permalink raw reply	[flat|nested] 12+ messages in thread
* [PATCH i-g-t v5 0/3] tests/kms_writeback: Add clone mode subtest
@ 2024-10-17  1:22 Jessica Zhang
  2024-10-17  1:22 ` [PATCH i-g-t v5 1/3] lib/igt_kms: Add helper to get encoder index Jessica Zhang
  0 siblings, 1 reply; 12+ messages in thread
From: Jessica Zhang @ 2024-10-17  1:22 UTC (permalink / raw)
  To: Petri Latvala, Arkadiusz Hiler, Kamil Konieczny,
	Juha-Pekka Heikkila, Bhanuprakash Modem, Ashutosh Dixit
  Cc: Alex Hung, quic_abhinavk, igt-dev, Esha Bharadwaj, Jessica Zhang

Add a subtest that will iterate through all pairs of
non-writeback and writeback cloned outputs and dump the writeback
framebuffer for each pair. It also supports performing CRC validation on
each cloned WB pair.

This series includes:

- Adjust the duplicate pipe check in igt_display_refresh() to allow for
  combinations of valid clones
- Moving the writeback dump to its own subtest
- Adding a subtest to dump or perform CRC validation on all
  writeback+non-writeback cloned pairs

This series depends on this DRM framework change [1] to avoid issues
where modeset isn't happening when the writeback and primary display
outputs have the same mode.

[1] https://patchwork.freedesktop.org/series/138284/

To validate the clone mode buffer via CRC, run the following command:

./build/tests/kms_writeback [--run-subtest check-valid-clones]

To dump the clone mode buffer, run the following command:

IGT_FRAME_DUMP_PATH=<dump path> FRAME_PNG_FILE_NAME=<file name> \
	./build/tests/kms_writeback [--run-subtest check-valid-clones] -d

This will output a file named <file name>-encoder<writeback encoder
id>-encoder<primary display encoder id>

---
Changes in v5:
- Added check for pipes in use back to igt_display_refresh (Abhinav)
- igt_output_clone_valid -> igt_output_clone_invalid (the check returns
  true if the encoder bit *isn't* in the possible_clones mask
- Added support for CRC validation of cloned WB output
- Link to v4: https://lore.kernel.org/r/20240925-igt-cwb-v4-0-e516cd1e888e@quicinc.com

Changes in v4:
- Fix compiler issues with igt_output_clone_valid()
- Add a NULL commit to clean up each non-writeback output
- Link to v3: https://lore.kernel.org/r/20240919-igt-cwb-v3-0-2bb3161f1f96@quicinc.com

Changes in v3:
- Dropped change to force a modeset after igt_display_require()
- Fixed incorrect author name
- Grab the primary display mode as part of the clone mode subtest
  (instead of requiring user to specify the mode)
- Link to v2: https://lore.kernel.org/r/20240828-igt-cwb-v2-0-7b255c730c55@quicinc.com

Changes in v2:
- Corrected author email
- Link to v1: https://lore.kernel.org/r/20240828-igt-cwb-v1-0-48aee421fc97@quicinc.com

---
Esha Bharadwaj (3):
      lib/igt_kms: Add helper to get encoder index
      lib/igt_kms: loosen duplicate check in igt_display_refresh
      tests/kms_writeback: Add subtest for valid clone mode

 lib/igt_kms.c         | 64 ++++++++++++++++++++++++++++++++++--
 lib/igt_kms.h         |  2 ++
 tests/kms_setmode.c   | 14 ++------
 tests/kms_writeback.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++---
 4 files changed, 151 insertions(+), 19 deletions(-)
---
base-commit: 42f9e9702f74a4993318adea936baaa186084689
change-id: 20240827-igt-cwb-23fd81d3a7a4

Best regards,
-- 
Jessica Zhang <quic_jesszhan@quicinc.com>


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-02-10 12:06 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-29  3:29 [PATCH i-g-t v5 0/3] tests/kms_writeback: Add clone mode subtest Jessica Zhang
2025-01-29  3:29 ` [PATCH i-g-t v5 1/3] lib/igt_kms: Add helper to get encoder index Jessica Zhang
2025-01-30 12:51   ` Kamil Konieczny
2025-02-10 12:05   ` Sharma, Swati2
2025-01-29  3:29 ` [PATCH i-g-t v5 2/3] lib/igt_kms: loosen duplicate check in igt_display_refresh Jessica Zhang
2025-01-30 12:59   ` Kamil Konieczny
2025-01-29  3:29 ` [PATCH i-g-t v5 3/3] tests/kms_writeback: Add subtest for valid clone mode Jessica Zhang
2025-01-29  6:13 ` ✓ Xe.CI.BAT: success for tests/kms_writeback: Add clone mode subtest (rev7) Patchwork
2025-01-29  6:26 ` ✓ i915.CI.BAT: " Patchwork
2025-01-29 15:54 ` ✗ i915.CI.Full: failure " Patchwork
2025-01-29 19:33 ` ✗ Xe.CI.Full: " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2024-10-17  1:22 [PATCH i-g-t v5 0/3] tests/kms_writeback: Add clone mode subtest Jessica Zhang
2024-10-17  1:22 ` [PATCH i-g-t v5 1/3] lib/igt_kms: Add helper to get encoder index Jessica Zhang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox