* [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation
@ 2023-11-24 9:35 Bhanuprakash Modem
2023-11-24 9:35 ` [igt-dev] [i-g-t 1/5] tests/kms/testplan: Move testplan documentation to beginning of the file Bhanuprakash Modem
` (8 more replies)
0 siblings, 9 replies; 15+ messages in thread
From: Bhanuprakash Modem @ 2023-11-24 9:35 UTC (permalink / raw)
To: igt-dev, swati2.sharma
Optimizations:
- Move common stuff to TEST level
- Move documentation to beginning of the file
- Align Mega features to internal tools
- Avoid duplicate names on Mega feature vs Functionality
V2: Rebase
Bhanuprakash Modem (5):
tests/kms/testplan: Move testplan documentation to beginning of the
file
tests/kms/testplan: Regroup testplan documentation
tests/kms/testplan: Optimize KMS testplan documentation
tests/kms/testplan: Fix Mega Feature in testplan documentation
tests/kms/testplan: Avoid duplicate names on Mega feature vs
Functionality
tests/chamelium/kms_chamelium_audio.c | 68 +-
tests/chamelium/kms_chamelium_color.c | 59 +-
tests/chamelium/kms_chamelium_edid.c | 181 +-
tests/chamelium/kms_chamelium_frames.c | 181 +-
tests/chamelium/kms_chamelium_hpd.c | 362 +-
tests/intel/kms_big_fb.c | 275 +-
tests/intel/kms_big_joiner.c | 42 +-
tests/intel/kms_busy.c | 90 +-
tests/intel/kms_ccs.c | 16 +-
tests/intel/kms_cdclk.c | 41 +-
tests/intel/kms_dirtyfb.c | 24 +-
tests/intel/kms_draw_crc.c | 72 +-
tests/intel/kms_dsc.c | 9 +-
tests/intel/kms_fb_coherency.c | 21 +-
tests/intel/kms_fbcon_fbt.c | 26 +-
tests/intel/kms_fence_pin_leak.c | 11 +-
tests/intel/kms_flip_scaled_crc.c | 71 +-
tests/intel/kms_flip_tiling.c | 11 +-
tests/intel/kms_frontbuffer_tracking.c | 5746 +++++++++++-------------
tests/intel/kms_legacy_colorkey.c | 18 +-
tests/intel/kms_mmap_write_crc.c | 13 +-
tests/intel/kms_pipe_b_c_ivb.c | 29 +-
tests/intel/kms_pm_backlight.c | 33 +-
tests/intel/kms_pm_dc.c | 43 +-
tests/intel/kms_pm_lpsp.c | 20 +-
tests/intel/kms_pm_rpm.c | 4 +
tests/intel/kms_psr.c | 155 +-
tests/intel/kms_psr2_sf.c | 49 +-
tests/intel/kms_psr2_su.c | 20 +-
tests/intel/kms_psr_stress_test.c | 22 +-
tests/intel/kms_pwrite_crc.c | 10 +-
tests/kms_3d.c | 9 +-
tests/kms_addfb_basic.c | 356 +-
tests/kms_async_flips.c | 82 +-
tests/kms_atomic.c | 141 +-
tests/kms_atomic_interruptible.c | 88 +-
tests/kms_atomic_transition.c | 157 +-
tests/kms_bw.c | 19 +-
tests/kms_color.c | 124 +-
tests/kms_concurrent.c | 9 +-
tests/kms_content_protection.c | 120 +-
tests/kms_cursor_crc.c | 131 +-
tests/kms_cursor_edge_walk.c | 20 +-
tests/kms_cursor_legacy.c | 426 +-
tests/kms_display_modes.c | 34 +-
tests/kms_dither.c | 28 +-
tests/kms_dp_aux_dev.c | 11 +-
tests/kms_feature_discovery.c | 43 +-
tests/kms_flip.c | 229 +-
tests/kms_flip_event_leak.c | 10 +-
tests/kms_force_connector_basic.c | 52 +-
tests/kms_getfb.c | 139 +-
tests/kms_hdmi_inject.c | 25 +-
tests/kms_hdr.c | 106 +-
tests/kms_invalid_mode.c | 9 +-
tests/kms_lease.c | 88 +-
tests/kms_multipipe_modeset.c | 7 +-
tests/kms_panel_fitting.c | 23 +-
tests/kms_pipe_crc_basic.c | 120 +-
tests/kms_plane.c | 114 +-
tests/kms_plane_alpha_blend.c | 82 +-
tests/kms_plane_cursor.c | 20 +-
tests/kms_plane_lowres.c | 47 +-
tests/kms_plane_multiple.c | 51 +-
tests/kms_plane_scaling.c | 400 +-
tests/kms_prime.c | 26 +-
tests/kms_prop_blob.c | 84 +-
tests/kms_properties.c | 43 +-
tests/kms_rmfb.c | 25 +-
tests/kms_rotation_crc.c | 202 +-
tests/kms_scaling_modes.c | 13 +-
tests/kms_selftest.c | 13 +-
tests/kms_sequence.c | 56 +-
tests/kms_setmode.c | 40 +-
tests/kms_sysfs_edid_timing.c | 12 +-
tests/kms_tiled_display.c | 10 +-
tests/kms_tv_load_detect.c | 7 +-
tests/kms_universal_plane.c | 33 +-
tests/kms_vblank.c | 61 +-
tests/kms_vrr.c | 33 +-
tests/kms_writeback.c | 43 +-
tests/testdisplay.c | 12 +-
82 files changed, 5026 insertions(+), 6729 deletions(-)
--
2.40.0
^ permalink raw reply [flat|nested] 15+ messages in thread* [igt-dev] [i-g-t 1/5] tests/kms/testplan: Move testplan documentation to beginning of the file 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem @ 2023-11-24 9:35 ` Bhanuprakash Modem 2023-11-24 17:07 ` Sharma, Swati2 2023-11-24 9:35 ` [igt-dev] [i-g-t 2/5] tests/kms/testplan: Regroup testplan documentation Bhanuprakash Modem ` (7 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Bhanuprakash Modem @ 2023-11-24 9:35 UTC (permalink / raw) To: igt-dev, swati2.sharma To maintain the uniformness, move testplan documentation to beginning of the file. Move TEST block to before the #includes, and SUBTEST block to after the #includes. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/chamelium/kms_chamelium_audio.c | 74 +- tests/chamelium/kms_chamelium_color.c | 59 +- tests/chamelium/kms_chamelium_edid.c | 199 +- tests/chamelium/kms_chamelium_frames.c | 208 +- tests/chamelium/kms_chamelium_hpd.c | 425 +- tests/intel/kms_big_fb.c | 320 +- tests/intel/kms_big_joiner.c | 50 +- tests/intel/kms_busy.c | 108 +- tests/intel/kms_ccs.c | 1 + tests/intel/kms_cdclk.c | 49 +- tests/intel/kms_dirtyfb.c | 24 +- tests/intel/kms_draw_crc.c | 81 +- tests/intel/kms_dsc.c | 1 + tests/intel/kms_fb_coherency.c | 21 +- tests/intel/kms_fbcon_fbt.c | 12 +- tests/intel/kms_fence_pin_leak.c | 11 +- tests/intel/kms_flip_scaled_crc.c | 1 + tests/intel/kms_flip_tiling.c | 11 +- tests/intel/kms_frontbuffer_tracking.c | 7361 ++++++++++++------------ tests/intel/kms_legacy_colorkey.c | 10 +- tests/intel/kms_mmap_write_crc.c | 13 +- tests/intel/kms_pipe_b_c_ivb.c | 7 +- tests/intel/kms_pm_backlight.c | 11 +- tests/intel/kms_pm_dc.c | 10 +- tests/intel/kms_pm_lpsp.c | 11 +- tests/intel/kms_psr.c | 68 +- tests/intel/kms_psr2_sf.c | 13 +- tests/intel/kms_psr2_su.c | 11 +- tests/intel/kms_psr_stress_test.c | 10 +- tests/intel/kms_pwrite_crc.c | 10 +- tests/kms_3d.c | 9 +- tests/kms_addfb_basic.c | 411 +- tests/kms_async_flips.c | 100 +- tests/kms_atomic.c | 176 +- tests/kms_atomic_interruptible.c | 100 +- tests/kms_atomic_transition.c | 179 +- tests/kms_bw.c | 11 +- tests/kms_color.c | 140 +- tests/kms_concurrent.c | 9 +- tests/kms_content_protection.c | 141 +- tests/kms_cursor_crc.c | 141 +- tests/kms_cursor_edge_walk.c | 13 +- tests/kms_cursor_legacy.c | 493 +- tests/kms_display_modes.c | 37 +- tests/kms_dither.c | 32 +- tests/kms_dp_aux_dev.c | 11 +- tests/kms_feature_discovery.c | 22 +- tests/kms_flip.c | 93 +- tests/kms_flip_event_leak.c | 10 +- tests/kms_force_connector_basic.c | 62 +- tests/kms_getfb.c | 161 +- tests/kms_hdmi_inject.c | 14 +- tests/kms_hdr.c | 127 +- tests/kms_invalid_mode.c | 1 + tests/kms_multipipe_modeset.c | 7 +- tests/kms_panel_fitting.c | 11 +- tests/kms_pipe_crc_basic.c | 149 +- tests/kms_plane.c | 131 +- tests/kms_plane_alpha_blend.c | 94 +- tests/kms_plane_cursor.c | 8 +- tests/kms_plane_lowres.c | 50 +- tests/kms_plane_multiple.c | 54 +- tests/kms_plane_scaling.c | 476 +- tests/kms_prime.c | 11 +- tests/kms_prop_blob.c | 96 +- tests/kms_properties.c | 39 +- tests/kms_rmfb.c | 13 +- tests/kms_rotation_crc.c | 237 +- tests/kms_scaling_modes.c | 7 +- tests/kms_selftest.c | 9 +- tests/kms_sequence.c | 60 +- tests/kms_setmode.c | 13 +- tests/kms_sysfs_edid_timing.c | 12 +- tests/kms_tiled_display.c | 1 + tests/kms_tv_load_detect.c | 7 +- tests/kms_universal_plane.c | 14 +- tests/kms_vblank.c | 31 +- tests/kms_vrr.c | 11 +- tests/kms_writeback.c | 17 +- tests/testdisplay.c | 12 +- 80 files changed, 6697 insertions(+), 6556 deletions(-) diff --git a/tests/chamelium/kms_chamelium_audio.c b/tests/chamelium/kms_chamelium_audio.c index 34ba0cb64..f86610861 100644 --- a/tests/chamelium/kms_chamelium_audio.c +++ b/tests/chamelium/kms_chamelium_audio.c @@ -24,14 +24,48 @@ * Lyude Paul <lyude@redhat.com> */ +/** + * TEST: kms chamelium audio + * Category: Display + * Description: Testing Audio with a Chamelium board + */ + #include "igt_eld.h" #include "igt_infoframe.h" #include "kms_chamelium_helper.h" /** - * TEST: kms chamelium audio - * Category: Display - * Description: Testing Audio with a Chamelium board + * SUBTEST: dp-audio + * Description: Playback various audio signals with various audio formats/rates, + * capture them and check they are correct + * Driver requirement: i915, xe + * Functionality: chamelium, dp_audio + * Mega feature: Audio, DP + * Test category: functionality test + * + * SUBTEST: hdmi-audio + * Description: Playback various audio signals with various audio formats/rates, + * capture them and check they are correct + * Driver requirement: i915, xe + * Functionality: chamelium, hdmi_audio + * Mega feature: Audio, HDMI + * Test category: functionality test + * + * SUBTEST: dp-audio-edid + * Description: Plug a connector with an EDID suitable for audio, check ALSA's + * EDID-Like Data reports the correct audio parameters + * Driver requirement: i915, xe + * Functionality: chamelium, dp_audio + * Mega feature: Audio, DP + * Test category: functionality test + * + * SUBTEST: hdmi-audio-edid + * Description: Plug a connector with an EDID suitable for audio, check ALSA's + * EDID-Like Data reports the correct audio parameters + * Driver requirement: i915, xe + * Functionality: chamelium, hdmi_audio + * Mega feature: Audio, HDMI + * Test category: functionality test */ /* Playback parameters control the audio signal we synthesize and send */ @@ -675,23 +709,6 @@ static bool check_audio_configuration(struct alsa *alsa, return true; } -/** - * SUBTEST: dp-audio - * Description: Playback various audio signals with various audio formats/rates, - * capture them and check they are correct - * Functionality: chamelium, dp_audio - * Mega feature: Audio, DP - * Test category: functionality test - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-audio - * Description: Playback various audio signals with various audio formats/rates, - * capture them and check they are correct - * Functionality: chamelium, hdmi_audio - * Mega feature: Audio, HDMI - * Test category: functionality test - * Driver requirement: i915, xe - */ static const char test_display_audio_desc[] = "Playback various audio signals with various audio formats/rates, " "capture them and check they are correct"; @@ -786,23 +803,6 @@ static void test_display_audio(chamelium_data_t *data, free(alsa); } -/** - * SUBTEST: dp-audio-edid - * Description: Plug a connector with an EDID suitable for audio, check ALSA's - * EDID-Like Data reports the correct audio parameters - * Functionality: chamelium, dp_audio - * Mega feature: Audio, DP - * Test category: functionality test - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-audio-edid - * Description: Plug a connector with an EDID suitable for audio, check ALSA's - * EDID-Like Data reports the correct audio parameters - * Functionality: chamelium, hdmi_audio - * Mega feature: Audio, HDMI - * Test category: functionality test - * Driver requirement: i915, xe - */ static const char test_display_audio_edid_desc[] = "Plug a connector with an EDID suitable for audio, check ALSA's " "EDID-Like Data reports the correct audio parameters"; diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c index 0a9788214..6123e8a5f 100644 --- a/tests/chamelium/kms_chamelium_color.c +++ b/tests/chamelium/kms_chamelium_color.c @@ -30,16 +30,43 @@ #include "kms_color_helper.h" -IGT_TEST_DESCRIPTION("Test Color Features at Pipe level using Chamelium to verify instead of CRC"); - /** * SUBTEST: degamma * Description: Verify that degamma LUT transformation works correctly + * Driver requirement: i915, xe * Functionality: chamelium, colorspace * Mega feature: Color mgmt * Test category: functionality test + * + * SUBTEST: gamma + * Description: Verify that gamma LUT transformation works correctly * Driver requirement: i915, xe + * Functionality: chamelium, colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * SUBTEST: ctm-%s + * Description: Check the color transformation %arg[1] + * Driver requirement: i915, xe + * Functionality: chamelium, colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * arg[1]: + * + * @0-25: for 0.25 transparancy + * @0-50: for 0.50 transparancy + * @0-75: for 0.75 transparancy + * @blue-to-red: from blue to red + * @green-to-red: from green to red + * @limited-range: with identity matrix + * @max: for max transparancy + * @negative: for negative transparancy + * @red-to-blue: from red to blue */ + +IGT_TEST_DESCRIPTION("Test Color Features at Pipe level using Chamelium to verify instead of CRC"); + /* * Draw 3 gradient rectangles in red, green and blue, with a maxed out * degamma LUT and verify we have the same frame dump as drawing solid color @@ -129,14 +156,6 @@ static bool test_pipe_degamma(data_t *data, return ret; } -/** - * SUBTEST: gamma - * Description: Verify that gamma LUT transformation works correctly - * Functionality: chamelium, colorspace - * Mega feature: Color mgmt - * Test category: functionality test - * Driver requirement: i915, xe - */ /* * Draw 3 gradient rectangles in red, green and blue, with a maxed out * gamma LUT and verify we have the same frame dump as drawing solid @@ -487,26 +506,6 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, igt_assert(test_t(data, data->primary, data->ports[port_idx])); } -/** - * SUBTEST: ctm-%s - * Description: Check the color transformation %arg[1] - * Functionality: chamelium, colorspace - * Mega feature: Color mgmt - * Test category: functionality test - * Driver requirement: i915, xe - * - * arg[1]: - * - * @0-25: for 0.25 transparancy - * @0-50: for 0.50 transparancy - * @0-75: for 0.75 transparancy - * @blue-to-red: from blue to red - * @green-to-red: from green to red - * @limited-range: with identity matrix - * @max: for max transparancy - * @negative: for negative transparancy - * @red-to-blue: from red to blue - */ static void run_ctm_tests_for_pipe(data_t *data, enum pipe p, color_t *expected_colors, diff --git a/tests/chamelium/kms_chamelium_edid.c b/tests/chamelium/kms_chamelium_edid.c index de8e51a04..f3f0b1e50 100644 --- a/tests/chamelium/kms_chamelium_edid.c +++ b/tests/chamelium/kms_chamelium_edid.c @@ -48,6 +48,106 @@ #include "monitor_edids/hdmi_edids.h" #include "monitor_edids/monitor_edids_helper.h" +/** + * SUBTEST: dp-edid-read + * Description: Make sure the EDID exposed by KMS is the same as the screen's + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: chamelium, dp_edid + * Mega feature: DP + * + * SUBTEST: hdmi-edid-read + * Description: Make sure the EDID exposed by KMS is the same as the screen's + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: chamelium, hdmi_edid + * Mega feature: HDMI + * + * SUBTEST: vga-edid-read + * Description: Make sure the EDID exposed by KMS is the same as the screen's + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: chamelium, vga_edid + * Mega feature: VGA + * + * SUBTEST: dp-edid-resolution-list + * Description: Get an EDID with many modes of different configurations, set + * them on the screen and check the screen resolution matches the + * mode resolution. + * Driver requirement: i915, xe + * Functionality: chamelium, dp_edid + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: dp-mode-timings + * Description: For each mode of the IGT base EDID, perform a modeset and check + * the mode detected by the Chamelium receiver matches the mode we + * set + * Driver requirement: i915, xe + * Functionality: chamelium, dp_edid + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-mode-timings + * Description: For each mode of the IGT base EDID, perform a modeset and check + * the mode detected by the Chamelium receiver matches the mode we + * set + * Driver requirement: i915, xe + * Functionality: chamelium, dp_edid + * Mega feature: DP + * Test category: functionality test + */ + +/** + * SUBTEST: dp-edid-stress-resolution-%s + * Description: Stress test the DUT by testing multiple EDIDs, one right after + * the other, and ensure their validity by check the real screen + * resolution vs the advertised mode (%arg[1]) resolution. + * Driver requirement: i915, xe + * Functionality: chamelium, dp_edid + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-edid-stress-resolution-%s + * Description: Stress test the DUT by testing multiple EDIDs, one right after + * the other, and ensure their validity by check the real screen + * resolution vs the advertised mode (%arg[1]) resolution. + * Driver requirement: i915, xe + * Functionality: chamelium, hdmi_edid + * Mega feature: HDMI + * Test category: functionality test + * + * arg[1]: + * + * @4k: 4K + * @non-4k: Non 4K + */ + +/** + * SUBTEST: dp-edid-change-during-%s + * Description: Simulate a screen being unplugged and another screen being + * plugged during suspend, check that a uevent is sent and + * connector status is updated during %arg[1] + * Driver requirement: i915, xe + * Functionality: chamelium, dp_edid + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-edid-change-during-%s + * Description: Simulate a screen being unplugged and another screen being + * plugged during suspend, check that a uevent is sent and + * connector status is updated during %arg[1] + * Driver requirement: i915, xe + * Functionality: chamelium, dp_edid + * Mega feature: DP + * Test category: functionality test + * + * arg[1]: + * + * @hibernate: hibernation + * @suspend: suspend + */ + #define MODE_CLOCK_ACCURACY 0.05 /* 5% */ static void get_connectors_link_status_failed(chamelium_data_t *data, @@ -145,28 +245,6 @@ static void check_mode(struct chamelium *chamelium, struct chamelium_port *port, igt_assert(video_params.vsync_polarity == mode_vsync_polarity); } -/** - * SUBTEST: dp-edid-read - * Description: Make sure the EDID exposed by KMS is the same as the screen's - * Test category: functionality test - * Functionality: chamelium, dp_edid - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-edid-read - * Description: Make sure the EDID exposed by KMS is the same as the screen's - * Test category: functionality test - * Functionality: chamelium, hdmi_edid - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * SUBTEST: vga-edid-read - * Description: Make sure the EDID exposed by KMS is the same as the screen's - * Test category: functionality test - * Functionality: chamelium, vga_edid - * Mega feature: VGA - * Driver requirement: i915, xe - */ static const char igt_custom_edid_type_read_desc[] = "Make sure the EDID exposed by KMS is the same as the screen's"; static void igt_custom_edid_type_read(chamelium_data_t *data, @@ -206,30 +284,6 @@ static void igt_custom_edid_type_read(chamelium_data_t *data, drmModeFreeConnector(connector); } -/** - * SUBTEST: dp-edid-stress-resolution-%s - * Description: Stress test the DUT by testing multiple EDIDs, one right after - * the other, and ensure their validity by check the real screen - * resolution vs the advertised mode (%arg[1]) resolution. - * Test category: functionality test - * Functionality: chamelium, dp_edid - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-edid-stress-resolution-%s - * Description: Stress test the DUT by testing multiple EDIDs, one right after - * the other, and ensure their validity by check the real screen - * resolution vs the advertised mode (%arg[1]) resolution. - * Test category: functionality test - * Functionality: chamelium, hdmi_edid - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * arg[1]: - * - * @4k: 4K - * @non-4k: Non 4K - */ static const char igt_edid_stress_resolution_desc[] = "Stress test the DUT by testing multiple EDIDs, one right after the other, " "and ensure their validity by check the real screen resolution vs the " @@ -299,16 +353,6 @@ static void edid_stress_resolution(chamelium_data_t *data, data->ports, data->port_count); } -/** - * SUBTEST: dp-edid-resolution-list - * Description: Get an EDID with many modes of different configurations, set - * them on the screen and check the screen resolution matches the - * mode resolution. - * Test category: functionality test - * Functionality: chamelium, dp_edid - * Mega feature: DP - * Driver requirement: i915, xe - */ static const char igt_edid_resolution_list_desc[] = "Get an EDID with many modes of different configurations, set them on the screen and check the" " screen resolution matches the mode resolution."; @@ -372,30 +416,6 @@ static void edid_resolution_list(chamelium_data_t *data, drmModeFreeConnector(connector); } -/** - * SUBTEST: dp-edid-change-during-%s - * Description: Simulate a screen being unplugged and another screen being - * plugged during suspend, check that a uevent is sent and - * connector status is updated during %arg[1] - * Test category: functionality test - * Functionality: chamelium, dp_edid - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-edid-change-during-%s - * Description: Simulate a screen being unplugged and another screen being - * plugged during suspend, check that a uevent is sent and - * connector status is updated during %arg[1] - * Test category: functionality test - * Functionality: chamelium, dp_edid - * Mega feature: DP - * Driver requirement: i915, xe - * - * arg[1]: - * - * @hibernate: hibernation - * @suspend: suspend - */ static const char test_suspend_resume_edid_change_desc[] = "Simulate a screen being unplugged and another screen being plugged " "during suspend, check that a uevent is sent and connector status is " @@ -448,25 +468,6 @@ static void test_suspend_resume_edid_change(chamelium_data_t *data, link_status_failed[1][p]); } -/** - * SUBTEST: dp-mode-timings - * Description: For each mode of the IGT base EDID, perform a modeset and check - * the mode detected by the Chamelium receiver matches the mode we - * set - * Test category: functionality test - * Functionality: chamelium, dp_edid - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-mode-timings - * Description: For each mode of the IGT base EDID, perform a modeset and check - * the mode detected by the Chamelium receiver matches the mode we - * set - * Test category: functionality test - * Functionality: chamelium, dp_edid - * Mega feature: DP - * Driver requirement: i915, xe - */ static const char test_mode_timings_desc[] = "For each mode of the IGT base EDID, perform a modeset and check the " "mode detected by the Chamelium receiver matches the mode we set"; diff --git a/tests/chamelium/kms_chamelium_frames.c b/tests/chamelium/kms_chamelium_frames.c index a313cd433..490ab3fe9 100644 --- a/tests/chamelium/kms_chamelium_frames.c +++ b/tests/chamelium/kms_chamelium_frames.c @@ -29,10 +29,114 @@ * Category: Display * Description: Tests requiring a Chamelium board */ + #include "igt_eld.h" #include "igt_infoframe.h" #include "kms_chamelium_helper.h" +/** + * SUBTEST: dp-crc-fast + * Description: Pick the first mode of the IGT base EDID, display and capture + * a few frames, then check captured frames are correct + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-crc-fast + * Description: Pick the first mode of the IGT base EDID, display and capture + * a few frames, then check captured frames are correct + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: hdmi-%s-formats + * Description: Pick the first mode of the IGT base EDID, display and capture a + * few frames, then check captured frames are correct + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: HDMI + * Test category: functionality test + * + * arg[1]: + * + * @crc-nonplanar: CRC with non planar formats + * @cmp-planar: Compare with planar formats + */ + +/** + * SUBTEST: vga-frame-dump + * Description: For each mode of the IGT base EDID, display and capture a few + * frames, then check captured frames are correct + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: VGA + * Test category: functionality test + * + * SUBTEST: dp-crc-%s + * Description: For each mode of the IGT base EDID, display and capture a %arg[1] + * frame(s), then check captured frame(s) are correct + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-crc-%s + * Description: For each mode of the IGT base EDID, display and capture a %arg[1] + * frame(s), then check captured frame(s) are correct + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: HDMI + * Test category: functionality test + * + * arg[1]: + * + * @single: single + * @multiple: multiple + */ + +/** + * SUBTEST: dp-frame-dump + * Description: For each mode of the IGT base EDID, display and capture a few + * frames, then download the captured frames and compare them + * bit-by-bit to the sent ones + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-frame-dump + * Description: For each mode of the IGT base EDID, display and capture a few + * frames, then download the captured frames and compare them + * bit-by-bit to the sent ones + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: hdmi-aspect-ratio + * Description: Pick a mode with a picture aspect-ratio, capture AVI InfoFrames + * and check they include the relevant fields + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: hdmi-%s-planes-random + * Description: Setup a few overlay planes with random parameters, capture the + * frame and check it matches the expected output + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Mega feature: HDMI + * Test category: functionality test + * + * arg[1]: + * + * @crc: CRC check + * @cmp: Compare + */ + #define connector_dynamic_subtest(name__, type__) \ igt_subtest_with_dynamic(name__) \ for_each_port(p, port) if (chamelium_port_get_type(port) == \ @@ -539,38 +643,6 @@ static void prepare_randomized_plane(chamelium_data_t *data, igt_remove_fb(data->drm_fd, &pattern_fb); } -/** - * SUBTEST: dp-crc-fast - * Description: Pick the first mode of the IGT base EDID, display and capture - * a few frames, then check captured frames are correct - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-crc-fast - * Description: Pick the first mode of the IGT base EDID, display and capture - * a few frames, then check captured frames are correct - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: HDMI - * Driver requirement: i915, xe - */ - -/** - * SUBTEST: hdmi-%s-formats - * Description: Pick the first mode of the IGT base EDID, display and capture a - * few frames, then check captured frames are correct - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * arg[1]: - * - * @crc-nonplanar: CRC with non planar formats - * @cmp-planar: Compare with planar formats - */ static const char test_display_one_mode_desc[] = "Pick the first mode of the IGT base EDID, display and capture a few " "frames, then check captured frames are correct"; @@ -607,36 +679,6 @@ static void test_display_one_mode(chamelium_data_t *data, drmModeFreeConnector(connector); } -/** - * SUBTEST: vga-frame-dump - * Description: For each mode of the IGT base EDID, display and capture a few - * frames, then check captured frames are correct - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: VGA - * Driver requirement: i915, xe - * - * SUBTEST: dp-crc-%s - * Description: For each mode of the IGT base EDID, display and capture a %arg[1] - * frame(s), then check captured frame(s) are correct - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-crc-%s - * Description: For each mode of the IGT base EDID, display and capture a %arg[1] - * frame(s), then check captured frame(s) are correct - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * arg[1]: - * - * @single: single - * @multiple: multiple - */ static const char test_display_all_modes_desc[] = "For each mode of the IGT base EDID, display and capture a few " "frames, then check captured frames are correct"; @@ -695,25 +737,6 @@ static void test_display_all_modes(chamelium_data_t *data, } while (++i < count_modes); } -/** - * SUBTEST: dp-frame-dump - * Description: For each mode of the IGT base EDID, display and capture a few - * frames, then download the captured frames and compare them - * bit-by-bit to the sent ones - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-frame-dump - * Description: For each mode of the IGT base EDID, display and capture a few - * frames, then download the captured frames and compare them - * bit-by-bit to the sent ones - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: HDMI - * Driver requirement: i915, xe - */ static const char test_display_frame_dump_desc[] = "For each mode of the IGT base EDID, display and capture a few " "frames, then download the captured frames and compare them " @@ -782,15 +805,6 @@ static void test_display_frame_dump(chamelium_data_t *data, } while (++i < count_modes); } -/** - * SUBTEST: hdmi-aspect-ratio - * Description: Pick a mode with a picture aspect-ratio, capture AVI InfoFrames - * and check they include the relevant fields - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: HDMI - * Driver requirement: i915, xe - */ static const char test_display_aspect_ratio_desc[] = "Pick a mode with a picture aspect-ratio, capture AVI InfoFrames and " "check they include the relevant fields"; @@ -871,20 +885,6 @@ static void test_display_aspect_ratio(chamelium_data_t *data, drmModeFreeConnector(connector); } -/** - * SUBTEST: hdmi-%s-planes-random - * Description: Setup a few overlay planes with random parameters, capture the - * frame and check it matches the expected output - * Test category: functionality test - * Functionality: chamelium, frame_integrity - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * arg[1]: - * - * @crc: CRC check - * @cmp: Compare - */ static const char test_display_planes_random_desc[] = "Setup a few overlay planes with random parameters, capture the frame " "and check it matches the expected output"; diff --git a/tests/chamelium/kms_chamelium_hpd.c b/tests/chamelium/kms_chamelium_hpd.c index f7a9422a9..360694c76 100644 --- a/tests/chamelium/kms_chamelium_hpd.c +++ b/tests/chamelium/kms_chamelium_hpd.c @@ -32,6 +32,217 @@ #include "kms_chamelium_helper.h" +/** + * SUBTEST: dp-hpd-fast + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd-fast + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: vga-hpd-fast + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: VGA + * Test category: functionality test + * + * SUBTEST: dp-hpd + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: vga-hpd + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: VGA + * Test category: functionality test + * + * SUBTEST: dp-hpd-%s + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd-%s + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: vga-hpd-%s + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: VGA + * Test category: functionality test + * + * arg[1]: + * + * @enable-disable-mode: Toggle the mode + * @with-enabled-mode: Enabling the mode + */ + +/** + * SUBTEST: dp-hpd-for-each-pipe + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug for each pipe with valid output + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd-for-each-pipe + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug for each pipe with valid output + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: vga-hpd-for-each-pipe + * Description: Check that we get uevents and updated connector status on + * hotplug and unplug for each pipe with valid output + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: VGA + * Test category: functionality test + * + * SUBTEST: dp-hpd-after-hibernate + * Description: Toggle HPD during Hibernation, check that uevents are sent and + * connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, hibernation + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd-after-hibernate + * Description: Toggle HPD during Hibernation, check that uevents are sent and + * connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, hibernation + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: vga-hpd-after-hibernate + * Description: Toggle HPD during Hibernation, check that uevents are sent and + * connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, hibernation + * Mega feature: VGA + * Test category: functionality test + * + * SUBTEST: dp-hpd-after-suspend + * Description: Toggle HPD during Suspend, check that uevents are sent and + * connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, suspend + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd-after-suspend + * Description: Toggle HPD during Suspend, check that uevents are sent and + * connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, suspend + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: vga-hpd-after-suspend + * Description: Toggle HPD during Suspend, check that uevents are sent and + * connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, suspend + * Mega feature: VGA + * Test category: functionality test + * + * SUBTEST: common-hpd-after-suspend + * Description: Toggle HPD during suspend on all connectors, check that uevents + * are sent and connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: common-hpd-after-hibernate + * Description: Toggle HPD during suspend on all connectors, check that uevents + * are sent and connector status is updated + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug, hibernation + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: vga-hpd-without-ddc + * Description: Disable DDC on a VGA connector, check we still get a uevent on + * hotplug + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: VGA + * Test category: functionality test + * + * SUBTEST: dp-hpd-storm + * Description: Trigger a series of hotplugs in a very small timeframe to + * simulate abad cable, check the kernel falls back to polling + * to avoid a hotplug storm + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd-storm + * Description: Trigger a series of hotplugs in a very small timeframe to + * simulate abad cable, check the kernel falls back to polling + * to avoid a hotplug storm + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: HDMI + * Test category: functionality test + * + * SUBTEST: dp-hpd-storm-disable + * Description: Disable HPD storm detection, trigger a storm and check the + * kernel doesn't detect one + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: DP + * Test category: functionality test + * + * SUBTEST: hdmi-hpd-storm-disable + * Description: Disable HPD storm detection, trigger a storm and check the + * kernel doesn't detect one + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Mega feature: HDMI + * Test category: functionality test + */ + #define HPD_STORM_PULSE_INTERVAL_DP 100 /* ms */ #define HPD_STORM_PULSE_INTERVAL_HDMI 200 /* ms */ @@ -110,84 +321,6 @@ static void try_suspend_resume_hpd(chamelium_data_t *data, } } -/** - * SUBTEST: dp-hpd-fast - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd-fast - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * SUBTEST: vga-hpd-fast - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: VGA - * Driver requirement: i915, xe - * - * SUBTEST: dp-hpd - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * SUBTEST: vga-hpd - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: VGA - * Driver requirement: i915, xe - * - * SUBTEST: dp-hpd-%s - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd-%s - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * SUBTEST: vga-hpd-%s - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: VGA - * Driver requirement: i915, xe - * - * arg[1]: - * - * @enable-disable-mode: Toggle the mode - * @with-enabled-mode: Enabling the mode - */ static const char test_basic_hotplug_desc[] = "Check that we get uevents and updated connector status on " "hotplug and unplug"; @@ -254,31 +387,6 @@ static void test_hotplug(chamelium_data_t *data, struct chamelium_port *port, igt_remove_fb(data->drm_fd, &fb); } -/** - * SUBTEST: dp-hpd-for-each-pipe - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug for each pipe with valid output - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd-for-each-pipe - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug for each pipe with valid output - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * SUBTEST: vga-hpd-for-each-pipe - * Description: Check that we get uevents and updated connector status on - * hotplug and unplug for each pipe with valid output - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: VGA - * Driver requirement: i915, xe - */ static const char test_hotplug_for_each_pipe_desc[] = "Check that we get uevents and updated connector status on " "hotplug and unplug for each pipe with valid output"; @@ -324,55 +432,6 @@ static void test_hotplug_for_each_pipe(chamelium_data_t *data, igt_hpd_storm_reset(data->drm_fd); } -/** - * SUBTEST: dp-hpd-after-hibernate - * Description: Toggle HPD during Hibernation, check that uevents are sent and - * connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, hibernation - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd-after-hibernate - * Description: Toggle HPD during Hibernation, check that uevents are sent and - * connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, hibernation - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * SUBTEST: vga-hpd-after-hibernate - * Description: Toggle HPD during Hibernation, check that uevents are sent and - * connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, hibernation - * Mega feature: VGA - * Driver requirement: i915, xe - * - * SUBTEST: dp-hpd-after-suspend - * Description: Toggle HPD during Suspend, check that uevents are sent and - * connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, suspend - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd-after-suspend - * Description: Toggle HPD during Suspend, check that uevents are sent and - * connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, suspend - * Mega feature: HDMI - * Driver requirement: i915, xe - * - * SUBTEST: vga-hpd-after-suspend - * Description: Toggle HPD during Suspend, check that uevents are sent and - * connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, suspend - * Mega feature: VGA - * Driver requirement: i915, xe - */ static const char test_suspend_resume_hpd_desc[] = "Toggle HPD during suspend, check that uevents are sent and connector " "status is updated"; @@ -396,23 +455,6 @@ static void test_suspend_resume_hpd(chamelium_data_t *data, igt_cleanup_uevents(mon); } -/** - * SUBTEST: common-hpd-after-suspend - * Description: Toggle HPD during suspend on all connectors, check that uevents - * are sent and connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, suspend - * Mega feature: General Display Features - * Driver requirement: i915, xe - * - * SUBTEST: common-hpd-after-hibernate - * Description: Toggle HPD during suspend on all connectors, check that uevents - * are sent and connector status is updated - * Test category: functionality test - * Functionality: chamelium, hotplug, hibernation - * Mega feature: General Display Features - * Driver requirement: i915, xe - */ static const char test_suspend_resume_hpd_common_desc[] = "Toggle HPD during suspend on all connectors, check that uevents are " "sent and connector status is updated"; @@ -442,15 +484,6 @@ static void test_suspend_resume_hpd_common(chamelium_data_t *data, igt_cleanup_uevents(mon); } -/** - * SUBTEST: vga-hpd-without-ddc - * Description: Disable DDC on a VGA connector, check we still get a uevent on - * hotplug - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: VGA - * Driver requirement: i915, xe - */ static const char test_hpd_without_ddc_desc[] = "Disable DDC on a VGA connector, check we still get a uevent on hotplug"; static void test_hpd_without_ddc(chamelium_data_t *data, @@ -477,25 +510,6 @@ static void test_hpd_without_ddc(chamelium_data_t *data, igt_cleanup_uevents(mon); } -/** - * SUBTEST: dp-hpd-storm - * Description: Trigger a series of hotplugs in a very small timeframe to - * simulate abad cable, check the kernel falls back to polling - * to avoid a hotplug storm - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd-storm - * Description: Trigger a series of hotplugs in a very small timeframe to - * simulate abad cable, check the kernel falls back to polling - * to avoid a hotplug storm - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: HDMI - * Driver requirement: i915, xe - */ static const char test_hpd_storm_detect_desc[] = "Trigger a series of hotplugs in a very small timeframe to simulate a" "bad cable, check the kernel falls back to polling to avoid a hotplug " @@ -530,23 +544,6 @@ static void test_hpd_storm_detect(chamelium_data_t *data, igt_hpd_storm_reset(data->drm_fd); } -/** - * SUBTEST: dp-hpd-storm-disable - * Description: Disable HPD storm detection, trigger a storm and check the - * kernel doesn't detect one - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: DP - * Driver requirement: i915, xe - * - * SUBTEST: hdmi-hpd-storm-disable - * Description: Disable HPD storm detection, trigger a storm and check the - * kernel doesn't detect one - * Test category: functionality test - * Functionality: chamelium, hotplug - * Mega feature: HDMI - * Driver requirement: i915, xe - */ static const char test_hpd_storm_disable_desc[] = "Disable HPD storm detection, trigger a storm and check the kernel " "doesn't detect one"; diff --git a/tests/intel/kms_big_fb.c b/tests/intel/kms_big_fb.c index 035c936d9..2fb435ff4 100644 --- a/tests/intel/kms_big_fb.c +++ b/tests/intel/kms_big_fb.c @@ -37,6 +37,168 @@ #include "xe/xe_ioctl.h" #include "xe/xe_query.h" +/** + * SUBTEST: linear-%dbpp-rotate-%d + * Description: Sanity check if addfb ioctl works correctly for given combination + * of Linear modifier with %arg[1]-bpp & %arg[2]-rotation + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, rotation + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 8, 16, 32, 64 + * arg[2].values: 0, 90, 180, 270 + */ + +/** + * SUBTEST: %s-%dbpp-rotate-%d + * Description: Sanity check if addfb ioctl works correctly for given combination + * of %arg[1] with %arg[2]-bpp & %arg[3]-rotation + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, rotation, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4-tiled: TILE-4 modifier + * @x-tiled: TILE-X modifier + * @y-tiled: TILE-Y modifier + * @yf-tiled: TILE-YF modifier + * + * arg[2].values: 8, 16, 32, 64 + * arg[3].values: 0, 90, 180, 270 + */ + +/** + * SUBTEST: linear-max-hw-stride-%dbpp-rotate-%d + * Description: Test maximum hardware supported stride length for given combination + * of linear modifier with max hardware stride length, %arg[1]-bpp, + * and %arg[2]-rotation + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, rotation + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 32, 64 + * arg[2].values: 0, 180 + */ + +/** + * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d + * Description: Test maximum hardware supported stride length for given combination + * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, + * and %arg[3]-rotation + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, rotation, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4-tiled: TILE-4 modifier + * @x-tiled: TILE-X modifier + * @y-tiled: TILE-Y modifier + * @yf-tiled: TILE-YF modifier + * + * arg[2].values: 32, 64 + * arg[3].values: 0, 180 + */ + +/** + * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-hflip + * Description: Test maximum hardware supported stride length for given combination + * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, + * and %arg[3]-rotation with H-flip mode + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, rotation, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-%s + * Description: Test maximum hardware supported stride length for given combination + * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, + * and %arg[3]-rotation with %arg[4] mode + * Driver requirement: i915, xe + * Functionality: async_flips, big_fbs, kms_gem_interop, rotation, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4-tiled: TILE-4 modifier + * @x-tiled: TILE-X modifier + * @y-tiled: TILE-Y modifier + * @yf-tiled: TILE-YF modifier + * + * arg[2].values: 32, 64 + * arg[3].values: 0, 180 + * + * arg[4]: + * + * @async-flip: Async flip + * @hflip-async-flip: Async & H-flip + */ + +/** + * SUBTEST: %s-addfb-size-overflow + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier + * with small bo. + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4-tiled: TILE-4 + * @x-tiled: TILE-X + * @y-tiled: TILE-Y + * @yf-tiled: TILE-YF + */ + +/** + * SUBTEST: %s-addfb-size-offset-overflow + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier + * and offsets with small bo + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4-tiled: TILE-4 + * @x-tiled: TILE-X + * @y-tiled: TILE-Y + * @yf-tiled: TILE-YF + */ + +/** + * SUBTEST: linear-addfb + * Description: Sanity check if addfb ioctl works correctly with Linear modifier + * for given size and strides of fb + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: %s-addfb + * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier + * for given size and strides of fb + * Driver requirement: i915, xe + * Functionality: big_fbs, kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4-tiled: TILE-4 + * @x-tiled: TILE-X + * @y-tiled: TILE-Y + * @yf-tiled: TILE-YF + */ + IGT_TEST_DESCRIPTION("Test big framebuffers"); typedef struct { @@ -588,108 +750,6 @@ max_hw_stride_async_flip_test(data_t *data) return true; } -/** - * SUBTEST: linear-%dbpp-rotate-%d - * Description: Sanity check if addfb ioctl works correctly for given combination - * of Linear modifier with %arg[1]-bpp & %arg[2]-rotation - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, rotation - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 8, 16, 32, 64 - * arg[2].values: 0, 90, 180, 270 - */ - -/** - * SUBTEST: %s-%dbpp-rotate-%d - * Description: Sanity check if addfb ioctl works correctly for given combination - * of %arg[1] with %arg[2]-bpp & %arg[3]-rotation - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4-tiled: TILE-4 modifier - * @x-tiled: TILE-X modifier - * @y-tiled: TILE-Y modifier - * @yf-tiled: TILE-YF modifier - * - * arg[2].values: 8, 16, 32, 64 - * arg[3].values: 0, 90, 180, 270 - */ - -/** - * SUBTEST: linear-max-hw-stride-%dbpp-rotate-%d - * Description: Test maximum hardware supported stride length for given combination - * of linear modifier with max hardware stride length, %arg[1]-bpp, - * and %arg[2]-rotation - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, rotation - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 32, 64 - * arg[2].values: 0, 180 - */ - -/** - * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d - * Description: Test maximum hardware supported stride length for given combination - * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, - * and %arg[3]-rotation - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4-tiled: TILE-4 modifier - * @x-tiled: TILE-X modifier - * @y-tiled: TILE-Y modifier - * @yf-tiled: TILE-YF modifier - * - * arg[2].values: 32, 64 - * arg[3].values: 0, 180 - */ - -/** - * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-hflip - * Description: Test maximum hardware supported stride length for given combination - * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, - * and %arg[3]-rotation with H-flip mode - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-%s - * Description: Test maximum hardware supported stride length for given combination - * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, - * and %arg[3]-rotation with %arg[4] mode - * Driver requirement: i915, xe - * Functionality: async_flips, big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4-tiled: TILE-4 modifier - * @x-tiled: TILE-X modifier - * @y-tiled: TILE-Y modifier - * @yf-tiled: TILE-YF modifier - * - * arg[2].values: 32, 64 - * arg[3].values: 0, 180 - * - * arg[4]: - * - * @async-flip: Async flip - * @hflip-async-flip: Async & H-flip - */ static void test_scanout(data_t *data) { igt_output_t *output; @@ -735,22 +795,6 @@ static void test_scanout(data_t *data) igt_skip("unsupported configuration\n"); } -/** - * SUBTEST: %s-addfb-size-overflow - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier - * with small bo. - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4-tiled: TILE-4 - * @x-tiled: TILE-X - * @y-tiled: TILE-Y - * @yf-tiled: TILE-YF - */ static void test_size_overflow(data_t *data) { @@ -795,22 +839,6 @@ test_size_overflow(data_t *data) gem_close(data->drm_fd, bo); } -/** - * SUBTEST: %s-addfb-size-offset-overflow - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier - * and offsets with small bo - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4-tiled: TILE-4 - * @x-tiled: TILE-X - * @y-tiled: TILE-Y - * @yf-tiled: TILE-YF - */ static void test_size_offset_overflow(data_t *data) { @@ -869,30 +897,6 @@ static int rmfb(int fd, uint32_t id) return err; } -/** - * SUBTEST: linear-addfb - * Description: Sanity check if addfb ioctl works correctly with Linear modifier - * for given size and strides of fb - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: %s-addfb - * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier - * for given size and strides of fb - * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4-tiled: TILE-4 - * @x-tiled: TILE-X - * @y-tiled: TILE-Y - * @yf-tiled: TILE-YF - */ static void test_addfb(data_t *data) { diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c index 3b6dc530b..3f2091723 100644 --- a/tests/intel/kms_big_joiner.c +++ b/tests/intel/kms_big_joiner.c @@ -29,8 +29,33 @@ * Category: Display * Description: Test big joiner */ + #include "igt.h" +/** + * SUBTEST: invalid-modeset + * Description: Verify if the modeset on the adjoining pipe is rejected when + * the pipe is active with a big joiner modeset + * Driver requirement: i915, xe + * Functionality: 2p1p + * Mega feature: Bigjoiner + * Test category: functionality test + * + * SUBTEST: basic + * Description: Verify the basic modeset on big joiner mode on all pipes + * Driver requirement: i915, xe + * Functionality: 2p1p + * Mega feature: Bigjoiner + * Test category: functionality test + * + * SUBTEST: 2x-modeset + * Description: Verify simultaneous modeset on 2 big joiner outputs + * Driver requirement: i915, xe + * Functionality: 2p1p + * Mega feature: Bigjoiner + * Test category: functionality test + */ + IGT_TEST_DESCRIPTION("Test big joiner"); struct bigjoiner_output { @@ -50,15 +75,6 @@ typedef struct { static int max_dotclock; -/** - * SUBTEST: invalid-modeset - * Description: Verify if the modeset on the adjoining pipe is rejected when - * the pipe is active with a big joiner modeset - * Driver requirement: i915, xe - * Functionality: 2p1p - * Mega feature: Bigjoiner - * Test category: functionality test - */ static void test_invalid_modeset(data_t *data) { igt_output_t *output; @@ -99,14 +115,6 @@ static void test_invalid_modeset(data_t *data) igt_assert_lt(ret, 0); } -/** - * SUBTEST: basic - * Description: Verify the basic modeset on big joiner mode on all pipes - * Driver requirement: i915, xe - * Functionality: 2p1p - * Mega feature: Bigjoiner - * Test category: functionality test - */ static void test_basic_modeset(data_t *data) { drmModeModeInfo *mode; @@ -143,14 +151,6 @@ static void test_basic_modeset(data_t *data) igt_display_commit2(display, COMMIT_ATOMIC); } -/** - * SUBTEST: 2x-modeset - * Description: Verify simultaneous modeset on 2 big joiner outputs - * Driver requirement: i915, xe - * Functionality: 2p1p - * Mega feature: Bigjoiner - * Test category: functionality test - */ static void test_dual_display(data_t *data) { drmModeModeInfo *mode; diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c index fe450160f..c65d71b19 100644 --- a/tests/intel/kms_busy.c +++ b/tests/intel/kms_busy.c @@ -26,6 +26,7 @@ * Category: Display * Description: Basic check of KMS ABI with busy framebuffers. */ + #include <sys/poll.h> #include <signal.h> #include <time.h> @@ -33,6 +34,61 @@ #include "i915/gem.h" #include "igt.h" +/** + * SUBTEST: basic + * Description: Test for basic check of KMS ABI with busy framebuffers. + * Driver requirement: i915 + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: basic-hang + * Description: Test for basic check of KMS ABI with busy framebuffers. + * Driver requirement: i915 + * Functionality: kms_core, hang + * Mega feature: General Display Features + * Test category: functionality test + */ + +/** + * SUBTEST: extended-modeset-hang-%s + * Description: Test for basic check of KMS ABI with busy framebuffers. + * Driver requirement: i915 + * Functionality: kms_core, hang + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @newfb: New framebuffer + * @oldfb: Old framebuffer + * @newfb-with-reset: New framebuffer with reset + * @oldfb-with-reset: Old framebuffer with reset + */ + +/** + * SUBTEST: extended-pageflip-hang-%s + * Description: Test for basic check of KMS ABI with busy framebuffers. + * Driver requirement: i915 + * Functionality: kms_core, hang + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @newfb: New framebuffer + * @oldfb: Old framebuffer + */ + +/** + * SUBTEST: extended-pageflip-modeset-hang-oldfb + * Description: Test for basic check of KMS ABI with busy framebuffers. + * Driver requirement: i915 + * Functionality: kms_core, hang + * Mega feature: General Display Features + * Test category: functionality test + */ + IGT_TEST_DESCRIPTION("Basic check of KMS ABI with busy framebuffers."); static bool all_pipes = false; @@ -136,21 +192,6 @@ static void flip_to_fb(igt_display_t *dpy, int pipe, put_ahnd(ahnd); } -/** - * SUBTEST: basic - * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: basic-hang - * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_flip(igt_display_t *dpy, int pipe, igt_output_t *output, bool modeset) { @@ -243,35 +284,6 @@ static void test_atomic_commit_hang(igt_display_t *dpy, igt_plane_t *primary, put_ahnd(ahnd); } -/** - * SUBTEST: extended-modeset-hang-%s - * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @newfb: New framebuffer - * @oldfb: Old framebuffer - * @newfb-with-reset: New framebuffer with reset - * @oldfb-with-reset: Old framebuffer with reset - */ - -/** - * SUBTEST: extended-pageflip-hang-%s - * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @newfb: New framebuffer - * @oldfb: Old framebuffer - */ static void test_hang(igt_display_t *dpy, enum pipe pipe, igt_output_t *output, bool modeset, bool hang_newfb) @@ -319,14 +331,6 @@ static void test_hang(igt_display_t *dpy, igt_remove_fb(dpy->drm_fd, &fb[0]); } -/** - * SUBTEST: extended-pageflip-modeset-hang-oldfb - * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_pageflip_modeset_hang(igt_display_t *dpy, igt_output_t *output, enum pipe pipe) diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c index f21a53082..d1eb735fa 100644 --- a/tests/intel/kms_ccs.c +++ b/tests/intel/kms_ccs.c @@ -29,6 +29,7 @@ * complemented by a color control surface (CCS) that the display * uses to interpret the compressed data. */ + #include "igt.h" #include "i915/gem_create.h" diff --git a/tests/intel/kms_cdclk.c b/tests/intel/kms_cdclk.c index 74bb254b9..97cb615c5 100644 --- a/tests/intel/kms_cdclk.c +++ b/tests/intel/kms_cdclk.c @@ -29,8 +29,33 @@ * Category: Display * Description: Test cdclk features : crawling and squashing */ + #include "igt.h" +/** + * SUBTEST: mode-transition-all-outputs + * Description: Mode transition (low to high) test to validate cdclk frequency + * change by simultaneous modesets on all pipes with valid outputs. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: mode-transition + * Description: Mode transition (low to high) test to validate cdclk frequency change. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-scaling + * Description: Plane scaling test to validate cdclk frequency change. + * Driver requirement: i915, xe + * Functionality: kms_core, plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + */ + IGT_TEST_DESCRIPTION("Test cdclk features : crawling and squashing"); #define HDISPLAY_4K 3840 @@ -253,15 +278,6 @@ static void test_mode_transition(data_t *data, enum pipe pipe, igt_output_t *out igt_remove_fb(display->drm_fd, &fb); } -/** - * SUBTEST: mode-transition-all-outputs - * Description: Mode transition (low to high) test to validate cdclk frequency - * change by simultaneous modesets on all pipes with valid outputs. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_mode_transition_on_all_outputs(data_t *data) { igt_display_t *display = &data->display; @@ -358,21 +374,6 @@ static void test_mode_transition_on_all_outputs(data_t *data) igt_remove_fb(data->drm_fd, &fb); } -/** - * SUBTEST: mode-transition - * Description: Mode transition (low to high) test to validate cdclk frequency change. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-scaling - * Description: Plane scaling test to validate cdclk frequency change. - * Driver requirement: i915, xe - * Functionality: kms_core, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - */ static void run_cdclk_test(data_t *data, uint32_t flags) { igt_display_t *display = &data->display; diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c index a6424dd8f..3318f8128 100644 --- a/tests/intel/kms_dirtyfb.c +++ b/tests/intel/kms_dirtyfb.c @@ -3,6 +3,16 @@ * Copyright © 2023 Intel Corporation */ +/** + * TEST: kms dirtyfb + * Category: Display + * Description: Test DIRTYFB ioctl functionality. + * Driver requirement: i915, xe + * Functionality: dirtyfb + * Mega feature: General Display Features + * Test category: functionality test + */ + #include <sys/types.h> #include "igt.h" @@ -13,18 +23,7 @@ #include "xe/xe_query.h" -IGT_TEST_DESCRIPTION("Test the DIRTYFB ioctl is working properly with " - "its related features: FBC, PSR and DRRS"); - /** - * TEST: kms dirtyfb - * Category: Display - * Description: Test DIRTYFB ioctl functionality. - * Driver requirement: i915, xe - * Functionality: dirtyfb - * Mega feature: General Display Features - * Test category: functionality test - * * SUBTEST: default-dirtyfb-ioctl * Description: Test DIRTYFB ioctl is working properly using GPU * frontbuffer rendering with features like FBC, PSR @@ -42,6 +41,9 @@ IGT_TEST_DESCRIPTION("Test the DIRTYFB ioctl is working properly with " * @psr: psr1 */ +IGT_TEST_DESCRIPTION("Test the DIRTYFB ioctl is working properly with " + "its related features: FBC, PSR and DRRS"); + #ifndef PAGE_ALIGN #ifndef PAGE_SIZE #define PAGE_SIZE 4096 diff --git a/tests/intel/kms_draw_crc.c b/tests/intel/kms_draw_crc.c index 4bde8fa59..7cd4c3ff1 100644 --- a/tests/intel/kms_draw_crc.c +++ b/tests/intel/kms_draw_crc.c @@ -27,9 +27,51 @@ * Category: Display * Description: Tests whether the igt_draw library actually works. */ + #include "i915/gem.h" #include "igt.h" +/** + * SUBTEST: draw-method-%s + * Description: Verify that igt draw library works for the %arg[1] method with + * different modifiers & DRM formats. + * Driver requirement: i915, xe + * Functionality: kms_core, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @blt: Blitter + * @mmap-wc: MMAP-WC + * @render: Render + */ + +/** + * SUBTEST: draw-method-%s + * Description: Verify that igt draw library works for the %arg[1] method with + * different modifiers & DRM formats. + * Driver requirement: i915 + * Functionality: kms_core, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @mmap-cpu: MMAP-CPU + * @mmap-gtt: MMAP-GTT + * @pwrite: PWRITE + */ + +/** + * SUBTEST: fill-fb + * Description: This subtest verifies CRC after filling fb with x-tiling or none. + * Driver requirement: i915, xe + * Functionality: kms_core, tiling + * Mega feature: General Display Features + * Test category: functionality test + */ + #define MAX_CONNECTORS 32 int drm_fd; @@ -143,37 +185,6 @@ static void get_method_crc(enum igt_draw_method method, uint32_t drm_format, igt_remove_fb(drm_fd, &fb); } -/** - * SUBTEST: draw-method-%s - * Description: Verify that igt draw library works for the %arg[1] method with - * different modifiers & DRM formats. - * Driver requirement: i915, xe - * Functionality: kms_core, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @blt: Blitter - * @mmap-wc: MMAP-WC - * @render: Render - */ - -/** - * SUBTEST: draw-method-%s - * Description: Verify that igt draw library works for the %arg[1] method with - * different modifiers & DRM formats. - * Driver requirement: i915 - * Functionality: kms_core, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @mmap-cpu: MMAP-CPU - * @mmap-gtt: MMAP-GTT - * @pwrite: PWRITE - */ static void draw_method_subtest(enum igt_draw_method method, uint32_t format_index, uint64_t modifier) { @@ -213,14 +224,6 @@ static void get_fill_crc(uint64_t modifier, igt_crc_t *crc) igt_remove_fb(drm_fd, &fb); } -/** - * SUBTEST: fill-fb - * Description: This subtest verifies CRC after filling fb with x-tiling or none. - * Driver requirement: i915, xe - * Functionality: kms_core, tiling - * Mega feature: General Display Features - * Test category: functionality test - */ static void fill_fb_subtest(void) { int rc; diff --git a/tests/intel/kms_dsc.c b/tests/intel/kms_dsc.c index 183944ef7..0df3613b3 100644 --- a/tests/intel/kms_dsc.c +++ b/tests/intel/kms_dsc.c @@ -35,6 +35,7 @@ * Category: Display * Description: Test to validate display stream compression */ + #include "kms_dsc_helper.h" /** diff --git a/tests/intel/kms_fb_coherency.c b/tests/intel/kms_fb_coherency.c index cd6b5da4b..c05bd0508 100644 --- a/tests/intel/kms_fb_coherency.c +++ b/tests/intel/kms_fb_coherency.c @@ -18,6 +18,17 @@ #include "igt.h" #include "xe/xe_ioctl.h" +/** + * SUBTEST: memset-crc + * Description: Use display controller CRC hardware to validate (non)coherency + * of memset operations on future scanout buffer objects + * mmapped with different mmap methods and different caching modes. + * Mega feature: General Display Features + * Functionality: kms_core + * Driver requirement: i915, xe + * Test category: functionality test + */ + typedef struct { int drm_fd; igt_display_t display; @@ -243,16 +254,6 @@ igt_main select_valid_pipe_output_combo(&data); } - /** - * SUBTEST: memset-crc - * Description: Use display controller CRC hardware to validate (non)coherency - * of memset operations on future scanout buffer objects - * mmapped with different mmap methods and different caching modes. - * Mega feature: General Display Features - * Functionality: kms_core - * Driver requirement: i915, xe - * Test category: functionality test - */ igt_subtest_with_dynamic("memset-crc") { if (igt_draw_supports_method(data.drm_fd, IGT_DRAW_MMAP_GTT)) { igt_dynamic("mmap-gtt") diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c index 4078309d9..d437d70f6 100644 --- a/tests/intel/kms_fbcon_fbt.c +++ b/tests/intel/kms_fbcon_fbt.c @@ -24,6 +24,13 @@ * */ +/** + * TEST: kms fbcon fbt + * Category: Display + * Description: Test the relationship between fbcon and the frontbuffer tracking + * infrastructure. + */ + #include "igt.h" #include "igt_device.h" #include "igt_psr.h" @@ -33,11 +40,6 @@ #include <fcntl.h> /** - * TEST: kms fbcon fbt - * Category: Display - * Description: Test the relationship between fbcon and the frontbuffer tracking - * infrastructure. - * * SUBTEST: fbc * Description: Test the relationship between fbcon and the frontbuffer tracking * infrastructure with fbc enabled. diff --git a/tests/intel/kms_fence_pin_leak.c b/tests/intel/kms_fence_pin_leak.c index 47808800f..24e7b011c 100644 --- a/tests/intel/kms_fence_pin_leak.c +++ b/tests/intel/kms_fence_pin_leak.c @@ -22,6 +22,12 @@ * */ +/** + * TEST: kms fence pin leak + * Category: Display + * Description: Exercises full ppgtt fence pin_count leak in the kernel. + */ + #include <errno.h> #include <limits.h> #include <stdbool.h> @@ -30,11 +36,8 @@ #include "i915/gem.h" #include "igt.h" + /** - * TEST: kms fence pin leak - * Category: Display - * Description: Exercises full ppgtt fence pin_count leak in the kernel. - * * SUBTEST: * Description: Along with the modeset, validate fence pin_count leakage. * Driver requirement: i915 diff --git a/tests/intel/kms_flip_scaled_crc.c b/tests/intel/kms_flip_scaled_crc.c index d3489c478..8f37299ea 100644 --- a/tests/intel/kms_flip_scaled_crc.c +++ b/tests/intel/kms_flip_scaled_crc.c @@ -27,6 +27,7 @@ * Category: Display * Description: Test flipping between scaled/nonscaled framebuffers */ + #include "igt.h" /** diff --git a/tests/intel/kms_flip_tiling.c b/tests/intel/kms_flip_tiling.c index a6c6514a6..3bf02564e 100644 --- a/tests/intel/kms_flip_tiling.c +++ b/tests/intel/kms_flip_tiling.c @@ -24,17 +24,20 @@ * Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> */ +/** + * TEST: kms flip tiling + * Category: Display + * Description: Test page flips and tiling scenarios + */ + #include <errno.h> #include <stdbool.h> #include <stdio.h> #include <string.h> #include "igt.h" + /** - * TEST: kms flip tiling - * Category: Display - * Description: Test page flips and tiling scenarios - * * SUBTEST: flip-change-tiling * Description: Check pageflip between modifiers * Driver requirement: i915, xe diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c index 213069947..085adc5b1 100644 --- a/tests/intel/kms_frontbuffer_tracking.c +++ b/tests/intel/kms_frontbuffer_tracking.c @@ -29,6 +29,7 @@ * Category: Display * Description: Test the Kernel's frontbuffer tracking mechanism and its related features: FBC, PSR and DRRS */ + #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> @@ -45,3785 +46,4170 @@ #include "igt_psr.h" /** + * SUBTEST: basic + * Description: Do some basic operations regardless of which features are enabled + * Driver requirement: i915, xe + * Functionality: fbt + * Mega feature: General Display Features + * Test category: functionality test + * * SUBTEST: plane-fbc-rte * Description: Sanity test to enable FBC on a plane. * Driver requirement: i915, xe * Functionality: fbc * Mega feature: General Display Features * Test category: functionality test + * + * SUBTEST: drrs-%dp-rte + * Description: Sanity test to enable DRRS with %arg[1] panels. + * Driver requirement: i915, xe + * Functionality: fbt, drrs + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-rte + * Description: Sanity test to enable FBC with %arg[1] panels. + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-rte + * Description: Sanity test to enable PSR with %arg[1] panels. + * Driver requirement: i915, xe + * Functionality: fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-rte + * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-rte + * Description: Sanity test to enable FBC & PSR with %arg[1] panels. + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-rte + * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. + * Driver requirement: i915, xe + * Functionality: fbt, drrs, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-rte + * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. + * Driver requirement: i915, xe + * Functionality: fbc, fbt, drrs, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 */ -#define TIME SLOW_QUICK(1000, 10000) - -IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " - "its related features: FBC, PSR and DRRS"); - -/* - * One of the aspects of this test is that, for every subtest, we try different - * combinations of the parameters defined by the struct below. Because of this, - * a single addition of a new parameter or subtest function can lead to hundreds - * of new subtests. +/** + * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test * - * In order to reduce the number combinations we cut the cases that don't make - * sense, such as writing on the secondary screen when there is only a single - * pipe, or flipping when the target is the offscreen buffer. We also hide some - * combinations that are somewhat redundant and don't add much value to the - * test. For example, since we already do the offscreen testing with a single - * pipe enabled, there's no much value in doing it again with dual pipes. If you - * still want to try these redundant tests, you need to use the --show-hidden - * option. + * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test * - * The most important hidden thing is the FEATURE_NONE set of tests. Whenever - * you get a failure on any test, it is important to check whether the same test - * fails with FEATURE_NONE - replace the feature name for "nop". If the nop test - * also fails, then it's likely the problem will be on the IGT side instead of - * the Kernel side. We don't expose this set of tests by default because (i) - * they take a long time to test; and (ii) if the feature tests work, then it's - * very likely that the nop tests will also work. + * SUBTEST: psr-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @indfb: Individual fb + * @shrfb: Shared fb + * + * arg[2]: + * + * @blt: Blitter + * @mmap-wc: MMAP-WC + * @render: Render */ -struct test_mode { - /* Are we going to enable just one monitor, or are we going to setup a - * dual screen environment for the test? */ - enum { - PIPE_SINGLE = 0, - PIPE_DUAL, - PIPE_COUNT, - } pipes; - - /* The primary screen is the one that's supposed to have the "feature" - * enabled on, but we have the option to draw on the secondary screen or - * on some offscreen buffer. We also only theck the CRC of the primary - * screen. */ - enum { - SCREEN_PRIM = 0, - SCREEN_SCND, - SCREEN_OFFSCREEN, - SCREEN_COUNT, - } screen; - - /* When we draw, we can draw directly on the primary plane, on the - * cursor or on the sprite plane. */ - enum { - PLANE_PRI = 0, - PLANE_CUR, - PLANE_SPR, - PLANE_COUNT, - } plane; - - /* We can organize the screens in a way that each screen has its own - * framebuffer, or in a way that all screens point to the same - * framebuffer, but on different places. This includes the offscreen - * screen. */ - enum { - FBS_INDIVIDUAL = 0, - FBS_SHARED, - FBS_COUNT, - } fbs; - /* Which features are we going to test now? This is a mask! - * FEATURE_DEFAULT is a special value which instruct the test to just - * keep what's already enabled by default in the Kernel. */ - enum { - FEATURE_NONE = 0, - FEATURE_FBC = 1, - FEATURE_PSR = 2, - FEATURE_DRRS = 4, - FEATURE_COUNT = 8, - FEATURE_DEFAULT = 8, - } feature; +/** + * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @indfb: Individual fb + * @shrfb: Shared fb + * + * arg[2]: + * + * @mmap-cpu: MMAP-CPU + * @mmap-gtt: MMAP-GTT + * @pwrite: PWRITE + */ - /* Possible pixel formats. We just use FORMAT_DEFAULT for most tests and - * only test a few things on the other formats. */ - enum pixel_format { - FORMAT_RGB888 = 0, - FORMAT_RGB565, - FORMAT_RGB101010, - FORMAT_COUNT, - FORMAT_DEFAULT = FORMAT_RGB888, - } format; - - /* There are multiple APIs where we can do the equivalent of a page flip - * and they exercise slightly different codepaths inside the Kernel. */ - enum flip_type { - FLIP_PAGEFLIP, - FLIP_MODESET, - FLIP_PLANES, - FLIP_COUNT, - } flip; - - enum tiling_type { - TILING_LINEAR = 0, - TILING_X, - TILING_Y, - TILING_4, - TILING_COUNT, - TILING_DEFAULT = TILING_X, - } tiling; - - enum igt_draw_method method; -}; - -enum color { - COLOR_RED, - COLOR_GREEN, - COLOR_BLUE, - COLOR_MAGENTA, - COLOR_CYAN, - COLOR_SCND_BG, - COLOR_PRIM_BG = COLOR_BLUE, - COLOR_OFFSCREEN_BG = COLOR_SCND_BG, -}; - -struct rect { - int x; - int y; - int w; - int h; - uint32_t color; -}; - -struct { - int fd; - int debugfs; - igt_display_t display; - - struct buf_ops *bops; -} drm; - -struct { - bool can_test; - - bool supports_last_action; - - struct timespec last_action; -} fbc = { - .can_test = false, - .supports_last_action = false, -}; - -struct { - bool can_test; -} psr = { - .can_test = false, -}; - -#define MAX_DRRS_STATUS_BUF_LEN 256 - -struct { - bool can_test; -} drrs = { - .can_test = false, -}; - -igt_pipe_crc_t *pipe_crc; -igt_crc_t *wanted_crc; -struct { - bool initialized; - igt_crc_t crc; -} blue_crcs[FORMAT_COUNT]; - -/* The goal of this structure is to easily allow us to deal with cases where we - * have a big framebuffer and the CRTC is just displaying a subregion of this - * big FB. */ -struct fb_region { - igt_plane_t *plane; - struct igt_fb *fb; - int x; - int y; - int w; - int h; -}; - -struct draw_pattern_info { - bool frames_stack; - int n_rects; - struct rect (*get_rect)(struct fb_region *fb, int r); - - bool initialized[FORMAT_COUNT]; - igt_crc_t *crcs[FORMAT_COUNT]; -}; - -/* Draw big rectangles on the screen. */ -struct draw_pattern_info pattern1; -/* 64x64 rectangles at x:0,y:0, just so we can draw on the cursor and sprite. */ -struct draw_pattern_info pattern2; -/* 64x64 rectangles at different positions, same color, for the move test. */ -struct draw_pattern_info pattern3; -/* Just a fullscreen green square. */ -struct draw_pattern_info pattern4; - -/* Command line parameters. */ -struct { - bool check_status; - bool check_crc; - bool fbc_check_compression; - bool fbc_check_last_action; - bool no_edp; - bool small_modes; - bool show_hidden; - int step; - int only_pipes; - int shared_fb_x_offset; - int shared_fb_y_offset; - enum tiling_type tiling; -} opt = { - .check_status = true, - .check_crc = true, - .fbc_check_compression = true, - .fbc_check_last_action = true, - .no_edp = false, - .small_modes = false, - .show_hidden= false, - .step = 0, - .only_pipes = PIPE_COUNT, - .shared_fb_x_offset = 248, - .shared_fb_y_offset = 500, - .tiling = TILING_DEFAULT, -}; - -struct modeset_params { - enum pipe pipe; - igt_output_t *output; - drmModeModeInfo mode; - - struct fb_region primary; - struct fb_region cursor; - struct fb_region sprite; -}; - -struct modeset_params prim_mode_params; -struct modeset_params scnd_mode_params; - -struct fb_region offscreen_fb; -struct screen_fbs { - bool initialized; - - struct igt_fb prim_pri; - struct igt_fb prim_cur; - struct igt_fb prim_spr; - - struct igt_fb scnd_pri; - struct igt_fb scnd_cur; - struct igt_fb scnd_spr; - - struct igt_fb offscreen; - struct igt_fb big; -} fbs[FORMAT_COUNT]; - -struct { - pthread_t thread; - bool stop; - - uint32_t handle; - uint32_t size; - uint32_t stride; - int width; - int height; - uint32_t color; - int bpp; - uint32_t tiling; -} busy_thread = { - .stop = true, -}; - -static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output) -{ - drmModeConnector *c = output->config.connector; - const drmModeModeInfo *smallest = NULL; - int i; - - if (c->connector_type == DRM_MODE_CONNECTOR_eDP) - return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); - - for (i = 0; i < c->count_modes; i++) { - const drmModeModeInfo *mode = &c->modes[i]; - - if (!smallest || - mode->hdisplay * mode->vdisplay < - smallest->hdisplay * smallest->vdisplay) - smallest = mode; - } - - if (smallest) - return igt_memdup(smallest, sizeof(*smallest)); - else - return igt_std_1024_mode_get(60); -} - -static drmModeModeInfo *connector_get_mode(igt_output_t *output) -{ - /* On HSW the CRC WA is so awful that it makes you think everything is - * bugged. */ - if (IS_HASWELL(intel_get_drm_devid(drm.fd)) && - output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP) - return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); - - if (opt.small_modes) - return get_connector_smallest_mode(output); - else - return igt_memdup(&output->config.default_mode, - sizeof(output->config.default_mode)); -} - -static void init_mode_params(struct modeset_params *params, - igt_output_t *output, enum pipe pipe) -{ - drmModeModeInfo *mode; - - igt_output_override_mode(output, NULL); - mode = connector_get_mode(output); - - params->pipe = pipe; - params->output = output; - params->mode = *mode; - - params->primary.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_PRIMARY); - params->primary.fb = NULL; - params->primary.x = 0; - params->primary.y = 0; - params->primary.w = mode->hdisplay; - params->primary.h = mode->vdisplay; - - params->cursor.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_CURSOR); - params->cursor.fb = NULL; - params->cursor.x = 0; - params->cursor.y = 0; - params->cursor.w = 64; - params->cursor.h = 64; - - params->sprite.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_OVERLAY); - igt_require(params->sprite.plane); - params->sprite.fb = NULL; - params->sprite.x = 0; - params->sprite.y = 0; - params->sprite.w = 64; - params->sprite.h = 64; - - free(mode); -} - -static bool find_connector(bool edp_only, bool pipe_a, - igt_output_t *forbidden_output, - enum pipe forbidden_pipe, - igt_output_t **ret_output, - enum pipe *ret_pipe) -{ - igt_output_t *output; - enum pipe pipe; - - for_each_pipe_with_valid_output(&drm.display, pipe, output) { - drmModeConnectorPtr c = output->config.connector; - - if (edp_only && c->connector_type != DRM_MODE_CONNECTOR_eDP) - continue; - - if (pipe_a && pipe != PIPE_A) - continue; - - if (output == forbidden_output || pipe == forbidden_pipe) { - igt_output_set_pipe(output, pipe); - igt_output_override_mode(output, connector_get_mode(output)); - - continue; - } - - if (c->connector_type == DRM_MODE_CONNECTOR_eDP && opt.no_edp) - continue; - - igt_output_set_pipe(output, pipe); - igt_output_override_mode(output, connector_get_mode(output)); - if (intel_pipe_output_combo_valid(&drm.display)) { - *ret_output = output; - *ret_pipe = pipe; - return true; - } - } - - return false; -} - -static bool init_modeset_cached_params(void) -{ - igt_output_t *prim_output = NULL, *scnd_output = NULL; - enum pipe prim_pipe, scnd_pipe; - - /* - * We have this problem where PSR is only present on eDP monitors and - * FBC is only present on pipe A for some platforms. So we search first - * for the ideal case of eDP supporting pipe A, and try the less optimal - * configs later, sacrificing one of the features. - * TODO: refactor the code in a way that allows us to have different - * sets of prim/scnd structs for different features. - */ - find_connector(true, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); - if (!prim_output) - find_connector(true, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); - if (!prim_output) - find_connector(false, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); - if (!prim_output) - find_connector(false, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); - - if (!prim_output) - return false; - - find_connector(false, false, prim_output, prim_pipe, - &scnd_output, &scnd_pipe); - - init_mode_params(&prim_mode_params, prim_output, prim_pipe); - - if (!scnd_output) { - scnd_mode_params.pipe = PIPE_NONE; - scnd_mode_params.output = NULL; - return true; - } - - init_mode_params(&scnd_mode_params, scnd_output, scnd_pipe); - return true; -} - -static uint64_t tiling_to_modifier(enum tiling_type tiling) -{ - switch (tiling) { - case TILING_LINEAR: - return DRM_FORMAT_MOD_LINEAR; - case TILING_X: - return I915_FORMAT_MOD_X_TILED; - case TILING_Y: - return I915_FORMAT_MOD_Y_TILED; - case TILING_4: - return I915_FORMAT_MOD_4_TILED; - default: - igt_assert(false); - } -} - -static void create_fb(enum pixel_format pformat, int width, int height, - enum tiling_type tiling, int plane, struct igt_fb *fb) -{ - uint32_t format; - uint64_t size, modifier; - unsigned int stride; - - switch (pformat) { - case FORMAT_RGB888: - if (plane == PLANE_CUR) - format = DRM_FORMAT_ARGB8888; - else - format = DRM_FORMAT_XRGB8888; - break; - case FORMAT_RGB565: - /* Only the primary plane supports 16bpp! */ - if (plane == PLANE_PRI) - format = DRM_FORMAT_RGB565; - else if (plane == PLANE_CUR) - format = DRM_FORMAT_ARGB8888; - else - format = DRM_FORMAT_XRGB8888; - break; - case FORMAT_RGB101010: - if (plane == PLANE_PRI) - format = DRM_FORMAT_XRGB2101010; - else if (plane == PLANE_CUR) - format = DRM_FORMAT_ARGB8888; - else - format = DRM_FORMAT_XRGB8888; - break; - default: - igt_assert(false); - } - - modifier = tiling_to_modifier(tiling); - - igt_warn_on(plane == PLANE_CUR && tiling != TILING_LINEAR); - - igt_calc_fb_size(drm.fd, width, height, format, modifier, &size, - &stride); - - igt_create_fb_with_bo_size(drm.fd, width, height, format, modifier, - IGT_COLOR_YCBCR_BT709, - IGT_COLOR_YCBCR_LIMITED_RANGE, - fb, size, stride); -} - -static uint32_t pick_color(struct igt_fb *fb, enum color ecolor) -{ - uint32_t color, r, g, b, b2, a; - bool alpha = false; - - switch (fb->drm_format) { - case DRM_FORMAT_RGB565: - a = 0x0; - r = 0x1F << 11; - g = 0x3F << 5; - b = 0x1F; - b2 = 0x10; - break; - case DRM_FORMAT_ARGB8888: - alpha = true; - case DRM_FORMAT_XRGB8888: - a = 0xFF << 24; - r = 0xFF << 16; - g = 0xFF << 8; - b = 0xFF; - b2 = 0x80; - break; - case DRM_FORMAT_ARGB2101010: - alpha = true; - case DRM_FORMAT_XRGB2101010: - a = 0x3 << 30; - r = 0x3FF << 20; - g = 0x3FF << 10; - b = 0x3FF; - b2 = 0x200; - break; - default: - igt_assert(false); - } - - switch (ecolor) { - case COLOR_RED: - color = r; - break; - case COLOR_GREEN: - color = g; - break; - case COLOR_BLUE: - color = b; - break; - case COLOR_MAGENTA: - color = r | b; - break; - case COLOR_CYAN: - color = g | b; - break; - case COLOR_SCND_BG: - color = b2; - break; - default: - igt_assert(false); - } - - if (alpha) - color |= a; +/** + * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @cur: Cursor plane + * @pri: Primary plane + * @spr: Sprite plane + * + * arg[3]: + * + * @mmap-cpu: MMAP-CPU + * @mmap-gtt: MMAP-GTT + * @pwrite: PWRITE + */ - return color; -} +/** + * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @cur: Cursor plane + * @pri: Primary plane + * @spr: Sprite plane + * + * arg[3]: + * + * @blt: Blitter + * @mmap-wc: MMAP-WC + * @render: Render + */ -static void fill_fb(struct igt_fb *fb, enum color ecolor) -{ - igt_draw_fill_fb(drm.fd, fb, pick_color(fb, ecolor)); -} +/** + * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @blt: Blitter + * @mmap-wc: MMAP-WC + * @render: Render + */ -/* - * This is how the prim, scnd and offscreen FBs should be positioned inside the - * shared FB. The prim buffer starts at the X and Y offsets defined by - * opt.shared_fb_{x,y}_offset, then scnd starts at the same X pixel offset, - * right after prim ends on the Y axis, then the offscreen fb starts after scnd - * ends. Just like the picture: +/** + * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test * - * +-------------------------+ - * | shared fb | - * | +------------------+ | - * | | prim | | - * | | | | - * | | | | - * | | | | - * | +------------------+--+ - * | | scnd | - * | | | - * | | | - * | +---------------+-----+ - * | | offscreen | | - * | | | | - * | | | | - * +---+---------------+-----+ + * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test * - * We do it vertically instead of the more common horizontal case in order to - * avoid super huge strides not supported by FBC. + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @mmap-cpu: MMAP-CPU + * @mmap-gtt: MMAP-GTT + * @pwrite: PWRITE */ -static void create_shared_fb(enum pixel_format format, enum tiling_type tiling) -{ - int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h; - struct screen_fbs *s = &fbs[format]; - - prim_w = prim_mode_params.mode.hdisplay; - prim_h = prim_mode_params.mode.vdisplay; - - if (scnd_mode_params.output) { - scnd_w = scnd_mode_params.mode.hdisplay; - scnd_h = scnd_mode_params.mode.vdisplay; - } else { - scnd_w = 0; - scnd_h = 0; - } - offs_w = offscreen_fb.w; - offs_h = offscreen_fb.h; - - big_w = prim_w; - if (scnd_w > big_w) - big_w = scnd_w; - if (offs_w > big_w) - big_w = offs_w; - big_w += opt.shared_fb_x_offset; - - big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset; - - create_fb(format, big_w, big_h, tiling, PLANE_PRI, &s->big); -} - -static void destroy_fbs(enum pixel_format format) -{ - struct screen_fbs *s = &fbs[format]; - - if (!s->initialized) - return; - - if (scnd_mode_params.output) { - igt_remove_fb(drm.fd, &s->scnd_pri); - igt_remove_fb(drm.fd, &s->scnd_cur); - igt_remove_fb(drm.fd, &s->scnd_spr); - } - igt_remove_fb(drm.fd, &s->prim_pri); - igt_remove_fb(drm.fd, &s->prim_cur); - igt_remove_fb(drm.fd, &s->prim_spr); - igt_remove_fb(drm.fd, &s->offscreen); - igt_remove_fb(drm.fd, &s->big); -} - -static void create_fbs(enum pixel_format format, enum tiling_type tiling) -{ - struct screen_fbs *s = &fbs[format]; - - if (s->initialized) - destroy_fbs(format); - - s->initialized = true; - - create_fb(format, prim_mode_params.mode.hdisplay, - prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, - &s->prim_pri); - create_fb(format, prim_mode_params.cursor.w, - prim_mode_params.cursor.h, DRM_FORMAT_MOD_LINEAR, - PLANE_CUR, &s->prim_cur); - create_fb(format, prim_mode_params.sprite.w, - prim_mode_params.sprite.h, tiling, PLANE_SPR, &s->prim_spr); - - create_fb(format, offscreen_fb.w, offscreen_fb.h, tiling, PLANE_PRI, - &s->offscreen); - - create_shared_fb(format, tiling); - - if (!scnd_mode_params.output) - return; - - create_fb(format, scnd_mode_params.mode.hdisplay, - scnd_mode_params.mode.vdisplay, tiling, PLANE_PRI, - &s->scnd_pri); - create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h, - DRM_FORMAT_MOD_LINEAR, PLANE_CUR, &s->scnd_cur); - create_fb(format, scnd_mode_params.sprite.w, scnd_mode_params.sprite.h, - tiling, PLANE_SPR, &s->scnd_spr); -} - -static void __set_prim_plane_for_params(struct modeset_params *params) -{ - igt_plane_set_fb(params->primary.plane, params->primary.fb); - igt_plane_set_position(params->primary.plane, 0, 0); - igt_plane_set_size(params->primary.plane, params->mode.hdisplay, params->mode.vdisplay); - igt_fb_set_position(params->primary.fb, params->primary.plane, - params->primary.x, params->primary.y); - igt_fb_set_size(params->primary.fb, params->primary.plane, - params->mode.hdisplay, params->mode.vdisplay); -} - -static void __set_mode_for_params(struct modeset_params *params) -{ - igt_output_override_mode(params->output, ¶ms->mode); - igt_output_set_pipe(params->output, params->pipe); - - __set_prim_plane_for_params(params); -} - -static void set_mode_for_params(struct modeset_params *params) -{ - __set_mode_for_params(params); - igt_display_commit(&drm.display); -} -static void __debugfs_read_crtc(const char *param, char *buf, int len) -{ - int dir; - enum pipe pipe; +/** + * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @cur: Cursor plane + * @pri: Primary plane + * @spr: Sprite plane + * + * arg[2]: + * + * @blt: Blitter + * @mmap-wc: MMAP-WC + * @render: Render + */ - pipe = prim_mode_params.pipe; - dir = igt_debugfs_pipe_dir(drm.fd, pipe, O_DIRECTORY); - igt_require_fd(dir); - igt_debugfs_simple_read(dir, param, buf, len); - close(dir); -} +/** + * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @cur: Cursor plane + * @pri: Primary plane + * @spr: Sprite plane + * + * arg[2]: + * + * @mmap-cpu: MMAP-CPU + * @mmap-gtt: MMAP-GTT + * @pwrite: PWRITE + */ -#define debugfs_read_crtc(p, arr) __debugfs_read_crtc(p, arr, sizeof(arr)) -#define debugfs_write_crtc(p, arr) __debugfs_write_crtc(p, arr, sizeof(arr)) -#define debugfs_read_connector(p, arr) __debugfs_read_connector(p, arr, sizeof(arr)) +/** + * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @blt: Blitter + * @mmap-wc: MMAP-WC + * @render: Render + */ -static bool is_drrs_high(void) -{ - char buf[MAX_DRRS_STATUS_BUF_LEN]; +/** + * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s + * Description: Draw a set of rectangles on the screen using the provided method + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @mmap-cpu: MMAP-CPU + * @mmap-gtt: MMAP-GTT + * @pwrite: PWRITE + */ - debugfs_read_crtc("i915_drrs_status", buf); - return strstr(buf, "DRRS refresh rate: high"); -} +/** + * SUBTEST: drrs-%dp-pri-indfb-multidraw + * Description: Draw a set of rectangles on the screen using alternated drawing methods + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-pri-indfb-multidraw + * Description: Draw a set of rectangles on the screen using alternated drawing methods + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-pri-indfb-multidraw + * Description: Draw a set of rectangles on the screen using alternated drawing methods + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw + * Description: Draw a set of rectangles on the screen using alternated drawing methods + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw + * Description: Draw a set of rectangles on the screen using alternated drawing methods + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw + * Description: Draw a set of rectangles on the screen using alternated drawing methods + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw + * Description: Draw a set of rectangles on the screen using alternated drawing methods + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + */ -static bool is_drrs_low(void) -{ - char buf[MAX_DRRS_STATUS_BUF_LEN]; +/** + * SUBTEST: drrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @rgb101010: FORMAT_RGB101010 + * @rgb565: FORMAT_RGB565 + * + * arg[2]: + * + * @blt: Blitter + * @mmap-wc: MMAP-WC + * @render: Render + */ - debugfs_read_crtc("i915_drrs_status", buf); - return strstr(buf, "DRRS refresh rate: low"); -} +/** + * SUBTEST: drrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915 + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%s-draw-%s + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @rgb101010: FORMAT_RGB101010 + * @rgb565: FORMAT_RGB565 + * + * arg[2]: + * + * @mmap-cpu: MMAP-CPU + * @mmap-gtt: MMAP-GTT + * @pwrite: PWRITE + */ -static void drrs_print_status(void) -{ - char buf[MAX_DRRS_STATUS_BUF_LEN]; +/** + * SUBTEST: drrs-slowdraw + * Description: Sleep a little bit between drawing operations with DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-slowdraw + * Description: Sleep a little bit between drawing operations with PSR + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-slowdraw + * Description: Sleep a little bit between drawing operations with FBC & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-slowdraw + * Description: Sleep a little bit between drawing operations with FBC & PSR + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-slowdraw + * Description: Sleep a little bit between drawing operations with PSR & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-slowdraw + * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + */ - debugfs_read_crtc("i915_drrs_status", buf); - igt_info("DRRS STATUS :\n%s\n", buf); -} +/** + * SUBTEST: drrs-%dp-primscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @indfb: Individual fb + * @shrfb: Shared fb + * + * arg[3]: + * + * @ms: Modeset + * @pg: Page flip + * @pl: Plane change + */ -static struct timespec fbc_get_last_action(void) -{ - struct timespec ret = { 0, 0 }; - char buf[128]; - char *action; - ssize_t n_read; +/** + * SUBTEST: drrs-2p-scndscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt + * Description: Just exercise page flips with the patterns we have + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @indfb: Individual fb + * @shrfb: Shared fb + * + * arg[2]: + * + * @ms: Modeset + * @pg: Page flip + * @pl: Plane change + */ +/** + * SUBTEST: fbc-%dp-%s-fliptrack-mmap-gtt + * Description: Check if the hardware tracking works after page flips + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-%s-fliptrack-mmap-gtt + * Description: Check if the hardware tracking works after page flips + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt + * Description: Check if the hardware tracking works after page flips + * Driver requirement: i915, xe + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt + * Description: Check if the hardware tracking works after page flips + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @indfb: Individual fb + * @shrfb: Shared fb + */ - debugfs_read_crtc("i915_fbc_status", buf); - action = strstr(buf, "\nLast action:"); - igt_assert(action); +/** + * SUBTEST: drrs-%dp-primscrn-%s-indfb-move + * Description: Just move the %arg[2] around + * Driver requirement: i915, xe + * Functionality: drrs, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-%s-indfb-move + * Description: Just move the %arg[2] around + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-%s-indfb-move + * Description: Just move the %arg[2] around + * Driver requirement: i915, xe + * Functionality: fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move + * Description: Just move the %arg[2] around + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move + * Description: Just move the %arg[2] around + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move + * Description: Just move the %arg[2] around + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move + * Description: Just move the %arg[2] around + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @spr: Sprite plane + * @cur: Cursor plane + */ - n_read = sscanf(action, "Last action: %ld.%ld", - &ret.tv_sec, &ret.tv_nsec); - igt_assert(n_read == 2); +/** + * SUBTEST: drrs-2p-scndscrn-%s-indfb-move + * Description: Just move the %arg[1] around + * Driver requirement: i915, xe + * Functionality: drrs, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-%s-indfb-move + * Description: Just move the %arg[1] around + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-%s-indfb-move + * Description: Just move the %arg[1] around + * Driver requirement: i915, xe + * Functionality: fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move + * Description: Just move the %arg[1] around + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move + * Description: Just move the %arg[1] around + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move + * Description: Just move the %arg[1] around + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move + * Description: Just move the %arg[1] around + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @spr: Sprite plane + * @cur: Cursor plane + */ - return ret; -} +/** + * SUBTEST: drrs-%dp-primscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[2] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[2] a few times + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[2] a few times + * Driver requirement: i915, xe + * Functionality: fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[2] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[2] a few times + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[2] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[2] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + * + * arg[2]: + * + * @spr: Sprite plane + * @cur: Cursor plane + */ -static bool fbc_last_action_changed(void) -{ - struct timespec t_new, t_old; +/** + * SUBTEST: drrs-2p-scndscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[1] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[1] a few times + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[1] a few times + * Driver requirement: i915, xe + * Functionality: fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[1] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[1] a few times + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[1] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff + * Description: Just enable and disable the %arg[1] a few times + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @spr: Sprite plane + * @cur: Cursor plane + */ - t_old = fbc.last_action; - t_new = fbc_get_last_action(); +/** + * SUBTEST: drrs-%dp-primscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%dp-primscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-2p-scndscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen + * Description: Put a fullscreen plane covering the whole screen + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1].values: 1, 2 + */ - fbc.last_action = t_new; +/** + * SUBTEST: drrs-%s-scaledprimary + * Description: Try different primary plane scaling strategies + * Driver requirement: i915, xe + * Functionality: drrs, fbt, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-%s-scaledprimary + * Description: Try different primary plane scaling strategies + * Driver requirement: i915, xe + * Functionality: fbc, fbt, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-%s-scaledprimary + * Description: Try different primary plane scaling strategies + * Driver requirement: i915, xe + * Functionality: fbt, psr, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-%s-scaledprimary + * Description: Try different primary plane scaling strategies + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-%s-scaledprimary + * Description: Try different primary plane scaling strategies + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-%s-scaledprimary + * Description: Try different primary plane scaling strategies + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-%s-scaledprimary + * Description: Try different primary plane scaling strategies + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @indfb: Individual fb + * @shrfb: Shared fb + */ -#if 0 - igt_info("old: %ld.%ld\n", t_old.tv_sec, t_old.tv_nsec); - igt_info("new: %ld.%ld\n", t_new.tv_sec, t_new.tv_nsec); -#endif +/** + * SUBTEST: drrs-modesetfrombusy + * Description: Modeset from a busy buffer to a non-busy buffer with DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbt, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-modesetfrombusy + * Description: Modeset from a busy buffer to a non-busy buffer with FBC + * Driver requirement: i915, xe + * Functionality: fbc, fbt, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-modesetfrombusy + * Description: Modeset from a busy buffer to a non-busy buffer with PSR + * Driver requirement: i915, xe + * Functionality: fbt, psr, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-modesetfrombusy + * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-modesetfrombusy + * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-modesetfrombusy + * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-modesetfrombusy + * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr, scaling + * Mega feature: General Display Features + */ - return t_old.tv_sec != t_new.tv_sec || - t_old.tv_nsec != t_new.tv_nsec; -} +/** + * SUBTEST: drrs-suspend + * Description: Make sure suspend/resume keeps us on the same state of DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbt, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-suspend + * Description: Make sure suspend/resume keeps us on the same state of FBC + * Driver requirement: i915, xe + * Functionality: fbc, fbt, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-suspend + * Description: Make sure suspend/resume keeps us on the same state of PSR + * Driver requirement: i915, xe + * Functionality: fbt, psr, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-suspend + * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-suspend + * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-suspend + * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbt, psr, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-suspend + * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr, suspend + * Mega feature: General Display Features + * Test category: functionality test + */ -static void fbc_update_last_action(void) -{ - if (!fbc.supports_last_action) - return; +/** + * SUBTEST: drrs-farfromfence-mmap-gtt + * Description: Test drawing as far from the fence start as possible + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbc-farfromfence-mmap-gtt + * Description: Test drawing as far from the fence start as possible + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psr-farfromfence-mmap-gtt + * Description: Test drawing as far from the fence start as possible + * Driver requirement: i915 + * Functionality: fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-farfromfence-mmap-gtt + * Description: Test drawing as far from the fence start as possible + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-farfromfence-mmap-gtt + * Description: Test drawing as far from the fence start as possible + * Driver requirement: i915 + * Functionality: fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: psrdrrs-farfromfence-mmap-gtt + * Description: Test drawing as far from the fence start as possible + * Driver requirement: i915 + * Functionality: drrs, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt + * Description: Test drawing as far from the fence start as possible + * Driver requirement: i915 + * Functionality: drrs, fbc, fbt, kms_core, psr + * Mega feature: General Display Features + * Test category: functionality test + */ - fbc.last_action = fbc_get_last_action(); +/** + * SUBTEST: fbc-stridechange + * Description: Change the frontbuffer stride by doing a modeset + * Driver requirement: i915, xe + * Functionality: fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-stridechange + * Description: Change the frontbuffer stride by doing a modeset + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-stridechange + * Description: Change the frontbuffer stride by doing a modeset + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-stridechange + * Description: Change the frontbuffer stride by doing a modeset + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr + * Mega feature: General Display Features + * Test category: functionality test + */ -#if 0 - igt_info("Last action: %ld.%ld\n", - fbc.last_action.tv_sec, fbc.last_action.tv_nsec); -#endif -} +/** + * SUBTEST: fbc-tiling-%s + * Description: Test %arg[1] formats, if the tiling format supports FBC do the + * basic drawing test, else set the mode & test if FBC is disabled + * Driver requirement: i915, xe + * Functionality: fbc, fbt, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcdrrs-tiling-%s + * Description: Test %arg[1] formats, if the tiling format supports FBC do the + * basic drawing test, else set the mode & test if FBC is disabled + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsr-tiling-%s + * Description: Test %arg[1] formats, if the tiling format supports FBC do the + * basic drawing test, else set the mode & test if FBC is disabled + * Driver requirement: i915, xe + * Functionality: fbc, fbt, psr, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fbcpsrdrrs-tiling-%s + * Description: Test %arg[1] formats, if the tiling format supports FBC do the + * basic drawing test, else set the mode & test if FBC is disabled + * Driver requirement: i915, xe + * Functionality: drrs, fbc, fbt, psr, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4: 4 tiling + * @linear: Linear tiling + * @y: Y tiling + */ -static void fbc_setup_last_action(void) -{ - ssize_t n_read; - char buf[128]; - char *action; +#define TIME SLOW_QUICK(1000, 10000) +IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " + "its related features: FBC, PSR and DRRS"); - debugfs_read_crtc("i915_fbc_status", buf); - action = strstr(buf, "\nLast action:"); - if (!action) { - igt_info("FBC last action not supported\n"); - return; - } +/* + * One of the aspects of this test is that, for every subtest, we try different + * combinations of the parameters defined by the struct below. Because of this, + * a single addition of a new parameter or subtest function can lead to hundreds + * of new subtests. + * + * In order to reduce the number combinations we cut the cases that don't make + * sense, such as writing on the secondary screen when there is only a single + * pipe, or flipping when the target is the offscreen buffer. We also hide some + * combinations that are somewhat redundant and don't add much value to the + * test. For example, since we already do the offscreen testing with a single + * pipe enabled, there's no much value in doing it again with dual pipes. If you + * still want to try these redundant tests, you need to use the --show-hidden + * option. + * + * The most important hidden thing is the FEATURE_NONE set of tests. Whenever + * you get a failure on any test, it is important to check whether the same test + * fails with FEATURE_NONE - replace the feature name for "nop". If the nop test + * also fails, then it's likely the problem will be on the IGT side instead of + * the Kernel side. We don't expose this set of tests by default because (i) + * they take a long time to test; and (ii) if the feature tests work, then it's + * very likely that the nop tests will also work. + */ +struct test_mode { + /* Are we going to enable just one monitor, or are we going to setup a + * dual screen environment for the test? */ + enum { + PIPE_SINGLE = 0, + PIPE_DUAL, + PIPE_COUNT, + } pipes; - fbc.supports_last_action = true; + /* The primary screen is the one that's supposed to have the "feature" + * enabled on, but we have the option to draw on the secondary screen or + * on some offscreen buffer. We also only theck the CRC of the primary + * screen. */ + enum { + SCREEN_PRIM = 0, + SCREEN_SCND, + SCREEN_OFFSCREEN, + SCREEN_COUNT, + } screen; - n_read = sscanf(action, "Last action: %ld.%ld", - &fbc.last_action.tv_sec, &fbc.last_action.tv_nsec); - igt_assert(n_read == 2); -} + /* When we draw, we can draw directly on the primary plane, on the + * cursor or on the sprite plane. */ + enum { + PLANE_PRI = 0, + PLANE_CUR, + PLANE_SPR, + PLANE_COUNT, + } plane; -static bool fbc_is_compressing(void) -{ - char buf[128]; + /* We can organize the screens in a way that each screen has its own + * framebuffer, or in a way that all screens point to the same + * framebuffer, but on different places. This includes the offscreen + * screen. */ + enum { + FBS_INDIVIDUAL = 0, + FBS_SHARED, + FBS_COUNT, + } fbs; - debugfs_read_crtc("i915_fbc_status", buf); - return strstr(buf, "\nCompressing: yes\n") != NULL; -} + /* Which features are we going to test now? This is a mask! + * FEATURE_DEFAULT is a special value which instruct the test to just + * keep what's already enabled by default in the Kernel. */ + enum { + FEATURE_NONE = 0, + FEATURE_FBC = 1, + FEATURE_PSR = 2, + FEATURE_DRRS = 4, + FEATURE_COUNT = 8, + FEATURE_DEFAULT = 8, + } feature; -static bool fbc_wait_for_compression(void) -{ - return igt_wait(fbc_is_compressing(), 2000, 1); -} + /* Possible pixel formats. We just use FORMAT_DEFAULT for most tests and + * only test a few things on the other formats. */ + enum pixel_format { + FORMAT_RGB888 = 0, + FORMAT_RGB565, + FORMAT_RGB101010, + FORMAT_COUNT, + FORMAT_DEFAULT = FORMAT_RGB888, + } format; -static bool fbc_not_enough_stolen(void) -{ - char buf[128]; + /* There are multiple APIs where we can do the equivalent of a page flip + * and they exercise slightly different codepaths inside the Kernel. */ + enum flip_type { + FLIP_PAGEFLIP, + FLIP_MODESET, + FLIP_PLANES, + FLIP_COUNT, + } flip; - debugfs_read_crtc("i915_fbc_status", buf); - return strstr(buf, "FBC disabled: not enough stolen memory\n"); -} + enum tiling_type { + TILING_LINEAR = 0, + TILING_X, + TILING_Y, + TILING_4, + TILING_COUNT, + TILING_DEFAULT = TILING_X, + } tiling; -static bool fbc_stride_not_supported(void) -{ - char buf[128]; + enum igt_draw_method method; +}; - debugfs_read_crtc("i915_fbc_status", buf); - return strstr(buf, "FBC disabled: framebuffer stride not supported\n"); -} +enum color { + COLOR_RED, + COLOR_GREEN, + COLOR_BLUE, + COLOR_MAGENTA, + COLOR_CYAN, + COLOR_SCND_BG, + COLOR_PRIM_BG = COLOR_BLUE, + COLOR_OFFSCREEN_BG = COLOR_SCND_BG, +}; -static bool fbc_mode_too_large(void) -{ - char buf[128]; +struct rect { + int x; + int y; + int w; + int h; + uint32_t color; +}; - debugfs_read_crtc("i915_fbc_status", buf); - return strstr(buf, "FBC disabled: mode too large for compression\n"); -} +struct { + int fd; + int debugfs; + igt_display_t display; -static bool fbc_enable_per_plane(int plane_index, enum pipe pipe) -{ - char buf[PATH_MAX]; - char buf_plane[128]; + struct buf_ops *bops; +} drm; - sprintf(buf_plane, "%d%s", plane_index, kmstest_pipe_name(pipe)); +struct { + bool can_test; - debugfs_read_crtc("i915_fbc_status", buf); - return strstr(strstr(buf, "*"), buf_plane); -} + bool supports_last_action; -static bool drrs_wait_until_rr_switch_to_low(void) -{ - return igt_wait(is_drrs_low(), 5000, 1); -} + struct timespec last_action; +} fbc = { + .can_test = false, + .supports_last_action = false, +}; -static struct rect pat1_get_rect(struct fb_region *fb, int r) -{ - struct rect rect; +struct { + bool can_test; +} psr = { + .can_test = false, +}; - switch (r) { - case 0: - rect.x = 0; - rect.y = 0; - rect.w = fb->w / 8; - rect.h = fb->h / 8; - rect.color = pick_color(fb->fb, COLOR_GREEN); - break; - case 1: - rect.x = fb->w / 8 * 4; - rect.y = fb->h / 8 * 4; - rect.w = fb->w / 8 * 2; - rect.h = fb->h / 8 * 2; - rect.color = pick_color(fb->fb, COLOR_RED); - break; - case 2: - rect.x = fb->w / 16 + 1; - rect.y = fb->h / 16 + 1; - rect.w = fb->w / 8 + 1; - rect.h = fb->h / 8 + 1; - rect.color = pick_color(fb->fb, COLOR_MAGENTA); - break; - case 3: - rect.x = fb->w - 1; - rect.y = fb->h - 1; - rect.w = 1; - rect.h = 1; - rect.color = pick_color(fb->fb, COLOR_CYAN); - break; - default: - igt_assert(false); - } +#define MAX_DRRS_STATUS_BUF_LEN 256 - return rect; -} +struct { + bool can_test; +} drrs = { + .can_test = false, +}; -static struct rect pat2_get_rect(struct fb_region *fb, int r) -{ - struct rect rect; +igt_pipe_crc_t *pipe_crc; +igt_crc_t *wanted_crc; +struct { + bool initialized; + igt_crc_t crc; +} blue_crcs[FORMAT_COUNT]; - rect.x = 0; - rect.y = 0; - rect.w = 64; - rect.h = 64; +/* The goal of this structure is to easily allow us to deal with cases where we + * have a big framebuffer and the CRTC is just displaying a subregion of this + * big FB. */ +struct fb_region { + igt_plane_t *plane; + struct igt_fb *fb; + int x; + int y; + int w; + int h; +}; - switch (r) { - case 0: - rect.color = pick_color(fb->fb, COLOR_GREEN); - break; - case 1: - rect.x = 31; - rect.y = 31; - rect.w = 31; - rect.h = 31; - rect.color = pick_color(fb->fb, COLOR_RED); - break; - case 2: - rect.x = 16; - rect.y = 16; - rect.w = 32; - rect.h = 32; - rect.color = pick_color(fb->fb, COLOR_MAGENTA); - break; - case 3: - rect.color = pick_color(fb->fb, COLOR_CYAN); - break; - default: - igt_assert(false); - } +struct draw_pattern_info { + bool frames_stack; + int n_rects; + struct rect (*get_rect)(struct fb_region *fb, int r); - return rect; -} + bool initialized[FORMAT_COUNT]; + igt_crc_t *crcs[FORMAT_COUNT]; +}; -static struct rect pat3_get_rect(struct fb_region *fb, int r) -{ - struct rect rect; +/* Draw big rectangles on the screen. */ +struct draw_pattern_info pattern1; +/* 64x64 rectangles at x:0,y:0, just so we can draw on the cursor and sprite. */ +struct draw_pattern_info pattern2; +/* 64x64 rectangles at different positions, same color, for the move test. */ +struct draw_pattern_info pattern3; +/* Just a fullscreen green square. */ +struct draw_pattern_info pattern4; - rect.w = 64; - rect.h = 64; - rect.color = pick_color(fb->fb, COLOR_GREEN); +/* Command line parameters. */ +struct { + bool check_status; + bool check_crc; + bool fbc_check_compression; + bool fbc_check_last_action; + bool no_edp; + bool small_modes; + bool show_hidden; + int step; + int only_pipes; + int shared_fb_x_offset; + int shared_fb_y_offset; + enum tiling_type tiling; +} opt = { + .check_status = true, + .check_crc = true, + .fbc_check_compression = true, + .fbc_check_last_action = true, + .no_edp = false, + .small_modes = false, + .show_hidden= false, + .step = 0, + .only_pipes = PIPE_COUNT, + .shared_fb_x_offset = 248, + .shared_fb_y_offset = 500, + .tiling = TILING_DEFAULT, +}; - switch (r) { - case 0: - rect.x = 0; - rect.y = 0; - break; - case 1: - rect.x = 64; - rect.y = 64; - break; - case 2: - rect.x = 1; - rect.y = 1; - break; - case 3: - rect.x = fb->w - 64; - rect.y = fb->h - 64; - break; - case 4: - rect.x = fb->w / 2 - 32; - rect.y = fb->h / 2 - 32; - break; - default: - igt_assert(false); - } +struct modeset_params { + enum pipe pipe; + igt_output_t *output; + drmModeModeInfo mode; - return rect; -} + struct fb_region primary; + struct fb_region cursor; + struct fb_region sprite; +}; -static struct rect pat4_get_rect(struct fb_region *fb, int r) -{ - struct rect rect; +struct modeset_params prim_mode_params; +struct modeset_params scnd_mode_params; - igt_assert_eq(r, 0); +struct fb_region offscreen_fb; +struct screen_fbs { + bool initialized; - rect.x = 0; - rect.y = 0; - rect.w = fb->w; - rect.h = fb->h; - rect.color = pick_color(fb->fb, COLOR_GREEN); + struct igt_fb prim_pri; + struct igt_fb prim_cur; + struct igt_fb prim_spr; - return rect; -} + struct igt_fb scnd_pri; + struct igt_fb scnd_cur; + struct igt_fb scnd_spr; -static void fb_dirty_ioctl(struct fb_region *fb, struct rect *rect) -{ - int rc; - drmModeClip clip = { - .x1 = rect->x, - .x2 = rect->x + rect->w, - .y1 = rect->y, - .y2 = rect->y + rect->h, - }; + struct igt_fb offscreen; + struct igt_fb big; +} fbs[FORMAT_COUNT]; - rc = drmModeDirtyFB(drm.fd, fb->fb->fb_id, &clip, 1); +struct { + pthread_t thread; + bool stop; - igt_assert(rc == 0 || rc == -ENOSYS); -} + uint32_t handle; + uint32_t size; + uint32_t stride; + int width; + int height; + uint32_t color; + int bpp; + uint32_t tiling; +} busy_thread = { + .stop = true, +}; -static void draw_rect(struct draw_pattern_info *pattern, struct fb_region *fb, - enum igt_draw_method method, int r) +static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output) { - struct rect rect = pattern->get_rect(fb, r); + drmModeConnector *c = output->config.connector; + const drmModeModeInfo *smallest = NULL; + int i; - igt_draw_rect_fb(drm.fd, drm.bops, 0, fb->fb, method, - fb->x + rect.x, fb->y + rect.y, - rect.w, rect.h, rect.color); + if (c->connector_type == DRM_MODE_CONNECTOR_eDP) + return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); - fb_dirty_ioctl(fb, &rect); -} + for (i = 0; i < c->count_modes; i++) { + const drmModeModeInfo *mode = &c->modes[i]; -static void draw_rect_igt_fb(struct draw_pattern_info *pattern, - struct igt_fb *fb, enum igt_draw_method method, - int r) -{ - struct fb_region region = { - .fb = fb, - .x = 0, - .y = 0, - .w = fb->width, - .h = fb->height, - }; + if (!smallest || + mode->hdisplay * mode->vdisplay < + smallest->hdisplay * smallest->vdisplay) + smallest = mode; + } - draw_rect(pattern, ®ion, method, r); + if (smallest) + return igt_memdup(smallest, sizeof(*smallest)); + else + return igt_std_1024_mode_get(60); } -static void fill_fb_region(struct fb_region *region, - enum igt_draw_method method, - enum color ecolor) +static drmModeModeInfo *connector_get_mode(igt_output_t *output) { - uint32_t color = pick_color(region->fb, ecolor); + /* On HSW the CRC WA is so awful that it makes you think everything is + * bugged. */ + if (IS_HASWELL(intel_get_drm_devid(drm.fd)) && + output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP) + return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); - igt_draw_rect_fb(drm.fd, drm.bops, 0, region->fb, method, - region->x, region->y, region->w, region->h, - color); + if (opt.small_modes) + return get_connector_smallest_mode(output); + else + return igt_memdup(&output->config.default_mode, + sizeof(output->config.default_mode)); } -static void _fb_dirty_ioctl(struct fb_region *region) +static void init_mode_params(struct modeset_params *params, + igt_output_t *output, enum pipe pipe) { - struct rect rect; - - rect.x = region->x; - rect.y = region->y; - rect.w = region->w; - rect.h = region->h; - fb_dirty_ioctl(region, &rect); -} + drmModeModeInfo *mode; -static void unset_all_crtcs(void) -{ - igt_display_reset(&drm.display); - igt_display_commit(&drm.display); -} + igt_output_override_mode(output, NULL); + mode = connector_get_mode(output); -static bool disable_features(const struct test_mode *t) -{ - if (t->feature == FEATURE_DEFAULT) - return false; + params->pipe = pipe; + params->output = output; + params->mode = *mode; - intel_fbc_disable(drm.fd); - intel_drrs_disable(drm.fd, prim_mode_params.pipe); + params->primary.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_PRIMARY); + params->primary.fb = NULL; + params->primary.x = 0; + params->primary.y = 0; + params->primary.w = mode->hdisplay; + params->primary.h = mode->vdisplay; - return psr.can_test ? psr_disable(drm.fd, drm.debugfs) : false; -} + params->cursor.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_CURSOR); + params->cursor.fb = NULL; + params->cursor.x = 0; + params->cursor.y = 0; + params->cursor.w = 64; + params->cursor.h = 64; -static void *busy_thread_func(void *data) -{ - while (!busy_thread.stop) - igt_draw_rect(drm.fd, drm.bops, 0, busy_thread.handle, - busy_thread.size, busy_thread.stride, - busy_thread.tiling, IGT_DRAW_BLT, 0, 0, - busy_thread.width, busy_thread.height, - busy_thread.color, busy_thread.bpp); + params->sprite.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_OVERLAY); + igt_require(params->sprite.plane); + params->sprite.fb = NULL; + params->sprite.x = 0; + params->sprite.y = 0; + params->sprite.w = 64; + params->sprite.h = 64; - pthread_exit(0); + free(mode); } -static void start_busy_thread(struct igt_fb *fb) +static bool find_connector(bool edp_only, bool pipe_a, + igt_output_t *forbidden_output, + enum pipe forbidden_pipe, + igt_output_t **ret_output, + enum pipe *ret_pipe) { - int rc; + igt_output_t *output; + enum pipe pipe; - igt_assert(busy_thread.stop == true); - busy_thread.stop = false; - busy_thread.handle = fb->gem_handle; - busy_thread.size = fb->size; - busy_thread.stride = fb->strides[0]; - busy_thread.width = fb->width; - busy_thread.height = fb->height; - busy_thread.color = pick_color(fb, COLOR_PRIM_BG); - busy_thread.bpp = igt_drm_format_to_bpp(fb->drm_format); - busy_thread.tiling = igt_fb_mod_to_tiling(fb->modifier); + for_each_pipe_with_valid_output(&drm.display, pipe, output) { + drmModeConnectorPtr c = output->config.connector; - rc = pthread_create(&busy_thread.thread, NULL, busy_thread_func, NULL); - igt_assert_eq(rc, 0); -} + if (edp_only && c->connector_type != DRM_MODE_CONNECTOR_eDP) + continue; -static void stop_busy_thread(void) -{ - if (!busy_thread.stop) { - busy_thread.stop = true; - igt_assert(pthread_join(busy_thread.thread, NULL) == 0); - } -} + if (pipe_a && pipe != PIPE_A) + continue; -static void print_crc(const char *str, igt_crc_t *crc) -{ - char *pipe_str; + if (output == forbidden_output || pipe == forbidden_pipe) { + igt_output_set_pipe(output, pipe); + igt_output_override_mode(output, connector_get_mode(output)); - pipe_str = igt_crc_to_string(crc); + continue; + } - igt_debug("%s pipe:[%s]\n", str, pipe_str); + if (c->connector_type == DRM_MODE_CONNECTOR_eDP && opt.no_edp) + continue; - free(pipe_str); -} + igt_output_set_pipe(output, pipe); + igt_output_override_mode(output, connector_get_mode(output)); + if (intel_pipe_output_combo_valid(&drm.display)) { + *ret_output = output; + *ret_pipe = pipe; + return true; + } + } -static void collect_crc(igt_crc_t *crc) -{ - igt_pipe_crc_collect_crc(pipe_crc, crc); + return false; } -static void init_blue_crc(enum pixel_format format, enum tiling_type tiling) +static bool init_modeset_cached_params(void) { - struct igt_fb blue; - - if (blue_crcs[format].initialized) - return; - - create_fb(format, prim_mode_params.mode.hdisplay, - prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, - &blue); - - fill_fb(&blue, COLOR_PRIM_BG); - - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); - igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); - igt_plane_set_fb(prim_mode_params.primary.plane, &blue); - igt_display_commit(&drm.display); + igt_output_t *prim_output = NULL, *scnd_output = NULL; + enum pipe prim_pipe, scnd_pipe; - if (!pipe_crc) { - pipe_crc = igt_pipe_crc_new(drm.fd, prim_mode_params.pipe, - IGT_PIPE_CRC_SOURCE_AUTO); - igt_assert(pipe_crc); - } + /* + * We have this problem where PSR is only present on eDP monitors and + * FBC is only present on pipe A for some platforms. So we search first + * for the ideal case of eDP supporting pipe A, and try the less optimal + * configs later, sacrificing one of the features. + * TODO: refactor the code in a way that allows us to have different + * sets of prim/scnd structs for different features. + */ + find_connector(true, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); + if (!prim_output) + find_connector(true, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); + if (!prim_output) + find_connector(false, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); + if (!prim_output) + find_connector(false, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); - collect_crc(&blue_crcs[format].crc); + if (!prim_output) + return false; - print_crc("Blue CRC: ", &blue_crcs[format].crc); + find_connector(false, false, prim_output, prim_pipe, + &scnd_output, &scnd_pipe); - igt_display_reset(&drm.display); + init_mode_params(&prim_mode_params, prim_output, prim_pipe); - igt_remove_fb(drm.fd, &blue); + if (!scnd_output) { + scnd_mode_params.pipe = PIPE_NONE; + scnd_mode_params.output = NULL; + return true; + } - blue_crcs[format].initialized = true; + init_mode_params(&scnd_mode_params, scnd_output, scnd_pipe); + return true; } -static void init_crcs(enum pixel_format format, enum tiling_type tiling, - struct draw_pattern_info *pattern) +static uint64_t tiling_to_modifier(enum tiling_type tiling) { - int r, r_; - struct igt_fb tmp_fbs[pattern->n_rects]; - - if (pattern->initialized[format]) - return; - - pattern->crcs[format] = calloc(pattern->n_rects, - sizeof(*(pattern->crcs[format]))); - - for (r = 0; r < pattern->n_rects; r++) - create_fb(format, prim_mode_params.mode.hdisplay, - prim_mode_params.mode.vdisplay, tiling, - PLANE_PRI, &tmp_fbs[r]); - - for (r = 0; r < pattern->n_rects; r++) - fill_fb(&tmp_fbs[r], COLOR_PRIM_BG); - - if (pattern->frames_stack) { - for (r = 0; r < pattern->n_rects; r++) - for (r_ = 0; r_ <= r; r_++) - draw_rect_igt_fb(pattern, &tmp_fbs[r], - igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? - IGT_DRAW_PWRITE : IGT_DRAW_BLT, - r_); - } else { - for (r = 0; r < pattern->n_rects; r++) - draw_rect_igt_fb(pattern, &tmp_fbs[r], igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? - IGT_DRAW_PWRITE : IGT_DRAW_BLT, r); + switch (tiling) { + case TILING_LINEAR: + return DRM_FORMAT_MOD_LINEAR; + case TILING_X: + return I915_FORMAT_MOD_X_TILED; + case TILING_Y: + return I915_FORMAT_MOD_Y_TILED; + case TILING_4: + return I915_FORMAT_MOD_4_TILED; + default: + igt_assert(false); } +} - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); - igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); - for (r = 0; r < pattern->n_rects; r++) { - igt_plane_set_fb(prim_mode_params.primary.plane, &tmp_fbs[r]); - igt_display_commit(&drm.display); +static void create_fb(enum pixel_format pformat, int width, int height, + enum tiling_type tiling, int plane, struct igt_fb *fb) +{ + uint32_t format; + uint64_t size, modifier; + unsigned int stride; - collect_crc(&pattern->crcs[format][r]); + switch (pformat) { + case FORMAT_RGB888: + if (plane == PLANE_CUR) + format = DRM_FORMAT_ARGB8888; + else + format = DRM_FORMAT_XRGB8888; + break; + case FORMAT_RGB565: + /* Only the primary plane supports 16bpp! */ + if (plane == PLANE_PRI) + format = DRM_FORMAT_RGB565; + else if (plane == PLANE_CUR) + format = DRM_FORMAT_ARGB8888; + else + format = DRM_FORMAT_XRGB8888; + break; + case FORMAT_RGB101010: + if (plane == PLANE_PRI) + format = DRM_FORMAT_XRGB2101010; + else if (plane == PLANE_CUR) + format = DRM_FORMAT_ARGB8888; + else + format = DRM_FORMAT_XRGB8888; + break; + default: + igt_assert(false); } - for (r = 0; r < pattern->n_rects; r++) { - igt_debug("Rect %d CRC:", r); - print_crc("", &pattern->crcs[format][r]); - } + modifier = tiling_to_modifier(tiling); - igt_display_reset(&drm.display); + igt_warn_on(plane == PLANE_CUR && tiling != TILING_LINEAR); - for (r = 0; r < pattern->n_rects; r++) - igt_remove_fb(drm.fd, &tmp_fbs[r]); + igt_calc_fb_size(drm.fd, width, height, format, modifier, &size, + &stride); - pattern->initialized[format] = true; + igt_create_fb_with_bo_size(drm.fd, width, height, format, modifier, + IGT_COLOR_YCBCR_BT709, + IGT_COLOR_YCBCR_LIMITED_RANGE, + fb, size, stride); } -static void setup_drm(void) +static uint32_t pick_color(struct igt_fb *fb, enum color ecolor) { - drm.fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE); - drm.debugfs = igt_debugfs_dir(drm.fd); + uint32_t color, r, g, b, b2, a; + bool alpha = false; - kmstest_set_vt_graphics_mode(); - igt_display_require(&drm.display, drm.fd); + switch (fb->drm_format) { + case DRM_FORMAT_RGB565: + a = 0x0; + r = 0x1F << 11; + g = 0x3F << 5; + b = 0x1F; + b2 = 0x10; + break; + case DRM_FORMAT_ARGB8888: + alpha = true; + case DRM_FORMAT_XRGB8888: + a = 0xFF << 24; + r = 0xFF << 16; + g = 0xFF << 8; + b = 0xFF; + b2 = 0x80; + break; + case DRM_FORMAT_ARGB2101010: + alpha = true; + case DRM_FORMAT_XRGB2101010: + a = 0x3 << 30; + r = 0x3FF << 20; + g = 0x3FF << 10; + b = 0x3FF; + b2 = 0x200; + break; + default: + igt_assert(false); + } - drm.bops = buf_ops_create(drm.fd); -} + switch (ecolor) { + case COLOR_RED: + color = r; + break; + case COLOR_GREEN: + color = g; + break; + case COLOR_BLUE: + color = b; + break; + case COLOR_MAGENTA: + color = r | b; + break; + case COLOR_CYAN: + color = g | b; + break; + case COLOR_SCND_BG: + color = b2; + break; + default: + igt_assert(false); + } -static void teardown_drm(void) -{ - buf_ops_destroy(drm.bops); - igt_display_fini(&drm.display); - drm_close_driver(drm.fd); -} + if (alpha) + color |= a; -static void setup_modeset(void) -{ - igt_require(init_modeset_cached_params()); - offscreen_fb.fb = NULL; - offscreen_fb.w = 1024; - offscreen_fb.h = 1024; - create_fbs(FORMAT_DEFAULT, opt.tiling); + return color; } -static void teardown_modeset(void) +static void fill_fb(struct igt_fb *fb, enum color ecolor) { - enum pixel_format f; - - for (f = 0; f < FORMAT_COUNT; f++) - destroy_fbs(f); + igt_draw_fill_fb(drm.fd, fb, pick_color(fb, ecolor)); } -static void setup_crcs(void) +/* + * This is how the prim, scnd and offscreen FBs should be positioned inside the + * shared FB. The prim buffer starts at the X and Y offsets defined by + * opt.shared_fb_{x,y}_offset, then scnd starts at the same X pixel offset, + * right after prim ends on the Y axis, then the offscreen fb starts after scnd + * ends. Just like the picture: + * + * +-------------------------+ + * | shared fb | + * | +------------------+ | + * | | prim | | + * | | | | + * | | | | + * | | | | + * | +------------------+--+ + * | | scnd | + * | | | + * | | | + * | +---------------+-----+ + * | | offscreen | | + * | | | | + * | | | | + * +---+---------------+-----+ + * + * We do it vertically instead of the more common horizontal case in order to + * avoid super huge strides not supported by FBC. + */ +static void create_shared_fb(enum pixel_format format, enum tiling_type tiling) { - enum pixel_format f; - - for (f = 0; f < FORMAT_COUNT; f++) - blue_crcs[f].initialized = false; + int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h; + struct screen_fbs *s = &fbs[format]; - pattern1.frames_stack = true; - pattern1.n_rects = 4; - pattern1.get_rect = pat1_get_rect; - for (f = 0; f < FORMAT_COUNT; f++) { - pattern1.initialized[f] = false; - pattern1.crcs[f] = NULL; - } + prim_w = prim_mode_params.mode.hdisplay; + prim_h = prim_mode_params.mode.vdisplay; - pattern2.frames_stack = true; - pattern2.n_rects = 4; - pattern2.get_rect = pat2_get_rect; - for (f = 0; f < FORMAT_COUNT; f++) { - pattern2.initialized[f] = false; - pattern2.crcs[f] = NULL; + if (scnd_mode_params.output) { + scnd_w = scnd_mode_params.mode.hdisplay; + scnd_h = scnd_mode_params.mode.vdisplay; + } else { + scnd_w = 0; + scnd_h = 0; } + offs_w = offscreen_fb.w; + offs_h = offscreen_fb.h; - pattern3.frames_stack = false; - pattern3.n_rects = 5; - pattern3.get_rect = pat3_get_rect; - for (f = 0; f < FORMAT_COUNT; f++) { - pattern3.initialized[f] = false; - pattern3.crcs[f] = NULL; - } + big_w = prim_w; + if (scnd_w > big_w) + big_w = scnd_w; + if (offs_w > big_w) + big_w = offs_w; + big_w += opt.shared_fb_x_offset; - pattern4.frames_stack = false; - pattern4.n_rects = 1; - pattern4.get_rect = pat4_get_rect; - for (f = 0; f < FORMAT_COUNT; f++) { - pattern4.initialized[f] = false; - pattern4.crcs[f] = NULL; - } + big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset; + + create_fb(format, big_w, big_h, tiling, PLANE_PRI, &s->big); } -static void teardown_crcs(void) +static void destroy_fbs(enum pixel_format format) { - enum pixel_format f; + struct screen_fbs *s = &fbs[format]; - for (f = 0; f < FORMAT_COUNT; f++) { - if (pattern1.crcs[f]) - free(pattern1.crcs[f]); - if (pattern2.crcs[f]) - free(pattern2.crcs[f]); - if (pattern3.crcs[f]) - free(pattern3.crcs[f]); - if (pattern4.crcs[f]) - free(pattern4.crcs[f]); - } + if (!s->initialized) + return; - igt_pipe_crc_free(pipe_crc); + if (scnd_mode_params.output) { + igt_remove_fb(drm.fd, &s->scnd_pri); + igt_remove_fb(drm.fd, &s->scnd_cur); + igt_remove_fb(drm.fd, &s->scnd_spr); + } + igt_remove_fb(drm.fd, &s->prim_pri); + igt_remove_fb(drm.fd, &s->prim_cur); + igt_remove_fb(drm.fd, &s->prim_spr); + igt_remove_fb(drm.fd, &s->offscreen); + igt_remove_fb(drm.fd, &s->big); } -static void setup_fbc(void) +static void create_fbs(enum pixel_format format, enum tiling_type tiling) { - if (!intel_fbc_supported_on_chipset(drm.fd, prim_mode_params.pipe)) { - igt_info("Can't test FBC: not supported on this chipset\n"); - return; - } + struct screen_fbs *s = &fbs[format]; - fbc.can_test = true; + if (s->initialized) + destroy_fbs(format); - fbc_setup_last_action(); -} + s->initialized = true; -static void teardown_fbc(void) -{ -} + create_fb(format, prim_mode_params.mode.hdisplay, + prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, + &s->prim_pri); + create_fb(format, prim_mode_params.cursor.w, + prim_mode_params.cursor.h, DRM_FORMAT_MOD_LINEAR, + PLANE_CUR, &s->prim_cur); + create_fb(format, prim_mode_params.sprite.w, + prim_mode_params.sprite.h, tiling, PLANE_SPR, &s->prim_spr); -static void setup_psr(void) -{ - if (prim_mode_params.output->config.connector->connector_type != - DRM_MODE_CONNECTOR_eDP) { - igt_info("Can't test PSR: no usable eDP screen.\n"); - return; - } + create_fb(format, offscreen_fb.w, offscreen_fb.h, tiling, PLANE_PRI, + &s->offscreen); - if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1, NULL)) { - igt_info("Can't test PSR: not supported by sink.\n"); + create_shared_fb(format, tiling); + + if (!scnd_mode_params.output) return; - } - psr.can_test = true; + + create_fb(format, scnd_mode_params.mode.hdisplay, + scnd_mode_params.mode.vdisplay, tiling, PLANE_PRI, + &s->scnd_pri); + create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h, + DRM_FORMAT_MOD_LINEAR, PLANE_CUR, &s->scnd_cur); + create_fb(format, scnd_mode_params.sprite.w, scnd_mode_params.sprite.h, + tiling, PLANE_SPR, &s->scnd_spr); } -static void teardown_psr(void) +static void __set_prim_plane_for_params(struct modeset_params *params) { + igt_plane_set_fb(params->primary.plane, params->primary.fb); + igt_plane_set_position(params->primary.plane, 0, 0); + igt_plane_set_size(params->primary.plane, params->mode.hdisplay, params->mode.vdisplay); + igt_fb_set_position(params->primary.fb, params->primary.plane, + params->primary.x, params->primary.y); + igt_fb_set_size(params->primary.fb, params->primary.plane, + params->mode.hdisplay, params->mode.vdisplay); } -static void setup_drrs(void) +static void __set_mode_for_params(struct modeset_params *params) { - if (!intel_output_has_drrs(drm.fd, prim_mode_params.output)) { - igt_info("Can't test DRRS: no usable screen.\n"); - return; - } - - if (!intel_is_drrs_supported(drm.fd, prim_mode_params.pipe)) { - igt_info("Can't test DRRS: Not supported.\n"); - return; - } + igt_output_override_mode(params->output, ¶ms->mode); + igt_output_set_pipe(params->output, params->pipe); - drrs.can_test = true; + __set_prim_plane_for_params(params); } -static void setup_environment(void) +static void set_mode_for_params(struct modeset_params *params) { - setup_drm(); - setup_modeset(); + __set_mode_for_params(params); + igt_display_commit(&drm.display); +} - setup_fbc(); - setup_psr(); - setup_drrs(); +static void __debugfs_read_crtc(const char *param, char *buf, int len) +{ + int dir; + enum pipe pipe; - setup_crcs(); + pipe = prim_mode_params.pipe; + dir = igt_debugfs_pipe_dir(drm.fd, pipe, O_DIRECTORY); + igt_require_fd(dir); + igt_debugfs_simple_read(dir, param, buf, len); + close(dir); } -static void teardown_environment(void) +#define debugfs_read_crtc(p, arr) __debugfs_read_crtc(p, arr, sizeof(arr)) +#define debugfs_write_crtc(p, arr) __debugfs_write_crtc(p, arr, sizeof(arr)) +#define debugfs_read_connector(p, arr) __debugfs_read_connector(p, arr, sizeof(arr)) + +static bool is_drrs_high(void) { - stop_busy_thread(); + char buf[MAX_DRRS_STATUS_BUF_LEN]; - teardown_crcs(); - teardown_psr(); - teardown_fbc(); - teardown_modeset(); - teardown_drm(); + debugfs_read_crtc("i915_drrs_status", buf); + return strstr(buf, "DRRS refresh rate: high"); } -static void wait_user(int step, const char *msg) +static bool is_drrs_low(void) { - if (opt.step < step) - return; + char buf[MAX_DRRS_STATUS_BUF_LEN]; - igt_info("%s Press enter...\n", msg); - while (getchar() != '\n') - ; + debugfs_read_crtc("i915_drrs_status", buf); + return strstr(buf, "DRRS refresh rate: low"); } -static struct modeset_params *pick_params(const struct test_mode *t) +static void drrs_print_status(void) { - switch (t->screen) { - case SCREEN_PRIM: - return &prim_mode_params; - case SCREEN_SCND: - return &scnd_mode_params; - case SCREEN_OFFSCREEN: - return NULL; - default: - igt_assert(false); - } + char buf[MAX_DRRS_STATUS_BUF_LEN]; + + debugfs_read_crtc("i915_drrs_status", buf); + igt_info("DRRS STATUS :\n%s\n", buf); } -static struct fb_region *pick_target(const struct test_mode *t, - struct modeset_params *params) +static struct timespec fbc_get_last_action(void) { - if (!params) - return &offscreen_fb; + struct timespec ret = { 0, 0 }; + char buf[128]; + char *action; + ssize_t n_read; - switch (t->plane) { - case PLANE_PRI: - return ¶ms->primary; - case PLANE_CUR: - return ¶ms->cursor; - case PLANE_SPR: - return ¶ms->sprite; - default: - igt_assert(false); - } + + debugfs_read_crtc("i915_fbc_status", buf); + action = strstr(buf, "\nLast action:"); + igt_assert(action); + + n_read = sscanf(action, "Last action: %ld.%ld", + &ret.tv_sec, &ret.tv_nsec); + igt_assert(n_read == 2); + + return ret; } -static void do_flush(const struct test_mode *t) +static bool fbc_last_action_changed(void) { - struct modeset_params *params = pick_params(t); - struct fb_region *target = pick_target(t, params); + struct timespec t_new, t_old; - if (is_i915_device(drm.fd)) - gem_set_domain(drm.fd, target->fb->gem_handle, I915_GEM_DOMAIN_GTT, 0); -} + t_old = fbc.last_action; + t_new = fbc_get_last_action(); -#define DONT_ASSERT_CRC (1 << 0) -#define DONT_ASSERT_FEATURE_STATUS (1 << 1) -#define DONT_ASSERT_FBC_STATUS (1 << 12) + fbc.last_action = t_new; -#define FBC_ASSERT_FLAGS (0xF << 2) -#define ASSERT_FBC_ENABLED (1 << 2) -#define ASSERT_FBC_DISABLED (1 << 3) -#define ASSERT_LAST_ACTION_CHANGED (1 << 4) -#define ASSERT_NO_ACTION_CHANGE (1 << 5) +#if 0 + igt_info("old: %ld.%ld\n", t_old.tv_sec, t_old.tv_nsec); + igt_info("new: %ld.%ld\n", t_new.tv_sec, t_new.tv_nsec); +#endif -#define PSR_ASSERT_FLAGS (3 << 6) -#define ASSERT_PSR_ENABLED (1 << 6) -#define ASSERT_PSR_DISABLED (1 << 7) + return t_old.tv_sec != t_new.tv_sec || + t_old.tv_nsec != t_new.tv_nsec; +} -#define DRRS_ASSERT_FLAGS (7 << 8) -#define ASSERT_DRRS_HIGH (1 << 8) -#define ASSERT_DRRS_LOW (1 << 9) -#define ASSERT_DRRS_INACTIVE (1 << 10) +static void fbc_update_last_action(void) +{ + if (!fbc.supports_last_action) + return; + + fbc.last_action = fbc_get_last_action(); -#define ASSERT_NO_IDLE_GPU (1 << 11) +#if 0 + igt_info("Last action: %ld.%ld\n", + fbc.last_action.tv_sec, fbc.last_action.tv_nsec); +#endif +} -static int adjust_assertion_flags(const struct test_mode *t, int flags) +static void fbc_setup_last_action(void) { - if (!(flags & DONT_ASSERT_FEATURE_STATUS)) { - if (!(flags & ASSERT_FBC_DISABLED)) - flags |= ASSERT_FBC_ENABLED; - if (!(flags & ASSERT_PSR_DISABLED)) - flags |= ASSERT_PSR_ENABLED; - if (!((flags & ASSERT_DRRS_LOW) || - (flags & ASSERT_DRRS_INACTIVE))) - flags |= ASSERT_DRRS_HIGH; + ssize_t n_read; + char buf[128]; + char *action; + + + debugfs_read_crtc("i915_fbc_status", buf); + action = strstr(buf, "\nLast action:"); + if (!action) { + igt_info("FBC last action not supported\n"); + return; } - if ((t->feature & FEATURE_FBC) == 0 || (flags & DONT_ASSERT_FBC_STATUS)) - flags &= ~FBC_ASSERT_FLAGS; - if ((t->feature & FEATURE_PSR) == 0) - flags &= ~PSR_ASSERT_FLAGS; - if ((t->feature & FEATURE_DRRS) == 0) - flags &= ~DRRS_ASSERT_FLAGS; + fbc.supports_last_action = true; - return flags; + n_read = sscanf(action, "Last action: %ld.%ld", + &fbc.last_action.tv_sec, &fbc.last_action.tv_nsec); + igt_assert(n_read == 2); } -static void do_crc_assertions(int flags) +static bool fbc_is_compressing(void) { - igt_crc_t crc; - - if (!opt.check_crc || (flags & DONT_ASSERT_CRC)) - return; + char buf[128]; - collect_crc(&crc); - print_crc("Calculated CRC:", &crc); + debugfs_read_crtc("i915_fbc_status", buf); + return strstr(buf, "\nCompressing: yes\n") != NULL; +} - igt_assert(wanted_crc); - igt_assert_crc_equal(&crc, wanted_crc); +static bool fbc_wait_for_compression(void) +{ + return igt_wait(fbc_is_compressing(), 2000, 1); } -static void do_status_assertions(int flags) +static bool fbc_not_enough_stolen(void) { - if (!opt.check_status) { - /* Make sure we settle before continuing. */ - sleep(1); - return; - } + char buf[128]; - if (flags & ASSERT_DRRS_HIGH) { - if (!is_drrs_high()) { - drrs_print_status(); - igt_assert_f(false, "DRRS HIGH\n"); - } - } else if (flags & ASSERT_DRRS_LOW) { - if (!drrs_wait_until_rr_switch_to_low()) { - drrs_print_status(); - igt_assert_f(false, "DRRS LOW\n"); - } - } else if (flags & ASSERT_DRRS_INACTIVE) { - if (!intel_is_drrs_inactive(drm.fd, prim_mode_params.pipe)) { - drrs_print_status(); - igt_assert_f(false, "DRRS INACTIVE\n"); - } - } + debugfs_read_crtc("i915_fbc_status", buf); + return strstr(buf, "FBC disabled: not enough stolen memory\n"); +} - if (flags & ASSERT_FBC_ENABLED) { - igt_require(!fbc_not_enough_stolen()); - igt_require(!fbc_stride_not_supported()); - igt_require(!fbc_mode_too_large()); - if (!intel_fbc_wait_until_enabled(drm.fd, prim_mode_params.pipe)) { - igt_assert_f(intel_fbc_is_enabled(drm.fd, - prim_mode_params.pipe, - IGT_LOG_WARN), - "FBC disabled\n"); - } +static bool fbc_stride_not_supported(void) +{ + char buf[128]; - if (opt.fbc_check_compression) - igt_assert(fbc_wait_for_compression()); - } else if (flags & ASSERT_FBC_DISABLED) { - igt_assert(!intel_fbc_wait_until_enabled(drm.fd, - prim_mode_params.pipe)); - } + debugfs_read_crtc("i915_fbc_status", buf); + return strstr(buf, "FBC disabled: framebuffer stride not supported\n"); +} - if (flags & ASSERT_PSR_ENABLED) - igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1, NULL), - "PSR still disabled\n"); - else if (flags & ASSERT_PSR_DISABLED) - igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1, NULL), - "PSR still enabled\n"); +static bool fbc_mode_too_large(void) +{ + char buf[128]; + + debugfs_read_crtc("i915_fbc_status", buf); + return strstr(buf, "FBC disabled: mode too large for compression\n"); } -static void __do_assertions(const struct test_mode *t, int flags, - int line) +static bool fbc_enable_per_plane(int plane_index, enum pipe pipe) { - flags = adjust_assertion_flags(t, flags); + char buf[PATH_MAX]; + char buf_plane[128]; - /* Make sure any submitted rendering is now idle. */ - if (!(flags & ASSERT_NO_IDLE_GPU)) - gem_quiescent_gpu(drm.fd); + sprintf(buf_plane, "%d%s", plane_index, kmstest_pipe_name(pipe)); - igt_debug("checking asserts in line %i\n", line); + debugfs_read_crtc("i915_fbc_status", buf); + return strstr(strstr(buf, "*"), buf_plane); +} - wait_user(2, "Paused before assertions."); +static bool drrs_wait_until_rr_switch_to_low(void) +{ + return igt_wait(is_drrs_low(), 5000, 1); +} - /* Check the CRC to make sure the drawing operations work - * immediately, independently of the features being enabled. */ - do_crc_assertions(flags); +static struct rect pat1_get_rect(struct fb_region *fb, int r) +{ + struct rect rect; - /* Now we can flush things to make the test faster. */ - do_flush(t); + switch (r) { + case 0: + rect.x = 0; + rect.y = 0; + rect.w = fb->w / 8; + rect.h = fb->h / 8; + rect.color = pick_color(fb->fb, COLOR_GREEN); + break; + case 1: + rect.x = fb->w / 8 * 4; + rect.y = fb->h / 8 * 4; + rect.w = fb->w / 8 * 2; + rect.h = fb->h / 8 * 2; + rect.color = pick_color(fb->fb, COLOR_RED); + break; + case 2: + rect.x = fb->w / 16 + 1; + rect.y = fb->h / 16 + 1; + rect.w = fb->w / 8 + 1; + rect.h = fb->h / 8 + 1; + rect.color = pick_color(fb->fb, COLOR_MAGENTA); + break; + case 3: + rect.x = fb->w - 1; + rect.y = fb->h - 1; + rect.w = 1; + rect.h = 1; + rect.color = pick_color(fb->fb, COLOR_CYAN); + break; + default: + igt_assert(false); + } - do_status_assertions(flags); + return rect; +} - /* Check CRC again to make sure the compressed screen is ok, - * except if we're not drawing on the primary screen. On this - * case, the first check should be enough and a new CRC check - * would only delay the test suite while adding no value to the - * test suite. */ - if (t->screen == SCREEN_PRIM) - do_crc_assertions(flags); +static struct rect pat2_get_rect(struct fb_region *fb, int r) +{ + struct rect rect; - if (fbc.supports_last_action && opt.fbc_check_last_action) { - if (flags & ASSERT_LAST_ACTION_CHANGED) - igt_assert(fbc_last_action_changed()); - else if (flags & ASSERT_NO_ACTION_CHANGE) - igt_assert(!fbc_last_action_changed()); + rect.x = 0; + rect.y = 0; + rect.w = 64; + rect.h = 64; + + switch (r) { + case 0: + rect.color = pick_color(fb->fb, COLOR_GREEN); + break; + case 1: + rect.x = 31; + rect.y = 31; + rect.w = 31; + rect.h = 31; + rect.color = pick_color(fb->fb, COLOR_RED); + break; + case 2: + rect.x = 16; + rect.y = 16; + rect.w = 32; + rect.h = 32; + rect.color = pick_color(fb->fb, COLOR_MAGENTA); + break; + case 3: + rect.color = pick_color(fb->fb, COLOR_CYAN); + break; + default: + igt_assert(false); } - wait_user(1, "Paused after assertions."); + return rect; } -#define do_assertions(__flags) __do_assertions(t, (__flags), __LINE__) - -static void enable_prim_screen_and_wait(const struct test_mode *t) +static struct rect pat3_get_rect(struct fb_region *fb, int r) { - fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); - set_mode_for_params(&prim_mode_params); + struct rect rect; - wanted_crc = &blue_crcs[t->format].crc; - fbc_update_last_action(); + rect.w = 64; + rect.h = 64; + rect.color = pick_color(fb->fb, COLOR_GREEN); + + switch (r) { + case 0: + rect.x = 0; + rect.y = 0; + break; + case 1: + rect.x = 64; + rect.y = 64; + break; + case 2: + rect.x = 1; + rect.y = 1; + break; + case 3: + rect.x = fb->w - 64; + rect.y = fb->h - 64; + break; + case 4: + rect.x = fb->w / 2 - 32; + rect.y = fb->h / 2 - 32; + break; + default: + igt_assert(false); + } - do_assertions(ASSERT_NO_ACTION_CHANGE); + return rect; } -static void update_modeset_cached_params(enum igt_draw_method method) +static struct rect pat4_get_rect(struct fb_region *fb, int r) { - bool found = false; - - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); - igt_output_set_pipe(scnd_mode_params.output, scnd_mode_params.pipe); - - found = igt_override_all_active_output_modes_to_fit_bw(&drm.display); - igt_require_f(found, "No valid mode combo found.\n"); - - prim_mode_params.mode = *igt_output_get_mode(prim_mode_params.output); - prim_mode_params.primary.w = prim_mode_params.mode.hdisplay; - prim_mode_params.primary.h = prim_mode_params.mode.vdisplay; + struct rect rect; - scnd_mode_params.mode = *igt_output_get_mode(scnd_mode_params.output); - scnd_mode_params.primary.w = scnd_mode_params.mode.hdisplay; - scnd_mode_params.primary.h = scnd_mode_params.mode.vdisplay; + igt_assert_eq(r, 0); - fill_fb_region(&prim_mode_params.primary, method, COLOR_PRIM_BG); - fill_fb_region(&scnd_mode_params.primary, method, COLOR_SCND_BG); + rect.x = 0; + rect.y = 0; + rect.w = fb->w; + rect.h = fb->h; + rect.color = pick_color(fb->fb, COLOR_GREEN); - __set_mode_for_params(&prim_mode_params); - __set_mode_for_params(&scnd_mode_params); + return rect; } -static void enable_both_screens_and_wait(const struct test_mode *t) +static void fb_dirty_ioctl(struct fb_region *fb, struct rect *rect) { - int ret; - - fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); - fill_fb_region(&scnd_mode_params.primary, t->method, COLOR_SCND_BG); - - __set_mode_for_params(&prim_mode_params); - __set_mode_for_params(&scnd_mode_params); + int rc; + drmModeClip clip = { + .x1 = rect->x, + .x2 = rect->x + rect->w, + .y1 = rect->y, + .y2 = rect->y + rect->h, + }; - if (drm.display.is_atomic) - ret = igt_display_try_commit_atomic(&drm.display, - DRM_MODE_ATOMIC_TEST_ONLY | - DRM_MODE_ATOMIC_ALLOW_MODESET, - NULL); - else - ret = igt_display_try_commit2(&drm.display, COMMIT_LEGACY); + rc = drmModeDirtyFB(drm.fd, fb->fb->fb_id, &clip, 1); - if (ret) - update_modeset_cached_params(t->method); + igt_assert(rc == 0 || rc == -ENOSYS); +} - igt_display_commit2(&drm.display, drm.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); +static void draw_rect(struct draw_pattern_info *pattern, struct fb_region *fb, + enum igt_draw_method method, int r) +{ + struct rect rect = pattern->get_rect(fb, r); - wanted_crc = &blue_crcs[t->format].crc; - fbc_update_last_action(); + igt_draw_rect_fb(drm.fd, drm.bops, 0, fb->fb, method, + fb->x + rect.x, fb->y + rect.y, + rect.w, rect.h, rect.color); - do_assertions(ASSERT_NO_ACTION_CHANGE); + fb_dirty_ioctl(fb, &rect); } -static void set_region_for_test(const struct test_mode *t, - struct fb_region *reg) +static void draw_rect_igt_fb(struct draw_pattern_info *pattern, + struct igt_fb *fb, enum igt_draw_method method, + int r) { - fill_fb_region(reg, t->method, COLOR_PRIM_BG); - - igt_plane_set_fb(reg->plane, reg->fb); - igt_plane_set_position(reg->plane, 0, 0); - igt_plane_set_size(reg->plane, reg->w, reg->h); - igt_fb_set_size(reg->fb, reg->plane, reg->w, reg->h); + struct fb_region region = { + .fb = fb, + .x = 0, + .y = 0, + .w = fb->width, + .h = fb->height, + }; - igt_display_commit(&drm.display); - do_assertions(ASSERT_NO_ACTION_CHANGE); + draw_rect(pattern, ®ion, method, r); } -static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane) +static void fill_fb_region(struct fb_region *region, + enum igt_draw_method method, + enum color ecolor) { - struct igt_fb fb; - uint32_t color; - - igt_info("Testing fbc on plane %i%s\n", plane->index + 1, kmstest_pipe_name(prim_mode_params.pipe)); + uint32_t color = pick_color(region->fb, ecolor); - create_fb(t->format, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay, t->tiling, t->plane, &fb); - color = pick_color(&fb, COLOR_PRIM_BG); - igt_draw_rect_fb(drm.fd, drm.bops, 0, &fb, t->method, - 0, 0, fb.width, fb.height, + igt_draw_rect_fb(drm.fd, drm.bops, 0, region->fb, method, + region->x, region->y, region->w, region->h, color); +} - igt_plane_set_fb(plane, &fb); - igt_plane_set_position(plane, 0, 0); - igt_plane_set_size(plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); - igt_fb_set_size(&fb, plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); - igt_display_commit_atomic(&drm.display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - - fbc_update_last_action(); - do_assertions(ASSERT_FBC_ENABLED | ASSERT_NO_ACTION_CHANGE); - igt_assert_f(fbc_enable_per_plane(plane->index + 1, prim_mode_params.pipe), "FBC disabled\n"); +static void _fb_dirty_ioctl(struct fb_region *region) +{ + struct rect rect; - igt_remove_fb(drm.fd, &fb); - igt_plane_set_fb(plane, NULL); - igt_display_commit2(&drm.display, COMMIT_ATOMIC); + rect.x = region->x; + rect.y = region->y; + rect.w = region->w; + rect.h = region->h; + fb_dirty_ioctl(region, &rect); } -static bool enable_features_for_test(const struct test_mode *t) +static void unset_all_crtcs(void) { - bool ret = false; + igt_display_reset(&drm.display); + igt_display_commit(&drm.display); +} +static bool disable_features(const struct test_mode *t) +{ if (t->feature == FEATURE_DEFAULT) return false; - if (t->feature & FEATURE_FBC) - intel_fbc_enable(drm.fd); - if (t->feature & FEATURE_PSR) - ret = psr_enable(drm.fd, drm.debugfs, PSR_MODE_1); - if (t->feature & FEATURE_DRRS) - intel_drrs_enable(drm.fd, prim_mode_params.pipe); + intel_fbc_disable(drm.fd); + intel_drrs_disable(drm.fd, prim_mode_params.pipe); - return ret; + return psr.can_test ? psr_disable(drm.fd, drm.debugfs) : false; } -static void check_test_requirements(const struct test_mode *t) +static void *busy_thread_func(void *data) { - int ver; - - if (t->pipes == PIPE_DUAL) - igt_require_f(scnd_mode_params.output, - "Can't test dual pipes with the current outputs\n"); - - if (t->feature & FEATURE_FBC) - igt_require_f(fbc.can_test, - "Can't test FBC with this chipset\n"); - - if (t->feature & FEATURE_PSR) { - igt_require_f(psr.can_test, - "Can't test PSR with the current outputs\n"); - } - - if (t->feature & FEATURE_DRRS) - igt_require_f(drrs.can_test, - "Can't test DRRS with the current outputs\n"); - - /* - * In kernel, When PSR is enabled, DRRS will be disabled. So If a test - * case needs DRRS + PSR enabled, that will be skipped. - */ - igt_require_f(!((t->feature & FEATURE_PSR) && - (t->feature & FEATURE_DRRS)), - "Can't test PSR and DRRS together\n"); - - if (opt.only_pipes != PIPE_COUNT) - igt_require(t->pipes == opt.only_pipes); - - /* Kernel disables fbc for display versions 12 and 13 if psr is enabled. */ - ver = intel_display_ver(intel_get_drm_devid(drm.fd)); - if (ver >= 12 && ver <= 13) - igt_require_f(!((t->feature & FEATURE_PSR) && - (t->feature & FEATURE_FBC)), - "Can't test PSR and FBC together\n"); + while (!busy_thread.stop) + igt_draw_rect(drm.fd, drm.bops, 0, busy_thread.handle, + busy_thread.size, busy_thread.stride, + busy_thread.tiling, IGT_DRAW_BLT, 0, 0, + busy_thread.width, busy_thread.height, + busy_thread.color, busy_thread.bpp); + pthread_exit(0); } -static void set_crtc_fbs(const struct test_mode *t) +static void start_busy_thread(struct igt_fb *fb) { - struct screen_fbs *s = &fbs[t->format]; + int rc; - create_fbs(t->format, t->tiling); + igt_assert(busy_thread.stop == true); + busy_thread.stop = false; + busy_thread.handle = fb->gem_handle; + busy_thread.size = fb->size; + busy_thread.stride = fb->strides[0]; + busy_thread.width = fb->width; + busy_thread.height = fb->height; + busy_thread.color = pick_color(fb, COLOR_PRIM_BG); + busy_thread.bpp = igt_drm_format_to_bpp(fb->drm_format); + busy_thread.tiling = igt_fb_mod_to_tiling(fb->modifier); - switch (t->fbs) { - case FBS_INDIVIDUAL: - prim_mode_params.primary.fb = &s->prim_pri; - scnd_mode_params.primary.fb = &s->scnd_pri; - offscreen_fb.fb = &s->offscreen; + rc = pthread_create(&busy_thread.thread, NULL, busy_thread_func, NULL); + igt_assert_eq(rc, 0); +} - prim_mode_params.primary.x = 0; - scnd_mode_params.primary.x = 0; - offscreen_fb.x = 0; +static void stop_busy_thread(void) +{ + if (!busy_thread.stop) { + busy_thread.stop = true; + igt_assert(pthread_join(busy_thread.thread, NULL) == 0); + } +} - prim_mode_params.primary.y = 0; - scnd_mode_params.primary.y = 0; - offscreen_fb.y = 0; - break; - case FBS_SHARED: - /* Please see the comment at the top of create_shared_fb(). */ - prim_mode_params.primary.fb = &s->big; - scnd_mode_params.primary.fb = &s->big; - offscreen_fb.fb = &s->big; +static void print_crc(const char *str, igt_crc_t *crc) +{ + char *pipe_str; - prim_mode_params.primary.x = opt.shared_fb_x_offset; - scnd_mode_params.primary.x = opt.shared_fb_x_offset; - offscreen_fb.x = opt.shared_fb_x_offset; + pipe_str = igt_crc_to_string(crc); - prim_mode_params.primary.y = opt.shared_fb_y_offset; - scnd_mode_params.primary.y = prim_mode_params.primary.y + - prim_mode_params.primary.h; - offscreen_fb.y = scnd_mode_params.primary.y + scnd_mode_params.primary.h; - break; - default: - igt_assert(false); - } + igt_debug("%s pipe:[%s]\n", str, pipe_str); - prim_mode_params.cursor.fb = &s->prim_cur; - prim_mode_params.sprite.fb = &s->prim_spr; - scnd_mode_params.cursor.fb = &s->scnd_cur; - scnd_mode_params.sprite.fb = &s->scnd_spr; + free(pipe_str); } -static void prepare_subtest_data(const struct test_mode *t, - struct draw_pattern_info *pattern) +static void collect_crc(igt_crc_t *crc) { - bool need_modeset; + igt_pipe_crc_collect_crc(pipe_crc, crc); +} - check_test_requirements(t); +static void init_blue_crc(enum pixel_format format, enum tiling_type tiling) +{ + struct igt_fb blue; - stop_busy_thread(); + if (blue_crcs[format].initialized) + return; - need_modeset = disable_features(t); - set_crtc_fbs(t); + create_fb(format, prim_mode_params.mode.hdisplay, + prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, + &blue); - if (t->screen == SCREEN_OFFSCREEN) - fill_fb_region(&offscreen_fb, t->method, COLOR_OFFSCREEN_BG); + fill_fb(&blue, COLOR_PRIM_BG); - igt_display_reset(&drm.display); - if (need_modeset) - igt_display_commit(&drm.display); + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); + igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); + igt_plane_set_fb(prim_mode_params.primary.plane, &blue); + igt_display_commit(&drm.display); - init_blue_crc(t->format, t->tiling); - if (pattern) - init_crcs(t->format, t->tiling, pattern); + if (!pipe_crc) { + pipe_crc = igt_pipe_crc_new(drm.fd, prim_mode_params.pipe, + IGT_PIPE_CRC_SOURCE_AUTO); + igt_assert(pipe_crc); + } - need_modeset = enable_features_for_test(t); - if (need_modeset) - igt_display_commit(&drm.display); -} + collect_crc(&blue_crcs[format].crc); -static void prepare_subtest_screens(const struct test_mode *t) -{ - if (t->pipes == PIPE_DUAL) - enable_both_screens_and_wait(t); - else - enable_prim_screen_and_wait(t); + print_crc("Blue CRC: ", &blue_crcs[format].crc); - if (t->screen == SCREEN_PRIM) { - if (t->plane == PLANE_CUR) - set_region_for_test(t, &prim_mode_params.cursor); - if (t->plane == PLANE_SPR) - set_region_for_test(t, &prim_mode_params.sprite); - } + igt_display_reset(&drm.display); - if (t->pipes == PIPE_DUAL && t->screen == SCREEN_SCND) { - if (t->plane == PLANE_CUR) - set_region_for_test(t, &scnd_mode_params.cursor); - if (t->plane == PLANE_SPR) - set_region_for_test(t, &scnd_mode_params.sprite); - } -} + igt_remove_fb(drm.fd, &blue); -static void prepare_subtest(const struct test_mode *t, - struct draw_pattern_info *pattern) -{ - prepare_subtest_data(t, pattern); - prepare_subtest_screens(t); + blue_crcs[format].initialized = true; } -/** - * SUBTEST: drrs-%dp-rte - * Description: Sanity test to enable DRRS with %arg[1] panels. - * Driver requirement: i915, xe - * Functionality: fbt, drrs - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-rte - * Description: Sanity test to enable FBC with %arg[1] panels. - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-rte - * Description: Sanity test to enable PSR with %arg[1] panels. - * Driver requirement: i915, xe - * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-rte - * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-rte - * Description: Sanity test to enable FBC & PSR with %arg[1] panels. - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-rte - * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. - * Driver requirement: i915, xe - * Functionality: fbt, drrs, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-rte - * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. - * Driver requirement: i915, xe - * Functionality: fbc, fbt, drrs, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - */ - -/* - * rte - the basic sanity test - * - * METHOD - * Just disable all screens, assert everything is disabled, then enable all - * screens - including primary, cursor and sprite planes - and assert that - * the tested feature is enabled. - * - * EXPECTED RESULTS - * Blue screens and t->feature enabled. - * - * FAILURES - * A failure here means that every other subtest will probably fail too. It - * probably means that the Kernel is just not enabling the feature we want. - */ -static void rte_subtest(const struct test_mode *t) +static void init_crcs(enum pixel_format format, enum tiling_type tiling, + struct draw_pattern_info *pattern) { - prepare_subtest_data(t, NULL); + int r, r_; + struct igt_fb tmp_fbs[pattern->n_rects]; - unset_all_crtcs(); - do_assertions(ASSERT_FBC_DISABLED | ASSERT_PSR_DISABLED | - DONT_ASSERT_CRC | ASSERT_DRRS_INACTIVE); + if (pattern->initialized[format]) + return; - if (t->pipes == PIPE_SINGLE) - enable_prim_screen_and_wait(t); - else - enable_both_screens_and_wait(t); + pattern->crcs[format] = calloc(pattern->n_rects, + sizeof(*(pattern->crcs[format]))); - set_region_for_test(t, &prim_mode_params.cursor); - set_region_for_test(t, &prim_mode_params.sprite); + for (r = 0; r < pattern->n_rects; r++) + create_fb(format, prim_mode_params.mode.hdisplay, + prim_mode_params.mode.vdisplay, tiling, + PLANE_PRI, &tmp_fbs[r]); - if (t->pipes == PIPE_DUAL) { - set_region_for_test(t, &scnd_mode_params.cursor); - set_region_for_test(t, &scnd_mode_params.sprite); + for (r = 0; r < pattern->n_rects; r++) + fill_fb(&tmp_fbs[r], COLOR_PRIM_BG); + + if (pattern->frames_stack) { + for (r = 0; r < pattern->n_rects; r++) + for (r_ = 0; r_ <= r; r_++) + draw_rect_igt_fb(pattern, &tmp_fbs[r], + igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? + IGT_DRAW_PWRITE : IGT_DRAW_BLT, + r_); + } else { + for (r = 0; r < pattern->n_rects; r++) + draw_rect_igt_fb(pattern, &tmp_fbs[r], igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? + IGT_DRAW_PWRITE : IGT_DRAW_BLT, r); } -} -static bool is_valid_plane(igt_plane_t *plane) -{ - int index = plane->index; + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); + igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); + for (r = 0; r < pattern->n_rects; r++) { + igt_plane_set_fb(prim_mode_params.primary.plane, &tmp_fbs[r]); + igt_display_commit(&drm.display); - if (plane->type == DRM_PLANE_TYPE_CURSOR) - return false; - /* - * Execute test only on first three planes - */ - return ((index >= 0) && (index < 3)); -} + collect_crc(&pattern->crcs[format][r]); + } -/** - * plane-fbc-rte - the basic sanity test - * - * METHOD - * Just disable primary screen, assert everything is disabled, then enable single - * screens and single plane one by one and assert that the tested fbc is enabled - * for the particular plane. - * - * EXPECTED RESULTS - * Blue screens and t->feature enabled. - * - * FAILURES - * A failure here means that fbc is not getting enabled for requested plane. It means - * kernel is not able to enable fbc on the requested plane. - */ + for (r = 0; r < pattern->n_rects; r++) { + igt_debug("Rect %d CRC:", r); + print_crc("", &pattern->crcs[format][r]); + } -static void plane_fbc_rte_subtest(const struct test_mode *t) -{ - int ver; - igt_plane_t *plane; + igt_display_reset(&drm.display); - ver = intel_display_ver(intel_get_drm_devid(drm.fd)); - igt_require_f((ver >= 20), "Can't test fbc for each plane\n"); + for (r = 0; r < pattern->n_rects; r++) + igt_remove_fb(drm.fd, &tmp_fbs[r]); - prepare_subtest_data(t, NULL); - unset_all_crtcs(); - do_assertions(ASSERT_FBC_DISABLED | DONT_ASSERT_CRC); + pattern->initialized[format] = true; +} - igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); +static void setup_drm(void) +{ + drm.fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE); + drm.debugfs = igt_debugfs_dir(drm.fd); - wanted_crc = &blue_crcs[t->format].crc; + kmstest_set_vt_graphics_mode(); + igt_display_require(&drm.display, drm.fd); - for_each_plane_on_pipe(&drm.display, prim_mode_params.pipe, plane) { - if (!is_valid_plane(plane)) - continue; + drm.bops = buf_ops_create(drm.fd); +} - set_plane_for_test_fbc(t, plane); - } +static void teardown_drm(void) +{ + buf_ops_destroy(drm.bops); + igt_display_fini(&drm.display); + drm_close_driver(drm.fd); +} - igt_display_reset(&drm.display); +static void setup_modeset(void) +{ + igt_require(init_modeset_cached_params()); + offscreen_fb.fb = NULL; + offscreen_fb.w = 1024; + offscreen_fb.h = 1024; + create_fbs(FORMAT_DEFAULT, opt.tiling); } -static void update_wanted_crc(const struct test_mode *t, igt_crc_t *crc) +static void teardown_modeset(void) { - if (t->screen == SCREEN_PRIM) - wanted_crc = crc; + enum pixel_format f; + + for (f = 0; f < FORMAT_COUNT; f++) + destroy_fbs(f); } -static bool op_disables_psr(const struct test_mode *t, - enum igt_draw_method method) +static void setup_crcs(void) { - if (method != IGT_DRAW_MMAP_GTT) - return false; - if (t->screen == SCREEN_PRIM) - return true; - /* On FBS_SHARED, even if the target is not the PSR screen - * (SCREEN_PRIM), all primary planes share the same frontbuffer, so a - * write to the second screen primary plane - or offscreen plane - will - * touch the framebuffer that's also used by the primary screen. */ - if (t->fbs == FBS_SHARED && t->plane == PLANE_PRI) - return true; + enum pixel_format f; - return false; -} + for (f = 0; f < FORMAT_COUNT; f++) + blue_crcs[f].initialized = false; -/** - * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @indfb: Individual fb - * @shrfb: Shared fb - * - * arg[2]: - * - * @blt: Blitter - * @mmap-wc: MMAP-WC - * @render: Render - */ + pattern1.frames_stack = true; + pattern1.n_rects = 4; + pattern1.get_rect = pat1_get_rect; + for (f = 0; f < FORMAT_COUNT; f++) { + pattern1.initialized[f] = false; + pattern1.crcs[f] = NULL; + } -/** - * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @indfb: Individual fb - * @shrfb: Shared fb - * - * arg[2]: - * - * @mmap-cpu: MMAP-CPU - * @mmap-gtt: MMAP-GTT - * @pwrite: PWRITE - */ + pattern2.frames_stack = true; + pattern2.n_rects = 4; + pattern2.get_rect = pat2_get_rect; + for (f = 0; f < FORMAT_COUNT; f++) { + pattern2.initialized[f] = false; + pattern2.crcs[f] = NULL; + } -/** - * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - * - * arg[2]: - * - * @cur: Cursor plane - * @pri: Primary plane - * @spr: Sprite plane - * - * arg[3]: - * - * @mmap-cpu: MMAP-CPU - * @mmap-gtt: MMAP-GTT - * @pwrite: PWRITE - */ + pattern3.frames_stack = false; + pattern3.n_rects = 5; + pattern3.get_rect = pat3_get_rect; + for (f = 0; f < FORMAT_COUNT; f++) { + pattern3.initialized[f] = false; + pattern3.crcs[f] = NULL; + } + + pattern4.frames_stack = false; + pattern4.n_rects = 1; + pattern4.get_rect = pat4_get_rect; + for (f = 0; f < FORMAT_COUNT; f++) { + pattern4.initialized[f] = false; + pattern4.crcs[f] = NULL; + } +} + +static void teardown_crcs(void) +{ + enum pixel_format f; + + for (f = 0; f < FORMAT_COUNT; f++) { + if (pattern1.crcs[f]) + free(pattern1.crcs[f]); + if (pattern2.crcs[f]) + free(pattern2.crcs[f]); + if (pattern3.crcs[f]) + free(pattern3.crcs[f]); + if (pattern4.crcs[f]) + free(pattern4.crcs[f]); + } -/** - * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - * - * arg[2]: - * - * @cur: Cursor plane - * @pri: Primary plane - * @spr: Sprite plane - * - * arg[3]: - * - * @blt: Blitter - * @mmap-wc: MMAP-WC - * @render: Render - */ + igt_pipe_crc_free(pipe_crc); +} -/** - * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - * - * arg[2]: - * - * @blt: Blitter - * @mmap-wc: MMAP-WC - * @render: Render - */ +static void setup_fbc(void) +{ + if (!intel_fbc_supported_on_chipset(drm.fd, prim_mode_params.pipe)) { + igt_info("Can't test FBC: not supported on this chipset\n"); + return; + } -/** - * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - * - * arg[2]: - * - * @mmap-cpu: MMAP-CPU - * @mmap-gtt: MMAP-GTT - * @pwrite: PWRITE - */ + fbc.can_test = true; -/** - * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @cur: Cursor plane - * @pri: Primary plane - * @spr: Sprite plane - * - * arg[2]: - * - * @blt: Blitter - * @mmap-wc: MMAP-WC - * @render: Render - */ + fbc_setup_last_action(); +} -/** - * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @cur: Cursor plane - * @pri: Primary plane - * @spr: Sprite plane - * - * arg[2]: - * - * @mmap-cpu: MMAP-CPU - * @mmap-gtt: MMAP-GTT - * @pwrite: PWRITE - */ +static void teardown_fbc(void) +{ +} -/** - * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @blt: Blitter - * @mmap-wc: MMAP-WC - * @render: Render - */ +static void setup_psr(void) +{ + if (prim_mode_params.output->config.connector->connector_type != + DRM_MODE_CONNECTOR_eDP) { + igt_info("Can't test PSR: no usable eDP screen.\n"); + return; + } -/** - * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s - * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @mmap-cpu: MMAP-CPU - * @mmap-gtt: MMAP-GTT - * @pwrite: PWRITE - */ + if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1, NULL)) { + igt_info("Can't test PSR: not supported by sink.\n"); + return; + } + psr.can_test = true; +} -/* - * draw - draw a set of rectangles on the screen using the provided method - * - * METHOD - * Just set the screens as appropriate and then start drawing a series of - * rectangles on the target screen. The important guy here is the drawing - * method used. - * - * EXPECTED RESULTS - * The feature either stays enabled or gets reenabled after the oprations. You - * will also see the rectangles on the target screen. - * - * FAILURES - * A failure here indicates a problem somewhere between the Kernel's - * frontbuffer tracking infrastructure or the feature itself. You need to pay - * attention to which drawing method is being used. - */ -static void draw_subtest(const struct test_mode *t) +static void teardown_psr(void) { - int r; - int assertions = 0; - struct draw_pattern_info *pattern; - struct modeset_params *params = pick_params(t); - struct fb_region *target; +} + +static void setup_drrs(void) +{ + if (!intel_output_has_drrs(drm.fd, prim_mode_params.output)) { + igt_info("Can't test DRRS: no usable screen.\n"); + return; + } + + if (!intel_is_drrs_supported(drm.fd, prim_mode_params.pipe)) { + igt_info("Can't test DRRS: Not supported.\n"); + return; + } + + drrs.can_test = true; +} + +static void setup_environment(void) +{ + setup_drm(); + setup_modeset(); + + setup_fbc(); + setup_psr(); + setup_drrs(); + + setup_crcs(); +} + +static void teardown_environment(void) +{ + stop_busy_thread(); + + teardown_crcs(); + teardown_psr(); + teardown_fbc(); + teardown_modeset(); + teardown_drm(); +} + +static void wait_user(int step, const char *msg) +{ + if (opt.step < step) + return; + + igt_info("%s Press enter...\n", msg); + while (getchar() != '\n') + ; +} +static struct modeset_params *pick_params(const struct test_mode *t) +{ switch (t->screen) { case SCREEN_PRIM: - if (t->method != IGT_DRAW_MMAP_GTT && t->plane == PLANE_PRI) - assertions |= ASSERT_LAST_ACTION_CHANGED; - else - assertions |= ASSERT_NO_ACTION_CHANGE; - break; + return &prim_mode_params; case SCREEN_SCND: + return &scnd_mode_params; case SCREEN_OFFSCREEN: - assertions |= ASSERT_NO_ACTION_CHANGE; - break; + return NULL; default: igt_assert(false); } +} + +static struct fb_region *pick_target(const struct test_mode *t, + struct modeset_params *params) +{ + if (!params) + return &offscreen_fb; switch (t->plane) { case PLANE_PRI: - pattern = &pattern1; - break; + return ¶ms->primary; case PLANE_CUR: + return ¶ms->cursor; case PLANE_SPR: - pattern = &pattern2; - break; + return ¶ms->sprite; default: igt_assert(false); } +} - if (op_disables_psr(t, t->method)) - assertions |= ASSERT_PSR_DISABLED; +static void do_flush(const struct test_mode *t) +{ + struct modeset_params *params = pick_params(t); + struct fb_region *target = pick_target(t, params); - /* - * On FBS_INDIVIDUAL, write to offscreen plane will not touch the - * current frambuffer. Hence assert for DRRS_LOW. - */ - if ((t->fbs == FBS_INDIVIDUAL) && (t->screen == SCREEN_OFFSCREEN)) - assertions |= ASSERT_DRRS_LOW; + if (is_i915_device(drm.fd)) + gem_set_domain(drm.fd, target->fb->gem_handle, I915_GEM_DOMAIN_GTT, 0); +} - prepare_subtest(t, pattern); - target = pick_target(t, params); +#define DONT_ASSERT_CRC (1 << 0) +#define DONT_ASSERT_FEATURE_STATUS (1 << 1) +#define DONT_ASSERT_FBC_STATUS (1 << 12) - for (r = 0; r < pattern->n_rects; r++) { - igt_debug("Drawing rect %d\n", r); - draw_rect(pattern, target, t->method, r); - update_wanted_crc(t, &pattern->crcs[t->format][r]); - do_assertions(assertions); +#define FBC_ASSERT_FLAGS (0xF << 2) +#define ASSERT_FBC_ENABLED (1 << 2) +#define ASSERT_FBC_DISABLED (1 << 3) +#define ASSERT_LAST_ACTION_CHANGED (1 << 4) +#define ASSERT_NO_ACTION_CHANGE (1 << 5) + +#define PSR_ASSERT_FLAGS (3 << 6) +#define ASSERT_PSR_ENABLED (1 << 6) +#define ASSERT_PSR_DISABLED (1 << 7) + +#define DRRS_ASSERT_FLAGS (7 << 8) +#define ASSERT_DRRS_HIGH (1 << 8) +#define ASSERT_DRRS_LOW (1 << 9) +#define ASSERT_DRRS_INACTIVE (1 << 10) + +#define ASSERT_NO_IDLE_GPU (1 << 11) + +static int adjust_assertion_flags(const struct test_mode *t, int flags) +{ + if (!(flags & DONT_ASSERT_FEATURE_STATUS)) { + if (!(flags & ASSERT_FBC_DISABLED)) + flags |= ASSERT_FBC_ENABLED; + if (!(flags & ASSERT_PSR_DISABLED)) + flags |= ASSERT_PSR_ENABLED; + if (!((flags & ASSERT_DRRS_LOW) || + (flags & ASSERT_DRRS_INACTIVE))) + flags |= ASSERT_DRRS_HIGH; } + + if ((t->feature & FEATURE_FBC) == 0 || (flags & DONT_ASSERT_FBC_STATUS)) + flags &= ~FBC_ASSERT_FLAGS; + if ((t->feature & FEATURE_PSR) == 0) + flags &= ~PSR_ASSERT_FLAGS; + if ((t->feature & FEATURE_DRRS) == 0) + flags &= ~DRRS_ASSERT_FLAGS; + + return flags; } -/** - * SUBTEST: drrs-%dp-pri-indfb-multidraw - * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-pri-indfb-multidraw - * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-pri-indfb-multidraw - * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw - * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw - * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw - * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw - * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - */ +static void do_crc_assertions(int flags) +{ + igt_crc_t crc; + + if (!opt.check_crc || (flags & DONT_ASSERT_CRC)) + return; + + collect_crc(&crc); + print_crc("Calculated CRC:", &crc); + + igt_assert(wanted_crc); + igt_assert_crc_equal(&crc, wanted_crc); +} + +static void do_status_assertions(int flags) +{ + if (!opt.check_status) { + /* Make sure we settle before continuing. */ + sleep(1); + return; + } + + if (flags & ASSERT_DRRS_HIGH) { + if (!is_drrs_high()) { + drrs_print_status(); + igt_assert_f(false, "DRRS HIGH\n"); + } + } else if (flags & ASSERT_DRRS_LOW) { + if (!drrs_wait_until_rr_switch_to_low()) { + drrs_print_status(); + igt_assert_f(false, "DRRS LOW\n"); + } + } else if (flags & ASSERT_DRRS_INACTIVE) { + if (!intel_is_drrs_inactive(drm.fd, prim_mode_params.pipe)) { + drrs_print_status(); + igt_assert_f(false, "DRRS INACTIVE\n"); + } + } + + if (flags & ASSERT_FBC_ENABLED) { + igt_require(!fbc_not_enough_stolen()); + igt_require(!fbc_stride_not_supported()); + igt_require(!fbc_mode_too_large()); + if (!intel_fbc_wait_until_enabled(drm.fd, prim_mode_params.pipe)) { + igt_assert_f(intel_fbc_is_enabled(drm.fd, + prim_mode_params.pipe, + IGT_LOG_WARN), + "FBC disabled\n"); + } + + if (opt.fbc_check_compression) + igt_assert(fbc_wait_for_compression()); + } else if (flags & ASSERT_FBC_DISABLED) { + igt_assert(!intel_fbc_wait_until_enabled(drm.fd, + prim_mode_params.pipe)); + } + + if (flags & ASSERT_PSR_ENABLED) + igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1, NULL), + "PSR still disabled\n"); + else if (flags & ASSERT_PSR_DISABLED) + igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1, NULL), + "PSR still enabled\n"); +} + +static void __do_assertions(const struct test_mode *t, int flags, + int line) +{ + flags = adjust_assertion_flags(t, flags); + + /* Make sure any submitted rendering is now idle. */ + if (!(flags & ASSERT_NO_IDLE_GPU)) + gem_quiescent_gpu(drm.fd); + + igt_debug("checking asserts in line %i\n", line); + + wait_user(2, "Paused before assertions."); + + /* Check the CRC to make sure the drawing operations work + * immediately, independently of the features being enabled. */ + do_crc_assertions(flags); + + /* Now we can flush things to make the test faster. */ + do_flush(t); + + do_status_assertions(flags); + + /* Check CRC again to make sure the compressed screen is ok, + * except if we're not drawing on the primary screen. On this + * case, the first check should be enough and a new CRC check + * would only delay the test suite while adding no value to the + * test suite. */ + if (t->screen == SCREEN_PRIM) + do_crc_assertions(flags); + + if (fbc.supports_last_action && opt.fbc_check_last_action) { + if (flags & ASSERT_LAST_ACTION_CHANGED) + igt_assert(fbc_last_action_changed()); + else if (flags & ASSERT_NO_ACTION_CHANGE) + igt_assert(!fbc_last_action_changed()); + } + + wait_user(1, "Paused after assertions."); +} + +#define do_assertions(__flags) __do_assertions(t, (__flags), __LINE__) + +static void enable_prim_screen_and_wait(const struct test_mode *t) +{ + fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); + set_mode_for_params(&prim_mode_params); -/* - * multidraw - draw a set of rectangles on the screen using alternated drawing - * methods - * - * METHOD - * This is just like the draw subtest, but now we keep alternating between two - * drawing methods. Each time we run multidraw_subtest we will test all the - * possible pairs of drawing methods. - * - * EXPECTED RESULTS - * The same as the draw subtest. - * - * FAILURES - * If you get a failure here, first you need to check whether you also get - * failures on the individual draw subtests. If yes, then go fix every single - * draw subtest first. If all the draw subtests pass but this one fails, then - * you have to study how one drawing method is stopping the other from - * properly working. - */ -static void multidraw_subtest(const struct test_mode *t) + wanted_crc = &blue_crcs[t->format].crc; + fbc_update_last_action(); + + do_assertions(ASSERT_NO_ACTION_CHANGE); +} + +static void update_modeset_cached_params(enum igt_draw_method method) { - int r; - int assertions = 0; - struct draw_pattern_info *pattern; - struct modeset_params *params = pick_params(t); - struct fb_region *target; - enum igt_draw_method m1, m2, used_method; - bool wc_used = false; + bool found = false; - switch (t->plane) { - case PLANE_PRI: - pattern = &pattern1; - break; - case PLANE_CUR: - case PLANE_SPR: - pattern = &pattern2; - break; - default: - igt_assert(false); - } + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); + igt_output_set_pipe(scnd_mode_params.output, scnd_mode_params.pipe); - prepare_subtest(t, pattern); - target = pick_target(t, params); + found = igt_override_all_active_output_modes_to_fit_bw(&drm.display); + igt_require_f(found, "No valid mode combo found.\n"); - for (m1 = 0; m1 < IGT_DRAW_METHOD_COUNT; m1++) { - for (m2 = m1 + 1; m2 < IGT_DRAW_METHOD_COUNT; m2++) { + prim_mode_params.mode = *igt_output_get_mode(prim_mode_params.output); + prim_mode_params.primary.w = prim_mode_params.mode.hdisplay; + prim_mode_params.primary.h = prim_mode_params.mode.vdisplay; - igt_debug("Methods %s and %s\n", - igt_draw_get_method_name(m1), - igt_draw_get_method_name(m2)); + scnd_mode_params.mode = *igt_output_get_mode(scnd_mode_params.output); + scnd_mode_params.primary.w = scnd_mode_params.mode.hdisplay; + scnd_mode_params.primary.h = scnd_mode_params.mode.vdisplay; - if (!igt_draw_supports_method(drm.fd, m1) || - !igt_draw_supports_method(drm.fd, m2)) - continue; + fill_fb_region(&prim_mode_params.primary, method, COLOR_PRIM_BG); + fill_fb_region(&scnd_mode_params.primary, method, COLOR_SCND_BG); - for (r = 0; r < pattern->n_rects; r++) { - used_method = (r % 2 == 0) ? m1 : m2; + __set_mode_for_params(&prim_mode_params); + __set_mode_for_params(&scnd_mode_params); +} - igt_debug("Used method %s\n", - igt_draw_get_method_name(used_method)); +static void enable_both_screens_and_wait(const struct test_mode *t) +{ + int ret; - draw_rect(pattern, target, used_method, r); + fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); + fill_fb_region(&scnd_mode_params.primary, t->method, COLOR_SCND_BG); - if (used_method == IGT_DRAW_MMAP_WC || - used_method == IGT_DRAW_MMAP_GTT) - wc_used = true; + __set_mode_for_params(&prim_mode_params); + __set_mode_for_params(&scnd_mode_params); - update_wanted_crc(t, - &pattern->crcs[t->format][r]); + if (drm.display.is_atomic) + ret = igt_display_try_commit_atomic(&drm.display, + DRM_MODE_ATOMIC_TEST_ONLY | + DRM_MODE_ATOMIC_ALLOW_MODESET, + NULL); + else + ret = igt_display_try_commit2(&drm.display, COMMIT_LEGACY); - assertions = used_method != IGT_DRAW_MMAP_GTT ? - ASSERT_LAST_ACTION_CHANGED : - ASSERT_NO_ACTION_CHANGE; - if (op_disables_psr(t, used_method) && - !wc_used) - assertions |= ASSERT_PSR_DISABLED; + if (ret) + update_modeset_cached_params(t->method); - do_assertions(assertions); - } + igt_display_commit2(&drm.display, drm.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); - fill_fb_region(target, m2, COLOR_PRIM_BG); - _fb_dirty_ioctl(target); + wanted_crc = &blue_crcs[t->format].crc; + fbc_update_last_action(); - update_wanted_crc(t, &blue_crcs[t->format].crc); - do_assertions(ASSERT_NO_ACTION_CHANGE); - } - } + do_assertions(ASSERT_NO_ACTION_CHANGE); } -static bool format_is_valid(int feature_flags, - enum pixel_format format) +static void set_region_for_test(const struct test_mode *t, + struct fb_region *reg) { - int devid = intel_get_drm_devid(drm.fd); + fill_fb_region(reg, t->method, COLOR_PRIM_BG); - if (!(feature_flags & FEATURE_FBC)) - return true; + igt_plane_set_fb(reg->plane, reg->fb); + igt_plane_set_position(reg->plane, 0, 0); + igt_plane_set_size(reg->plane, reg->w, reg->h); + igt_fb_set_size(reg->fb, reg->plane, reg->w, reg->h); - switch (format) { - case FORMAT_RGB888: - return true; - case FORMAT_RGB565: - if (IS_GEN2(devid) || IS_G4X(devid)) - return false; - return true; - case FORMAT_RGB101010: - return false; - default: - igt_assert(false); - } + igt_display_commit(&drm.display); + do_assertions(ASSERT_NO_ACTION_CHANGE); } -/* - * badformat - test pixel formats that are not supported by at least one feature - * - * METHOD - * We just do a modeset on a buffer with the given pixel format and check the - * status of the relevant features. - * - * EXPECTED RESULTS - * No assertion failures :) - * - * FAILURES - * If you get a feature enabled/disabled assertion failure, then you should - * probably check the Kernel code for the feature that checks the pixel - * formats. If you get a CRC assertion failure, then you should use the - * appropriate command line arguments that will allow you to look at the - * screen, then judge what to do based on what you see. - */ -static void badformat_subtest(const struct test_mode *t) +static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane) { - bool fbc_valid = format_is_valid(FEATURE_FBC, t->format); - bool psr_valid = format_is_valid(FEATURE_PSR, t->format); - int assertions = ASSERT_NO_ACTION_CHANGE; + struct igt_fb fb; + uint32_t color; - prepare_subtest_data(t, NULL); + igt_info("Testing fbc on plane %i%s\n", plane->index + 1, kmstest_pipe_name(prim_mode_params.pipe)); - fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); - set_mode_for_params(&prim_mode_params); + create_fb(t->format, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay, t->tiling, t->plane, &fb); + color = pick_color(&fb, COLOR_PRIM_BG); + igt_draw_rect_fb(drm.fd, drm.bops, 0, &fb, t->method, + 0, 0, fb.width, fb.height, + color); - wanted_crc = &blue_crcs[t->format].crc; + igt_plane_set_fb(plane, &fb); + igt_plane_set_position(plane, 0, 0); + igt_plane_set_size(plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); + igt_fb_set_size(&fb, plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); + igt_display_commit_atomic(&drm.display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); - if (!fbc_valid) - assertions |= ASSERT_FBC_DISABLED; - if (!psr_valid) - assertions |= ASSERT_PSR_DISABLED; - do_assertions(assertions); -} + fbc_update_last_action(); + do_assertions(ASSERT_FBC_ENABLED | ASSERT_NO_ACTION_CHANGE); + igt_assert_f(fbc_enable_per_plane(plane->index + 1, prim_mode_params.pipe), "FBC disabled\n"); -/** - * SUBTEST: drrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @rgb101010: FORMAT_RGB101010 - * @rgb565: FORMAT_RGB565 - * - * arg[2]: - * - * @blt: Blitter - * @mmap-wc: MMAP-WC - * @render: Render - */ + igt_remove_fb(drm.fd, &fb); + igt_plane_set_fb(plane, NULL); + igt_display_commit2(&drm.display, COMMIT_ATOMIC); +} -/** - * SUBTEST: drrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915 - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%s-draw-%s - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @rgb101010: FORMAT_RGB101010 - * @rgb565: FORMAT_RGB565 - * - * arg[2]: - * - * @mmap-cpu: MMAP-CPU - * @mmap-gtt: MMAP-GTT - * @pwrite: PWRITE - */ +static bool enable_features_for_test(const struct test_mode *t) +{ + bool ret = false; -/* - * format_draw - test pixel formats that are not FORMAT_DEFAULT - * - * METHOD - * The real subtest to be executed depends on whether the pixel format is - * supported by the features being tested or not. Check the documentation of - * each subtest. - * - * EXPECTED RESULTS - * See the documentation for each subtest. - * - * FAILURES - * See the documentation for each subtest. - */ -static void format_draw_subtest(const struct test_mode *t) + if (t->feature == FEATURE_DEFAULT) + return false; + + if (t->feature & FEATURE_FBC) + intel_fbc_enable(drm.fd); + if (t->feature & FEATURE_PSR) + ret = psr_enable(drm.fd, drm.debugfs, PSR_MODE_1); + if (t->feature & FEATURE_DRRS) + intel_drrs_enable(drm.fd, prim_mode_params.pipe); + + return ret; +} + +static void check_test_requirements(const struct test_mode *t) { - if (format_is_valid(t->feature, t->format)) - draw_subtest(t); - else - badformat_subtest(t); + int ver; + + if (t->pipes == PIPE_DUAL) + igt_require_f(scnd_mode_params.output, + "Can't test dual pipes with the current outputs\n"); + + if (t->feature & FEATURE_FBC) + igt_require_f(fbc.can_test, + "Can't test FBC with this chipset\n"); + + if (t->feature & FEATURE_PSR) { + igt_require_f(psr.can_test, + "Can't test PSR with the current outputs\n"); + } + + if (t->feature & FEATURE_DRRS) + igt_require_f(drrs.can_test, + "Can't test DRRS with the current outputs\n"); + + /* + * In kernel, When PSR is enabled, DRRS will be disabled. So If a test + * case needs DRRS + PSR enabled, that will be skipped. + */ + igt_require_f(!((t->feature & FEATURE_PSR) && + (t->feature & FEATURE_DRRS)), + "Can't test PSR and DRRS together\n"); + + if (opt.only_pipes != PIPE_COUNT) + igt_require(t->pipes == opt.only_pipes); + + /* Kernel disables fbc for display versions 12 and 13 if psr is enabled. */ + ver = intel_display_ver(intel_get_drm_devid(drm.fd)); + if (ver >= 12 && ver <= 13) + igt_require_f(!((t->feature & FEATURE_PSR) && + (t->feature & FEATURE_FBC)), + "Can't test PSR and FBC together\n"); + } -static bool tiling_is_valid(int feature_flags, enum tiling_type tiling) +static void set_crtc_fbs(const struct test_mode *t) { - int devid = intel_get_drm_devid(drm.fd); + struct screen_fbs *s = &fbs[t->format]; - if (!(feature_flags & FEATURE_FBC)) - return true; + create_fbs(t->format, t->tiling); - switch (tiling) { - case TILING_LINEAR: - return AT_LEAST_GEN(devid, 9); - case TILING_X: - case TILING_Y: - return true; - case TILING_4: - return AT_LEAST_GEN(devid, 12); + switch (t->fbs) { + case FBS_INDIVIDUAL: + prim_mode_params.primary.fb = &s->prim_pri; + scnd_mode_params.primary.fb = &s->scnd_pri; + offscreen_fb.fb = &s->offscreen; + + prim_mode_params.primary.x = 0; + scnd_mode_params.primary.x = 0; + offscreen_fb.x = 0; + + prim_mode_params.primary.y = 0; + scnd_mode_params.primary.y = 0; + offscreen_fb.y = 0; + break; + case FBS_SHARED: + /* Please see the comment at the top of create_shared_fb(). */ + prim_mode_params.primary.fb = &s->big; + scnd_mode_params.primary.fb = &s->big; + offscreen_fb.fb = &s->big; + + prim_mode_params.primary.x = opt.shared_fb_x_offset; + scnd_mode_params.primary.x = opt.shared_fb_x_offset; + offscreen_fb.x = opt.shared_fb_x_offset; + + prim_mode_params.primary.y = opt.shared_fb_y_offset; + scnd_mode_params.primary.y = prim_mode_params.primary.y + + prim_mode_params.primary.h; + offscreen_fb.y = scnd_mode_params.primary.y + scnd_mode_params.primary.h; + break; default: igt_assert(false); - return false; } -} -/** - * SUBTEST: drrs-slowdraw - * Description: Sleep a little bit between drawing operations with DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-slowdraw - * Description: Sleep a little bit between drawing operations with PSR - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-slowdraw - * Description: Sleep a little bit between drawing operations with FBC & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-slowdraw - * Description: Sleep a little bit between drawing operations with FBC & PSR - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-slowdraw - * Description: Sleep a little bit between drawing operations with PSR & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-slowdraw - * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - */ + prim_mode_params.cursor.fb = &s->prim_cur; + prim_mode_params.sprite.fb = &s->prim_spr; + scnd_mode_params.cursor.fb = &s->scnd_cur; + scnd_mode_params.sprite.fb = &s->scnd_spr; +} -/* - * slow_draw - sleep a little bit between drawing operations - * - * METHOD - * This test is basically the same as the draw subtest, except that we sleep a - * little bit after each drawing operation. The goal is to detect problems - * that can happen in case a drawing operation is done while the machine is in - * some deep sleep states. - * - * EXPECTED RESULTS - * The pattern appears on the screen as expected. - * - * FAILURES - * I've seen this happen in a SKL machine and still haven't investigated it. - * My guess would be that preventing deep sleep states fixes the problem. - */ -static void slow_draw_subtest(const struct test_mode *t) +static void prepare_subtest_data(const struct test_mode *t, + struct draw_pattern_info *pattern) { - int r; - struct draw_pattern_info *pattern = &pattern1; - struct modeset_params *params = pick_params(t); - struct fb_region *target; + bool need_modeset; + + check_test_requirements(t); + + stop_busy_thread(); - prepare_subtest(t, pattern); - sleep(2); - target = pick_target(t, params); + need_modeset = disable_features(t); + set_crtc_fbs(t); - for (r = 0; r < pattern->n_rects; r++) { - sleep(2); - draw_rect(pattern, target, t->method, r); - sleep(2); + if (t->screen == SCREEN_OFFSCREEN) + fill_fb_region(&offscreen_fb, t->method, COLOR_OFFSCREEN_BG); - update_wanted_crc(t, &pattern->crcs[t->format][r]); + igt_display_reset(&drm.display); + if (need_modeset) + igt_display_commit(&drm.display); - if (t->feature & FEATURE_DRRS) - do_assertions(ASSERT_DRRS_LOW); - else - do_assertions(0); - } -} + init_blue_crc(t->format, t->tiling); + if (pattern) + init_crcs(t->format, t->tiling, pattern); -static void flip_handler(int fd, unsigned int sequence, unsigned int tv_sec, - unsigned int tv_usec, void *data) -{ - igt_debug("Flip event received.\n"); + need_modeset = enable_features_for_test(t); + if (need_modeset) + igt_display_commit(&drm.display); } -static void wait_flip_event(void) +static void prepare_subtest_screens(const struct test_mode *t) { - int rc; - drmEventContext evctx; - struct pollfd pfd; - - evctx.version = 2; - evctx.vblank_handler = NULL; - evctx.page_flip_handler = flip_handler; + if (t->pipes == PIPE_DUAL) + enable_both_screens_and_wait(t); + else + enable_prim_screen_and_wait(t); - pfd.fd = drm.fd; - pfd.events = POLLIN; - pfd.revents = 0; + if (t->screen == SCREEN_PRIM) { + if (t->plane == PLANE_CUR) + set_region_for_test(t, &prim_mode_params.cursor); + if (t->plane == PLANE_SPR) + set_region_for_test(t, &prim_mode_params.sprite); + } - rc = poll(&pfd, 1, TIME); - switch (rc) { - case 0: - igt_assert_f(false, "Poll timeout\n"); - break; - case 1: - rc = drmHandleEvent(drm.fd, &evctx); - igt_assert_eq(rc, 0); - break; - default: - igt_assert_f(false, "Unexpected poll rc %d\n", rc); - break; + if (t->pipes == PIPE_DUAL && t->screen == SCREEN_SCND) { + if (t->plane == PLANE_CUR) + set_region_for_test(t, &scnd_mode_params.cursor); + if (t->plane == PLANE_SPR) + set_region_for_test(t, &scnd_mode_params.sprite); } } -static void set_prim_plane_for_params(struct modeset_params *params) +static void prepare_subtest(const struct test_mode *t, + struct draw_pattern_info *pattern) { - __set_prim_plane_for_params(params); - igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); + prepare_subtest_data(t, pattern); + prepare_subtest_screens(t); } -static void page_flip_for_params(struct modeset_params *params, - enum flip_type type) +/* + * rte - the basic sanity test + * + * METHOD + * Just disable all screens, assert everything is disabled, then enable all + * screens - including primary, cursor and sprite planes - and assert that + * the tested feature is enabled. + * + * EXPECTED RESULTS + * Blue screens and t->feature enabled. + * + * FAILURES + * A failure here means that every other subtest will probably fail too. It + * probably means that the Kernel is just not enabling the feature we want. + */ +static void rte_subtest(const struct test_mode *t) { - int rc; + prepare_subtest_data(t, NULL); - switch (type) { - case FLIP_PAGEFLIP: - rc = drmModePageFlip(drm.fd, drm.display.pipes[params->pipe].crtc_id, - params->primary.fb->fb_id, - DRM_MODE_PAGE_FLIP_EVENT, NULL); - igt_assert_eq(rc, 0); - wait_flip_event(); - break; - case FLIP_MODESET: - set_mode_for_params(params); - break; - case FLIP_PLANES: - set_prim_plane_for_params(params); - break; - default: - igt_assert(false); + unset_all_crtcs(); + do_assertions(ASSERT_FBC_DISABLED | ASSERT_PSR_DISABLED | + DONT_ASSERT_CRC | ASSERT_DRRS_INACTIVE); + + if (t->pipes == PIPE_SINGLE) + enable_prim_screen_and_wait(t); + else + enable_both_screens_and_wait(t); + + set_region_for_test(t, &prim_mode_params.cursor); + set_region_for_test(t, &prim_mode_params.sprite); + + if (t->pipes == PIPE_DUAL) { + set_region_for_test(t, &scnd_mode_params.cursor); + set_region_for_test(t, &scnd_mode_params.sprite); } } -/** - * SUBTEST: drrs-%dp-primscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - * - * arg[2]: - * - * @indfb: Individual fb - * @shrfb: Shared fb - * - * arg[3]: - * - * @ms: Modeset - * @pg: Page flip - * @pl: Plane change - */ +static bool is_valid_plane(igt_plane_t *plane) +{ + int index = plane->index; + + if (plane->type == DRM_PLANE_TYPE_CURSOR) + return false; + /* + * Execute test only on first three planes + */ + return ((index >= 0) && (index < 3)); +} /** - * SUBTEST: drrs-2p-scndscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt - * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @indfb: Individual fb - * @shrfb: Shared fb + * plane-fbc-rte - the basic sanity test * - * arg[2]: + * METHOD + * Just disable primary screen, assert everything is disabled, then enable single + * screens and single plane one by one and assert that the tested fbc is enabled + * for the particular plane. * - * @ms: Modeset - * @pg: Page flip - * @pl: Plane change + * EXPECTED RESULTS + * Blue screens and t->feature enabled. + * + * FAILURES + * A failure here means that fbc is not getting enabled for requested plane. It means + * kernel is not able to enable fbc on the requested plane. */ +static void plane_fbc_rte_subtest(const struct test_mode *t) +{ + int ver; + igt_plane_t *plane; + + ver = intel_display_ver(intel_get_drm_devid(drm.fd)); + igt_require_f((ver >= 20), "Can't test fbc for each plane\n"); + + prepare_subtest_data(t, NULL); + unset_all_crtcs(); + do_assertions(ASSERT_FBC_DISABLED | DONT_ASSERT_CRC); + + igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); + + wanted_crc = &blue_crcs[t->format].crc; + + for_each_plane_on_pipe(&drm.display, prim_mode_params.pipe, plane) { + if (!is_valid_plane(plane)) + continue; + + set_plane_for_test_fbc(t, plane); + } + + igt_display_reset(&drm.display); +} + +static void update_wanted_crc(const struct test_mode *t, igt_crc_t *crc) +{ + if (t->screen == SCREEN_PRIM) + wanted_crc = crc; +} + +static bool op_disables_psr(const struct test_mode *t, + enum igt_draw_method method) +{ + if (method != IGT_DRAW_MMAP_GTT) + return false; + if (t->screen == SCREEN_PRIM) + return true; + /* On FBS_SHARED, even if the target is not the PSR screen + * (SCREEN_PRIM), all primary planes share the same frontbuffer, so a + * write to the second screen primary plane - or offscreen plane - will + * touch the framebuffer that's also used by the primary screen. */ + if (t->fbs == FBS_SHARED && t->plane == PLANE_PRI) + return true; + + return false; +} + /* - * flip - just exercise page flips with the patterns we have + * draw - draw a set of rectangles on the screen using the provided method * * METHOD - * We draw the pattern on a backbuffer using the provided method, then we - * flip, making this the frontbuffer. We can flip both using the dedicated - * pageflip IOCTL or the modeset IOCTL. + * Just set the screens as appropriate and then start drawing a series of + * rectangles on the target screen. The important guy here is the drawing + * method used. * * EXPECTED RESULTS - * Everything works as expected, screen contents are properly updated. + * The feature either stays enabled or gets reenabled after the oprations. You + * will also see the rectangles on the target screen. * * FAILURES - * On a failure here you need to go directly to the Kernel's flip code and see - * how it interacts with the feature being tested. + * A failure here indicates a problem somewhere between the Kernel's + * frontbuffer tracking infrastructure or the feature itself. You need to pay + * attention to which drawing method is being used. */ -static void flip_subtest(const struct test_mode *t) +static void draw_subtest(const struct test_mode *t) { int r; int assertions = 0; - struct igt_fb fb2, *orig_fb; + struct draw_pattern_info *pattern; struct modeset_params *params = pick_params(t); - struct draw_pattern_info *pattern = &pattern1; - enum color bg_color; + struct fb_region *target; switch (t->screen) { case SCREEN_PRIM: - assertions |= ASSERT_LAST_ACTION_CHANGED; - bg_color = COLOR_PRIM_BG; + if (t->method != IGT_DRAW_MMAP_GTT && t->plane == PLANE_PRI) + assertions |= ASSERT_LAST_ACTION_CHANGED; + else + assertions |= ASSERT_NO_ACTION_CHANGE; break; case SCREEN_SCND: + case SCREEN_OFFSCREEN: assertions |= ASSERT_NO_ACTION_CHANGE; - bg_color = COLOR_SCND_BG; break; default: igt_assert(false); } - prepare_subtest(t, pattern); + switch (t->plane) { + case PLANE_PRI: + pattern = &pattern1; + break; + case PLANE_CUR: + case PLANE_SPR: + pattern = &pattern2; + break; + default: + igt_assert(false); + } - create_fb(t->format, params->primary.fb->width, params->primary.fb->height, - t->tiling, t->plane, &fb2); - fill_fb(&fb2, bg_color); - orig_fb = params->primary.fb; + if (op_disables_psr(t, t->method)) + assertions |= ASSERT_PSR_DISABLED; + + /* + * On FBS_INDIVIDUAL, write to offscreen plane will not touch the + * current frambuffer. Hence assert for DRRS_LOW. + */ + if ((t->fbs == FBS_INDIVIDUAL) && (t->screen == SCREEN_OFFSCREEN)) + assertions |= ASSERT_DRRS_LOW; + + prepare_subtest(t, pattern); + target = pick_target(t, params); for (r = 0; r < pattern->n_rects; r++) { - params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; + igt_debug("Drawing rect %d\n", r); + draw_rect(pattern, target, t->method, r); + update_wanted_crc(t, &pattern->crcs[t->format][r]); + do_assertions(assertions); + } +} + +/* + * multidraw - draw a set of rectangles on the screen using alternated drawing + * methods + * + * METHOD + * This is just like the draw subtest, but now we keep alternating between two + * drawing methods. Each time we run multidraw_subtest we will test all the + * possible pairs of drawing methods. + * + * EXPECTED RESULTS + * The same as the draw subtest. + * + * FAILURES + * If you get a failure here, first you need to check whether you also get + * failures on the individual draw subtests. If yes, then go fix every single + * draw subtest first. If all the draw subtests pass but this one fails, then + * you have to study how one drawing method is stopping the other from + * properly working. + */ +static void multidraw_subtest(const struct test_mode *t) +{ + int r; + int assertions = 0; + struct draw_pattern_info *pattern; + struct modeset_params *params = pick_params(t); + struct fb_region *target; + enum igt_draw_method m1, m2, used_method; + bool wc_used = false; + + switch (t->plane) { + case PLANE_PRI: + pattern = &pattern1; + break; + case PLANE_CUR: + case PLANE_SPR: + pattern = &pattern2; + break; + default: + igt_assert(false); + } + + prepare_subtest(t, pattern); + target = pick_target(t, params); + + for (m1 = 0; m1 < IGT_DRAW_METHOD_COUNT; m1++) { + for (m2 = m1 + 1; m2 < IGT_DRAW_METHOD_COUNT; m2++) { + + igt_debug("Methods %s and %s\n", + igt_draw_get_method_name(m1), + igt_draw_get_method_name(m2)); + + if (!igt_draw_supports_method(drm.fd, m1) || + !igt_draw_supports_method(drm.fd, m2)) + continue; + + for (r = 0; r < pattern->n_rects; r++) { + used_method = (r % 2 == 0) ? m1 : m2; + + igt_debug("Used method %s\n", + igt_draw_get_method_name(used_method)); + + draw_rect(pattern, target, used_method, r); + + if (used_method == IGT_DRAW_MMAP_WC || + used_method == IGT_DRAW_MMAP_GTT) + wc_used = true; + + update_wanted_crc(t, + &pattern->crcs[t->format][r]); + + assertions = used_method != IGT_DRAW_MMAP_GTT ? + ASSERT_LAST_ACTION_CHANGED : + ASSERT_NO_ACTION_CHANGE; + if (op_disables_psr(t, used_method) && + !wc_used) + assertions |= ASSERT_PSR_DISABLED; + + do_assertions(assertions); + } + + fill_fb_region(target, m2, COLOR_PRIM_BG); + _fb_dirty_ioctl(target); + + update_wanted_crc(t, &blue_crcs[t->format].crc); + do_assertions(ASSERT_NO_ACTION_CHANGE); + } + } +} + +static bool format_is_valid(int feature_flags, + enum pixel_format format) +{ + int devid = intel_get_drm_devid(drm.fd); + + if (!(feature_flags & FEATURE_FBC)) + return true; + + switch (format) { + case FORMAT_RGB888: + return true; + case FORMAT_RGB565: + if (IS_GEN2(devid) || IS_G4X(devid)) + return false; + return true; + case FORMAT_RGB101010: + return false; + default: + igt_assert(false); + } +} + +/* + * badformat - test pixel formats that are not supported by at least one feature + * + * METHOD + * We just do a modeset on a buffer with the given pixel format and check the + * status of the relevant features. + * + * EXPECTED RESULTS + * No assertion failures :) + * + * FAILURES + * If you get a feature enabled/disabled assertion failure, then you should + * probably check the Kernel code for the feature that checks the pixel + * formats. If you get a CRC assertion failure, then you should use the + * appropriate command line arguments that will allow you to look at the + * screen, then judge what to do based on what you see. + */ +static void badformat_subtest(const struct test_mode *t) +{ + bool fbc_valid = format_is_valid(FEATURE_FBC, t->format); + bool psr_valid = format_is_valid(FEATURE_PSR, t->format); + int assertions = ASSERT_NO_ACTION_CHANGE; - if (r != 0) - draw_rect(pattern, ¶ms->primary, t->method, r - 1); - draw_rect(pattern, ¶ms->primary, t->method, r); - update_wanted_crc(t, &pattern->crcs[t->format][r]); + prepare_subtest_data(t, NULL); - page_flip_for_params(params, t->flip); + fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); + set_mode_for_params(&prim_mode_params); - do_assertions(assertions); - } + wanted_crc = &blue_crcs[t->format].crc; - igt_remove_fb(drm.fd, &fb2); + if (!fbc_valid) + assertions |= ASSERT_FBC_DISABLED; + if (!psr_valid) + assertions |= ASSERT_PSR_DISABLED; + do_assertions(assertions); } -/** - * SUBTEST: fbc-%dp-%s-fliptrack-mmap-gtt - * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-%s-fliptrack-mmap-gtt - * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt - * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt - * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test +/* + * format_draw - test pixel formats that are not FORMAT_DEFAULT * - * arg[1].values: 1, 2 + * METHOD + * The real subtest to be executed depends on whether the pixel format is + * supported by the features being tested or not. Check the documentation of + * each subtest. * - * arg[2]: + * EXPECTED RESULTS + * See the documentation for each subtest. * - * @indfb: Individual fb - * @shrfb: Shared fb + * FAILURES + * See the documentation for each subtest. */ +static void format_draw_subtest(const struct test_mode *t) +{ + if (format_is_valid(t->feature, t->format)) + draw_subtest(t); + else + badformat_subtest(t); +} + +static bool tiling_is_valid(int feature_flags, enum tiling_type tiling) +{ + int devid = intel_get_drm_devid(drm.fd); + + if (!(feature_flags & FEATURE_FBC)) + return true; + + switch (tiling) { + case TILING_LINEAR: + return AT_LEAST_GEN(devid, 9); + case TILING_X: + case TILING_Y: + return true; + case TILING_4: + return AT_LEAST_GEN(devid, 12); + default: + igt_assert(false); + return false; + } +} /* - * fliptrack - check if the hardware tracking works after page flips + * slow_draw - sleep a little bit between drawing operations * * METHOD - * Flip to a new buffer, then draw on it using MMAP_GTT and check the CRC to - * make sure the hardware tracking detected the write. + * This test is basically the same as the draw subtest, except that we sleep a + * little bit after each drawing operation. The goal is to detect problems + * that can happen in case a drawing operation is done while the machine is in + * some deep sleep states. * * EXPECTED RESULTS - * Everything works as expected, screen contents are properly updated. + * The pattern appears on the screen as expected. * * FAILURES - * First you need to check if the draw and flip subtests pass. Only after both - * are passing this test can be useful. If we're failing only on this subtest, - * then maybe we are not properly updating the hardware tracking registers - * during the flip operations. + * I've seen this happen in a SKL machine and still haven't investigated it. + * My guess would be that preventing deep sleep states fixes the problem. */ -static void fliptrack_subtest(const struct test_mode *t, enum flip_type type) +static void slow_draw_subtest(const struct test_mode *t) { int r; - struct igt_fb fb2, *orig_fb; - struct modeset_params *params = pick_params(t); struct draw_pattern_info *pattern = &pattern1; + struct modeset_params *params = pick_params(t); + struct fb_region *target; prepare_subtest(t, pattern); - - create_fb(t->format, params->primary.fb->width, params->primary.fb->height, - t->tiling, t->plane, &fb2); - fill_fb(&fb2, COLOR_PRIM_BG); - orig_fb = params->primary.fb; + sleep(2); + target = pick_target(t, params); for (r = 0; r < pattern->n_rects; r++) { - params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; - - if (r != 0) - draw_rect(pattern, ¶ms->primary, t->method, r - 1); - - page_flip_for_params(params, type); - do_assertions(0); + sleep(2); + draw_rect(pattern, target, t->method, r); + sleep(2); - draw_rect(pattern, ¶ms->primary, t->method, r); update_wanted_crc(t, &pattern->crcs[t->format][r]); - do_assertions(ASSERT_PSR_DISABLED); + if (t->feature & FEATURE_DRRS) + do_assertions(ASSERT_DRRS_LOW); + else + do_assertions(0); + } +} + +static void flip_handler(int fd, unsigned int sequence, unsigned int tv_sec, + unsigned int tv_usec, void *data) +{ + igt_debug("Flip event received.\n"); +} + +static void wait_flip_event(void) +{ + int rc; + drmEventContext evctx; + struct pollfd pfd; + + evctx.version = 2; + evctx.vblank_handler = NULL; + evctx.page_flip_handler = flip_handler; + + pfd.fd = drm.fd; + pfd.events = POLLIN; + pfd.revents = 0; + + rc = poll(&pfd, 1, TIME); + switch (rc) { + case 0: + igt_assert_f(false, "Poll timeout\n"); + break; + case 1: + rc = drmHandleEvent(drm.fd, &evctx); + igt_assert_eq(rc, 0); + break; + default: + igt_assert_f(false, "Unexpected poll rc %d\n", rc); + break; + } +} + +static void set_prim_plane_for_params(struct modeset_params *params) +{ + __set_prim_plane_for_params(params); + igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); +} + +static void page_flip_for_params(struct modeset_params *params, + enum flip_type type) +{ + int rc; + + switch (type) { + case FLIP_PAGEFLIP: + rc = drmModePageFlip(drm.fd, drm.display.pipes[params->pipe].crtc_id, + params->primary.fb->fb_id, + DRM_MODE_PAGE_FLIP_EVENT, NULL); + igt_assert_eq(rc, 0); + wait_flip_event(); + break; + case FLIP_MODESET: + set_mode_for_params(params); + break; + case FLIP_PLANES: + set_prim_plane_for_params(params); + break; + default: + igt_assert(false); } - - igt_remove_fb(drm.fd, &fb2); } -/** - * SUBTEST: drrs-%dp-primscrn-%s-indfb-move - * Description: Just move the %arg[2] around - * Driver requirement: i915, xe - * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-%s-indfb-move - * Description: Just move the %arg[2] around - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-%s-indfb-move - * Description: Just move the %arg[2] around - * Driver requirement: i915, xe - * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move - * Description: Just move the %arg[2] around - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move - * Description: Just move the %arg[2] around - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move - * Description: Just move the %arg[2] around - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move - * Description: Just move the %arg[2] around - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - * - * arg[2]: - * - * @spr: Sprite plane - * @cur: Cursor plane - */ - -/** - * SUBTEST: drrs-2p-scndscrn-%s-indfb-move - * Description: Just move the %arg[1] around - * Driver requirement: i915, xe - * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-%s-indfb-move - * Description: Just move the %arg[1] around - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-%s-indfb-move - * Description: Just move the %arg[1] around - * Driver requirement: i915, xe - * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move - * Description: Just move the %arg[1] around - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move - * Description: Just move the %arg[1] around - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move - * Description: Just move the %arg[1] around - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move - * Description: Just move the %arg[1] around - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @spr: Sprite plane - * @cur: Cursor plane - */ - /* - * move - just move the sprite or cursor around + * flip - just exercise page flips with the patterns we have * * METHOD - * Move the surface around, following the defined pattern. + * We draw the pattern on a backbuffer using the provided method, then we + * flip, making this the frontbuffer. We can flip both using the dedicated + * pageflip IOCTL or the modeset IOCTL. * * EXPECTED RESULTS - * The move operations are properly detected by the Kernel, and the screen is - * properly updated every time. + * Everything works as expected, screen contents are properly updated. * * FAILURES - * If you get a failure here, check how the Kernel is enabling or disabling - * your feature when it moves the planes around. + * On a failure here you need to go directly to the Kernel's flip code and see + * how it interacts with the feature being tested. */ -static void move_subtest(const struct test_mode *t) +static void flip_subtest(const struct test_mode *t) { int r; - int assertions = ASSERT_NO_ACTION_CHANGE; + int assertions = 0; + struct igt_fb fb2, *orig_fb; struct modeset_params *params = pick_params(t); - struct draw_pattern_info *pattern = &pattern3; - struct fb_region *reg = pick_target(t, params); - bool repeat = false; - - prepare_subtest(t, pattern); + struct draw_pattern_info *pattern = &pattern1; + enum color bg_color; - /* Just paint the right color since we start at 0x0. */ - draw_rect(pattern, reg, t->method, 0); - update_wanted_crc(t, &pattern->crcs[t->format][0]); + switch (t->screen) { + case SCREEN_PRIM: + assertions |= ASSERT_LAST_ACTION_CHANGED; + bg_color = COLOR_PRIM_BG; + break; + case SCREEN_SCND: + assertions |= ASSERT_NO_ACTION_CHANGE; + bg_color = COLOR_SCND_BG; + break; + default: + igt_assert(false); + } - do_assertions(assertions); + prepare_subtest(t, pattern); - for (r = 1; r < pattern->n_rects; r++) { - struct rect rect = pattern->get_rect(¶ms->primary, r); + create_fb(t->format, params->primary.fb->width, params->primary.fb->height, + t->tiling, t->plane, &fb2); + fill_fb(&fb2, bg_color); + orig_fb = params->primary.fb; - igt_plane_set_fb(reg->plane, reg->fb); - igt_plane_set_position(reg->plane, rect.x, rect.y); - igt_plane_set_size(reg->plane, rect.w, rect.h); - igt_fb_set_size(reg->fb, reg->plane, rect.w, rect.h); - igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); + for (r = 0; r < pattern->n_rects; r++) { + params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; + if (r != 0) + draw_rect(pattern, ¶ms->primary, t->method, r - 1); + draw_rect(pattern, ¶ms->primary, t->method, r); update_wanted_crc(t, &pattern->crcs[t->format][r]); - do_assertions(assertions); + page_flip_for_params(params, t->flip); - /* "Move" the last rect to the same position just to make sure - * this works too. */ - if (r+1 == pattern->n_rects && !repeat) { - repeat = true; - r--; - } + do_assertions(assertions); } + + igt_remove_fb(drm.fd, &fb2); } -/** - * SUBTEST: drrs-%dp-primscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe - * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test +/* + * fliptrack - check if the hardware tracking works after page flips * - * arg[1].values: 1, 2 + * METHOD + * Flip to a new buffer, then draw on it using MMAP_GTT and check the CRC to + * make sure the hardware tracking detected the write. * - * arg[2]: + * EXPECTED RESULTS + * Everything works as expected, screen contents are properly updated. * - * @spr: Sprite plane - * @cur: Cursor plane + * FAILURES + * First you need to check if the draw and flip subtests pass. Only after both + * are passing this test can be useful. If we're failing only on this subtest, + * then maybe we are not properly updating the hardware tracking registers + * during the flip operations. */ +static void fliptrack_subtest(const struct test_mode *t, enum flip_type type) +{ + int r; + struct igt_fb fb2, *orig_fb; + struct modeset_params *params = pick_params(t); + struct draw_pattern_info *pattern = &pattern1; -/** - * SUBTEST: drrs-2p-scndscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe - * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test + prepare_subtest(t, pattern); + + create_fb(t->format, params->primary.fb->width, params->primary.fb->height, + t->tiling, t->plane, &fb2); + fill_fb(&fb2, COLOR_PRIM_BG); + orig_fb = params->primary.fb; + + for (r = 0; r < pattern->n_rects; r++) { + params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; + + if (r != 0) + draw_rect(pattern, ¶ms->primary, t->method, r - 1); + + page_flip_for_params(params, type); + do_assertions(0); + + draw_rect(pattern, ¶ms->primary, t->method, r); + update_wanted_crc(t, &pattern->crcs[t->format][r]); + + do_assertions(ASSERT_PSR_DISABLED); + } + + igt_remove_fb(drm.fd, &fb2); +} + +/* + * move - just move the sprite or cursor around * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff - * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test + * METHOD + * Move the surface around, following the defined pattern. * - * arg[1]: + * EXPECTED RESULTS + * The move operations are properly detected by the Kernel, and the screen is + * properly updated every time. * - * @spr: Sprite plane - * @cur: Cursor plane + * FAILURES + * If you get a failure here, check how the Kernel is enabling or disabling + * your feature when it moves the planes around. */ +static void move_subtest(const struct test_mode *t) +{ + int r; + int assertions = ASSERT_NO_ACTION_CHANGE; + struct modeset_params *params = pick_params(t); + struct draw_pattern_info *pattern = &pattern3; + struct fb_region *reg = pick_target(t, params); + bool repeat = false; + + prepare_subtest(t, pattern); + + /* Just paint the right color since we start at 0x0. */ + draw_rect(pattern, reg, t->method, 0); + update_wanted_crc(t, &pattern->crcs[t->format][0]); + + do_assertions(assertions); + + for (r = 1; r < pattern->n_rects; r++) { + struct rect rect = pattern->get_rect(¶ms->primary, r); + + igt_plane_set_fb(reg->plane, reg->fb); + igt_plane_set_position(reg->plane, rect.x, rect.y); + igt_plane_set_size(reg->plane, rect.w, rect.h); + igt_fb_set_size(reg->fb, reg->plane, rect.w, rect.h); + igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); + + update_wanted_crc(t, &pattern->crcs[t->format][r]); + + do_assertions(assertions); + + /* "Move" the last rect to the same position just to make sure + * this works too. */ + if (r+1 == pattern->n_rects && !repeat) { + repeat = true; + r--; + } + } +} /* * onoff - just enable and disable the sprite or cursor plane a few times @@ -3884,108 +4270,6 @@ static bool prim_plane_disabled(void) return !prim_mode_params.primary.plane->values[IGT_PLANE_FB_ID]; } -/** - * SUBTEST: drrs-%dp-primscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%dp-primscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-2p-scndscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen - * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1].values: 1, 2 - */ - /* * fullscreen_plane - put a fullscreen plane covering the whole screen * @@ -4021,87 +4305,31 @@ static void fullscreen_plane_subtest(const struct test_mode *t) igt_display_commit(&drm.display); update_wanted_crc(t, &pattern->crcs[t->format][0]); - switch (t->screen) { - case SCREEN_PRIM: - assertions = ASSERT_LAST_ACTION_CHANGED; - - if (prim_plane_disabled()) - assertions |= ASSERT_FBC_DISABLED; - break; - case SCREEN_SCND: - assertions = ASSERT_NO_ACTION_CHANGE; - break; - default: - igt_assert(false); - } - do_assertions(assertions); - - igt_plane_set_fb(params->sprite.plane, NULL); - igt_display_commit(&drm.display); - - if (t->screen == SCREEN_PRIM) - assertions = ASSERT_LAST_ACTION_CHANGED; - update_wanted_crc(t, &blue_crcs[t->format].crc); - do_assertions(assertions); - - igt_remove_fb(drm.fd, &fullscreen_fb); -} - -/** - * SUBTEST: drrs-%s-scaledprimary - * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe - * Functionality: drrs, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-%s-scaledprimary - * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe - * Functionality: fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-%s-scaledprimary - * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe - * Functionality: fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-%s-scaledprimary - * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-%s-scaledprimary - * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-%s-scaledprimary - * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-%s-scaledprimary - * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @indfb: Individual fb - * @shrfb: Shared fb - */ + switch (t->screen) { + case SCREEN_PRIM: + assertions = ASSERT_LAST_ACTION_CHANGED; + + if (prim_plane_disabled()) + assertions |= ASSERT_FBC_DISABLED; + break; + case SCREEN_SCND: + assertions = ASSERT_NO_ACTION_CHANGE; + break; + default: + igt_assert(false); + } + do_assertions(assertions); + + igt_plane_set_fb(params->sprite.plane, NULL); + igt_display_commit(&drm.display); + + if (t->screen == SCREEN_PRIM) + assertions = ASSERT_LAST_ACTION_CHANGED; + update_wanted_crc(t, &blue_crcs[t->format].crc); + do_assertions(assertions); + + igt_remove_fb(drm.fd, &fullscreen_fb); +} /* * scaledprimary - try different primary plane scaling strategies @@ -4209,56 +4437,6 @@ static void scaledprimary_subtest(const struct test_mode *t) igt_remove_fb(drm.fd, &new_fb); } -/** - * SUBTEST: drrs-modesetfrombusy - * Description: Modeset from a busy buffer to a non-busy buffer with DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-modesetfrombusy - * Description: Modeset from a busy buffer to a non-busy buffer with FBC - * Driver requirement: i915, xe - * Functionality: fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-modesetfrombusy - * Description: Modeset from a busy buffer to a non-busy buffer with PSR - * Driver requirement: i915, xe - * Functionality: fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-modesetfrombusy - * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-modesetfrombusy - * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-modesetfrombusy - * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-modesetfrombusy - * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr, scaling - * Mega feature: General Display Features - */ - /** * modesetfrombusy - modeset from a busy buffer to a non-busy buffer * @@ -4302,57 +4480,6 @@ static void modesetfrombusy_subtest(const struct test_mode *t) igt_remove_fb(drm.fd, &fb2); } -/** - * SUBTEST: drrs-suspend - * Description: Make sure suspend/resume keeps us on the same state of DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbt, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-suspend - * Description: Make sure suspend/resume keeps us on the same state of FBC - * Driver requirement: i915, xe - * Functionality: fbc, fbt, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-suspend - * Description: Make sure suspend/resume keeps us on the same state of PSR - * Driver requirement: i915, xe - * Functionality: fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-suspend - * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-suspend - * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-suspend - * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-suspend - * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test - */ - /** * suspend - make sure suspend/resume keeps us on the same state * @@ -4385,57 +4512,6 @@ static void suspend_subtest(const struct test_mode *t) do_assertions(0); } -/** - * SUBTEST: drrs-farfromfence-mmap-gtt - * Description: Test drawing as far from the fence start as possible - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbc-farfromfence-mmap-gtt - * Description: Test drawing as far from the fence start as possible - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psr-farfromfence-mmap-gtt - * Description: Test drawing as far from the fence start as possible - * Driver requirement: i915 - * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-farfromfence-mmap-gtt - * Description: Test drawing as far from the fence start as possible - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-farfromfence-mmap-gtt - * Description: Test drawing as far from the fence start as possible - * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: psrdrrs-farfromfence-mmap-gtt - * Description: Test drawing as far from the fence start as possible - * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt - * Description: Test drawing as far from the fence start as possible - * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test - */ - /** * farfromfence - test drawing as far from the fence start as possible * @@ -4509,36 +4585,6 @@ static void farfromfence_subtest(const struct test_mode *t) igt_remove_fb(drm.fd, &tall_fb); } -/** - * SUBTEST: fbc-stridechange - * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe - * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-stridechange - * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-stridechange - * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-stridechange - * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test - */ - /** * stridechange - change the frontbuffer stride by doing a modeset * @@ -4603,46 +4649,6 @@ static void stridechange_subtest(const struct test_mode *t) do_assertions(rc ? 0 : DONT_ASSERT_FBC_STATUS); } -/** - * SUBTEST: fbc-tiling-%s - * Description: Test %arg[1] formats, if the tiling format supports FBC do the - * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe - * Functionality: fbc, fbt, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcdrrs-tiling-%s - * Description: Test %arg[1] formats, if the tiling format supports FBC do the - * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsr-tiling-%s - * Description: Test %arg[1] formats, if the tiling format supports FBC do the - * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe - * Functionality: fbc, fbt, psr, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fbcpsrdrrs-tiling-%s - * Description: Test %arg[1] formats, if the tiling format supports FBC do the - * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe - * Functionality: drrs, fbc, fbt, psr, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4: 4 tiling - * @linear: Linear tiling - * @y: Y tiling - */ - /** * tiling_disable_fbc_subtest - Check if tiling is unsupported by FBC * @@ -4692,15 +4698,6 @@ static void tiling_disable_fbc_subtest(const struct test_mode *t) igt_remove_fb(drm.fd, &new_fb); } -/** - * SUBTEST: basic - * Description: Do some basic operations regardless of which features are enabled - * Driver requirement: i915, xe - * Functionality: fbt - * Mega feature: General Display Features - * Test category: functionality test - */ - /* * basic - do some basic operations regardless of which features are enabled * diff --git a/tests/intel/kms_legacy_colorkey.c b/tests/intel/kms_legacy_colorkey.c index 877a6799a..69539f558 100644 --- a/tests/intel/kms_legacy_colorkey.c +++ b/tests/intel/kms_legacy_colorkey.c @@ -21,14 +21,16 @@ * IN THE SOFTWARE. */ -#include "igt.h" -#include <errno.h> - /** * TEST: kms legacy colorkey * Category: Display * Description: Test to check the legacy set colorkey ioctl on sprite planes. - * + */ + +#include "igt.h" +#include <errno.h> + +/** * SUBTEST: basic * Description: Check that the legacy set colorkey ioctl only works on sprite planes. * Driver requirement: i915 diff --git a/tests/intel/kms_mmap_write_crc.c b/tests/intel/kms_mmap_write_crc.c index c8ff39ef0..59a838fe4 100644 --- a/tests/intel/kms_mmap_write_crc.c +++ b/tests/intel/kms_mmap_write_crc.c @@ -24,6 +24,13 @@ * Tiago Vignatti <tiago.vignatti at intel.com> */ +/** + * TEST: kms mmap write crc + * Category: Display + * Description: Use the display CRC support to validate mmap write to an already + * uncached future scanout buffer. + */ + #include <errno.h> #include <limits.h> #include <stdbool.h> @@ -37,12 +44,8 @@ #include "intel_chipset.h" #include "ioctl_wrappers.h" #include "igt_aux.h" + /** - * TEST: kms mmap write crc - * Category: Display - * Description: Use the display CRC support to validate mmap write to an already - * uncached future scanout buffer. - * * SUBTEST: main * Description: Tests that caching mode has become UC/WT and flushed using mmap write * Driver requirement: i915, xe diff --git a/tests/intel/kms_pipe_b_c_ivb.c b/tests/intel/kms_pipe_b_c_ivb.c index 386f3003a..c1a1e6610 100644 --- a/tests/intel/kms_pipe_b_c_ivb.c +++ b/tests/intel/kms_pipe_b_c_ivb.c @@ -24,13 +24,16 @@ * Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> */ -#include "igt.h" /** * TEST: kms pipe b c ivb * Category: Display * Description: Exercise the FDI lane bifurcation code for IVB in the kernel by * setting different combinations of modes for pipes B and C. - * + */ + +#include "igt.h" + +/** * SUBTEST: disable-pipe-B-enable-pipe-C * Description: Tests pipe-B and pipe-C interactions in IVB by disabling pipe-B * and then setting mode on pipe-C. diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c index f6e7db0b2..68f4dc3d1 100644 --- a/tests/intel/kms_pm_backlight.c +++ b/tests/intel/kms_pm_backlight.c @@ -25,6 +25,12 @@ * */ +/** + * TEST: kms pm backlight + * Category: Display + * Description: Basic backlight sysfs test + */ + #include "igt.h" #include <limits.h> #include <sys/types.h> @@ -36,11 +42,8 @@ #include <time.h> #include "igt_device.h" #include "igt_device_scan.h" + /** - * TEST: kms pm backlight - * Category: Display - * Description: Basic backlight sysfs test - * * SUBTEST: bad-brightness * Description: Test the bad brightness. * Driver requirement: i915, xe diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c index a3c7c4018..1c33206fc 100644 --- a/tests/intel/kms_pm_dc.c +++ b/tests/intel/kms_pm_dc.c @@ -22,6 +22,12 @@ * */ +/** + * TEST: kms pm dc + * Category: Display + * Description: Tests to validate display power DC states. + */ + #include <errno.h> #include <fcntl.h> #include <stdbool.h> @@ -39,10 +45,6 @@ #include "xe/xe_query.h" /** - * TEST: kms pm dc - * Category: Display - * Description: Tests to validate display power DC states. - * * SUBTEST: dc3co-vpb-simulation * Description: Make sure that system enters DC3CO when PSR2 is active and system * is in SLEEP state diff --git a/tests/intel/kms_pm_lpsp.c b/tests/intel/kms_pm_lpsp.c index a85e4e795..4ac99faf7 100644 --- a/tests/intel/kms_pm_lpsp.c +++ b/tests/intel/kms_pm_lpsp.c @@ -24,6 +24,12 @@ * */ +/** + * TEST: kms pm lpsp + * Description: These tests validates display Low Power Single Pipe configurations + * Category: Display + */ + #include "igt.h" #include "igt_kmod.h" #include "igt_pm.h" @@ -32,11 +38,8 @@ #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> + /** - * TEST: kms pm lpsp - * Description: These tests validates display Low Power Single Pipe configurations - * Category: Display - * * SUBTEST: kms-lpsp * Description: This test validates lpsp on all connected outputs on low power pipes * Driver requirement: i915, xe diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c index afd74eaff..1586d3bf0 100644 --- a/tests/intel/kms_psr.c +++ b/tests/intel/kms_psr.c @@ -237,18 +237,14 @@ * Functionality: dpms, pr * Mega feature: Panel Replay * Test category: functionality test - */ - -/** + * * SUBTEST: pr_no_drrs * Description: Check if pr is detecting changes when drrs is disabled * Driver requirement: i915, xe * Functionality: drrs, pr * Mega feature: Panel Replay * Test category: functionality test - */ - -/** + * * SUBTEST: pr_suspend * Description: Check if pr is detecting changes when plane operation is * performed with suspend resume cycles @@ -256,9 +252,7 @@ * Functionality: pr, suspend * Mega feature: Panel Replay * Test category: functionality test - */ - -/** + * * SUBTEST: pr_basic * Description: Basic check for pr if it is detecting changes made in planes * Driver requirement: i915, xe @@ -296,9 +290,7 @@ * Functionality: plane, pr * Mega feature: Panel Replay * Test category: functionality test - */ - -/** + * * SUBTEST: pr_primary_%s * Description: Check if pr is detecting memory mapping, rendering and plane * operations performed on primary planes @@ -335,6 +327,32 @@ * @plane_move: Move plane position */ +/** + * SUBTEST: psr_cursor_plane_move + * Description: Check if psr is detecting the plane operations performed on + * cursor planes + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: psr + * Mega feature: PSR + * + * SUBTEST: psr_primary_page_flip + * Description: Check if psr is detecting page-flipping operations performed + * on primary planes + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: psr + * Mega feature: PSR + * + * SUBTEST: psr_sprite_plane_onoff + * Description: Check if psr is detecting the plane operations performed on + * sprite planes + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: psr + * Mega feature: PSR + */ + enum operations { PAGE_FLIP, MMAP_GTT, @@ -576,32 +594,6 @@ static void fb_dirty_fb_ioctl(data_t *data, struct igt_fb *fb) igt_assert(ret == 0 || ret == -ENOSYS); } -/** - * SUBTEST: psr_cursor_plane_move - * Description: Check if psr is detecting the plane operations performed on - * cursor planes - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: psr - * Mega feature: PSR - * - * SUBTEST: psr_primary_page_flip - * Description: Check if psr is detecting page-flipping operations performed - * on primary planes - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: psr - * Mega feature: PSR - * - * SUBTEST: psr_sprite_plane_onoff - * Description: Check if psr is detecting the plane operations performed on - * sprite planes - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: psr - * Mega feature: PSR - */ - static void run_test(data_t *data) { uint32_t handle = data->fb_white.gem_handle; diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c index a597c8701..a93d496e8 100644 --- a/tests/intel/kms_psr2_sf.c +++ b/tests/intel/kms_psr2_sf.c @@ -22,6 +22,13 @@ * */ +/** + * TEST: kms psr2 sf + * Category: Display + * Description: Tests to varify PSR2 selective fetch by sending multiple damaged + * areas + */ + #include "igt.h" #include "igt_sysfs.h" #include "igt_psr.h" @@ -30,12 +37,8 @@ #include <stdbool.h> #include <stdio.h> #include <string.h> + /** - * TEST: kms psr2 sf - * Category: Display - * Description: Tests to varify PSR2 selective fetch by sending multiple damaged - * areas - * * SUBTEST: %s-plane-move-continuous-%s * Description: Test that selective fetch works on moving %arg[1] plane %arg[2] * visible area (no update) diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c index 1969c6fa7..56f35622e 100644 --- a/tests/intel/kms_psr2_su.c +++ b/tests/intel/kms_psr2_su.c @@ -22,6 +22,12 @@ * */ +/** + * TEST: kms psr2 su + * Category: Display + * Description: Test PSR2 selective update + */ + #include "igt.h" #include "igt_sysfs.h" #include "igt_psr.h" @@ -30,11 +36,8 @@ #include <stdio.h> #include <string.h> #include <sys/timerfd.h> + /** - * TEST: kms psr2 su - * Category: Display - * Description: Test PSR2 selective update - * * SUBTEST: frontbuffer-XRGB8888 * Description: Test that selective update works when screen changes * Driver requirement: i915, xe diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c index 6a3d2918c..21814f35b 100644 --- a/tests/intel/kms_psr_stress_test.c +++ b/tests/intel/kms_psr_stress_test.c @@ -1,3 +1,9 @@ + +/** + * TEST: kms psr stress test + * Category: Display + */ + #include "igt.h" #include "igt_sysfs.h" #include "igt_psr.h" @@ -7,10 +13,8 @@ #include <stdio.h> #include <string.h> #include <sys/timerfd.h> + /** - * TEST: kms psr stress test - * Category: Display - * * SUBTEST: flip-primary-invalidate-overlay * Description: Mix page flips in primary plane and frontbuffer writes to overlay * plane and check for warnings, underruns or PSR state changes diff --git a/tests/intel/kms_pwrite_crc.c b/tests/intel/kms_pwrite_crc.c index ee6b4f3e4..12add5da6 100644 --- a/tests/intel/kms_pwrite_crc.c +++ b/tests/intel/kms_pwrite_crc.c @@ -22,6 +22,12 @@ * */ +/** + * TEST: kms pwrite crc + * Category: Display + * Description: Test to validate pwrite buffer using the display CRC + */ + #include "igt.h" #include <errno.h> #include <limits.h> @@ -30,10 +36,6 @@ #include <string.h> /** - * TEST: kms pwrite crc - * Category: Display - * Description: Test to validate pwrite buffer using the display CRC - * * SUBTEST: * Description: Use the display CRC support to validate pwrite to an already * uncached future scanout buffer. diff --git a/tests/kms_3d.c b/tests/kms_3d.c index fa73d0cc6..ad6c45e9b 100644 --- a/tests/kms_3d.c +++ b/tests/kms_3d.c @@ -22,13 +22,16 @@ * */ -#include "igt.h" -#include "xe/xe_query.h" /** * TEST: kms 3d * Category: Display * Description: Tests 3D mode setting. - * + */ + +#include "igt.h" +#include "xe/xe_query.h" + +/** * SUBTEST: * Description: Tests 3D mode setting. * Driver requirement: i915, xe diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c index fc16b8814..9f8bf4275 100644 --- a/tests/kms_addfb_basic.c +++ b/tests/kms_addfb_basic.c @@ -50,22 +50,6 @@ #include "xe/xe_ioctl.h" #include "xe/xe_query.h" -static uint32_t gem_bo; -static uint32_t gem_bo_small; -static igt_display_t display; - -static int legacy_addfb(int fd, struct drm_mode_fb_cmd *arg) -{ - int err; - - err = 0; - if (igt_ioctl(fd, DRM_IOCTL_MODE_ADDFB, arg)) - err = -errno; - - errno = 0; - return err; -} - /** * SUBTEST: unused-%s * Description: Test that addfb2 call fails correctly for unused %arg[1] @@ -109,6 +93,216 @@ static int legacy_addfb(int fd, struct drm_mode_fb_cmd *arg) * @pitches: Pitches * @offsets: Offsets */ + +/** + * SUBTEST: no-handle + * Description: Test that addfb2 call fails correctly without handle + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * SUBTEST: basic + * Description: Check if addfb2 call works with given handle + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * SUBTEST: bad-pitch-%i + * Description: bad-pitch-%arg[1]: Test that addfb2 call fails correctly for bad-pitches + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * arg[1].values: 0, 32, 63, 128, 256, 999, 1024, 65536 + */ + +/** + * SUBTEST: basic-%s-tiled-legacy + * Description: Check if addfb2 and rmfb call works for basic %arg[1] test + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * + * SUBTEST: framebuffer-vs-set-tiling + * Description: Check if addfb2 call works for x and y tiling + * Driver requirement: i915 + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * + * SUBTEST: tile-pitch-mismatch + * Description: Test that addfb2 call fails correctly for pitches mismatch + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * + * arg[1]: + * + * @x: x-tiling + * @y: y-tiling + */ + +/** + * SUBTEST: size-max + * Description: Check if addfb2 call works with max size of buffer object + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * SUBTEST: too-wide + * Description: Test that addfb2 call fails correctly with increased width of fb + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * SUBTEST: too-high + * Description: Test that addfb2 call fails correctly with increased height of fb + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * SUBTEST: bo-too-small + * Description: Test that addfb2 call fails correctly with small size of buffer object + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * SUBTEST: small-bo + * Description: Check if addfb2 call works for given height + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * SUBTEST: bo-too-small-due-to-tiling + * Description: Test that addfb2 call fails correctly with small buffer object + * after changing tile + * Driver requirement: i915 + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + */ + +/** + * SUBTEST: addfb25-modifier-no-flag + * Description: Test that addfb2 call fails correctly for x-tiling with given modifier + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * + * SUBTEST: addfb25-bad-modifier + * Description: Test that addfb2 call fails correctly for irrelevant modifier + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * + * SUBTEST: addfb25-x-tiled-mismatch-legacy + * Description: Test that addfb2 call fails correctly for irrelevant x-tiling + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * + * SUBTEST: addfb25-x-tiled-legacy + * Description: Check if addfb2 call works for x-tiling + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * + * SUBTEST: addfb25-framebuffer-vs-set-tiling + * Description: Check if addfb2 call works for relevant combination of tiling and fbs + * Driver requirement: i915 + * Test category: functionality test + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + */ + +/** + * SUBTEST: addfb25-y-tiled-%s + * Description: Check if addfb2 call works for y-tiling %arg[1] + * Driver requirement: i915, xe + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: addfb25-yf-tiled-legacy + * Description: Check if addfb2 call works for yf-tiling + * Driver requirement: i915, xe + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @legacy: with default size + * @small-legacy: with given size & modifier + */ + +/** + * SUBTEST: addfb25-4-tiled + * Description: Check if addfb2 call works for tiling-4 + * Driver requirement: i915, xe + * Functionality: kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + */ + +/** + * SUBTEST: invalid-%s-%s + * Description: Test that %arg[1] ioctl call fails correctly for %arg[2] object + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * + * arg[1]: + * + * @get: get-properties + * @set: set-properties + * + * arg[2]: + * + * @prop: fb mode + * @prop-any: invalid + */ + +/** + * SUBTEST: master-rmfb + * Description: Check that only master can rmfb + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + */ + +static uint32_t gem_bo; +static uint32_t gem_bo_small; +static igt_display_t display; + +static int legacy_addfb(int fd, struct drm_mode_fb_cmd *arg) +{ + int err; + + err = 0; + if (igt_ioctl(fd, DRM_IOCTL_MODE_ADDFB, arg)) + err = -errno; + + errno = 0; + return err; +} + static void invalid_tests(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -322,30 +516,6 @@ static void invalid_tests(int fd) } } -/** - * SUBTEST: no-handle - * Description: Test that addfb2 call fails correctly without handle - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * SUBTEST: basic - * Description: Check if addfb2 call works with given handle - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * SUBTEST: bad-pitch-%i - * Description: bad-pitch-%arg[1]: Test that addfb2 call fails correctly for bad-pitches - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * arg[1].values: 0, 32, 63, 128, 256, 999, 1024, 65536 - */ static void pitch_tests(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -393,33 +563,6 @@ static void pitch_tests(int fd) gem_close(fd, gem_bo); } -/** - * SUBTEST: basic-%s-tiled-legacy - * Description: Check if addfb2 and rmfb call works for basic %arg[1] test - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * - * SUBTEST: framebuffer-vs-set-tiling - * Description: Check if addfb2 call works for x and y tiling - * Driver requirement: i915 - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * - * SUBTEST: tile-pitch-mismatch - * Description: Test that addfb2 call fails correctly for pitches mismatch - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * - * arg[1]: - * - * @x: x-tiling - * @y: y-tiling - */ static void tiling_tests(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -506,50 +649,6 @@ static void tiling_tests(int fd) } } -/** - * SUBTEST: size-max - * Description: Check if addfb2 call works with max size of buffer object - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * SUBTEST: too-wide - * Description: Test that addfb2 call fails correctly with increased width of fb - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * SUBTEST: too-high - * Description: Test that addfb2 call fails correctly with increased height of fb - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * SUBTEST: bo-too-small - * Description: Test that addfb2 call fails correctly with small size of buffer object - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * SUBTEST: small-bo - * Description: Check if addfb2 call works for given height - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * SUBTEST: bo-too-small-due-to-tiling - * Description: Test that addfb2 call fails correctly with small buffer object - * after changing tile - * Driver requirement: i915 - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - */ static void size_tests(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -665,42 +764,6 @@ static void size_tests(int fd) } } -/** - * SUBTEST: addfb25-modifier-no-flag - * Description: Test that addfb2 call fails correctly for x-tiling with given modifier - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * - * SUBTEST: addfb25-bad-modifier - * Description: Test that addfb2 call fails correctly for irrelevant modifier - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * - * SUBTEST: addfb25-x-tiled-mismatch-legacy - * Description: Test that addfb2 call fails correctly for irrelevant x-tiling - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * - * SUBTEST: addfb25-x-tiled-legacy - * Description: Check if addfb2 call works for x-tiling - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * - * SUBTEST: addfb25-framebuffer-vs-set-tiling - * Description: Check if addfb2 call works for relevant combination of tiling and fbs - * Driver requirement: i915 - * Test category: functionality test - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - */ static void addfb25_tests(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -786,26 +849,6 @@ static int addfb_expected_ret(igt_display_t *disp, struct drm_mode_fb_cmd2 *f) f->modifier[0]) ? 0 : -1; } -/** - * SUBTEST: addfb25-y-tiled-%s - * Description: Check if addfb2 call works for y-tiling %arg[1] - * Driver requirement: i915, xe - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: addfb25-yf-tiled-legacy - * Description: Check if addfb2 call works for yf-tiling - * Driver requirement: i915, xe - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @legacy: with default size - * @small-legacy: with given size & modifier - */ static void addfb25_ytile(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -872,14 +915,6 @@ static void addfb25_ytile(int fd) } } -/** - * SUBTEST: addfb25-4-tiled - * Description: Check if addfb2 call works for tiling-4 - * Driver requirement: i915, xe - * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - */ static void addfb25_4tile(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -918,24 +953,6 @@ static void addfb25_4tile(int fd) gem_close(fd, gem_bo); } -/** - * SUBTEST: invalid-%s-%s - * Description: Test that %arg[1] ioctl call fails correctly for %arg[2] object - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * - * arg[1]: - * - * @get: get-properties - * @set: set-properties - * - * arg[2]: - * - * @prop: fb mode - * @prop-any: invalid - */ static void prop_tests(int fd) { struct drm_mode_fb_cmd2 f = {}; @@ -1001,14 +1018,6 @@ static void prop_tests(int fd) } } -/** - * SUBTEST: master-rmfb - * Description: Check that only master can rmfb - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - */ static void master_tests(int fd) { struct drm_mode_fb_cmd2 f = {}; diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index f29c46645..82a8f5ef3 100644 --- a/tests/kms_async_flips.c +++ b/tests/kms_async_flips.c @@ -30,6 +30,7 @@ * Category: Display * Description: Test asynchronous page flips. */ + #include "igt.h" #include "igt_aux.h" #include "igt_psr.h" @@ -37,6 +38,54 @@ #include <sys/time.h> #include <poll.h> +/** + * SUBTEST: alternate-sync-async-flip + * Description: Verify the async flip functionality and the fps during async flips + * Alternate between sync and async flips + * Driver requirement: i915, xe + * Functionality: async_flips, vblank + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: async-flip-with-page-flip-events + * Description: Verify the async flip functionality and the fps during async flips + * Wait for page flip events in between successive asynchronous flips + * Driver requirement: i915, xe + * Functionality: async_flips, vblank + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: test-time-stamp + * Description: Verify the async flip functionality and the fps during async flips + * Verify that the async flip timestamp does not coincide with either + * previous or next vblank + * Driver requirement: i915, xe + * Functionality: async_flips, vblank + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: test-cursor + * Description: Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip + * Driver requirement: i915, xe + * Functionality: async_flips, cursor, vblank + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: crc + * Description: Use CRC to verify async flip scans out the correct framebuffer + * Driver requirement: i915, xe + * Functionality: async_flips, crc, vblank + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: invalid-async-flip + * Description: Negative case to verify if changes in fb are rejected from kernel as expected + * Driver requirement: i915, xe + * Functionality: async_flips, vblank + * Mega feature: General Display Features + * Test category: functionality test + */ + #define CURSOR_POS 128 /* @@ -203,23 +252,6 @@ static void test_init_fbs(data_t *data) igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); } -/** - * SUBTEST: alternate-sync-async-flip - * Description: Verify the async flip functionality and the fps during async flips - * Alternate between sync and async flips - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: async-flip-with-page-flip-events - * Description: Verify the async flip functionality and the fps during async flips - * Wait for page flip events in between successive asynchronous flips - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_async_flip(data_t *data) { int ret, frame; @@ -315,16 +347,6 @@ static void wait_for_vblank(data_t *data, unsigned long *vbl_time, unsigned int *seq = wait_vbl.reply.sequence; } -/** - * SUBTEST: test-time-stamp - * Description: Verify the async flip functionality and the fps during async flips - * Verify that the async flip timestamp does not coincide with either - * previous or next vblank - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_timestamp(data_t *data) { int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT; @@ -369,14 +391,6 @@ static void test_timestamp(data_t *data) "Async flip time stamp is expected to be in between 2 vblank time stamps\n"); } -/** - * SUBTEST: test-cursor - * Description: Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip - * Driver requirement: i915, xe - * Functionality: async_flips, cursor, vblank - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_cursor(data_t *data) { int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT; @@ -529,14 +543,6 @@ static unsigned int clock_ms(void) return ts.tv_sec * 1000 + ts.tv_nsec / 1000000; } -/** - * SUBTEST: crc - * Description: Use CRC to verify async flip scans out the correct framebuffer - * Driver requirement: i915, xe - * Functionality: async_flips, crc, vblank - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_crc(data_t *data) { unsigned int frame = 0; @@ -599,14 +605,6 @@ static void test_crc(data_t *data) igt_assert_lt(data->frame_count * 2, data->flip_count); } -/** - * SUBTEST: invalid-async-flip - * Description: Negative case to verify if changes in fb are rejected from kernel as expected - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test - */ static void run_test(data_t *data, void (*test)(data_t *)) { igt_display_t *display = &data->display; diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c index a47539e48..28af27f22 100644 --- a/tests/kms_atomic.c +++ b/tests/kms_atomic.c @@ -48,6 +48,94 @@ #include "igt_aux.h" #include "sw_sync.h" +/** + * SUBTEST: plane-primary-overlay-mutable-zpos + * Description: Verify that the overlay plane can cover the primary one (and + * vice versa) by changing their zpos property. + * Driver requirement: i915, xe + * Functionality: kms_core, plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-immutable-zpos + * Description: Verify the reported zpos property of planes by making sure only + * higher zpos planes cover the lower zpos ones. + * Driver requirement: i915, xe + * Functionality: kms_core, plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-%s-legacy + * Description: Test for KMS atomic modesetting on %arg[1] and ensure coherency + * between legacy and atomic interfaces. + * Driver requirement: i915, xe + * Functionality: kms_core, plane + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @cursor: Cursor plane + * @overlay: Overlay plane + * @primary: Primary plane + */ + +/** + * SUBTEST: test-only + * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches + * the free-standing state objects and nothing else. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + */ + +/** + * SUBTEST: plane-invalid-%s + * Description: Test error handling when invalid %arg[1] are passed + * Driver requirement: i915, xe + * Functionality: kms_core, plane + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @params: plane parameters + * @params-fence: plane fence parameters + */ + +/** + * SUBTEST: crtc-invalid-%s + * Description: Test error handling when invalid %arg[1] are passed + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @params: crtc parameters + * @params-fence: crtc fence parameters + */ + +/** + * SUBTEST: atomic-invalid-params + * Description: Test abuse the atomic ioctl directly in order to test various + * invalid conditions which the libdrm wrapper won't allow us to + * create. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: atomic-plane-damage + * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property + * Driver requirement: i915, xe + * Functionality: kms_core, plane + * Mega feature: General Display Features + * Test category: functionality test + */ + #ifndef DRM_CAP_CURSOR_WIDTH #define DRM_CAP_CURSOR_WIDTH 0x8 #endif @@ -302,15 +390,6 @@ static uint32_t plane_get_igt_format(igt_plane_t *plane) return 0; } -/** - * SUBTEST: plane-primary-overlay-mutable-zpos - * Description: Verify that the overlay plane can cover the primary one (and - * vice versa) by changing their zpos property. - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test - */ static void plane_primary_overlay_mutable_zpos(data_t *data, igt_output_t *output, igt_plane_t *overlay, uint32_t format_primary, uint32_t format_overlay) @@ -392,15 +471,6 @@ plane_primary_overlay_mutable_zpos(data_t *data, igt_output_t *output, igt_plane igt_assert_eq_u64(igt_plane_get_prop(overlay, IGT_PLANE_ZPOS), 1); } -/** - * SUBTEST: plane-immutable-zpos - * Description: Verify the reported zpos property of planes by making sure only - * higher zpos planes cover the lower zpos ones. - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test - */ static void plane_immutable_zpos(data_t *data, igt_output_t *output, enum pipe pipe, int n_planes) { @@ -530,21 +600,6 @@ plane_immutable_zpos(data_t *data, igt_output_t *output, enum pipe pipe, int n_p igt_remove_fb(data->drm_fd, &fb_upper); } -/** - * SUBTEST: plane-%s-legacy - * Description: Test for KMS atomic modesetting on %arg[1] and ensure coherency - * between legacy and atomic interfaces. - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @cursor: Cursor plane - * @overlay: Overlay plane - * @primary: Primary plane - */ static void plane_overlay(data_t *data, igt_output_t *output, igt_plane_t *plane, uint32_t format) { @@ -631,16 +686,6 @@ static void plane_primary(data_t *data) plane_commit(data->primary, COMMIT_UNIVERSAL, ATOMIC_RELAX_NONE); } -/** - * SUBTEST: test-only - * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches - * the free-standing state objects and nothing else. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - */ - /* * Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches the * free-standing state objects and nothing else. @@ -749,19 +794,6 @@ static void plane_cursor(data_t *data, igt_output_t *output, igt_plane_t *cursor plane_commit(cursor, COMMIT_LEGACY, ATOMIC_RELAX_NONE); } -/** - * SUBTEST: plane-invalid-%s - * Description: Test error handling when invalid %arg[1] are passed - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @params: plane parameters - * @params-fence: plane fence parameters - */ static void plane_invalid_params(data_t *data, igt_output_t *output) { struct igt_fb fb2; @@ -846,19 +878,6 @@ static void plane_invalid_params_fence(data_t *data, igt_output_t *output) close(timeline); } -/** - * SUBTEST: crtc-invalid-%s - * Description: Test error handling when invalid %arg[1] are passed - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @params: crtc parameters - * @params-fence: crtc fence parameters - */ static void crtc_invalid_params(data_t *data, igt_output_t *output) { uint64_t old_mode_id = data->pipe->values[IGT_CRTC_MODE_ID]; @@ -999,17 +1018,6 @@ static void crtc_invalid_params_fence(data_t *data, igt_output_t *output) igt_assert(data->pipe->out_fence_fd != -1); } -/** - * SUBTEST: atomic-invalid-params - * Description: Test abuse the atomic ioctl directly in order to test various - * invalid conditions which the libdrm wrapper won't allow us to - * create. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - */ - /* * Abuse the atomic ioctl directly in order to test various invalid conditions, * which the libdrm wrapper won't allow us to create. @@ -1148,14 +1156,6 @@ static void atomic_invalid_params(data_t *data, igt_output_t *output) do_ioctl_err(data->drm_fd, DRM_IOCTL_MODE_ATOMIC, &ioc, EFAULT); } -/** - * SUBTEST: atomic-plane-damage - * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test - */ static void atomic_plane_damage(data_t *data) { struct drm_mode_rect damage[2]; diff --git a/tests/kms_atomic_interruptible.c b/tests/kms_atomic_interruptible.c index c86db7149..7419e0746 100644 --- a/tests/kms_atomic_interruptible.c +++ b/tests/kms_atomic_interruptible.c @@ -26,59 +26,13 @@ * Category: Display * Description: Tests that interrupt various atomic ioctls. */ + #include <signal.h> #include "igt.h" #include "drmtest.h" #include "sw_sync.h" -IGT_TEST_DESCRIPTION("Tests that interrupt various atomic ioctls."); - -enum plane_test_type -{ - test_legacy_modeset, - test_atomic_modeset, - test_legacy_dpms, - test_setplane, - test_setcursor, - test_pageflip -}; - -static int block_plane(igt_display_t *display, igt_output_t *output, enum plane_test_type test_type, igt_plane_t *plane) -{ - int timeline = sw_sync_timeline_create(); - - igt_fork(child, 1) { - /* Ignore the signal helper, we need to block indefinitely on the fence. */ - signal(SIGCONT, SIG_IGN); - - if (test_type == test_legacy_modeset || test_type == test_atomic_modeset) { - igt_output_set_pipe(output, PIPE_NONE); - } - igt_plane_set_fence_fd(plane, sw_sync_timeline_create_fence(timeline, 1)); - - igt_display_commit2(display, COMMIT_ATOMIC); - } - - return timeline; -} - -static void unblock(int block) -{ - sw_sync_timeline_inc(block, 1); - close(block); -} - -static void ev_page_flip(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, void *user_data) -{ - igt_debug("Retrieved vblank seq: %u on unk\n", seq); -} - -static drmEventContext drm_events = { - .version = 2, - .page_flip_handler = ev_page_flip -}; - /** * SUBTEST: %s-setmode * Description: Tests the interrupt properties of %arg[1] modeset @@ -114,9 +68,7 @@ static drmEventContext drm_events = { * Functionality: kms_core * Mega feature: General Display Features * Test category: functionality test - */ - -/** + * * SUBTEST: universal-setplane-%s * Description: Tests the interrupt properties for %arg[1] * Driver requirement: i915, xe @@ -129,6 +81,54 @@ static drmEventContext drm_events = { * @cursor: Cursor plane * @primary: Primary plane */ + +IGT_TEST_DESCRIPTION("Tests that interrupt various atomic ioctls."); + +enum plane_test_type +{ + test_legacy_modeset, + test_atomic_modeset, + test_legacy_dpms, + test_setplane, + test_setcursor, + test_pageflip +}; + +static int block_plane(igt_display_t *display, igt_output_t *output, enum plane_test_type test_type, igt_plane_t *plane) +{ + int timeline = sw_sync_timeline_create(); + + igt_fork(child, 1) { + /* Ignore the signal helper, we need to block indefinitely on the fence. */ + signal(SIGCONT, SIG_IGN); + + if (test_type == test_legacy_modeset || test_type == test_atomic_modeset) { + igt_output_set_pipe(output, PIPE_NONE); + } + igt_plane_set_fence_fd(plane, sw_sync_timeline_create_fence(timeline, 1)); + + igt_display_commit2(display, COMMIT_ATOMIC); + } + + return timeline; +} + +static void unblock(int block) +{ + sw_sync_timeline_inc(block, 1); + close(block); +} + +static void ev_page_flip(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, void *user_data) +{ + igt_debug("Retrieved vblank seq: %u on unk\n", seq); +} + +static drmEventContext drm_events = { + .version = 2, + .page_flip_handler = ev_page_flip +}; + static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t *output, enum plane_test_type test_type, unsigned plane_type) { diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c index 1ec96ce5e..b8053acf7 100644 --- a/tests/kms_atomic_transition.c +++ b/tests/kms_atomic_transition.c @@ -25,6 +25,7 @@ * TEST: kms atomic transition * Category: Display */ + #include "igt.h" #include "igt_rand.h" #include "drmtest.h" @@ -37,6 +38,95 @@ #include <time.h> #include <poll.h> +/** + * SUBTEST: plane-primary-toggle-with-vblank-wait + * Description: Check toggling of primary plane with vblank + * Driver requirement: i915, xe + * Functionality: plane, vblank, watermark + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-all-modeset-%s + * Description: Modeset test for all plane combinations %arg[1] + * Driver requirement: i915, xe + * Functionality: plane, watermark + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @transition: default + * @transition-fencing: with fencing commit + */ + +/** + * SUBTEST: plane-all-modeset-%s + * Description: Modeset test for all plane combinations %arg[1] + * Driver requirement: i915, xe + * Functionality: plane, watermark + * Mega feature: eDP + * Test category: functionality test + * + * arg[1]: + * + * @transition-fencing-internal-panels: on internal panels with fencing commit + * @transition-internal-panels: on internal panels + */ + +/** + * SUBTEST: plane-all-%s + * Description: Transition test for all plane combinations %arg[1] + * Driver requirement: i915, xe + * Functionality: plane, watermark + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @transition: default + * @transition-fencing: with fencing commit + * @transition-nonblocking: with non-blocking commit + * @transition-nonblocking-fencing: with non-blocking & fencing commit + */ + +/** + * SUBTEST: plane-toggle-modeset-transition + * Description: Check toggling and modeset transition on plane + * Driver requirement: i915, xe + * Functionality: plane, watermark + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-use-after-nonblocking-%s + * Description: Transition test with non %arg[1] and make sure commit of disabled + * plane has to complete before atomic commit on that plane + * Driver requirement: i915, xe + * Functionality: plane, watermark + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @unbind: blocking commit + * @unbind-fencing: blocking commit with fencing + */ + +/** + * SUBTEST: modeset-%s + * Description: Modeset transition tests for combinations of %arg[1] + * Driver requirement: i915, xe + * Functionality: plane, watermark + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @transition: crtc enabled + * @transition-fencing: crtc enabled with fencing commit + * @transition-nonblocking: crtc enabled with nonblocking commit + * @transition-nonblocking-fencing: crtc enabled with nonblocking & fencing commit + */ + #ifndef DRM_CAP_CURSOR_WIDTH #define DRM_CAP_CURSOR_WIDTH 0x8 #endif @@ -62,14 +152,6 @@ int *timeline; pthread_t *thread; int *seqno; -/** - * SUBTEST: plane-primary-toggle-with-vblank-wait - * Description: Check toggling of primary plane with vblank - * Driver requirement: i915, xe - * Functionality: plane, vblank, watermark - * Mega feature: General Display Features - * Test category: functionality test - */ static void run_primary_test(data_t *data, enum pipe pipe, igt_output_t *output) { @@ -482,72 +564,6 @@ static void wait_for_transition(data_t *data, enum pipe pipe, bool nonblocking, } } -/** - * SUBTEST: plane-all-modeset-%s - * Description: Modeset test for all plane combinations %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @transition: default - * @transition-fencing: with fencing commit - */ - -/** - * SUBTEST: plane-all-modeset-%s - * Description: Modeset test for all plane combinations %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: eDP - * Test category: functionality test - * - * arg[1]: - * - * @transition-fencing-internal-panels: on internal panels with fencing commit - * @transition-internal-panels: on internal panels - */ - -/** - * SUBTEST: plane-all-%s - * Description: Transition test for all plane combinations %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @transition: default - * @transition-fencing: with fencing commit - * @transition-nonblocking: with non-blocking commit - * @transition-nonblocking-fencing: with non-blocking & fencing commit - */ - -/** - * SUBTEST: plane-toggle-modeset-transition - * Description: Check toggling and modeset transition on plane - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-use-after-nonblocking-%s - * Description: Transition test with non %arg[1] and make sure commit of disabled - * plane has to complete before atomic commit on that plane - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @unbind: blocking commit - * @unbind-fencing: blocking commit with fencing - */ - /* * 1. Set primary plane to a known fb. * 2. Make sure getcrtc returns the correct fb id. @@ -1041,21 +1057,6 @@ retry: } } -/** - * SUBTEST: modeset-%s - * Description: Modeset transition tests for combinations of %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @transition: crtc enabled - * @transition-fencing: crtc enabled with fencing commit - * @transition-nonblocking: crtc enabled with nonblocking commit - * @transition-nonblocking-fencing: crtc enabled with nonblocking & fencing commit - */ static void run_modeset_transition(data_t *data, int requested_outputs, bool nonblocking, bool fencing) { igt_output_t *outputs[IGT_MAX_PIPES] = {}; diff --git a/tests/kms_bw.c b/tests/kms_bw.c index 896114a3a..0199b5675 100644 --- a/tests/kms_bw.c +++ b/tests/kms_bw.c @@ -20,16 +20,19 @@ * OTHER DEALINGS IN THE SOFTWARE. */ +/** + * TEST: kms bw + * Category: Display + * Description: BW test with different resolutions + */ + #include "drm_mode.h" #include "igt.h" #include "drm.h" #include <stdio.h> #include <xf86drmMode.h> + /** - * TEST: kms bw - * Category: Display - * Description: BW test with different resolutions - * * SUBTEST: linear-tiling-%d-displays-%s * Description: bw test with %arg[2] * Driver requirement: i915, xe diff --git a/tests/kms_color.c b/tests/kms_color.c index f59feabd4..119dfc1f4 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -27,9 +27,8 @@ * Category: Display * Description: Test Color Features at Pipe level */ -#include "kms_color_helper.h" -IGT_TEST_DESCRIPTION("Test Color Features at Pipe level"); +#include "kms_color_helper.h" /** * SUBTEST: degamma @@ -38,7 +37,73 @@ IGT_TEST_DESCRIPTION("Test Color Features at Pipe level"); * Functionality: colorspace * Mega feature: Color mgmt * Test category: functionality test + * + * SUBTEST: gamma + * Description: Verify that gamma LUT transformation works correctly + * Driver requirement: i915, xe + * Functionality: colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * SUBTEST: legacy-gamma + * Description: Verify that legacy gamma LUT transformation works correctly + * Driver requirement: i915, xe + * Functionality: colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * SUBTEST: legacy-gamma-reset + * Description: Verify that setting the legacy gamma LUT resets the gamma LUT + * set through GAMMA_LUT property + * Driver requirement: i915, xe + * Functionality: colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * SUBTEST: ctm-%s + * Description: Check the color transformation %arg[1] + * Driver requirement: i915, xe + * Functionality: colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * arg[1]: + * + * @0-25: for 0.25 transparency + * @0-50: for 0.50 transparency + * @0-75: for 0.75 transparency + * @blue-to-red: from blue to red + * @green-to-red: from green to red + * @max: for maximum transparency + * @negative: for negative transparency + * @red-to-blue: from red to blue + * @signed: for correct signed handling + */ + +/** + * SUBTEST: deep-color + * Description: Verify that deep color works correctly + * Driver requirement: i915, xe + * Functionality: colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * SUBTEST: invalid-%s-sizes + * Description: Negative check for %arg[1] sizes + * Driver requirement: i915, xe + * Functionality: colorspace + * Mega feature: Color mgmt + * Test category: functionality test + * + * arg[1]: + * + * @ctm-matrix: Color transformation matrix + * @degamma-lut: Degamma LUT + * @gamma-lut: Gamma LUT */ + +IGT_TEST_DESCRIPTION("Test Color Features at Pipe level"); + static bool test_pipe_degamma(data_t *data, igt_plane_t *primary) { @@ -127,15 +192,6 @@ static bool test_pipe_degamma(data_t *data, return ret; } -/** - * SUBTEST: gamma - * Description: Verify that gamma LUT transformation works correctly - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test - */ - /* * Draw 3 gradient rectangles in red, green and blue, with a maxed out gamma * LUT and verify we have the same CRC as drawing solid color rectangles. @@ -224,15 +280,6 @@ static bool test_pipe_gamma(data_t *data, return ret; } -/** - * SUBTEST: legacy-gamma - * Description: Verify that legacy gamma LUT transformation works correctly - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test - */ - /* * Draw 3 gradient rectangles in red, green and blue, with a maxed out legacy * gamma LUT and verify we have the same CRC as drawing solid color rectangles @@ -345,16 +392,6 @@ static bool test_pipe_legacy_gamma(data_t *data, return ret; } -/** - * SUBTEST: legacy-gamma-reset - * Description: Verify that setting the legacy gamma LUT resets the gamma LUT - * set through GAMMA_LUT property - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test - */ - /* * Verify that setting the legacy gamma LUT resets the gamma LUT set * through the GAMMA_LUT property. @@ -489,27 +526,6 @@ end: return ret; } -/** - * SUBTEST: ctm-%s - * Description: Check the color transformation %arg[1] - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test - * - * arg[1]: - * - * @0-25: for 0.25 transparency - * @0-50: for 0.50 transparency - * @0-75: for 0.75 transparency - * @blue-to-red: from blue to red - * @green-to-red: from green to red - * @max: for maximum transparency - * @negative: for negative transparency - * @red-to-blue: from red to blue - * @signed: for correct signed handling - */ - /* * Draw 3 rectangles using before colors with the ctm matrix apply and verify * the CRC is equal to using after colors with an identify ctm matrix. @@ -869,14 +885,6 @@ out: test_cleanup(data); } -/** - * SUBTEST: deep-color - * Description: Verify that deep color works correctly - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test - */ static void run_deep_color_tests_for_pipe(data_t *data, enum pipe p) { @@ -978,20 +986,6 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) test_cleanup(data); } -/** - * SUBTEST: invalid-%s-sizes - * Description: Negative check for %arg[1] sizes - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test - * - * arg[1]: - * - * @ctm-matrix: Color transformation matrix - * @degamma-lut: Degamma LUT - * @gamma-lut: Gamma LUT - */ static void run_invalid_tests_for_pipe(data_t *data) { diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c index d1a83d14e..ce0261287 100644 --- a/tests/kms_concurrent.c +++ b/tests/kms_concurrent.c @@ -22,14 +22,17 @@ * */ -#include "igt.h" -#include "drmtest.h" /** * TEST: kms concurrent * Category: Display * Description: Test atomic mode setting concurrently with multiple planes and * screen resolution - * + */ + +#include "igt.h" +#include "drmtest.h" + +/** * SUBTEST: multi-plane-atomic-lowres * Description: Test atomic mode setting concurrently with multiple planes and * screen resolution. diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c index 9a0583d96..988f370f9 100644 --- a/tests/kms_content_protection.c +++ b/tests/kms_content_protection.c @@ -27,6 +27,7 @@ * Category: Display * Description: Test content protection (HDCP) */ + #include <poll.h> #include <fcntl.h> #include <sys/epoll.h> @@ -37,6 +38,77 @@ #include "igt_kms.h" #include "igt_kmod.h" +/** + * SUBTEST: lic + * Description: Test for the integrity of link. + * Driver requirement: i915, xe + * Functionality: hdcp1.4 + * Mega feature: HDCP + * Test category: functionality test + * + * SUBTEST: content-type-change + * Description: Test the content type change when the content protection already + * enabled + * Driver requirement: i915, xe + * Functionality: hdcp1.4, hdcp2.2 + * Mega feature: HDCP + * Test category: functionality test + * + * SUBTEST: mei-interface + * Description: Test the teardown and rebuild of the interface between Intel + * and mei hdcp. + * Driver requirement: i915, xe + * Functionality: hdcp1.4, hdcp2.2 + * Mega feature: HDCP + * Test category: functionality test + * + * SUBTEST: srm + * Description: This test writes the facsimile SRM into the /lib/firmware/ and + * check the kernel parsing of it by invoking the hdcp authentication. + * Driver requirement: i915, xe + * Functionality: hdcp1.4 + * Mega feature: HDCP + * Test category: functionality test + * + * SUBTEST: uevent + * Description: Test to detect the HDCP status change when we are reading the + * uevent sent with the corresponding connector id and property id. + * Driver requirement: i915, xe + * Functionality: hdcp1.4 + * Mega feature: HDCP + * Test category: functionality test + * + * SUBTEST: %s + * Description: Test content protection with %arg[1] + * Driver requirement: i915, xe + * Functionality: hdcp1.4 + * Mega feature: HDCP + * Test category: functionality test + * + * arg[1]: + * + * @atomic: atomic modesetting + * @atomic-dpms: DPMS ON/OFF during atomic modesetting. + * @legacy: legacy style commit + * @type1: content type 1 that can be handled only through HDCP2.2. + */ + +/** + * SUBTEST: dp-mst-%s + * Description: Test Content protection %arg[1] over DP MST. + * Driver requirement: i915, xe + * Functionality: hdcp1.4, mst + * Mega feature: HDCP + * Test category: functionality test + * + * arg[1]: + * + * @lic-type-0: Type 0 with LIC + * @lic-type-1: Type 1 with LIC. + * @type-0: Type 0 + * @type-1: Type 1 + */ + IGT_TEST_DESCRIPTION("Test content protection (HDCP)"); struct data { @@ -490,60 +562,6 @@ test_fini(igt_output_t *output, enum igt_commit_style s) igt_display_commit2(&data.display, s); } -/** - * SUBTEST: lic - * Description: Test for the integrity of link. - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test - * - * SUBTEST: content-type-change - * Description: Test the content type change when the content protection already - * enabled - * Driver requirement: i915, xe - * Functionality: hdcp1.4, hdcp2.2 - * Mega feature: HDCP - * Test category: functionality test - * - * SUBTEST: mei-interface - * Description: Test the teardown and rebuild of the interface between Intel - * and mei hdcp. - * Driver requirement: i915, xe - * Functionality: hdcp1.4, hdcp2.2 - * Mega feature: HDCP - * Test category: functionality test - * - * SUBTEST: srm - * Description: This test writes the facsimile SRM into the /lib/firmware/ and - * check the kernel parsing of it by invoking the hdcp authentication. - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test - * - * SUBTEST: uevent - * Description: Test to detect the HDCP status change when we are reading the - * uevent sent with the corresponding connector id and property id. - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test - * - * SUBTEST: %s - * Description: Test content protection with %arg[1] - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test - * - * arg[1]: - * - * @atomic: atomic modesetting - * @atomic-dpms: DPMS ON/OFF during atomic modesetting. - * @legacy: legacy style commit - * @type1: content type 1 that can be handled only through HDCP2.2. - */ static void test_content_protection(enum igt_commit_style s, int content_type) { @@ -631,21 +649,6 @@ static void test_cp_lic_on_mst(igt_output_t *mst_outputs[], int valid_outputs, b } } -/** - * SUBTEST: dp-mst-%s - * Description: Test Content protection %arg[1] over DP MST. - * Driver requirement: i915, xe - * Functionality: hdcp1.4, mst - * Mega feature: HDCP - * Test category: functionality test - * - * arg[1]: - * - * @lic-type-0: Type 0 with LIC - * @lic-type-1: Type 1 with LIC. - * @type-0: Type 0 - * @type-1: Type 1 - */ static void test_content_protection_mst(int content_type) { diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c index d2f10356b..3d1c3bcd3 100644 --- a/tests/kms_cursor_crc.c +++ b/tests/kms_cursor_crc.c @@ -22,13 +22,6 @@ * */ -#include "igt.h" -#include <errno.h> -#include <limits.h> -#include <stdbool.h> -#include <stdio.h> -#include <string.h> - /** * TEST: kms cursor crc * Category: Display @@ -42,6 +35,77 @@ * software. */ +#include "igt.h" +#include <errno.h> +#include <limits.h> +#include <stdbool.h> +#include <stdio.h> +#include <string.h> + +/** + * SUBTEST: cursor-dpms + * Description: Check random placement of a cursor with DPMS. + * Driver requirement: i915, xe + * Functionality: cursor, dpms + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: cursor-suspend + * Description: Check random placement of a cursor with suspend. + * Driver requirement: i915, xe + * Functionality: cursor, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: cursor-%s + * Description: %arg[1] + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @alpha-opaque: Validates the composition of a fully opaque cursor plane, + * i.e., alpha channel equal to 1.0. + * @alpha-transparent: Validates the composition of a fully transparent cursor + * plane, i.e., alpha channel equal to 0.0. + * @size-change: Create a maximum size cursor, then change the size in + * flight to smaller ones to see that the size is applied + * correctly. + */ + +/** + * SUBTEST: cursor-%s-%s + * Description: Check if a %arg[2] cursor is %arg[1]. + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @offscreen: well-positioned outside the screen + * @onscreen: well-positioned inside the screen + * @random: randomly placed + * @rapid-movement: rapidly udates for movements + * @sliding: smooth for horizontal, vertical & diagonal movements + * + * arg[2]: + * + * @128x128: 128x128 size + * @128x42: 128x42 size + * @256x256: 256x256 size + * @256x85: 256x85 size + * @32x10: 32x10 size + * @32x32: 32x32 size + * @512x170: 512x170 size + * @512x512: 512x512 size + * @64x21: 64x21 size + * @64x64: 64x64 size + * @max-size: Max supported size + */ + IGT_TEST_DESCRIPTION( "Use the display CRC support to validate cursor plane functionality. " "The test will position the cursor plane either fully onscreen, " @@ -667,38 +731,6 @@ static bool require_cursor_size(data_t *data, int w, int h) return !!ret; } -/** - * SUBTEST: cursor-dpms - * Description: Check random placement of a cursor with DPMS. - * Driver requirement: i915, xe - * Functionality: cursor, dpms - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: cursor-suspend - * Description: Check random placement of a cursor with suspend. - * Driver requirement: i915, xe - * Functionality: cursor, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: cursor-%s - * Description: %arg[1] - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @alpha-opaque: Validates the composition of a fully opaque cursor plane, - * i.e., alpha channel equal to 1.0. - * @alpha-transparent: Validates the composition of a fully transparent cursor - * plane, i.e., alpha channel equal to 0.0. - * @size-change: Create a maximum size cursor, then change the size in - * flight to smaller ones to see that the size is applied - * correctly. - */ static void run_test(data_t *data, void (*testfunc)(data_t *), int cursor_w, int cursor_h) { prepare_crtc(data, cursor_w, cursor_h); @@ -795,37 +827,6 @@ static bool execution_constraint(enum pipe pipe) return false; } - -/** - * SUBTEST: cursor-%s-%s - * Description: Check if a %arg[2] cursor is %arg[1]. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @offscreen: well-positioned outside the screen - * @onscreen: well-positioned inside the screen - * @random: randomly placed - * @rapid-movement: rapidly udates for movements - * @sliding: smooth for horizontal, vertical & diagonal movements - * - * arg[2]: - * - * @128x128: 128x128 size - * @128x42: 128x42 size - * @256x256: 256x256 size - * @256x85: 256x85 size - * @32x10: 32x10 size - * @32x32: 32x32 size - * @512x170: 512x170 size - * @512x512: 512x512 size - * @64x21: 64x21 size - * @64x64: 64x64 size - * @max-size: Max supported size - */ static void run_size_tests(data_t *data, int w, int h) { enum pipe pipe; diff --git a/tests/kms_cursor_edge_walk.c b/tests/kms_cursor_edge_walk.c index e284fc4d8..d9d140409 100644 --- a/tests/kms_cursor_edge_walk.c +++ b/tests/kms_cursor_edge_walk.c @@ -22,18 +22,21 @@ * */ +/** + * TEST: kms cursor edge walk + * Category: Display + * Description: Exercise CHV pipe C cursor fail + * Description: Test to check different cursor sizes by walking different edges of screen + */ + #include "igt.h" #include <errno.h> #include <limits.h> #include <stdbool.h> #include <stdio.h> #include <string.h> + /** - * TEST: kms cursor edge walk - * Category: Display - * Description: Exercise CHV pipe C cursor fail - * Description: Test to check different cursor sizes by walking different edges of screen - * * SUBTEST: %s-%s * Description: Checking cursor size %arg[1] by walking %arg[2] of screen * Driver requirement: i915, xe diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c index d0d752e5e..6a4955ef1 100644 --- a/tests/kms_cursor_legacy.c +++ b/tests/kms_cursor_legacy.c @@ -37,6 +37,256 @@ #include "igt_rand.h" #include "igt_stats.h" +/** + * SUBTEST: %s-%s + * Description: Test checks how many cursor updates we can fit between vblanks + * on single/all pipes with different modes, priority and number + * of processes + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @single: Single + * @torture: Torture + * @forked: Forked + * + * arg[2]: + * + * @bo: BO + * @move: Move + */ + +/** + * SUBTEST: basic-busy-flip-before-cursor-%s + * Description: Cursor test with %arg[1] mode + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: cursor + * Mega feature: General Display Features + * + * SUBTEST: basic-busy-flip-before-cursor-varying-size + * Description: Change the size of cursor b/w 64*64 to maxw x maxh. + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @atomic: atomic + * @legacy: legacy + */ + +/** + * SUBTEST: basic-flip-after-cursor-%s + * Description: Cursor test with %arg[1] + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: cursor + * Mega feature: General Display Features + * + * SUBTEST: basic-flip-before-cursor-%s + * Description: Cursor test with %arg[1] + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: cursor + * Mega feature: General Display Features + * + * arg[1]: + * + * @atomic: atomic mode + * @legacy: legacy mode + * @varying-size: varying size + */ + +/** + * SUBTEST: %s-flip-before-cursor-%s + * Description: Adds variety of tests: + * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n + * - atomic-transition: alternates between a full screen sprite plane + * and full screen primary plane.\n" + * - toggle: which toggles cursor visibility and make sure cursor moves + * between updates. + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @short: + * @short-busy: + * + * arg[2]: + * + * @atomic-transitions: + * @atomic-transitions-varying-size: + * @toggle: + */ + +/** + * SUBTEST: short-flip-after-cursor-%s + * Description: Adds variety of tests: + * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n + * - atomic-transition: alternates between a full screen sprite plane + * and full screen primary plane.\n" + * - toggle: which toggles cursor visibility and make sure cursor moves + * between updates. + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @atomic-transitions: + * @atomic-transitions-varying-size: + * @toggle: + */ + +/** + * SUBTEST: long-nonblocking-modeset-vs-cursor-atomic + * Description: Test checks how many cursor updates we can fit between vblanks + * on all pipes with different modes, priority and number of processes + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: nonblocking-modeset-vs-cursor-atomic + * Description: Test checks how many cursor updates we can fit between vblanks + * on all pipes with different modes, priority and number of processes + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: 2x-%s-%s + * Description: This test executes flips on both CRTCs while running cursor + * updates in parallel + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @flip-vs-cursor: + * @flip-vs-cursor: + * @long-flip-vs-cursor: + * @long-flip-vs-cursor: + * + * arg[2]: + * + * @atomic: + * @legacy: + */ + +/** + * SUBTEST: 2x-%s-atomic + * Description: This test executes flips on both CRTCs while running cursor + * updates in parallel + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @long-nonblocking-modeset-vs-cursor: + * @nonblocking-modeset-vs-cursor: + */ + +/** + * SUBTEST: %s-%s + * Description: The essence of the basic test is that neither the cursor nor the + * nonblocking flip stall the application of the next + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @cursor-vs-flip: + * @cursorA-vs-flipA: + * @cursorA-vs-flipB: + * @cursorB-vs-flipA: + * @cursorB-vs-flipB: + * @flip-vs-cursor: + * + * arg[2]: + * + * @atomic: + * @atomic-transitions: + * @atomic-transitions-varying-size: + * @legacy: + * @toggle: + * @varying-size: + */ + +/** + * SUBTEST: 2x-%s-%s + * Description: This test executes flips on both CRTCs while running cursor updates in parallel + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @cursor-vs-flip: + * @cursor-vs-flip: + * @long-cursor-vs-flip: + * @long-cursor-vs-flip: + * + * arg[2]: + * + * @atomic: + * @legacy: + */ + +/** + * SUBTEST: flip-vs-cursor-crc-%s + * Description: this test perform a page flip followed by a cursor update + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @atomic: + * @legacy: + */ + +/** + * SUBTEST: flip-vs-cursor-busy-crc-%s + * Description: this test perform a busy bo update followed by a cursor update + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @atomic: + * @legacy: + */ + +/** + * SUBTEST: modeset-atomic-cursor-hotspot + * Description: Test changes the cursor hotspot and checks that the property is + * updated accordignly + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test + */ + #if defined(__x86_64__) || defined(__i386__) #define cpu_relax() __builtin_ia32_pause() #else @@ -78,27 +328,6 @@ static void override_output_modes(igt_display_t *display, igt_output_set_pipe(output2, PIPE_NONE); } -/** - * SUBTEST: %s-%s - * Description: Test checks how many cursor updates we can fit between vblanks - * on single/all pipes with different modes, priority and number - * of processes - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @single: Single - * @torture: Torture - * @forked: Forked - * - * arg[2]: - * - * @bo: BO - * @move: Move - */ static void stress(igt_display_t *display, enum pipe pipe, int num_children, unsigned mode, int timeout) @@ -569,93 +798,6 @@ enum basic_flip_cursor { #define BASIC_BUSY 0x1 -/** - * SUBTEST: basic-busy-flip-before-cursor-%s - * Description: Cursor test with %arg[1] mode - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: cursor - * Mega feature: General Display Features - * - * SUBTEST: basic-busy-flip-before-cursor-varying-size - * Description: Change the size of cursor b/w 64*64 to maxw x maxh. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @atomic: atomic - * @legacy: legacy - */ - -/** - * SUBTEST: basic-flip-after-cursor-%s - * Description: Cursor test with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: cursor - * Mega feature: General Display Features - * - * SUBTEST: basic-flip-before-cursor-%s - * Description: Cursor test with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: cursor - * Mega feature: General Display Features - * - * arg[1]: - * - * @atomic: atomic mode - * @legacy: legacy mode - * @varying-size: varying size - */ - -/** - * SUBTEST: %s-flip-before-cursor-%s - * Description: Adds variety of tests: - * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n - * - atomic-transition: alternates between a full screen sprite plane - * and full screen primary plane.\n" - * - toggle: which toggles cursor visibility and make sure cursor moves - * between updates. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @short: - * @short-busy: - * - * arg[2]: - * - * @atomic-transitions: - * @atomic-transitions-varying-size: - * @toggle: - */ - -/** - * SUBTEST: short-flip-after-cursor-%s - * Description: Adds variety of tests: - * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n - * - atomic-transition: alternates between a full screen sprite plane - * and full screen primary plane.\n" - * - toggle: which toggles cursor visibility and make sure cursor moves - * between updates. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @atomic-transitions: - * @atomic-transitions-varying-size: - * @toggle: - */ static void basic_flip_cursor(igt_display_t *display, enum flip_test mode, enum basic_flip_cursor order, @@ -977,23 +1119,6 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo igt_remove_fb(display->drm_fd, &cursor_fb2); } -/** - * SUBTEST: long-nonblocking-modeset-vs-cursor-atomic - * Description: Test checks how many cursor updates we can fit between vblanks - * on all pipes with different modes, priority and number of processes - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: nonblocking-modeset-vs-cursor-atomic - * Description: Test checks how many cursor updates we can fit between vblanks - * on all pipes with different modes, priority and number of processes - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - */ static void nonblocking_modeset_vs_cursor(igt_display_t *display, int loops) { struct igt_fb fb_info, cursor_fb; @@ -1093,42 +1218,6 @@ static void wait_for_modeset(igt_display_t *display, unsigned flags, int timeout igt_reset_timeout(); } -/** - * SUBTEST: 2x-%s-%s - * Description: This test executes flips on both CRTCs while running cursor - * updates in parallel - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @flip-vs-cursor: - * @flip-vs-cursor: - * @long-flip-vs-cursor: - * @long-flip-vs-cursor: - * - * arg[2]: - * - * @atomic: - * @legacy: - */ - -/** - * SUBTEST: 2x-%s-atomic - * Description: This test executes flips on both CRTCs while running cursor - * updates in parallel - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @long-nonblocking-modeset-vs-cursor: - * @nonblocking-modeset-vs-cursor: - */ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool modeset, bool atomic) { struct drm_mode_cursor arg1[2], arg2[2]; @@ -1316,33 +1405,6 @@ done: munmap((void *)shared, PAGE_SIZE); } -/** - * SUBTEST: %s-%s - * Description: The essence of the basic test is that neither the cursor nor the - * nonblocking flip stall the application of the next - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @cursor-vs-flip: - * @cursorA-vs-flipA: - * @cursorA-vs-flipB: - * @cursorB-vs-flipA: - * @cursorB-vs-flipB: - * @flip-vs-cursor: - * - * arg[2]: - * - * @atomic: - * @atomic-transitions: - * @atomic-transitions-varying-size: - * @legacy: - * @toggle: - * @varying-size: - */ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloops) { struct drm_mode_cursor arg[2]; @@ -1455,26 +1517,6 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo igt_remove_fb(display->drm_fd, &cursor_fb2); } -/** - * SUBTEST: 2x-%s-%s - * Description: This test executes flips on both CRTCs while running cursor updates in parallel - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @cursor-vs-flip: - * @cursor-vs-flip: - * @long-cursor-vs-flip: - * @long-cursor-vs-flip: - * - * arg[2]: - * - * @atomic: - * @legacy: - */ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool atomic) { struct drm_mode_cursor arg[2][2]; @@ -1603,19 +1645,6 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool munmap((void *)shared, PAGE_SIZE); } -/** - * SUBTEST: flip-vs-cursor-crc-%s - * Description: this test perform a page flip followed by a cursor update - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @atomic: - * @legacy: - */ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic) { struct drm_mode_cursor arg[2]; @@ -1688,19 +1717,6 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic) igt_remove_fb(display->drm_fd, &cursor_fb); } -/** - * SUBTEST: flip-vs-cursor-busy-crc-%s - * Description: this test perform a busy bo update followed by a cursor update - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @atomic: - * @legacy: - */ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic) { struct drm_mode_cursor arg[2]; @@ -1813,15 +1829,6 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic) put_ahnd(ahnd); } -/** - * SUBTEST: modeset-atomic-cursor-hotspot - * Description: Test changes the cursor hotspot and checks that the property is - * updated accordignly - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test - */ static void modeset_atomic_cursor_hotspot(igt_display_t *display) { struct igt_fb cursor_fb; diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c index aff2a93bc..a0a831724 100644 --- a/tests/kms_display_modes.c +++ b/tests/kms_display_modes.c @@ -29,8 +29,27 @@ * Category: Display * Description: Test Display Modes */ + #include "igt.h" +/** + * SUBTEST: extended-mode-basic + * Description: Test for validating display extended mode with a pair of connected + * displays + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: mst-extended-mode-negative + * Description: Negative test for validating display extended mode with a pair + * of connected 2k-4k or 4k-4k displays. + * Driver requirement: i915, xe + * Functionality: kms_core, mst + * Mega feature: General Display Features + * Test category: functionality test + */ + #define HDISPLAY_4K 3840 #define VDISPLAY_4K 2160 @@ -205,15 +224,6 @@ static void run_extendedmode_basic(data_t *data, for_each_connected_output_local((display), (output)) \ for_each_if (igt_pipe_connector_valid((pipe), (output))) -/** - * SUBTEST: extended-mode-basic - * Description: Test for validating display extended mode with a pair of connected - * displays - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - */ static void run_extendedmode_test(data_t *data) { enum pipe pipe1, pipe2; igt_output_t *output1, *output2; @@ -259,15 +269,6 @@ static void run_extendedmode_test(data_t *data) { } } -/** - * SUBTEST: mst-extended-mode-negative - * Description: Negative test for validating display extended mode with a pair - * of connected 2k-4k or 4k-4k displays. - * Driver requirement: i915, xe - * Functionality: kms_core, mst - * Mega feature: General Display Features - * Test category: functionality test - */ static void run_extendedmode_negative(data_t *data, int pipe1, int pipe2) { struct igt_fb fbs[2]; diff --git a/tests/kms_dither.c b/tests/kms_dither.c index 3387a3b10..5683fe5c5 100644 --- a/tests/kms_dither.c +++ b/tests/kms_dither.c @@ -30,11 +30,28 @@ * Category: Display * Description: Test Dithering block status */ + #include "igt.h" #include <fcntl.h> #include <termios.h> #include <unistd.h> +/** + * SUBTEST: fb-8bpc-vs-panel-6bpc + * Description: Framebuffer BPC:8, Panel BPC:6, Expected Dither:Enable + * Driver requirement: i915, xe + * Functionality: colorspace, kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: fb-8bpc-vs-panel-8bpc + * Description: Framebuffer BPC:8, Panel BPC:8, Expected Dither:Disable + * Driver requirement: i915, xe + * Functionality: colorspace, kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + */ + IGT_TEST_DESCRIPTION("Test Dithering block status"); /* Connector BPC */ @@ -186,21 +203,6 @@ static bool is_supported(igt_output_t *output) igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC); } -/** - * SUBTEST: fb-8bpc-vs-panel-6bpc - * Description: Framebuffer BPC:8, Panel BPC:6, Expected Dither:Enable - * Driver requirement: i915, xe - * Functionality: colorspace, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: fb-8bpc-vs-panel-8bpc - * Description: Framebuffer BPC:8, Panel BPC:8, Expected Dither:Disable - * Driver requirement: i915, xe - * Functionality: colorspace, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - */ static void run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc) { diff --git a/tests/kms_dp_aux_dev.c b/tests/kms_dp_aux_dev.c index e6a67e22e..597d4c2ef 100644 --- a/tests/kms_dp_aux_dev.c +++ b/tests/kms_dp_aux_dev.c @@ -22,6 +22,12 @@ * */ +/** + * TEST: kms dp aux dev + * Category: Display + * Description: Test that /dev/drm_dp_aux reads work + */ + #include "config.h" #include <sys/types.h> @@ -31,11 +37,8 @@ #include "igt.h" #include "igt_kms.h" + /** - * TEST: kms dp aux dev - * Category: Display - * Description: Test that /dev/drm_dp_aux reads work - * * SUBTEST: * Description: Test that /dev/drm_dp_aux reads work * Driver requirement: i915, xe diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c index 1baa93f5f..7aec4e78c 100644 --- a/tests/kms_feature_discovery.c +++ b/tests/kms_feature_discovery.c @@ -28,7 +28,18 @@ * Description: A metatest that checks for \"features\" presence. * The subtests here should only skip or pass, * anything else means we have a serious problem. - * + */ + +#include "igt.h" +#ifdef HAVE_CHAMELIUM +#include "igt_chamelium.h" +#endif +#include "igt_kms.h" +#include "igt_psr.h" +#include "igt_sysfs.h" +#include "igt_types.h" + +/** * SUBTEST: display * Description: Make sure that we have display support. * Driver requirement: i915, xe @@ -75,15 +86,6 @@ * arg[1].values: 1, 2, 3, 4 */ -#include "igt.h" -#ifdef HAVE_CHAMELIUM -#include "igt_chamelium.h" -#endif -#include "igt_kms.h" -#include "igt_psr.h" -#include "igt_sysfs.h" -#include "igt_types.h" - static igt_display_t display; IGT_TEST_DESCRIPTION("A metatest that checks for \"features\" presence. " diff --git a/tests/kms_flip.c b/tests/kms_flip.c index c427f22e6..798103682 100755 --- a/tests/kms_flip.c +++ b/tests/kms_flip.c @@ -42,6 +42,18 @@ #include <sys/time.h> #include <sys/ioctl.h> +#ifdef HAVE_LINUX_KD_H +#include <linux/kd.h> +#elif HAVE_SYS_KD_H +#include <sys/kd.h> +#endif +#include <time.h> +#include <pthread.h> + +#include "i915/gem_create.h" +#include "igt_stats.h" +#include "xe/xe_query.h" + /** * SUBTEST: 2x-flip-vs-fences * Description: Test to validate pageflips along with avialable fences on a pair @@ -280,17 +292,40 @@ * @modeset-vs-vblank-race: modeset and check for vblank */ -#ifdef HAVE_LINUX_KD_H -#include <linux/kd.h> -#elif HAVE_SYS_KD_H -#include <sys/kd.h> -#endif -#include <time.h> -#include <pthread.h> - -#include "i915/gem_create.h" -#include "igt_stats.h" -#include "xe/xe_query.h" +/** + * SUBTEST: basic-flip-vs-dpms + * Description: Basic test to valide pageflip with dpms + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: dpms, vblank + * Mega feature: General Display Features + * + * SUBTEST: basic-flip-vs-%s + * Description: Basic test to valide pageflip with %arg[1] + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: vblank + * Mega feature: General Display Features + * + * arg[1]: + * + * @modeset: modeset + * @wf_vblank: wait for vblank + * + * SUBTEST: basic-plain-flip + * Description: Basic test for validating page flip + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: vblank + * Mega feature: General Display Features + * + * SUBTEST: nonblocking-read + * Description: Tests that nonblocking reading fails correctly + * Driver requirement: i915, xe + * Functionality: vblank + * Mega feature: General Display Features + * Test category: functionality test + */ #define TEST_DPMS (1 << 0) @@ -1811,34 +1846,6 @@ test: __run_test_on_crtc_set(o, crtc_idxs, crtc_count, duration_ms); } -/** - * SUBTEST: basic-flip-vs-dpms - * Description: Basic test to valide pageflip with dpms - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: dpms, vblank - * Mega feature: General Display Features - * - * SUBTEST: basic-flip-vs-%s - * Description: Basic test to valide pageflip with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: vblank - * Mega feature: General Display Features - * - * arg[1]: - * - * @modeset: modeset - * @wf_vblank: wait for vblank - * - * SUBTEST: basic-plain-flip - * Description: Basic test for validating page flip - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: vblank - * Mega feature: General Display Features - */ - static void run_test(int duration, int flags) { struct test_output o; @@ -2023,14 +2030,6 @@ static void kms_flip_exit_handler(int sig) kmstest_set_connector_dpms(drm_fd, last_connector, DRM_MODE_DPMS_ON); } -/** - * SUBTEST: nonblocking-read - * Description: Tests that nonblocking reading fails correctly - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_nonblocking_read(int in) { char buffer[1024]; diff --git a/tests/kms_flip_event_leak.c b/tests/kms_flip_event_leak.c index f526a0ca9..a668b1da3 100644 --- a/tests/kms_flip_event_leak.c +++ b/tests/kms_flip_event_leak.c @@ -22,6 +22,12 @@ * */ +/** + * TEST: kms flip event leak + * Category: Display + * Description: Test to validate flip event leak + */ + #include "igt.h" #include <errno.h> #include <stdbool.h> @@ -32,10 +38,6 @@ #include "xe/xe_query.h" /** - * TEST: kms flip event leak - * Category: Display - * Description: Test to validate flip event leak - * * SUBTEST: basic * Description: This test tries to provoke the kernel into leaking a pending * page flip event when the fd is closed before the flip has diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c index e3b9034db..55e6a7767 100644 --- a/tests/kms_force_connector_basic.c +++ b/tests/kms_force_connector_basic.c @@ -30,6 +30,36 @@ #include "igt.h" +/** + * SUBTEST: force-load-detect + * Description: Test to detect forced load. + * Driver requirement: i915 + * Functionality: force_connector, vga + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: force-connector-state + * Description: Test to check the forced connector state + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: force_connector + * Mega feature: General Display Features + * + * SUBTEST: force-edid + * Description: Test to check the values after forcing edid + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: force_connector + * Mega feature: General Display Features + * + * SUBTEST: prune-stale-modes + * Description: Tests pruning of stale modes + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: force_connector + * Mega feature: General Display Features + */ + IGT_TEST_DESCRIPTION("Check the debugfs force connector/edid features work" " correctly."); @@ -69,14 +99,6 @@ static void reset_connectors(void) drm_close_driver(drm_fd); } -/** - * SUBTEST: force-load-detect - * Description: Test to detect forced load. - * Driver requirement: i915 - * Functionality: force_connector, vga - * Mega feature: General Display Features - * Test category: functionality test - */ static void force_load_detect(int drm_fd, drmModeConnectorPtr connector, drmModeRes *res) { int i, j, w = 64, h = 64; @@ -165,14 +187,6 @@ static void force_load_detect(int drm_fd, drmModeConnectorPtr connector, drmMode } } -/** - * SUBTEST: force-connector-state - * Description: Test to check the forced connector state - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: force_connector - * Mega feature: General Display Features - */ static void force_connector_state(int drm_fd, drmModeConnectorPtr connector) { igt_display_t display; @@ -212,14 +226,6 @@ static void force_connector_state(int drm_fd, drmModeConnectorPtr connector) igt_display_fini(&display); } -/** - * SUBTEST: force-edid - * Description: Test to check the values after forcing edid - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: force_connector - * Mega feature: General Display Features - */ static void force_edid(int drm_fd, drmModeConnectorPtr connector) { drmModeConnector *temp; @@ -261,14 +267,6 @@ static void force_edid(int drm_fd, drmModeConnectorPtr connector) } -/** - * SUBTEST: prune-stale-modes - * Description: Tests pruning of stale modes - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: force_connector - * Mega feature: General Display Features - */ static void prune_stale_modes(int drm_fd, drmModeConnectorPtr connector) { int i; diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c index 059f66d99..b4a155e2d 100644 --- a/tests/kms_getfb.c +++ b/tests/kms_getfb.c @@ -32,6 +32,7 @@ * Category: Display * Description: Tests GETFB and GETFB2 ioctls. */ + #include "igt.h" #include <unistd.h> #include <stdlib.h> @@ -50,6 +51,88 @@ #include "xe/xe_query.h" #include "xe/xe_ioctl.h" +/** + * SUBTEST: getfb-handle-%s + * Description: Tests error handling %arg[1] + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @closed: when passing a handle that has been closed. + * @not-fb: when passing an invalid handle. + * @valid: when passing an valid handle. + * @zero: for a zero'd input. + */ + +/** + * SUBTEST: getfb-reject-ccs + * Description: Tests error handling while requesting CCS buffers it should + * refuse because getfb supports returning a single buffer handle. + * Driver requirement: i915, xe + * Functionality: ccs, kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: getfb-%s-different-handles + * Description: Tests error handling while requesting for two different handles + * from %arg[1]. + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @addfb: same fd + * @repeated: different fd + */ + +/** + * SUBTEST: getfb2-accept-ccs + * Description: Tests outputs are correct when retrieving a CCS framebuffer. + * Driver requirement: i915, xe + * Functionality: ccs, kms_gem_interop, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: getfb2-into-addfb2 + * Description: Output check by passing the output of GETFB2 into ADDFB2. + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: getfb2-handle-%s + * Description: Tests error handling %arg[1]. + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @closed: when passing a handle that has been closed + * @not-fb: when passing an invalid handle + * @zero: for a zero'd input + */ + +/** + * SUBTEST: %s-handle-protection + * Description: Make sure %arg[1] return handles if caller is non-root or non-master. + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @getfb: GETFB ioctl + * @getfb2: GETFB2 ioctl + */ + IGT_TEST_DESCRIPTION("Tests GETFB and GETFB2 ioctls."); static bool has_getfb_iface(int fd) @@ -178,21 +261,6 @@ static uint32_t get_any_prop_id(int fd) return 0; } -/** - * SUBTEST: getfb-handle-%s - * Description: Tests error handling %arg[1] - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @closed: when passing a handle that has been closed. - * @not-fb: when passing an invalid handle. - * @valid: when passing an valid handle. - * @zero: for a zero'd input. - */ static void test_handle_input(int fd) { struct drm_mode_fb_cmd2 add = {}; @@ -248,28 +316,6 @@ static void test_handle_input(int fd) gem_close(fd, add.handles[0]); } -/** - * SUBTEST: getfb-reject-ccs - * Description: Tests error handling while requesting CCS buffers it should - * refuse because getfb supports returning a single buffer handle. - * Driver requirement: i915, xe - * Functionality: ccs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: getfb-%s-different-handles - * Description: Tests error handling while requesting for two different handles - * from %arg[1]. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @addfb: same fd - * @repeated: different fd - */ static void test_duplicate_handles(int fd) { struct drm_mode_fb_cmd2 add = {}; @@ -335,34 +381,6 @@ static void test_duplicate_handles(int fd) } } -/** - * SUBTEST: getfb2-accept-ccs - * Description: Tests outputs are correct when retrieving a CCS framebuffer. - * Driver requirement: i915, xe - * Functionality: ccs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: getfb2-into-addfb2 - * Description: Output check by passing the output of GETFB2 into ADDFB2. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: getfb2-handle-%s - * Description: Tests error handling %arg[1]. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @closed: when passing a handle that has been closed - * @not-fb: when passing an invalid handle - * @zero: for a zero'd input - */ static void test_getfb2(int fd) { struct drm_mode_fb_cmd2 add_basic = {}; @@ -471,19 +489,6 @@ static void test_getfb2(int fd) } } -/** - * SUBTEST: %s-handle-protection - * Description: Make sure %arg[1] return handles if caller is non-root or non-master. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @getfb: GETFB ioctl - * @getfb2: GETFB2 ioctl - */ static void test_handle_protection(void) { int non_master_fd; struct drm_mode_fb_cmd2 non_master_add = {}; diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c index 61f62fa7c..3a279e2c9 100644 --- a/tests/kms_hdmi_inject.c +++ b/tests/kms_hdmi_inject.c @@ -22,6 +22,14 @@ * */ +/** + * TEST: kms hdmi inject + * Category: Display + * Description: Test that in-kernel EDID parsing is producing expected results + * by forcing a HDMI connector with a known EDID and checking that + * the metadata exposed to user space matches. + */ + #include "config.h" #include <dirent.h> @@ -32,12 +40,6 @@ #include "xe/xe_query.h" /** - * TEST: kms hdmi inject - * Category: Display - * Description: Test that in-kernel EDID parsing is producing expected results - * by forcing a HDMI connector with a known EDID and checking that - * the metadata exposed to user space matches. - * * SUBTEST: inject-4k * Description: Make sure that 4K modes exposed by DRM match the forced EDID and * modesetting using it succeed. diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c index ed98a0c26..215f81892 100644 --- a/tests/kms_hdr.c +++ b/tests/kms_hdr.c @@ -25,12 +25,76 @@ * Category: Display * Description: Test HDR metadata interfaces and bpc switch */ + #include "igt.h" #include <fcntl.h> #include <termios.h> #include <unistd.h> #include "igt_edid.h" +/** + * SUBTEST: bpc-switch + * Description: Tests switching between different display output bpc modes + * Driver requirement: i915, xe + * Functionality: colorspace, hdr + * Mega feature: HDR + * Test category: functionality test + * + * SUBTEST: bpc-switch-dpms + * Description: Tests switching between different display output bpc modes with dpms + * Driver requirement: i915, xe + * Functionality: colorspace, dpms, hdr + * Mega feature: HDR + * Test category: functionality test + * + * SUBTEST: bpc-switch-suspend + * Description: Tests switching between different display output bpc modes with suspend + * Driver requirement: i915, xe + * Functionality: colorspace, hdr, suspend + * Mega feature: HDR + * Test category: functionality test + * + * SUBTEST: invalid-hdr + * Description: Test to ensure HDR is not enabled on non-HDR panel + * Driver requirement: i915, xe + * Functionality: colorspace, hdr + * Mega feature: HDR + * Test category: functionality test + * + * SUBTEST: invalid-metadata-sizes + * Description: Tests invalid HDR metadata sizes + * Driver requirement: i915, xe + * Functionality: colorspace, hdr + * Mega feature: HDR + * Test category: functionality test + * + * SUBTEST: static-toggle-dpms + * Description: Tests static toggle with dpms + * Driver requirement: i915, xe + * Functionality: colorspace, dpms, hdr + * Mega feature: HDR + * Test category: functionality test + * + * SUBTEST: static-toggle-suspend + * Description: Tests static toggle with suspend + * Driver requirement: i915, xe + * Functionality: colorspace, hdr, suspend + * Mega feature: HDR + * Test category: functionality test + * + * SUBTEST: static-%s + * Description: Tests %arg[1]. + * Driver requirement: i915, xe + * Functionality: colorspace, hdr + * Mega feature: HDR + * Test category: functionality test + * + * arg[1]: + * + * @swap: swapping static HDR metadata + * @toggle: entering and exiting HDR mode + */ + IGT_TEST_DESCRIPTION("Test HDR metadata interfaces and bpc switch"); /* HDR EDID parsing. */ @@ -213,28 +277,6 @@ static bool has_max_bpc(igt_output_t *output) igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC); } -/** - * SUBTEST: bpc-switch - * Description: Tests switching between different display output bpc modes - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test - * - * SUBTEST: bpc-switch-dpms - * Description: Tests switching between different display output bpc modes with dpms - * Driver requirement: i915, xe - * Functionality: colorspace, dpms, hdr - * Mega feature: HDR - * Test category: functionality test - * - * SUBTEST: bpc-switch-suspend - * Description: Tests switching between different display output bpc modes with suspend - * Driver requirement: i915, xe - * Functionality: colorspace, hdr, suspend - * Mega feature: HDR - * Test category: functionality test - */ static void test_bpc_switch(data_t *data, uint32_t flags) { igt_display_t *display = &data->display; @@ -588,47 +630,6 @@ static bool has_hdr(igt_output_t *output) return igt_output_has_prop(output, IGT_CONNECTOR_HDR_OUTPUT_METADATA); } -/** - * SUBTEST: invalid-hdr - * Description: Test to ensure HDR is not enabled on non-HDR panel - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test - * - * SUBTEST: invalid-metadata-sizes - * Description: Tests invalid HDR metadata sizes - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test - * - * SUBTEST: static-toggle-dpms - * Description: Tests static toggle with dpms - * Driver requirement: i915, xe - * Functionality: colorspace, dpms, hdr - * Mega feature: HDR - * Test category: functionality test - * - * SUBTEST: static-toggle-suspend - * Description: Tests static toggle with suspend - * Driver requirement: i915, xe - * Functionality: colorspace, hdr, suspend - * Mega feature: HDR - * Test category: functionality test - * - * SUBTEST: static-%s - * Description: Tests %arg[1]. - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test - * - * arg[1]: - * - * @swap: swapping static HDR metadata - * @toggle: entering and exiting HDR mode - */ static void test_hdr(data_t *data, uint32_t flags) { igt_display_t *display = &data->display; diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c index 55b7fea8f..77cf4d609 100644 --- a/tests/kms_invalid_mode.c +++ b/tests/kms_invalid_mode.c @@ -28,6 +28,7 @@ * Description: Make sure all modesets are rejected when the requested mode is * invalid */ + #include "igt.h" #include <limits.h> #include <stdbool.h> diff --git a/tests/kms_multipipe_modeset.c b/tests/kms_multipipe_modeset.c index a968a3513..e67392668 100644 --- a/tests/kms_multipipe_modeset.c +++ b/tests/kms_multipipe_modeset.c @@ -24,12 +24,15 @@ * Karthik B S <karthik.b.s@intel.com> */ -#include "igt.h" /** * TEST: kms multipipe modeset * Category: Display * Description: Test simultaneous modeset on all the supported pipes - * + */ + +#include "igt.h" + +/** * SUBTEST: basic-max-pipe-crc-check * Description: Verify if simultaneous modesets on all the supported pipes is * successful. Validate using CRC verification diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c index a583e1435..af0c756ed 100644 --- a/tests/kms_panel_fitting.c +++ b/tests/kms_panel_fitting.c @@ -22,15 +22,18 @@ * */ +/** + * TEST: kms panel fitting + * Category: Display + * Description: Test display panel fitting + */ + #include "igt.h" #include <limits.h> #include <math.h> #include <sys/stat.h> + /** - * TEST: kms panel fitting - * Category: Display - * Description: Test display panel fitting - * * SUBTEST: atomic-fastset * Description: Tests panel fitting usages with atomic fastset. * Driver requirement: i915, xe diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c index 94252415b..4fed582b4 100644 --- a/tests/kms_pipe_crc_basic.c +++ b/tests/kms_pipe_crc_basic.c @@ -36,6 +36,81 @@ #include <string.h> #include <fcntl.h> +/** + * SUBTEST: bad-source + * Description: Tests error handling when the bad source is set. + * Driver requirement: i915, xe + * Functionality: crc + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: read-crc + * Description: Test for pipe CRC reads + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: crc + * Mega feature: General Display Features + * + * SUBTEST: read-crc-frame-sequence + * Description: Tests the pipe CRC read and ensure frame sequence + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: crc + * Mega feature: General Display Features + * + * SUBTEST: nonblocking-crc + * Description: Test for O_NONBLOCK CRC reads + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: crc + * Mega feature: General Display Features + * + * SUBTEST: nonblocking-crc-frame-sequence + * Description: Test for O_NONBLOCK CRC reads and ensure frame sequence + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: crc + * Mega feature: General Display Features + * + * SUBTEST: suspend-read-crc + * Description: Suspend test for pipe CRC reads + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: crc, suspend + * Mega feature: General Display Features + * + * SUBTEST: hang-read-crc + * Description: Hang test for pipe CRC read + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: crc, hang + * Mega feature: General Display Features + */ + +/** + * SUBTEST: compare-crc-sanitycheck-%s + * Description: Basic sanity check for CRC mismatches with %arg[1] + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: crc, pixel_format + * Mega feature: General Display Features + * + * arg[1]: + * + * @xr24: XR24 format + * @nv12: NV12 format + */ + +/** + * SUBTEST: disable-crc-after-crtc + * Description: Check that disabling CRCs on a CRTC after having disabled the + * CRTC does not cause issues. + * Driver requirement: i915, xe + * Functionality: crc + * Mega feature: General Display Features + * Test category: functionality test + */ + static bool extended; static enum pipe active_pipes[IGT_MAX_PIPES]; static uint32_t last_pipe; @@ -65,14 +140,6 @@ static bool simulation_constraint(enum pipe pipe) return false; } -/** - * SUBTEST: bad-source - * Description: Tests error handling when the bad source is set. - * Driver requirement: i915, xe - * Functionality: crc - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_bad_source(data_t *data) { errno = 0; @@ -94,49 +161,6 @@ enum { TEST_HANG = 1 << 3, }; -/** - * SUBTEST: read-crc - * Description: Test for pipe CRC reads - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features - * - * SUBTEST: read-crc-frame-sequence - * Description: Tests the pipe CRC read and ensure frame sequence - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features - * - * SUBTEST: nonblocking-crc - * Description: Test for O_NONBLOCK CRC reads - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features - * - * SUBTEST: nonblocking-crc-frame-sequence - * Description: Test for O_NONBLOCK CRC reads and ensure frame sequence - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features - * - * SUBTEST: suspend-read-crc - * Description: Suspend test for pipe CRC reads - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc, suspend - * Mega feature: General Display Features - * - * SUBTEST: hang-read-crc - * Description: Hang test for pipe CRC read - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc, hang - * Mega feature: General Display Features - */ static void test_read_crc(data_t *data, enum pipe pipe, igt_output_t *output, unsigned flags) { @@ -234,20 +258,6 @@ static void test_read_crc(data_t *data, enum pipe pipe, igt_display_commit(display); } -/** - * SUBTEST: compare-crc-sanitycheck-%s - * Description: Basic sanity check for CRC mismatches with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc, pixel_format - * Mega feature: General Display Features - * - * arg[1]: - * - * @xr24: XR24 format - * @nv12: NV12 format - */ - /* * CRC-sanity test, to make sure there would be no CRC mismatches * @@ -313,15 +323,6 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output, igt_remove_fb(data->drm_fd, &fb1); } -/** - * SUBTEST: disable-crc-after-crtc - * Description: Check that disabling CRCs on a CRTC after having disabled the - * CRTC does not cause issues. - * Driver requirement: i915, xe - * Functionality: crc - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_disable_crc_after_crtc(data_t *data, enum pipe pipe, igt_output_t *output) { diff --git a/tests/kms_plane.c b/tests/kms_plane.c index c561bf6ba..17550e168 100644 --- a/tests/kms_plane.c +++ b/tests/kms_plane.c @@ -29,6 +29,7 @@ * Category: Display * Description: Testes for KMS Plane */ + #include "igt.h" #include "igt_vec.h" #include <errno.h> @@ -37,6 +38,73 @@ #include <string.h> #include "xe/xe_query.h" +/** + * SUBTEST: plane-position-%s + * Description: Verify plane position using two planes to create a %arg[1] + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-position-hole-dpms + * Description: Verify plane position using two planes to create a partially + * covered screen and check for DPMS + * Driver requirement: i915, xe + * Functionality: dpms, plane + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @covered: fully covered screen + * @hole: partially covered screen + */ + +/** + * SUBTEST: plane-panning-%s + * Description: Verify plane panning at %arg[1] using primary plane + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-panning-bottom-right-suspend + * Description: Verify plane panning at bottom-right position with suspend using + * primary plane + * Driver requirement: i915, xe + * Functionality: plane, suspend + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @bottom-right: bottom-right position + * @top-left: top-left position + */ + +/** + * SUBTEST: pixel-%s + * Description: verify the pixel formats for given plane and pipe + * Driver requirement: i915, xe + * Functionality: pixel_format, plane + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @format: + * @format-source-clamping: with source clamping + */ + +/** + * SUBTEST: planar-pixel-format-settings + * Description: verify planar settings for pixel format are handled correctly + * Driver requirement: i915, xe + * Functionality: pixel_format, plane + * Mega feature: General Display Features + * Test category: functionality test + */ + /* * Throw away enough lsbs in pixel formats tests * to get a match despite some differences between @@ -287,27 +355,6 @@ test_plane_position_with_output(data_t *data, igt_remove_fb(data->drm_fd, &sprite_fb); } -/** - * SUBTEST: plane-position-%s - * Description: Verify plane position using two planes to create a %arg[1] - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-position-hole-dpms - * Description: Verify plane position using two planes to create a partially - * covered screen and check for DPMS - * Driver requirement: i915, xe - * Functionality: dpms, plane - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @covered: fully covered screen - * @hole: partially covered screen - */ static void test_plane_position(data_t *data, enum pipe pipe) { @@ -416,27 +463,6 @@ test_plane_panning_with_output(data_t *data, igt_remove_fb(data->drm_fd, &primary_fb); } -/** - * SUBTEST: plane-panning-%s - * Description: Verify plane panning at %arg[1] using primary plane - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-panning-bottom-right-suspend - * Description: Verify plane panning at bottom-right position with suspend using - * primary plane - * Driver requirement: i915, xe - * Functionality: plane, suspend - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @bottom-right: bottom-right position - * @top-left: top-left position - */ static void test_plane_panning(data_t *data, enum pipe pipe) { @@ -1162,19 +1188,6 @@ static bool skip_plane(data_t *data, igt_plane_t *plane) return index != 0 && index != 3 && index != 5; } -/** - * SUBTEST: pixel-%s - * Description: verify the pixel formats for given plane and pipe - * Driver requirement: i915, xe - * Functionality: pixel_format, plane - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @format: - * @format-source-clamping: with source clamping - */ static void test_pixel_formats(data_t *data, enum pipe pipe) { @@ -1231,14 +1244,6 @@ test_pixel_formats(data_t *data, enum pipe pipe) igt_assert_f(result, "At least one CRC mismatch happened\n"); } -/** - * SUBTEST: planar-pixel-format-settings - * Description: verify planar settings for pixel format are handled correctly - * Driver requirement: i915, xe - * Functionality: pixel_format, plane - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_planar_settings(data_t *data) { enum pipe pipe = PIPE_A; diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c index f023fae74..d37407150 100644 --- a/tests/kms_plane_alpha_blend.c +++ b/tests/kms_plane_alpha_blend.c @@ -29,8 +29,56 @@ * Category: Display * Description: Test plane alpha and blending mode properties */ + #include "igt.h" +/** + * SUBTEST: alpha-%s + * Description: Test to %arg[1] + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @7efc: validate alpha values 0x7e and 0xfc are swappable on + * pre-multiplied blend mode. + * @basic: basic plane alpha properties. + * @opaque-fb: alpha properties with opaque fb. + * @transparent-fb: alpha property with transparent fb. + */ + +/** + * SUBTEST: coverage-vs-premult-vs-constant + * Description: Tests pipe coverage blending properties. + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: coverage-7efc + * Description: Uses alpha values 0x7e and 0xfc to validate fg.alpha and + * plane_alpha are swappable on coverage blend mode. + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: constant-alpha-%s + * Description: Tests plane alpha and blending properties with %arg[1]. + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @max: maximum alpha value + * @mid: medium alpha value + * @min: minimum alpha value + */ + IGT_TEST_DESCRIPTION("Test plane alpha and blending mode properties"); static bool extended; @@ -482,52 +530,6 @@ static void coverage_premult_constant(data_t *data, enum pipe pipe, igt_plane_t igt_pipe_crc_stop(data->pipe_crc); } -/** - * SUBTEST: alpha-%s - * Description: Test to %arg[1] - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @7efc: validate alpha values 0x7e and 0xfc are swappable on - * pre-multiplied blend mode. - * @basic: basic plane alpha properties. - * @opaque-fb: alpha properties with opaque fb. - * @transparent-fb: alpha property with transparent fb. - */ - -/** - * SUBTEST: coverage-vs-premult-vs-constant - * Description: Tests pipe coverage blending properties. - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: coverage-7efc - * Description: Uses alpha values 0x7e and 0xfc to validate fg.alpha and - * plane_alpha are swappable on coverage blend mode. - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: constant-alpha-%s - * Description: Tests plane alpha and blending properties with %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @max: maximum alpha value - * @mid: medium alpha value - * @min: minimum alpha value - */ static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t *output, bool blend, bool must_multiply, void(*test)(data_t *, enum pipe, igt_plane_t *)) diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c index bc89414d8..55ddffe44 100644 --- a/tests/kms_plane_cursor.c +++ b/tests/kms_plane_cursor.c @@ -20,13 +20,15 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "igt.h" - /** * TEST: kms plane cursor * Category: Display * Description: Tests cursor interactions with primary and overlay planes. - * + */ + +#include "igt.h" + +/** * SUBTEST: overlay * Description: Tests atomic cursor positioning on primary plane and overlay plane * Driver requirement: i915, xe diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c index 3bb92cdd9..13158bf99 100644 --- a/tests/kms_plane_lowres.c +++ b/tests/kms_plane_lowres.c @@ -28,6 +28,7 @@ * Description: Test atomic mode setting with a plane by switching between high * and low resolutions */ + #include "igt.h" #include "drmtest.h" #include <errno.h> @@ -36,6 +37,31 @@ #include <string.h> #include <time.h> +/** + * SUBTEST: tiling-none + * Description: Tests the visibility of the planes when switching between high + * and low resolution with Linear buffer (no tiling) + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: tiling-%s + * Description: Tests the visibility of the planes when switching between high + * and low resolution with %arg[1] + * Driver requirement: i915, xe + * Functionality: plane, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4: 4-tiling + * @x: x-tiling + * @y: y-tiling + * @yf: yf-tiling + */ + IGT_TEST_DESCRIPTION("Test atomic mode setting with a plane by switching between high and low resolutions"); #define SDR_PLANE_BASE 3 @@ -267,30 +293,6 @@ static void test_cleanup(data_t *data) igt_display_commit2(&data->display, COMMIT_ATOMIC); } -/** - * SUBTEST: tiling-none - * Description: Tests the visibility of the planes when switching between high - * and low resolution with Linear buffer (no tiling) - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: tiling-%s - * Description: Tests the visibility of the planes when switching between high - * and low resolution with %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4: 4-tiling - * @x: x-tiling - * @y: y-tiling - * @yf: yf-tiling - */ static void run_test(data_t *data, uint64_t modifier) { enum pipe pipe; diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c index 28791560f..6239e225a 100644 --- a/tests/kms_plane_multiple.c +++ b/tests/kms_plane_multiple.c @@ -27,6 +27,7 @@ * Category: Display * Description: Test atomic mode setting with multiple planes. */ + #include "igt.h" #include "drmtest.h" #include <errno.h> @@ -35,6 +36,33 @@ #include <string.h> #include <time.h> +/** + * SUBTEST: tiling-none + * Description: Check that the kernel handles atomic updates of multiple planes + * correctly by changing their geometry and making sure the changes + * are reflected immediately after each commit. + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: tiling-%s + * Description: Check that the kernel handles atomic updates of multiple planes + * correctly by changing their geometry and making sure the changes + * are reflected immediately after each commit. + * Driver requirement: i915, xe + * Functionality: plane, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4: 4-tiling + * @x: x-tiling + * @y: y-tiling + * @yf: yf-tiling + */ + IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes."); #define SIZE_PLANE 256 @@ -378,32 +406,6 @@ test_plane_position(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t n_planes, modifier); } -/** - * SUBTEST: tiling-none - * Description: Check that the kernel handles atomic updates of multiple planes - * correctly by changing their geometry and making sure the changes - * are reflected immediately after each commit. - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: tiling-%s - * Description: Check that the kernel handles atomic updates of multiple planes - * correctly by changing their geometry and making sure the changes - * are reflected immediately after each commit. - * Driver requirement: i915, xe - * Functionality: plane, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4: 4-tiling - * @x: x-tiling - * @y: y-tiling - * @yf: yf-tiling - */ static void run_test(data_t *data, uint64_t modifier) { enum pipe pipe; diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c index 67da91b1e..e175c75d8 100644 --- a/tests/kms_plane_scaling.c +++ b/tests/kms_plane_scaling.c @@ -27,10 +27,250 @@ * Category: Display * Description: Test display plane scaling */ + #include "igt.h" #include "igt_vec.h" #include <math.h> +/** + * SUBTEST: plane-scaler-unity-scaling-with-modifiers + * Description: Tests scaling with modifiers, unity scaling. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-scaler-with-clipping-clamping-modifiers + * Description: Tests scaling with clipping and clamping, modifiers. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-upscale-%s-with-modifiers + * Description: Tests upscaling with modifiers %arg[1]. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @20x20: from 20x20 fb + * @factor-0-25: for 0.25 scaling factor + */ + +/** + * SUBTEST: plane-downscale-factor-%s-with-modifiers + * Description: Tests downscaling with modifiers for %arg[1] scaling factor. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @0-25: 0.25 + * @0-5: 0.5 + * @0-75: 0.75 + */ + +/** + * SUBTEST: plane-scaler-unity-scaling-with-rotation + * Description: Tests scaling with rotation, unity scaling. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-scaler-with-clipping-clamping-rotation + * Description: Tests scaling with clipping and clamping, rotation. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-upscale-%s-with-rotation + * Description: Tests upscaling with rotation %arg[1]. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @20x20: from 20x20 fb + * @factor-0-25: for 0.25 scaling factor + */ + +/** + * SUBTEST: plane-downscale-factor-%s-with-rotation + * Description: Tests downscaling with rotation for %arg[1] scaling factor. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @0-25: 0.25 + * @0-5: 0.5 + * @0-75: 0.75 + */ + +/** + * SUBTEST: plane-scaler-unity-scaling-with-pixel-format + * Description: Tests scaling with pixel formats, unity scaling. + * Driver requirement: i915, xe + * Functionality: pixel_formats, plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-scaler-with-clipping-clamping-pixel-formats + * Description: Tests scaling with clipping and clamping, pixel formats. + * Driver requirement: i915, xe + * Functionality: pixel_formats, plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: plane-upscale-%s-with-pixel-format + * Description: Tests upscaling with pixel formats %arg[1]. + * Driver requirement: i915, xe + * Functionality: pixel_formats, plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @20x20: from 20x20 fb + * @factor-0-25: for 0.25 scaling factor + */ + +/** + * SUBTEST: plane-downscale-factor-%s-with-pixel-format + * Description: Tests downscaling with pixel formats for %arg[1] scaling factor. + * Driver requirement: i915, xe + * Functionality: pixel_formats, plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @0-25: 0.25 + * @0-5: 0.5 + * @0-75: 0.75 + */ + +/** + * SUBTEST: planes-downscale-factor-%s + * Description: Tests downscaling of 2 planes for %arg[1] scaling factor. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @0-25: 0.25 + * @0-5: 0.5 + * @0-75: 0.75 + */ + +/** + * SUBTEST: planes-downscale-factor-%s-%s + * Description: Tests downscaling (scaling factor %arg[1]) and upscaling (%arg[2]) + * of 2 planes. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @0-25: 0.25 + * @0-5: 0.5 + * @0-75: 0.75 + * + * arg[2]: + * + * @upscale-20x20: upscale 20x20 + * @upscale-factor-0-25: scaling factor 0.25 + * @unity-scaling: Unity + */ + +/** + * SUBTEST: planes-scaler-unity-scaling + * Description: Tests scaling of 2 planes, unity scaling. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: planes-upscale-%s + * Description: Tests upscaling of 2 planes %arg[1]. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @20x20: from 20x20 fb + * @factor-0-25: for 0.25 scaling factor + */ + +/** + * SUBTEST: planes-%s-downscale-factor-%s + * Description: Tests scaling (%arg[1]) and downscaling (scaling factor %arg[2]) + * of 2 planes. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @unity-scaling: Unity + * @upscale-factor-0-25: scaling factor 0.25 + * @upscale-20x20: upscale 20x20 + * + * arg[2]: + * + * @0-25: 0.25 + * @0-5: 0.5 + * @0-75: 0.75 + */ + +/** + * SUBTEST: invalid-num-scalers + * Description: Negative test for number of scalers per pipe. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: 2x-scaler-multi-pipe + * Description: Tests scaling with multi-pipe. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: invalid-parameters + * Description: Test parameters which should not be accepted + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: intel-max-src-size + * Description: Test for validating max source size. + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test + */ + IGT_TEST_DESCRIPTION("Test display plane scaling"); enum scaler_combo_test_type { @@ -529,48 +769,6 @@ static const uint64_t modifiers[] = { I915_FORMAT_MOD_4_TILED }; -/** - * SUBTEST: plane-scaler-unity-scaling-with-modifiers - * Description: Tests scaling with modifiers, unity scaling. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-scaler-with-clipping-clamping-modifiers - * Description: Tests scaling with clipping and clamping, modifiers. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-upscale-%s-with-modifiers - * Description: Tests upscaling with modifiers %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @20x20: from 20x20 fb - * @factor-0-25: for 0.25 scaling factor - */ - -/** - * SUBTEST: plane-downscale-factor-%s-with-modifiers - * Description: Tests downscaling with modifiers for %arg[1] scaling factor. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @0-25: 0.25 - * @0-5: 0.5 - * @0-75: 0.75 - */ static void test_scaler_with_modifier_pipe(data_t *d, int width, int height, bool is_upscale, @@ -603,48 +801,6 @@ static void test_scaler_with_modifier_pipe(data_t *d, } } -/** - * SUBTEST: plane-scaler-unity-scaling-with-rotation - * Description: Tests scaling with rotation, unity scaling. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-scaler-with-clipping-clamping-rotation - * Description: Tests scaling with clipping and clamping, rotation. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-upscale-%s-with-rotation - * Description: Tests upscaling with rotation %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @20x20: from 20x20 fb - * @factor-0-25: for 0.25 scaling factor - */ - -/** - * SUBTEST: plane-downscale-factor-%s-with-rotation - * Description: Tests downscaling with rotation for %arg[1] scaling factor. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @0-25: 0.25 - * @0-5: 0.5 - * @0-75: 0.75 - */ static void test_scaler_with_rotation_pipe(data_t *d, int width, int height, bool is_upscale, @@ -678,48 +834,6 @@ static void test_scaler_with_rotation_pipe(data_t *d, } } -/** - * SUBTEST: plane-scaler-unity-scaling-with-pixel-format - * Description: Tests scaling with pixel formats, unity scaling. - * Driver requirement: i915, xe - * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-scaler-with-clipping-clamping-pixel-formats - * Description: Tests scaling with clipping and clamping, pixel formats. - * Driver requirement: i915, xe - * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: plane-upscale-%s-with-pixel-format - * Description: Tests upscaling with pixel formats %arg[1]. - * Driver requirement: i915, xe - * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @20x20: from 20x20 fb - * @factor-0-25: for 0.25 scaling factor - */ - -/** - * SUBTEST: plane-downscale-factor-%s-with-pixel-format - * Description: Tests downscaling with pixel formats for %arg[1] scaling factor. - * Driver requirement: i915, xe - * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @0-25: 0.25 - * @0-5: 0.5 - * @0-75: 0.75 - */ static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height, bool is_upscale, enum pipe pipe, igt_output_t *output) { @@ -855,83 +969,6 @@ static void setup_fb(int fd, int width, int height, struct igt_fb *fb) fb); } -/** - * SUBTEST: planes-downscale-factor-%s - * Description: Tests downscaling of 2 planes for %arg[1] scaling factor. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @0-25: 0.25 - * @0-5: 0.5 - * @0-75: 0.75 - */ -/** - * SUBTEST: planes-downscale-factor-%s-%s - * Description: Tests downscaling (scaling factor %arg[1]) and upscaling (%arg[2]) - * of 2 planes. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @0-25: 0.25 - * @0-5: 0.5 - * @0-75: 0.75 - * - * arg[2]: - * - * @upscale-20x20: upscale 20x20 - * @upscale-factor-0-25: scaling factor 0.25 - * @unity-scaling: Unity - */ -/** - * SUBTEST: planes-scaler-unity-scaling - * Description: Tests scaling of 2 planes, unity scaling. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: planes-upscale-%s - * Description: Tests upscaling of 2 planes %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @20x20: from 20x20 fb - * @factor-0-25: for 0.25 scaling factor - */ -/** - * SUBTEST: planes-%s-downscale-factor-%s - * Description: Tests scaling (%arg[1]) and downscaling (scaling factor %arg[2]) - * of 2 planes. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @unity-scaling: Unity - * @upscale-factor-0-25: scaling factor 0.25 - * @upscale-20x20: upscale 20x20 - * - * arg[2]: - * - * @0-25: 0.25 - * @0-5: 0.5 - * @0-75: 0.75 - */ - static void test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2, enum pipe pipe, igt_output_t *output, @@ -990,14 +1027,6 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2, cleanup_fbs(d); } -/** - * SUBTEST: invalid-num-scalers - * Description: Negative test for number of scalers per pipe. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output) { @@ -1063,14 +1092,6 @@ test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output) cleanup_fbs(d); } -/** - * SUBTEST: 2x-scaler-multi-pipe - * Description: Tests scaling with multi-pipe. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_scaler_with_multi_pipe_plane(data_t *d) { igt_display_t *display = &d->display; @@ -1158,14 +1179,6 @@ static void test_scaler_with_multi_pipe_plane(data_t *d) igt_assert_eq(ret1 && ret2, 0); } -/** - * SUBTEST: invalid-parameters - * Description: Test parameters which should not be accepted - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - */ static void invalid_parameter_tests(data_t *d) { enum pipe pipe = PIPE_A; @@ -1248,15 +1261,6 @@ static drmModeModeInfo *find_mode(data_t *data, igt_output_t *output, const uint return mode; } -/** - * SUBTEST: intel-max-src-size - * Description: Test for validating max source size. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test - */ - /* * Max source/destination width/height for intel driver. * These numbers are coming from diff --git a/tests/kms_prime.c b/tests/kms_prime.c index b06365cbc..1e985fdc4 100644 --- a/tests/kms_prime.c +++ b/tests/kms_prime.c @@ -21,6 +21,12 @@ * IN THE SOFTWARE. */ +/** + * TEST: kms prime + * Category: Display + * Description: Prime tests, focusing on KMS side + */ + #include "igt.h" #include "igt_device.h" #include "igt_debugfs.h" @@ -30,11 +36,8 @@ #include <sys/ioctl.h> #include <sys/poll.h> #include <time.h> + /** - * TEST: kms prime - * Category: Display - * Description: Prime tests, focusing on KMS side - * * SUBTEST: D3hot * Description: Validate pci state of dGPU when dGPU is idle and scanout is on iGPU * Driver requirement: i915, xe diff --git a/tests/kms_prop_blob.c b/tests/kms_prop_blob.c index c92525227..199c673e3 100644 --- a/tests/kms_prop_blob.c +++ b/tests/kms_prop_blob.c @@ -30,12 +30,61 @@ * Category: Display * Description: Tests behaviour of mass-data 'blob' properties. */ + #include "igt.h" #include <errno.h> #include <stdbool.h> #include <stdio.h> #include <string.h> +/** + * SUBTEST: blob-multiple + * Description: Test validates destroying multiple properties explicitly works as needed. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: blob-prop-%s + * Description: Tests validates the %arg[1] of the properties created. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @core: validity + * @lifetime: lifetime + * @validate: blob size + */ + +/** + * SUBTEST: basic + * Description: Test to ensure property support exists + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: kms_core + * Mega feature: General Display Features + * + * SUBTEST: invalid-%s-%s + * Description: Tests error handling when invalid properties are %ar[1] with %arg[2]. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @get: fetched + * @set: set + * + * arg[2]: + * + * @prop: blob object type + * @prop-any: object of any type + */ + IGT_TEST_DESCRIPTION("Tests behaviour of mass-data 'blob' properties."); static const struct drm_mode_modeinfo test_mode_valid = { @@ -123,27 +172,6 @@ destroy_prop(int fd, uint32_t prop_id) return 0; } -/** - * SUBTEST: blob-multiple - * Description: Test validates destroying multiple properties explicitly works as needed. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: blob-prop-%s - * Description: Tests validates the %arg[1] of the properties created. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @core: validity - * @lifetime: lifetime - * @validate: blob size - */ static void test_validate(int fd) { @@ -264,14 +292,6 @@ test_core(int fd) igt_assert_eq(validate_prop(fd, 0), ENOENT); } -/** - * SUBTEST: basic - * Description: Test to ensure property support exists - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_core - * Mega feature: General Display Features - */ static void test_basic(int fd) { @@ -282,24 +302,6 @@ test_basic(int fd) igt_assert_eq(destroy_prop(fd, prop_id), 0); } -/** - * SUBTEST: invalid-%s-%s - * Description: Tests error handling when invalid properties are %ar[1] with %arg[2]. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @get: fetched - * @set: set - * - * arg[2]: - * - * @prop: blob object type - * @prop-any: object of any type - */ static void prop_tests(int fd) { struct drm_mode_obj_get_properties get_props = {}; diff --git a/tests/kms_properties.c b/tests/kms_properties.c index 1a58717e1..33c4156bf 100644 --- a/tests/kms_properties.c +++ b/tests/kms_properties.c @@ -21,6 +21,12 @@ * IN THE SOFTWARE. */ +/** + * TEST: kms properties + * Category: Display + * Description: Test to validate the properties of all planes, crtc and connectors + */ + #include "igt.h" #include "drmtest.h" #include <errno.h> @@ -28,11 +34,8 @@ #include <stdio.h> #include <string.h> #include <time.h> + /** - * TEST: kms properties - * Category: Display - * Description: Test to validate the properties of all planes, crtc and connectors - * * SUBTEST: %s-properties-%s * Description: Tests %arg[1] properties with %arg[2] commit * Driver requirement: i915, xe @@ -53,6 +56,20 @@ * @legacy: legacy */ +/** + * SUBTEST: get_properties-sanity-%s + * Description: Test validates the properties of all planes, crtc and connectors + * with %arg[1] commit + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @atomic: atomic + * @non-atomic: legacy + */ struct additional_test { const char *name; @@ -712,20 +729,6 @@ static void expect_no_props(int fd, uint32_t obj_type, uint32_t obj_id) igt_assert_neq(drmIoctl(fd, DRM_IOCTL_MODE_OBJ_GETPROPERTIES, &properties), 0); } -/** - * SUBTEST: get_properties-sanity-%s - * Description: Test validates the properties of all planes, crtc and connectors - * with %arg[1] commit - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @atomic: atomic - * @non-atomic: legacy - */ static void get_prop_sanity(igt_display_t *display, bool atomic) { int fd = display->drm_fd; diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c index 5281370f0..c102c9583 100644 --- a/tests/kms_rmfb.c +++ b/tests/kms_rmfb.c @@ -21,6 +21,13 @@ * IN THE SOFTWARE. */ +/** + * TEST: kms rmfb + * Category: Display + * Description: This tests rmfb and close-fd behavior. In these casesthe + * framebuffers should be removed from the crtc. + */ + #include "igt.h" #include "drmtest.h" #include <errno.h> @@ -28,12 +35,8 @@ #include <stdio.h> #include <string.h> #include <time.h> + /** - * TEST: kms rmfb - * Category: Display - * Description: This tests rmfb and close-fd behavior. In these casesthe - * framebuffers should be removed from the crtc. - * * SUBTEST: close-fd * Description: RMFB is supposed to free the framebuffers from any and all planes * so test this and make sure it works with fd close and reopen. diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index 864ab7b03..b2e877a4b 100644 --- a/tests/kms_rotation_crc.c +++ b/tests/kms_rotation_crc.c @@ -27,10 +27,130 @@ * Category: Display * Description: Tests different rotations with different planes & formats */ + #include "igt.h" #include "igt_vec.h" #include <math.h> +/** + * SUBTEST: %s-rotation-180 + * Description: Rotation test with 180 degree for %arg[1] planes + * Driver requirement: i915, xe + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @primary: primary + * @sprite: sprite + * @cursor: cursor + */ + +/** + * SUBTEST: %s-rotation-%d + * Description: Rotation test with %arg[2] degree for %arg[1] planes of gen9+ + * Driver requirement: i915, xe + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @primary: primary + * @sprite: sprite + * + * arg[2].values: 90, 270 + */ + +/** + * SUBTEST: bad-pixel-format + * Description: Checking unsupported pixel format for gen9+ with 90 degree of rotation + * Driver requirement: i915, xe + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: bad-tiling + * Description: Checking unsupported tiling for gen9+ with 90 degree of rotation + * Driver requirement: i915, xe + * Functionality: plane, rotation, tiling + * Mega feature: General Display Features + * Test category: functionality test + */ + +/** + * SUBTEST: primary-%s-tiled-reflect-x-%d + * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane + * Driver requirement: i915, xe + * Functionality: plane, rotation, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @4: 4 tiling + * @x: x tiling + * @y: y tiling + * @yf: yf tiling + * + * arg[2].values: 0, 180 + */ + +/** + * SUBTEST: primary-%s-tiled-reflect-x-%d + * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane + * Driver requirement: i915, xe + * Functionality: plane, rotation, tiling + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @y: y tiling + * @yf: yf tiling + * + * arg[2].values: 90, 270 + * + * SUBTEST: sprite-rotation-90-pos-100-0 + * Description: Rotation test with 90 degree for a plane of gen9+ with given position + * Driver requirement: i915, xe + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test + */ + +/** + * SUBTEST: multiplane-rotation + * Description: Rotation test on both planes by making them fully visible + * Driver requirement: i915, xe + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: multiplane-rotation-cropping-%s + * Description: Rotation test on both planes by cropping left/%arg[1] corner of + * primary plane and right/%arg[1] corner of sprite plane + * Driver requirement: i915, xe + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @bottom: bottom + * @top: top + */ + +/** + * SUBTEST: exhaust-fences + * Description: This test intends to check for fence leaks exhaustively + * Driver requirement: i915 + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test + */ + #define MAX_FENCES 32 #define MAXMULTIPLANESAMOUNT 2 #define TEST_MAX_WIDTH 640 @@ -479,93 +599,6 @@ static bool test_format(data_t *data, return true; } -/** - * SUBTEST: %s-rotation-180 - * Description: Rotation test with 180 degree for %arg[1] planes - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @primary: primary - * @sprite: sprite - * @cursor: cursor - */ - -/** - * SUBTEST: %s-rotation-%d - * Description: Rotation test with %arg[2] degree for %arg[1] planes of gen9+ - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @primary: primary - * @sprite: sprite - * - * arg[2].values: 90, 270 - */ - -/** - * SUBTEST: bad-pixel-format - * Description: Checking unsupported pixel format for gen9+ with 90 degree of rotation - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: bad-tiling - * Description: Checking unsupported tiling for gen9+ with 90 degree of rotation - * Driver requirement: i915, xe - * Functionality: plane, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test - */ - -/** - * SUBTEST: primary-%s-tiled-reflect-x-%d - * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane - * Driver requirement: i915, xe - * Functionality: plane, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @4: 4 tiling - * @x: x tiling - * @y: y tiling - * @yf: yf tiling - * - * arg[2].values: 0, 180 - */ - -/** - * SUBTEST: primary-%s-tiled-reflect-x-%d - * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane - * Driver requirement: i915, xe - * Functionality: plane, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @y: y tiling - * @yf: yf tiling - * - * arg[2].values: 90, 270 - * - * SUBTEST: sprite-rotation-90-pos-100-0 - * Description: Rotation test with 90 degree for a plane of gen9+ with given position - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_format) { igt_display_t *display = &data->display; @@ -885,28 +918,6 @@ static bool reusecrcfromlastround(planeinfos p[2], int lastroundp1format, return true; } -/** - * SUBTEST: multiplane-rotation - * Description: Rotation test on both planes by making them fully visible - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: multiplane-rotation-cropping-%s - * Description: Rotation test on both planes by cropping left/%arg[1] corner of - * primary plane and right/%arg[1] corner of sprite plane - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @bottom: bottom - * @top: top - */ - /* * Here is pipe parameter which is now used only for first pipe. * It is left here if this test ever was wanted to be run on @@ -1104,14 +1115,6 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe) igt_require_f(found, "No valid pipe/output combo found.\n"); } -/** - * SUBTEST: exhaust-fences - * Description: This test intends to check for fence leaks exhaustively - * Driver requirement: i915 - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - */ static void test_plane_rotation_exhaust_fences(data_t *data, enum pipe pipe, igt_output_t *output, diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c index eb10f7386..960e7d84b 100644 --- a/tests/kms_scaling_modes.c +++ b/tests/kms_scaling_modes.c @@ -24,12 +24,15 @@ * Swati Sharma <swati2.sharma@intel.com> */ -#include "igt.h" /** * TEST: kms scaling modes * Category: Display * Description: Test display scaling modes - * + */ + +#include "igt.h" + +/** * SUBTEST: scaling-mode-%s * Description: Tests %arg[1] display scaling mode * Driver requirement: i915, xe diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c index 6618dbe50..30fc58d90 100644 --- a/tests/kms_selftest.c +++ b/tests/kms_selftest.c @@ -21,13 +21,16 @@ * IN THE SOFTWARE. */ -#include "igt.h" -#include "igt_kmod.h" /** * TEST: kms selftest * Category: Display * Description: Basic sanity check of KMS selftests. - * + */ + +#include "igt.h" +#include "igt_kmod.h" + +/** * SUBTEST: %s * Description: Basic sanity check of KMS selftest %arg[1]. * Driver requirement: i915, xe diff --git a/tests/kms_sequence.c b/tests/kms_sequence.c index 011733bc8..7dbcca643 100644 --- a/tests/kms_sequence.c +++ b/tests/kms_sequence.c @@ -27,6 +27,7 @@ * Category: Display * Description: Test CrtcGetSequence and CrtcQueueSequence. */ + #include "igt.h" #include <stdlib.h> #include <stdio.h> @@ -42,6 +43,36 @@ #include <drm.h> +/** + * SUBTEST: get-%s + * Description: This is a test of drmCrtcGetSequence with %arg[1] + * Driver requirement: i915, xe + * Functionality: vblank + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @busy: busy + * @forked: forked bo + * @forked-busy: forked bo & busy + * @idle: idle + */ + +/** + * SUBTEST: queue-%s + * Description: This is a test of drmCrtcQueueSequence with %arg[1] + * Driver requirement: i915, xe + * Functionality: vblank + * Mega feature: General Display Features + * Test category: functionality test + * + * arg[1]: + * + * @busy: busy + * @idle: idle + */ + IGT_TEST_DESCRIPTION("Test CrtcGetSequence and CrtcQueueSequence."); typedef struct { @@ -136,35 +167,6 @@ static int crtc_queue_sequence(int fd, struct drm_crtc_queue_sequence *cqs) return err; } -/** - * SUBTEST: get-%s - * Description: This is a test of drmCrtcGetSequence with %arg[1] - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @busy: busy - * @forked: forked bo - * @forked-busy: forked bo & busy - * @idle: idle - */ - -/** - * SUBTEST: queue-%s - * Description: This is a test of drmCrtcQueueSequence with %arg[1] - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test - * - * arg[1]: - * - * @busy: busy - * @idle: idle - */ static void run_test(data_t *data, int fd, void (*testfunc)(data_t *, int, int)) { int nchildren = diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c index d66ee97c8..7fd1667d7 100644 --- a/tests/kms_setmode.c +++ b/tests/kms_setmode.c @@ -20,6 +20,14 @@ * Authors: * Imre Deak <imre.deak@intel.com> */ + +/** + * TEST: kms setmode + * Category: Display + * Description: Tests the mode by iterating through all valid/invalid crtc/connector + * combinations + */ + #include "config.h" #include "igt.h" @@ -35,11 +43,6 @@ #include "xe/xe_query.h" /** - * TEST: kms setmode - * Category: Display - * Description: Tests the mode by iterating through all valid/invalid crtc/connector - * combinations - * * SUBTEST: basic * Description: Tests the vblank timing by iterating through all valid crtc/connector * combinations diff --git a/tests/kms_sysfs_edid_timing.c b/tests/kms_sysfs_edid_timing.c index ee47a024e..b36f383e5 100644 --- a/tests/kms_sysfs_edid_timing.c +++ b/tests/kms_sysfs_edid_timing.c @@ -20,16 +20,20 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ + +/** + * TEST: kms sysfs edid timing + * Category: Display + * Description: Test to check the time it takes to reprobe each connector. + */ + #include "igt.h" #include <dirent.h> #include <fcntl.h> #include <sys/stat.h> + /** - * TEST: kms sysfs edid timing - * Category: Display - * Description: Test to check the time it takes to reprobe each connector. - * * SUBTEST: * Description: This test checks the time it takes to reprobe each connector and * fails if either the time it takes for one reprobe is too long or diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c index bb29a4ca7..a094f4df3 100644 --- a/tests/kms_tiled_display.c +++ b/tests/kms_tiled_display.c @@ -41,6 +41,7 @@ * Category: Display * Description: Test for Transcoder Port Sync for Display Port Tiled Displays */ + #include "igt.h" #include "poll.h" #include "drm_mode.h" diff --git a/tests/kms_tv_load_detect.c b/tests/kms_tv_load_detect.c index 67dbb242e..13394f2c6 100644 --- a/tests/kms_tv_load_detect.c +++ b/tests/kms_tv_load_detect.c @@ -22,12 +22,15 @@ * */ -#include "igt.h" /** * TEST: kms tv load detect * Category: Display * Description: Test to check tv load detection. - * + */ + +#include "igt.h" + +/** * SUBTEST: load-detect * Description: Check tv load detection works correctly. * Driver requirement: i915, xe diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c index 7178bebc0..b79b3d3e3 100644 --- a/tests/kms_universal_plane.c +++ b/tests/kms_universal_plane.c @@ -21,6 +21,12 @@ * IN THE SOFTWARE. */ +/** + * TEST: kms universal plane + * Category: Display + * Description: Check pageflip & modeset on universal plane + */ + #include "igt.h" #include <errno.h> #include <stdbool.h> @@ -29,10 +35,6 @@ #include <fcntl.h> /** - * TEST: kms universal plane - * Category: Display - * Description: Check pageflip & modeset on universal plane - * * SUBTEST: cursor-fb-leak * Description: Check for cursor leaks after performing cursor operations * Driver requirement: i915, xe @@ -54,9 +56,7 @@ * Functionality: plane * Mega feature: General Display Features * Test category: functionality test - */ - -/** + * * SUBTEST: universal-plane-%s * Description: Check %arg[1] * Driver requirement: i915, xe diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c index 549a959ad..5994e682c 100644 --- a/tests/kms_vblank.c +++ b/tests/kms_vblank.c @@ -21,6 +21,12 @@ * IN THE SOFTWARE. */ +/** + * TEST: kms vblank + * Category: Display + * Description: Test speed of WaitVblank. + */ + #include "igt.h" #include <stdlib.h> #include <stdio.h> @@ -35,11 +41,8 @@ #include <sys/wait.h> #include <drm.h> + /** - * TEST: kms vblank - * Category: Display - * Description: Test speed of WaitVblank. - * * SUBTEST: crtc-id * Description: Check the vblank and flip events works with given crtc id * Driver requirement: i915, xe @@ -53,9 +56,7 @@ * Functionality: vblank * Mega feature: General Display Features * Test category: functionality test - */ - -/** + * * SUBTEST: ts-continuation-dpms-rpm * Description: Test TS continuty with DPMS & RPM while hanging by introducing * NOHANG flag @@ -63,9 +64,7 @@ * Functionality: dpms, hang, rpm, vblank * Mega feature: General Display Features * Test category: functionality test - */ - -/** + * * SUBTEST: ts-continuation-dpms-suspend * Description: Test TS continuty with DPMS & Suspend while hanging by introducing * NOHANG flag @@ -73,9 +72,7 @@ * Functionality: dpms, hang, suspend, vblank * Mega feature: General Display Features * Test category: functionality test - */ - -/** + * * SUBTEST: ts-continuation-suspend * Description: Test TS continuty with Suspend while hanging by introducing NOHANG * flag @@ -83,9 +80,7 @@ * Functionality: hang, suspend, vblank * Mega feature: General Display Features * Test category: functionality test - */ - -/** + * * SUBTEST: ts-continuation-modeset-rpm * Description: Test TS continuty during Modeset with Suspend while hanging by * introducing NOHANG flag @@ -93,9 +88,7 @@ * Functionality: hang, rpm, vblank * Mega feature: General Display Features * Test category: functionality test - */ - -/** + * * SUBTEST: accuracy-idle * Description: Test Accuracy of vblank events while hanging by introducing NOHANG * flag diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index f26adbccf..23aebb0f2 100644 --- a/tests/kms_vrr.c +++ b/tests/kms_vrr.c @@ -20,15 +20,18 @@ * OTHER DEALINGS IN THE SOFTWARE. */ +/** + * TEST: kms vrr + * Category: Display + * Description: Test to validate diffent features of VRR + */ + #include "igt.h" #include "sw_sync.h" #include <fcntl.h> #include <signal.h> + /** - * TEST: kms vrr - * Category: Display - * Description: Test to validate diffent features of VRR - * * SUBTEST: flip-basic * Description: Tests that VRR is enabled and that the difference between flip * timestamps converges to the requested rate diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c index 25b49eccd..6b436b7ab 100644 --- a/tests/kms_writeback.c +++ b/tests/kms_writeback.c @@ -22,6 +22,15 @@ * */ +/** + * TEST: kms writeback + * Category: Display + * Description: This test validates the expected behavior of the writeback + * connectors feature by checking if the target device support + * writeback; it validates bad and good combination, check color + * format, and check the output result by using CRC. + */ + #include <errno.h> #include <stdbool.h> #include <stdio.h> @@ -32,14 +41,8 @@ #include "igt_core.h" #include "igt_fb.h" #include "sw_sync.h" + /** - * TEST: kms writeback - * Category: Display - * Description: This test validates the expected behavior of the writeback - * connectors feature by checking if the target device support - * writeback; it validates bad and good combination, check color - * format, and check the output result by using CRC. - * * SUBTEST: writeback-check-output-XRGB2101010 * Description: Check XRGB2101010 writeback output with CRC validation * Functionality: kms_core diff --git a/tests/testdisplay.c b/tests/testdisplay.c index 42218210f..109ed496a 100644 --- a/tests/testdisplay.c +++ b/tests/testdisplay.c @@ -45,6 +45,13 @@ * - DP commands (e.g. poweroff) * - verify outputs against VBT/physical connectors */ + +/** + * TEST: testdisplay + * Category: Display + * Description: Tests basic display functionality. + */ + #include "config.h" #include "igt.h" @@ -70,10 +77,6 @@ #include <signal.h> /** - * TEST: testdisplay - * Category: Display - * Description: Tests basic display functionality. - * * SUBTEST: * Description: This test is intended for testing of display functionality like * modeset, clone modes, test patterns & pixel generators etc.. @@ -82,6 +85,7 @@ * Mega feature: General Display Features * Test category: functionality test */ + IGT_TEST_DESCRIPTION("Tests basic display functionality."); enum { -- 2.40.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [i-g-t 1/5] tests/kms/testplan: Move testplan documentation to beginning of the file 2023-11-24 9:35 ` [igt-dev] [i-g-t 1/5] tests/kms/testplan: Move testplan documentation to beginning of the file Bhanuprakash Modem @ 2023-11-24 17:07 ` Sharma, Swati2 0 siblings, 0 replies; 15+ messages in thread From: Sharma, Swati2 @ 2023-11-24 17:07 UTC (permalink / raw) To: Bhanuprakash Modem, igt-dev LGTM Reviewed-by: Swati Sharma <swati2.sharma@intel.com> On 24-Nov-23 3:05 PM, Bhanuprakash Modem wrote: > To maintain the uniformness, move testplan documentation > to beginning of the file. > > Move TEST block to before the #includes, and SUBTEST block > to after the #includes. > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > --- > tests/chamelium/kms_chamelium_audio.c | 74 +- > tests/chamelium/kms_chamelium_color.c | 59 +- > tests/chamelium/kms_chamelium_edid.c | 199 +- > tests/chamelium/kms_chamelium_frames.c | 208 +- > tests/chamelium/kms_chamelium_hpd.c | 425 +- > tests/intel/kms_big_fb.c | 320 +- > tests/intel/kms_big_joiner.c | 50 +- > tests/intel/kms_busy.c | 108 +- > tests/intel/kms_ccs.c | 1 + > tests/intel/kms_cdclk.c | 49 +- > tests/intel/kms_dirtyfb.c | 24 +- > tests/intel/kms_draw_crc.c | 81 +- > tests/intel/kms_dsc.c | 1 + > tests/intel/kms_fb_coherency.c | 21 +- > tests/intel/kms_fbcon_fbt.c | 12 +- > tests/intel/kms_fence_pin_leak.c | 11 +- > tests/intel/kms_flip_scaled_crc.c | 1 + > tests/intel/kms_flip_tiling.c | 11 +- > tests/intel/kms_frontbuffer_tracking.c | 7361 ++++++++++++------------ > tests/intel/kms_legacy_colorkey.c | 10 +- > tests/intel/kms_mmap_write_crc.c | 13 +- > tests/intel/kms_pipe_b_c_ivb.c | 7 +- > tests/intel/kms_pm_backlight.c | 11 +- > tests/intel/kms_pm_dc.c | 10 +- > tests/intel/kms_pm_lpsp.c | 11 +- > tests/intel/kms_psr.c | 68 +- > tests/intel/kms_psr2_sf.c | 13 +- > tests/intel/kms_psr2_su.c | 11 +- > tests/intel/kms_psr_stress_test.c | 10 +- > tests/intel/kms_pwrite_crc.c | 10 +- > tests/kms_3d.c | 9 +- > tests/kms_addfb_basic.c | 411 +- > tests/kms_async_flips.c | 100 +- > tests/kms_atomic.c | 176 +- > tests/kms_atomic_interruptible.c | 100 +- > tests/kms_atomic_transition.c | 179 +- > tests/kms_bw.c | 11 +- > tests/kms_color.c | 140 +- > tests/kms_concurrent.c | 9 +- > tests/kms_content_protection.c | 141 +- > tests/kms_cursor_crc.c | 141 +- > tests/kms_cursor_edge_walk.c | 13 +- > tests/kms_cursor_legacy.c | 493 +- > tests/kms_display_modes.c | 37 +- > tests/kms_dither.c | 32 +- > tests/kms_dp_aux_dev.c | 11 +- > tests/kms_feature_discovery.c | 22 +- > tests/kms_flip.c | 93 +- > tests/kms_flip_event_leak.c | 10 +- > tests/kms_force_connector_basic.c | 62 +- > tests/kms_getfb.c | 161 +- > tests/kms_hdmi_inject.c | 14 +- > tests/kms_hdr.c | 127 +- > tests/kms_invalid_mode.c | 1 + > tests/kms_multipipe_modeset.c | 7 +- > tests/kms_panel_fitting.c | 11 +- > tests/kms_pipe_crc_basic.c | 149 +- > tests/kms_plane.c | 131 +- > tests/kms_plane_alpha_blend.c | 94 +- > tests/kms_plane_cursor.c | 8 +- > tests/kms_plane_lowres.c | 50 +- > tests/kms_plane_multiple.c | 54 +- > tests/kms_plane_scaling.c | 476 +- > tests/kms_prime.c | 11 +- > tests/kms_prop_blob.c | 96 +- > tests/kms_properties.c | 39 +- > tests/kms_rmfb.c | 13 +- > tests/kms_rotation_crc.c | 237 +- > tests/kms_scaling_modes.c | 7 +- > tests/kms_selftest.c | 9 +- > tests/kms_sequence.c | 60 +- > tests/kms_setmode.c | 13 +- > tests/kms_sysfs_edid_timing.c | 12 +- > tests/kms_tiled_display.c | 1 + > tests/kms_tv_load_detect.c | 7 +- > tests/kms_universal_plane.c | 14 +- > tests/kms_vblank.c | 31 +- > tests/kms_vrr.c | 11 +- > tests/kms_writeback.c | 17 +- > tests/testdisplay.c | 12 +- > 80 files changed, 6697 insertions(+), 6556 deletions(-) > > diff --git a/tests/chamelium/kms_chamelium_audio.c b/tests/chamelium/kms_chamelium_audio.c > index 34ba0cb64..f86610861 100644 > --- a/tests/chamelium/kms_chamelium_audio.c > +++ b/tests/chamelium/kms_chamelium_audio.c > @@ -24,14 +24,48 @@ > * Lyude Paul <lyude@redhat.com> > */ > > +/** > + * TEST: kms chamelium audio > + * Category: Display > + * Description: Testing Audio with a Chamelium board > + */ > + > #include "igt_eld.h" > #include "igt_infoframe.h" > #include "kms_chamelium_helper.h" > > /** > - * TEST: kms chamelium audio > - * Category: Display > - * Description: Testing Audio with a Chamelium board > + * SUBTEST: dp-audio > + * Description: Playback various audio signals with various audio formats/rates, > + * capture them and check they are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_audio > + * Mega feature: Audio, DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-audio > + * Description: Playback various audio signals with various audio formats/rates, > + * capture them and check they are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, hdmi_audio > + * Mega feature: Audio, HDMI > + * Test category: functionality test > + * > + * SUBTEST: dp-audio-edid > + * Description: Plug a connector with an EDID suitable for audio, check ALSA's > + * EDID-Like Data reports the correct audio parameters > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_audio > + * Mega feature: Audio, DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-audio-edid > + * Description: Plug a connector with an EDID suitable for audio, check ALSA's > + * EDID-Like Data reports the correct audio parameters > + * Driver requirement: i915, xe > + * Functionality: chamelium, hdmi_audio > + * Mega feature: Audio, HDMI > + * Test category: functionality test > */ > > /* Playback parameters control the audio signal we synthesize and send */ > @@ -675,23 +709,6 @@ static bool check_audio_configuration(struct alsa *alsa, > return true; > } > > -/** > - * SUBTEST: dp-audio > - * Description: Playback various audio signals with various audio formats/rates, > - * capture them and check they are correct > - * Functionality: chamelium, dp_audio > - * Mega feature: Audio, DP > - * Test category: functionality test > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-audio > - * Description: Playback various audio signals with various audio formats/rates, > - * capture them and check they are correct > - * Functionality: chamelium, hdmi_audio > - * Mega feature: Audio, HDMI > - * Test category: functionality test > - * Driver requirement: i915, xe > - */ > static const char test_display_audio_desc[] = > "Playback various audio signals with various audio formats/rates, " > "capture them and check they are correct"; > @@ -786,23 +803,6 @@ static void test_display_audio(chamelium_data_t *data, > free(alsa); > } > > -/** > - * SUBTEST: dp-audio-edid > - * Description: Plug a connector with an EDID suitable for audio, check ALSA's > - * EDID-Like Data reports the correct audio parameters > - * Functionality: chamelium, dp_audio > - * Mega feature: Audio, DP > - * Test category: functionality test > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-audio-edid > - * Description: Plug a connector with an EDID suitable for audio, check ALSA's > - * EDID-Like Data reports the correct audio parameters > - * Functionality: chamelium, hdmi_audio > - * Mega feature: Audio, HDMI > - * Test category: functionality test > - * Driver requirement: i915, xe > - */ > static const char test_display_audio_edid_desc[] = > "Plug a connector with an EDID suitable for audio, check ALSA's " > "EDID-Like Data reports the correct audio parameters"; > diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c > index 0a9788214..6123e8a5f 100644 > --- a/tests/chamelium/kms_chamelium_color.c > +++ b/tests/chamelium/kms_chamelium_color.c > @@ -30,16 +30,43 @@ > > #include "kms_color_helper.h" > > -IGT_TEST_DESCRIPTION("Test Color Features at Pipe level using Chamelium to verify instead of CRC"); > - > /** > * SUBTEST: degamma > * Description: Verify that degamma LUT transformation works correctly > + * Driver requirement: i915, xe > * Functionality: chamelium, colorspace > * Mega feature: Color mgmt > * Test category: functionality test > + * > + * SUBTEST: gamma > + * Description: Verify that gamma LUT transformation works correctly > * Driver requirement: i915, xe > + * Functionality: chamelium, colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * SUBTEST: ctm-%s > + * Description: Check the color transformation %arg[1] > + * Driver requirement: i915, xe > + * Functionality: chamelium, colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @0-25: for 0.25 transparancy > + * @0-50: for 0.50 transparancy > + * @0-75: for 0.75 transparancy > + * @blue-to-red: from blue to red > + * @green-to-red: from green to red > + * @limited-range: with identity matrix > + * @max: for max transparancy > + * @negative: for negative transparancy > + * @red-to-blue: from red to blue > */ > + > +IGT_TEST_DESCRIPTION("Test Color Features at Pipe level using Chamelium to verify instead of CRC"); > + > /* > * Draw 3 gradient rectangles in red, green and blue, with a maxed out > * degamma LUT and verify we have the same frame dump as drawing solid color > @@ -129,14 +156,6 @@ static bool test_pipe_degamma(data_t *data, > return ret; > } > > -/** > - * SUBTEST: gamma > - * Description: Verify that gamma LUT transformation works correctly > - * Functionality: chamelium, colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - * Driver requirement: i915, xe > - */ > /* > * Draw 3 gradient rectangles in red, green and blue, with a maxed out > * gamma LUT and verify we have the same frame dump as drawing solid > @@ -487,26 +506,6 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p, > igt_assert(test_t(data, data->primary, data->ports[port_idx])); > } > > -/** > - * SUBTEST: ctm-%s > - * Description: Check the color transformation %arg[1] > - * Functionality: chamelium, colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - * Driver requirement: i915, xe > - * > - * arg[1]: > - * > - * @0-25: for 0.25 transparancy > - * @0-50: for 0.50 transparancy > - * @0-75: for 0.75 transparancy > - * @blue-to-red: from blue to red > - * @green-to-red: from green to red > - * @limited-range: with identity matrix > - * @max: for max transparancy > - * @negative: for negative transparancy > - * @red-to-blue: from red to blue > - */ > static void > run_ctm_tests_for_pipe(data_t *data, enum pipe p, > color_t *expected_colors, > diff --git a/tests/chamelium/kms_chamelium_edid.c b/tests/chamelium/kms_chamelium_edid.c > index de8e51a04..f3f0b1e50 100644 > --- a/tests/chamelium/kms_chamelium_edid.c > +++ b/tests/chamelium/kms_chamelium_edid.c > @@ -48,6 +48,106 @@ > #include "monitor_edids/hdmi_edids.h" > #include "monitor_edids/monitor_edids_helper.h" > > +/** > + * SUBTEST: dp-edid-read > + * Description: Make sure the EDID exposed by KMS is the same as the screen's > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: chamelium, dp_edid > + * Mega feature: DP > + * > + * SUBTEST: hdmi-edid-read > + * Description: Make sure the EDID exposed by KMS is the same as the screen's > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: chamelium, hdmi_edid > + * Mega feature: HDMI > + * > + * SUBTEST: vga-edid-read > + * Description: Make sure the EDID exposed by KMS is the same as the screen's > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: chamelium, vga_edid > + * Mega feature: VGA > + * > + * SUBTEST: dp-edid-resolution-list > + * Description: Get an EDID with many modes of different configurations, set > + * them on the screen and check the screen resolution matches the > + * mode resolution. > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_edid > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: dp-mode-timings > + * Description: For each mode of the IGT base EDID, perform a modeset and check > + * the mode detected by the Chamelium receiver matches the mode we > + * set > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_edid > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-mode-timings > + * Description: For each mode of the IGT base EDID, perform a modeset and check > + * the mode detected by the Chamelium receiver matches the mode we > + * set > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_edid > + * Mega feature: DP > + * Test category: functionality test > + */ > + > +/** > + * SUBTEST: dp-edid-stress-resolution-%s > + * Description: Stress test the DUT by testing multiple EDIDs, one right after > + * the other, and ensure their validity by check the real screen > + * resolution vs the advertised mode (%arg[1]) resolution. > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_edid > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-edid-stress-resolution-%s > + * Description: Stress test the DUT by testing multiple EDIDs, one right after > + * the other, and ensure their validity by check the real screen > + * resolution vs the advertised mode (%arg[1]) resolution. > + * Driver requirement: i915, xe > + * Functionality: chamelium, hdmi_edid > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4k: 4K > + * @non-4k: Non 4K > + */ > + > +/** > + * SUBTEST: dp-edid-change-during-%s > + * Description: Simulate a screen being unplugged and another screen being > + * plugged during suspend, check that a uevent is sent and > + * connector status is updated during %arg[1] > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_edid > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-edid-change-during-%s > + * Description: Simulate a screen being unplugged and another screen being > + * plugged during suspend, check that a uevent is sent and > + * connector status is updated during %arg[1] > + * Driver requirement: i915, xe > + * Functionality: chamelium, dp_edid > + * Mega feature: DP > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @hibernate: hibernation > + * @suspend: suspend > + */ > + > #define MODE_CLOCK_ACCURACY 0.05 /* 5% */ > > static void get_connectors_link_status_failed(chamelium_data_t *data, > @@ -145,28 +245,6 @@ static void check_mode(struct chamelium *chamelium, struct chamelium_port *port, > igt_assert(video_params.vsync_polarity == mode_vsync_polarity); > } > > -/** > - * SUBTEST: dp-edid-read > - * Description: Make sure the EDID exposed by KMS is the same as the screen's > - * Test category: functionality test > - * Functionality: chamelium, dp_edid > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-edid-read > - * Description: Make sure the EDID exposed by KMS is the same as the screen's > - * Test category: functionality test > - * Functionality: chamelium, hdmi_edid > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * SUBTEST: vga-edid-read > - * Description: Make sure the EDID exposed by KMS is the same as the screen's > - * Test category: functionality test > - * Functionality: chamelium, vga_edid > - * Mega feature: VGA > - * Driver requirement: i915, xe > - */ > static const char igt_custom_edid_type_read_desc[] = > "Make sure the EDID exposed by KMS is the same as the screen's"; > static void igt_custom_edid_type_read(chamelium_data_t *data, > @@ -206,30 +284,6 @@ static void igt_custom_edid_type_read(chamelium_data_t *data, > drmModeFreeConnector(connector); > } > > -/** > - * SUBTEST: dp-edid-stress-resolution-%s > - * Description: Stress test the DUT by testing multiple EDIDs, one right after > - * the other, and ensure their validity by check the real screen > - * resolution vs the advertised mode (%arg[1]) resolution. > - * Test category: functionality test > - * Functionality: chamelium, dp_edid > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-edid-stress-resolution-%s > - * Description: Stress test the DUT by testing multiple EDIDs, one right after > - * the other, and ensure their validity by check the real screen > - * resolution vs the advertised mode (%arg[1]) resolution. > - * Test category: functionality test > - * Functionality: chamelium, hdmi_edid > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * arg[1]: > - * > - * @4k: 4K > - * @non-4k: Non 4K > - */ > static const char igt_edid_stress_resolution_desc[] = > "Stress test the DUT by testing multiple EDIDs, one right after the other, " > "and ensure their validity by check the real screen resolution vs the " > @@ -299,16 +353,6 @@ static void edid_stress_resolution(chamelium_data_t *data, > data->ports, data->port_count); > } > > -/** > - * SUBTEST: dp-edid-resolution-list > - * Description: Get an EDID with many modes of different configurations, set > - * them on the screen and check the screen resolution matches the > - * mode resolution. > - * Test category: functionality test > - * Functionality: chamelium, dp_edid > - * Mega feature: DP > - * Driver requirement: i915, xe > - */ > static const char igt_edid_resolution_list_desc[] = > "Get an EDID with many modes of different configurations, set them on the screen and check the" > " screen resolution matches the mode resolution."; > @@ -372,30 +416,6 @@ static void edid_resolution_list(chamelium_data_t *data, > drmModeFreeConnector(connector); > } > > -/** > - * SUBTEST: dp-edid-change-during-%s > - * Description: Simulate a screen being unplugged and another screen being > - * plugged during suspend, check that a uevent is sent and > - * connector status is updated during %arg[1] > - * Test category: functionality test > - * Functionality: chamelium, dp_edid > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-edid-change-during-%s > - * Description: Simulate a screen being unplugged and another screen being > - * plugged during suspend, check that a uevent is sent and > - * connector status is updated during %arg[1] > - * Test category: functionality test > - * Functionality: chamelium, dp_edid > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * arg[1]: > - * > - * @hibernate: hibernation > - * @suspend: suspend > - */ > static const char test_suspend_resume_edid_change_desc[] = > "Simulate a screen being unplugged and another screen being plugged " > "during suspend, check that a uevent is sent and connector status is " > @@ -448,25 +468,6 @@ static void test_suspend_resume_edid_change(chamelium_data_t *data, > link_status_failed[1][p]); > } > > -/** > - * SUBTEST: dp-mode-timings > - * Description: For each mode of the IGT base EDID, perform a modeset and check > - * the mode detected by the Chamelium receiver matches the mode we > - * set > - * Test category: functionality test > - * Functionality: chamelium, dp_edid > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-mode-timings > - * Description: For each mode of the IGT base EDID, perform a modeset and check > - * the mode detected by the Chamelium receiver matches the mode we > - * set > - * Test category: functionality test > - * Functionality: chamelium, dp_edid > - * Mega feature: DP > - * Driver requirement: i915, xe > - */ > static const char test_mode_timings_desc[] = > "For each mode of the IGT base EDID, perform a modeset and check the " > "mode detected by the Chamelium receiver matches the mode we set"; > diff --git a/tests/chamelium/kms_chamelium_frames.c b/tests/chamelium/kms_chamelium_frames.c > index a313cd433..490ab3fe9 100644 > --- a/tests/chamelium/kms_chamelium_frames.c > +++ b/tests/chamelium/kms_chamelium_frames.c > @@ -29,10 +29,114 @@ > * Category: Display > * Description: Tests requiring a Chamelium board > */ > + > #include "igt_eld.h" > #include "igt_infoframe.h" > #include "kms_chamelium_helper.h" > > +/** > + * SUBTEST: dp-crc-fast > + * Description: Pick the first mode of the IGT base EDID, display and capture > + * a few frames, then check captured frames are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-crc-fast > + * Description: Pick the first mode of the IGT base EDID, display and capture > + * a few frames, then check captured frames are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: hdmi-%s-formats > + * Description: Pick the first mode of the IGT base EDID, display and capture a > + * few frames, then check captured frames are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @crc-nonplanar: CRC with non planar formats > + * @cmp-planar: Compare with planar formats > + */ > + > +/** > + * SUBTEST: vga-frame-dump > + * Description: For each mode of the IGT base EDID, display and capture a few > + * frames, then check captured frames are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: VGA > + * Test category: functionality test > + * > + * SUBTEST: dp-crc-%s > + * Description: For each mode of the IGT base EDID, display and capture a %arg[1] > + * frame(s), then check captured frame(s) are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-crc-%s > + * Description: For each mode of the IGT base EDID, display and capture a %arg[1] > + * frame(s), then check captured frame(s) are correct > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @single: single > + * @multiple: multiple > + */ > + > +/** > + * SUBTEST: dp-frame-dump > + * Description: For each mode of the IGT base EDID, display and capture a few > + * frames, then download the captured frames and compare them > + * bit-by-bit to the sent ones > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-frame-dump > + * Description: For each mode of the IGT base EDID, display and capture a few > + * frames, then download the captured frames and compare them > + * bit-by-bit to the sent ones > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: hdmi-aspect-ratio > + * Description: Pick a mode with a picture aspect-ratio, capture AVI InfoFrames > + * and check they include the relevant fields > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: hdmi-%s-planes-random > + * Description: Setup a few overlay planes with random parameters, capture the > + * frame and check it matches the expected output > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @crc: CRC check > + * @cmp: Compare > + */ > + > #define connector_dynamic_subtest(name__, type__) \ > igt_subtest_with_dynamic(name__) \ > for_each_port(p, port) if (chamelium_port_get_type(port) == \ > @@ -539,38 +643,6 @@ static void prepare_randomized_plane(chamelium_data_t *data, > igt_remove_fb(data->drm_fd, &pattern_fb); > } > > -/** > - * SUBTEST: dp-crc-fast > - * Description: Pick the first mode of the IGT base EDID, display and capture > - * a few frames, then check captured frames are correct > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-crc-fast > - * Description: Pick the first mode of the IGT base EDID, display and capture > - * a few frames, then check captured frames are correct > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - */ > - > -/** > - * SUBTEST: hdmi-%s-formats > - * Description: Pick the first mode of the IGT base EDID, display and capture a > - * few frames, then check captured frames are correct > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * arg[1]: > - * > - * @crc-nonplanar: CRC with non planar formats > - * @cmp-planar: Compare with planar formats > - */ > static const char test_display_one_mode_desc[] = > "Pick the first mode of the IGT base EDID, display and capture a few " > "frames, then check captured frames are correct"; > @@ -607,36 +679,6 @@ static void test_display_one_mode(chamelium_data_t *data, > drmModeFreeConnector(connector); > } > > -/** > - * SUBTEST: vga-frame-dump > - * Description: For each mode of the IGT base EDID, display and capture a few > - * frames, then check captured frames are correct > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: VGA > - * Driver requirement: i915, xe > - * > - * SUBTEST: dp-crc-%s > - * Description: For each mode of the IGT base EDID, display and capture a %arg[1] > - * frame(s), then check captured frame(s) are correct > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-crc-%s > - * Description: For each mode of the IGT base EDID, display and capture a %arg[1] > - * frame(s), then check captured frame(s) are correct > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * arg[1]: > - * > - * @single: single > - * @multiple: multiple > - */ > static const char test_display_all_modes_desc[] = > "For each mode of the IGT base EDID, display and capture a few " > "frames, then check captured frames are correct"; > @@ -695,25 +737,6 @@ static void test_display_all_modes(chamelium_data_t *data, > } while (++i < count_modes); > } > > -/** > - * SUBTEST: dp-frame-dump > - * Description: For each mode of the IGT base EDID, display and capture a few > - * frames, then download the captured frames and compare them > - * bit-by-bit to the sent ones > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-frame-dump > - * Description: For each mode of the IGT base EDID, display and capture a few > - * frames, then download the captured frames and compare them > - * bit-by-bit to the sent ones > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - */ > static const char test_display_frame_dump_desc[] = > "For each mode of the IGT base EDID, display and capture a few " > "frames, then download the captured frames and compare them " > @@ -782,15 +805,6 @@ static void test_display_frame_dump(chamelium_data_t *data, > } while (++i < count_modes); > } > > -/** > - * SUBTEST: hdmi-aspect-ratio > - * Description: Pick a mode with a picture aspect-ratio, capture AVI InfoFrames > - * and check they include the relevant fields > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - */ > static const char test_display_aspect_ratio_desc[] = > "Pick a mode with a picture aspect-ratio, capture AVI InfoFrames and " > "check they include the relevant fields"; > @@ -871,20 +885,6 @@ static void test_display_aspect_ratio(chamelium_data_t *data, > drmModeFreeConnector(connector); > } > > -/** > - * SUBTEST: hdmi-%s-planes-random > - * Description: Setup a few overlay planes with random parameters, capture the > - * frame and check it matches the expected output > - * Test category: functionality test > - * Functionality: chamelium, frame_integrity > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * arg[1]: > - * > - * @crc: CRC check > - * @cmp: Compare > - */ > static const char test_display_planes_random_desc[] = > "Setup a few overlay planes with random parameters, capture the frame " > "and check it matches the expected output"; > diff --git a/tests/chamelium/kms_chamelium_hpd.c b/tests/chamelium/kms_chamelium_hpd.c > index f7a9422a9..360694c76 100644 > --- a/tests/chamelium/kms_chamelium_hpd.c > +++ b/tests/chamelium/kms_chamelium_hpd.c > @@ -32,6 +32,217 @@ > > #include "kms_chamelium_helper.h" > > +/** > + * SUBTEST: dp-hpd-fast > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd-fast > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: vga-hpd-fast > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: VGA > + * Test category: functionality test > + * > + * SUBTEST: dp-hpd > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: vga-hpd > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: VGA > + * Test category: functionality test > + * > + * SUBTEST: dp-hpd-%s > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd-%s > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: vga-hpd-%s > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: VGA > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @enable-disable-mode: Toggle the mode > + * @with-enabled-mode: Enabling the mode > + */ > + > +/** > + * SUBTEST: dp-hpd-for-each-pipe > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug for each pipe with valid output > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd-for-each-pipe > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug for each pipe with valid output > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: vga-hpd-for-each-pipe > + * Description: Check that we get uevents and updated connector status on > + * hotplug and unplug for each pipe with valid output > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: VGA > + * Test category: functionality test > + * > + * SUBTEST: dp-hpd-after-hibernate > + * Description: Toggle HPD during Hibernation, check that uevents are sent and > + * connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, hibernation > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd-after-hibernate > + * Description: Toggle HPD during Hibernation, check that uevents are sent and > + * connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, hibernation > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: vga-hpd-after-hibernate > + * Description: Toggle HPD during Hibernation, check that uevents are sent and > + * connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, hibernation > + * Mega feature: VGA > + * Test category: functionality test > + * > + * SUBTEST: dp-hpd-after-suspend > + * Description: Toggle HPD during Suspend, check that uevents are sent and > + * connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, suspend > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd-after-suspend > + * Description: Toggle HPD during Suspend, check that uevents are sent and > + * connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, suspend > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: vga-hpd-after-suspend > + * Description: Toggle HPD during Suspend, check that uevents are sent and > + * connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, suspend > + * Mega feature: VGA > + * Test category: functionality test > + * > + * SUBTEST: common-hpd-after-suspend > + * Description: Toggle HPD during suspend on all connectors, check that uevents > + * are sent and connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: common-hpd-after-hibernate > + * Description: Toggle HPD during suspend on all connectors, check that uevents > + * are sent and connector status is updated > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug, hibernation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: vga-hpd-without-ddc > + * Description: Disable DDC on a VGA connector, check we still get a uevent on > + * hotplug > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: VGA > + * Test category: functionality test > + * > + * SUBTEST: dp-hpd-storm > + * Description: Trigger a series of hotplugs in a very small timeframe to > + * simulate abad cable, check the kernel falls back to polling > + * to avoid a hotplug storm > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd-storm > + * Description: Trigger a series of hotplugs in a very small timeframe to > + * simulate abad cable, check the kernel falls back to polling > + * to avoid a hotplug storm > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: HDMI > + * Test category: functionality test > + * > + * SUBTEST: dp-hpd-storm-disable > + * Description: Disable HPD storm detection, trigger a storm and check the > + * kernel doesn't detect one > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: DP > + * Test category: functionality test > + * > + * SUBTEST: hdmi-hpd-storm-disable > + * Description: Disable HPD storm detection, trigger a storm and check the > + * kernel doesn't detect one > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Mega feature: HDMI > + * Test category: functionality test > + */ > + > #define HPD_STORM_PULSE_INTERVAL_DP 100 /* ms */ > #define HPD_STORM_PULSE_INTERVAL_HDMI 200 /* ms */ > > @@ -110,84 +321,6 @@ static void try_suspend_resume_hpd(chamelium_data_t *data, > } > } > > -/** > - * SUBTEST: dp-hpd-fast > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd-fast > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * SUBTEST: vga-hpd-fast > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: VGA > - * Driver requirement: i915, xe > - * > - * SUBTEST: dp-hpd > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * SUBTEST: vga-hpd > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: VGA > - * Driver requirement: i915, xe > - * > - * SUBTEST: dp-hpd-%s > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd-%s > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * SUBTEST: vga-hpd-%s > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: VGA > - * Driver requirement: i915, xe > - * > - * arg[1]: > - * > - * @enable-disable-mode: Toggle the mode > - * @with-enabled-mode: Enabling the mode > - */ > static const char test_basic_hotplug_desc[] = > "Check that we get uevents and updated connector status on " > "hotplug and unplug"; > @@ -254,31 +387,6 @@ static void test_hotplug(chamelium_data_t *data, struct chamelium_port *port, > igt_remove_fb(data->drm_fd, &fb); > } > > -/** > - * SUBTEST: dp-hpd-for-each-pipe > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug for each pipe with valid output > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd-for-each-pipe > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug for each pipe with valid output > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * SUBTEST: vga-hpd-for-each-pipe > - * Description: Check that we get uevents and updated connector status on > - * hotplug and unplug for each pipe with valid output > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: VGA > - * Driver requirement: i915, xe > - */ > static const char test_hotplug_for_each_pipe_desc[] = > "Check that we get uevents and updated connector status on " > "hotplug and unplug for each pipe with valid output"; > @@ -324,55 +432,6 @@ static void test_hotplug_for_each_pipe(chamelium_data_t *data, > igt_hpd_storm_reset(data->drm_fd); > } > > -/** > - * SUBTEST: dp-hpd-after-hibernate > - * Description: Toggle HPD during Hibernation, check that uevents are sent and > - * connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, hibernation > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd-after-hibernate > - * Description: Toggle HPD during Hibernation, check that uevents are sent and > - * connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, hibernation > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * SUBTEST: vga-hpd-after-hibernate > - * Description: Toggle HPD during Hibernation, check that uevents are sent and > - * connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, hibernation > - * Mega feature: VGA > - * Driver requirement: i915, xe > - * > - * SUBTEST: dp-hpd-after-suspend > - * Description: Toggle HPD during Suspend, check that uevents are sent and > - * connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, suspend > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd-after-suspend > - * Description: Toggle HPD during Suspend, check that uevents are sent and > - * connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, suspend > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - * > - * SUBTEST: vga-hpd-after-suspend > - * Description: Toggle HPD during Suspend, check that uevents are sent and > - * connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, suspend > - * Mega feature: VGA > - * Driver requirement: i915, xe > - */ > static const char test_suspend_resume_hpd_desc[] = > "Toggle HPD during suspend, check that uevents are sent and connector " > "status is updated"; > @@ -396,23 +455,6 @@ static void test_suspend_resume_hpd(chamelium_data_t *data, > igt_cleanup_uevents(mon); > } > > -/** > - * SUBTEST: common-hpd-after-suspend > - * Description: Toggle HPD during suspend on all connectors, check that uevents > - * are sent and connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, suspend > - * Mega feature: General Display Features > - * Driver requirement: i915, xe > - * > - * SUBTEST: common-hpd-after-hibernate > - * Description: Toggle HPD during suspend on all connectors, check that uevents > - * are sent and connector status is updated > - * Test category: functionality test > - * Functionality: chamelium, hotplug, hibernation > - * Mega feature: General Display Features > - * Driver requirement: i915, xe > - */ > static const char test_suspend_resume_hpd_common_desc[] = > "Toggle HPD during suspend on all connectors, check that uevents are " > "sent and connector status is updated"; > @@ -442,15 +484,6 @@ static void test_suspend_resume_hpd_common(chamelium_data_t *data, > igt_cleanup_uevents(mon); > } > > -/** > - * SUBTEST: vga-hpd-without-ddc > - * Description: Disable DDC on a VGA connector, check we still get a uevent on > - * hotplug > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: VGA > - * Driver requirement: i915, xe > - */ > static const char test_hpd_without_ddc_desc[] = > "Disable DDC on a VGA connector, check we still get a uevent on hotplug"; > static void test_hpd_without_ddc(chamelium_data_t *data, > @@ -477,25 +510,6 @@ static void test_hpd_without_ddc(chamelium_data_t *data, > igt_cleanup_uevents(mon); > } > > -/** > - * SUBTEST: dp-hpd-storm > - * Description: Trigger a series of hotplugs in a very small timeframe to > - * simulate abad cable, check the kernel falls back to polling > - * to avoid a hotplug storm > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd-storm > - * Description: Trigger a series of hotplugs in a very small timeframe to > - * simulate abad cable, check the kernel falls back to polling > - * to avoid a hotplug storm > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - */ > static const char test_hpd_storm_detect_desc[] = > "Trigger a series of hotplugs in a very small timeframe to simulate a" > "bad cable, check the kernel falls back to polling to avoid a hotplug " > @@ -530,23 +544,6 @@ static void test_hpd_storm_detect(chamelium_data_t *data, > igt_hpd_storm_reset(data->drm_fd); > } > > -/** > - * SUBTEST: dp-hpd-storm-disable > - * Description: Disable HPD storm detection, trigger a storm and check the > - * kernel doesn't detect one > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: DP > - * Driver requirement: i915, xe > - * > - * SUBTEST: hdmi-hpd-storm-disable > - * Description: Disable HPD storm detection, trigger a storm and check the > - * kernel doesn't detect one > - * Test category: functionality test > - * Functionality: chamelium, hotplug > - * Mega feature: HDMI > - * Driver requirement: i915, xe > - */ > static const char test_hpd_storm_disable_desc[] = > "Disable HPD storm detection, trigger a storm and check the kernel " > "doesn't detect one"; > diff --git a/tests/intel/kms_big_fb.c b/tests/intel/kms_big_fb.c > index 035c936d9..2fb435ff4 100644 > --- a/tests/intel/kms_big_fb.c > +++ b/tests/intel/kms_big_fb.c > @@ -37,6 +37,168 @@ > #include "xe/xe_ioctl.h" > #include "xe/xe_query.h" > > +/** > + * SUBTEST: linear-%dbpp-rotate-%d > + * Description: Sanity check if addfb ioctl works correctly for given combination > + * of Linear modifier with %arg[1]-bpp & %arg[2]-rotation > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 8, 16, 32, 64 > + * arg[2].values: 0, 90, 180, 270 > + */ > + > +/** > + * SUBTEST: %s-%dbpp-rotate-%d > + * Description: Sanity check if addfb ioctl works correctly for given combination > + * of %arg[1] with %arg[2]-bpp & %arg[3]-rotation > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, rotation, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4-tiled: TILE-4 modifier > + * @x-tiled: TILE-X modifier > + * @y-tiled: TILE-Y modifier > + * @yf-tiled: TILE-YF modifier > + * > + * arg[2].values: 8, 16, 32, 64 > + * arg[3].values: 0, 90, 180, 270 > + */ > + > +/** > + * SUBTEST: linear-max-hw-stride-%dbpp-rotate-%d > + * Description: Test maximum hardware supported stride length for given combination > + * of linear modifier with max hardware stride length, %arg[1]-bpp, > + * and %arg[2]-rotation > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 32, 64 > + * arg[2].values: 0, 180 > + */ > + > +/** > + * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d > + * Description: Test maximum hardware supported stride length for given combination > + * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > + * and %arg[3]-rotation > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, rotation, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4-tiled: TILE-4 modifier > + * @x-tiled: TILE-X modifier > + * @y-tiled: TILE-Y modifier > + * @yf-tiled: TILE-YF modifier > + * > + * arg[2].values: 32, 64 > + * arg[3].values: 0, 180 > + */ > + > +/** > + * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-hflip > + * Description: Test maximum hardware supported stride length for given combination > + * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > + * and %arg[3]-rotation with H-flip mode > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, rotation, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-%s > + * Description: Test maximum hardware supported stride length for given combination > + * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > + * and %arg[3]-rotation with %arg[4] mode > + * Driver requirement: i915, xe > + * Functionality: async_flips, big_fbs, kms_gem_interop, rotation, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4-tiled: TILE-4 modifier > + * @x-tiled: TILE-X modifier > + * @y-tiled: TILE-Y modifier > + * @yf-tiled: TILE-YF modifier > + * > + * arg[2].values: 32, 64 > + * arg[3].values: 0, 180 > + * > + * arg[4]: > + * > + * @async-flip: Async flip > + * @hflip-async-flip: Async & H-flip > + */ > + > +/** > + * SUBTEST: %s-addfb-size-overflow > + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > + * with small bo. > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4-tiled: TILE-4 > + * @x-tiled: TILE-X > + * @y-tiled: TILE-Y > + * @yf-tiled: TILE-YF > + */ > + > +/** > + * SUBTEST: %s-addfb-size-offset-overflow > + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > + * and offsets with small bo > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4-tiled: TILE-4 > + * @x-tiled: TILE-X > + * @y-tiled: TILE-Y > + * @yf-tiled: TILE-YF > + */ > + > +/** > + * SUBTEST: linear-addfb > + * Description: Sanity check if addfb ioctl works correctly with Linear modifier > + * for given size and strides of fb > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: %s-addfb > + * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier > + * for given size and strides of fb > + * Driver requirement: i915, xe > + * Functionality: big_fbs, kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4-tiled: TILE-4 > + * @x-tiled: TILE-X > + * @y-tiled: TILE-Y > + * @yf-tiled: TILE-YF > + */ > + > IGT_TEST_DESCRIPTION("Test big framebuffers"); > > typedef struct { > @@ -588,108 +750,6 @@ max_hw_stride_async_flip_test(data_t *data) > return true; > } > > -/** > - * SUBTEST: linear-%dbpp-rotate-%d > - * Description: Sanity check if addfb ioctl works correctly for given combination > - * of Linear modifier with %arg[1]-bpp & %arg[2]-rotation > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 8, 16, 32, 64 > - * arg[2].values: 0, 90, 180, 270 > - */ > - > -/** > - * SUBTEST: %s-%dbpp-rotate-%d > - * Description: Sanity check if addfb ioctl works correctly for given combination > - * of %arg[1] with %arg[2]-bpp & %arg[3]-rotation > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4-tiled: TILE-4 modifier > - * @x-tiled: TILE-X modifier > - * @y-tiled: TILE-Y modifier > - * @yf-tiled: TILE-YF modifier > - * > - * arg[2].values: 8, 16, 32, 64 > - * arg[3].values: 0, 90, 180, 270 > - */ > - > -/** > - * SUBTEST: linear-max-hw-stride-%dbpp-rotate-%d > - * Description: Test maximum hardware supported stride length for given combination > - * of linear modifier with max hardware stride length, %arg[1]-bpp, > - * and %arg[2]-rotation > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 32, 64 > - * arg[2].values: 0, 180 > - */ > - > -/** > - * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d > - * Description: Test maximum hardware supported stride length for given combination > - * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > - * and %arg[3]-rotation > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4-tiled: TILE-4 modifier > - * @x-tiled: TILE-X modifier > - * @y-tiled: TILE-Y modifier > - * @yf-tiled: TILE-YF modifier > - * > - * arg[2].values: 32, 64 > - * arg[3].values: 0, 180 > - */ > - > -/** > - * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-hflip > - * Description: Test maximum hardware supported stride length for given combination > - * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > - * and %arg[3]-rotation with H-flip mode > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-%s > - * Description: Test maximum hardware supported stride length for given combination > - * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > - * and %arg[3]-rotation with %arg[4] mode > - * Driver requirement: i915, xe > - * Functionality: async_flips, big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4-tiled: TILE-4 modifier > - * @x-tiled: TILE-X modifier > - * @y-tiled: TILE-Y modifier > - * @yf-tiled: TILE-YF modifier > - * > - * arg[2].values: 32, 64 > - * arg[3].values: 0, 180 > - * > - * arg[4]: > - * > - * @async-flip: Async flip > - * @hflip-async-flip: Async & H-flip > - */ > static void test_scanout(data_t *data) > { > igt_output_t *output; > @@ -735,22 +795,6 @@ static void test_scanout(data_t *data) > igt_skip("unsupported configuration\n"); > } > > -/** > - * SUBTEST: %s-addfb-size-overflow > - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > - * with small bo. > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4-tiled: TILE-4 > - * @x-tiled: TILE-X > - * @y-tiled: TILE-Y > - * @yf-tiled: TILE-YF > - */ > static void > test_size_overflow(data_t *data) > { > @@ -795,22 +839,6 @@ test_size_overflow(data_t *data) > gem_close(data->drm_fd, bo); > } > > -/** > - * SUBTEST: %s-addfb-size-offset-overflow > - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > - * and offsets with small bo > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4-tiled: TILE-4 > - * @x-tiled: TILE-X > - * @y-tiled: TILE-Y > - * @yf-tiled: TILE-YF > - */ > static void > test_size_offset_overflow(data_t *data) > { > @@ -869,30 +897,6 @@ static int rmfb(int fd, uint32_t id) > return err; > } > > -/** > - * SUBTEST: linear-addfb > - * Description: Sanity check if addfb ioctl works correctly with Linear modifier > - * for given size and strides of fb > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: %s-addfb > - * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier > - * for given size and strides of fb > - * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4-tiled: TILE-4 > - * @x-tiled: TILE-X > - * @y-tiled: TILE-Y > - * @yf-tiled: TILE-YF > - */ > static void > test_addfb(data_t *data) > { > diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c > index 3b6dc530b..3f2091723 100644 > --- a/tests/intel/kms_big_joiner.c > +++ b/tests/intel/kms_big_joiner.c > @@ -29,8 +29,33 @@ > * Category: Display > * Description: Test big joiner > */ > + > #include "igt.h" > > +/** > + * SUBTEST: invalid-modeset > + * Description: Verify if the modeset on the adjoining pipe is rejected when > + * the pipe is active with a big joiner modeset > + * Driver requirement: i915, xe > + * Functionality: 2p1p > + * Mega feature: Bigjoiner > + * Test category: functionality test > + * > + * SUBTEST: basic > + * Description: Verify the basic modeset on big joiner mode on all pipes > + * Driver requirement: i915, xe > + * Functionality: 2p1p > + * Mega feature: Bigjoiner > + * Test category: functionality test > + * > + * SUBTEST: 2x-modeset > + * Description: Verify simultaneous modeset on 2 big joiner outputs > + * Driver requirement: i915, xe > + * Functionality: 2p1p > + * Mega feature: Bigjoiner > + * Test category: functionality test > + */ > + > IGT_TEST_DESCRIPTION("Test big joiner"); > > struct bigjoiner_output { > @@ -50,15 +75,6 @@ typedef struct { > > static int max_dotclock; > > -/** > - * SUBTEST: invalid-modeset > - * Description: Verify if the modeset on the adjoining pipe is rejected when > - * the pipe is active with a big joiner modeset > - * Driver requirement: i915, xe > - * Functionality: 2p1p > - * Mega feature: Bigjoiner > - * Test category: functionality test > - */ > static void test_invalid_modeset(data_t *data) > { > igt_output_t *output; > @@ -99,14 +115,6 @@ static void test_invalid_modeset(data_t *data) > igt_assert_lt(ret, 0); > } > > -/** > - * SUBTEST: basic > - * Description: Verify the basic modeset on big joiner mode on all pipes > - * Driver requirement: i915, xe > - * Functionality: 2p1p > - * Mega feature: Bigjoiner > - * Test category: functionality test > - */ > static void test_basic_modeset(data_t *data) > { > drmModeModeInfo *mode; > @@ -143,14 +151,6 @@ static void test_basic_modeset(data_t *data) > igt_display_commit2(display, COMMIT_ATOMIC); > } > > -/** > - * SUBTEST: 2x-modeset > - * Description: Verify simultaneous modeset on 2 big joiner outputs > - * Driver requirement: i915, xe > - * Functionality: 2p1p > - * Mega feature: Bigjoiner > - * Test category: functionality test > - */ > static void test_dual_display(data_t *data) > { > drmModeModeInfo *mode; > diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c > index fe450160f..c65d71b19 100644 > --- a/tests/intel/kms_busy.c > +++ b/tests/intel/kms_busy.c > @@ -26,6 +26,7 @@ > * Category: Display > * Description: Basic check of KMS ABI with busy framebuffers. > */ > + > #include <sys/poll.h> > #include <signal.h> > #include <time.h> > @@ -33,6 +34,61 @@ > #include "i915/gem.h" > #include "igt.h" > > +/** > + * SUBTEST: basic > + * Description: Test for basic check of KMS ABI with busy framebuffers. > + * Driver requirement: i915 > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: basic-hang > + * Description: Test for basic check of KMS ABI with busy framebuffers. > + * Driver requirement: i915 > + * Functionality: kms_core, hang > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > +/** > + * SUBTEST: extended-modeset-hang-%s > + * Description: Test for basic check of KMS ABI with busy framebuffers. > + * Driver requirement: i915 > + * Functionality: kms_core, hang > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @newfb: New framebuffer > + * @oldfb: Old framebuffer > + * @newfb-with-reset: New framebuffer with reset > + * @oldfb-with-reset: Old framebuffer with reset > + */ > + > +/** > + * SUBTEST: extended-pageflip-hang-%s > + * Description: Test for basic check of KMS ABI with busy framebuffers. > + * Driver requirement: i915 > + * Functionality: kms_core, hang > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @newfb: New framebuffer > + * @oldfb: Old framebuffer > + */ > + > +/** > + * SUBTEST: extended-pageflip-modeset-hang-oldfb > + * Description: Test for basic check of KMS ABI with busy framebuffers. > + * Driver requirement: i915 > + * Functionality: kms_core, hang > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > IGT_TEST_DESCRIPTION("Basic check of KMS ABI with busy framebuffers."); > > static bool all_pipes = false; > @@ -136,21 +192,6 @@ static void flip_to_fb(igt_display_t *dpy, int pipe, > put_ahnd(ahnd); > } > > -/** > - * SUBTEST: basic > - * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: basic-hang > - * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_flip(igt_display_t *dpy, int pipe, > igt_output_t *output, bool modeset) > { > @@ -243,35 +284,6 @@ static void test_atomic_commit_hang(igt_display_t *dpy, igt_plane_t *primary, > put_ahnd(ahnd); > } > > -/** > - * SUBTEST: extended-modeset-hang-%s > - * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @newfb: New framebuffer > - * @oldfb: Old framebuffer > - * @newfb-with-reset: New framebuffer with reset > - * @oldfb-with-reset: Old framebuffer with reset > - */ > - > -/** > - * SUBTEST: extended-pageflip-hang-%s > - * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @newfb: New framebuffer > - * @oldfb: Old framebuffer > - */ > static void test_hang(igt_display_t *dpy, > enum pipe pipe, igt_output_t *output, > bool modeset, bool hang_newfb) > @@ -319,14 +331,6 @@ static void test_hang(igt_display_t *dpy, > igt_remove_fb(dpy->drm_fd, &fb[0]); > } > > -/** > - * SUBTEST: extended-pageflip-modeset-hang-oldfb > - * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void > test_pageflip_modeset_hang(igt_display_t *dpy, > igt_output_t *output, enum pipe pipe) > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c > index f21a53082..d1eb735fa 100644 > --- a/tests/intel/kms_ccs.c > +++ b/tests/intel/kms_ccs.c > @@ -29,6 +29,7 @@ > * complemented by a color control surface (CCS) that the display > * uses to interpret the compressed data. > */ > + > #include "igt.h" > > #include "i915/gem_create.h" > diff --git a/tests/intel/kms_cdclk.c b/tests/intel/kms_cdclk.c > index 74bb254b9..97cb615c5 100644 > --- a/tests/intel/kms_cdclk.c > +++ b/tests/intel/kms_cdclk.c > @@ -29,8 +29,33 @@ > * Category: Display > * Description: Test cdclk features : crawling and squashing > */ > + > #include "igt.h" > > +/** > + * SUBTEST: mode-transition-all-outputs > + * Description: Mode transition (low to high) test to validate cdclk frequency > + * change by simultaneous modesets on all pipes with valid outputs. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: mode-transition > + * Description: Mode transition (low to high) test to validate cdclk frequency change. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-scaling > + * Description: Plane scaling test to validate cdclk frequency change. > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > IGT_TEST_DESCRIPTION("Test cdclk features : crawling and squashing"); > > #define HDISPLAY_4K 3840 > @@ -253,15 +278,6 @@ static void test_mode_transition(data_t *data, enum pipe pipe, igt_output_t *out > igt_remove_fb(display->drm_fd, &fb); > } > > -/** > - * SUBTEST: mode-transition-all-outputs > - * Description: Mode transition (low to high) test to validate cdclk frequency > - * change by simultaneous modesets on all pipes with valid outputs. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_mode_transition_on_all_outputs(data_t *data) > { > igt_display_t *display = &data->display; > @@ -358,21 +374,6 @@ static void test_mode_transition_on_all_outputs(data_t *data) > igt_remove_fb(data->drm_fd, &fb); > } > > -/** > - * SUBTEST: mode-transition > - * Description: Mode transition (low to high) test to validate cdclk frequency change. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-scaling > - * Description: Plane scaling test to validate cdclk frequency change. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void run_cdclk_test(data_t *data, uint32_t flags) > { > igt_display_t *display = &data->display; > diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c > index a6424dd8f..3318f8128 100644 > --- a/tests/intel/kms_dirtyfb.c > +++ b/tests/intel/kms_dirtyfb.c > @@ -3,6 +3,16 @@ > * Copyright © 2023 Intel Corporation > */ > > +/** > + * TEST: kms dirtyfb > + * Category: Display > + * Description: Test DIRTYFB ioctl functionality. > + * Driver requirement: i915, xe > + * Functionality: dirtyfb > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > #include <sys/types.h> > > #include "igt.h" > @@ -13,18 +23,7 @@ > > #include "xe/xe_query.h" > > -IGT_TEST_DESCRIPTION("Test the DIRTYFB ioctl is working properly with " > - "its related features: FBC, PSR and DRRS"); > - > /** > - * TEST: kms dirtyfb > - * Category: Display > - * Description: Test DIRTYFB ioctl functionality. > - * Driver requirement: i915, xe > - * Functionality: dirtyfb > - * Mega feature: General Display Features > - * Test category: functionality test > - * > * SUBTEST: default-dirtyfb-ioctl > * Description: Test DIRTYFB ioctl is working properly using GPU > * frontbuffer rendering with features like FBC, PSR > @@ -42,6 +41,9 @@ IGT_TEST_DESCRIPTION("Test the DIRTYFB ioctl is working properly with " > * @psr: psr1 > */ > > +IGT_TEST_DESCRIPTION("Test the DIRTYFB ioctl is working properly with " > + "its related features: FBC, PSR and DRRS"); > + > #ifndef PAGE_ALIGN > #ifndef PAGE_SIZE > #define PAGE_SIZE 4096 > diff --git a/tests/intel/kms_draw_crc.c b/tests/intel/kms_draw_crc.c > index 4bde8fa59..7cd4c3ff1 100644 > --- a/tests/intel/kms_draw_crc.c > +++ b/tests/intel/kms_draw_crc.c > @@ -27,9 +27,51 @@ > * Category: Display > * Description: Tests whether the igt_draw library actually works. > */ > + > #include "i915/gem.h" > #include "igt.h" > > +/** > + * SUBTEST: draw-method-%s > + * Description: Verify that igt draw library works for the %arg[1] method with > + * different modifiers & DRM formats. > + * Driver requirement: i915, xe > + * Functionality: kms_core, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @blt: Blitter > + * @mmap-wc: MMAP-WC > + * @render: Render > + */ > + > +/** > + * SUBTEST: draw-method-%s > + * Description: Verify that igt draw library works for the %arg[1] method with > + * different modifiers & DRM formats. > + * Driver requirement: i915 > + * Functionality: kms_core, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @mmap-cpu: MMAP-CPU > + * @mmap-gtt: MMAP-GTT > + * @pwrite: PWRITE > + */ > + > +/** > + * SUBTEST: fill-fb > + * Description: This subtest verifies CRC after filling fb with x-tiling or none. > + * Driver requirement: i915, xe > + * Functionality: kms_core, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > #define MAX_CONNECTORS 32 > > int drm_fd; > @@ -143,37 +185,6 @@ static void get_method_crc(enum igt_draw_method method, uint32_t drm_format, > igt_remove_fb(drm_fd, &fb); > } > > -/** > - * SUBTEST: draw-method-%s > - * Description: Verify that igt draw library works for the %arg[1] method with > - * different modifiers & DRM formats. > - * Driver requirement: i915, xe > - * Functionality: kms_core, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @blt: Blitter > - * @mmap-wc: MMAP-WC > - * @render: Render > - */ > - > -/** > - * SUBTEST: draw-method-%s > - * Description: Verify that igt draw library works for the %arg[1] method with > - * different modifiers & DRM formats. > - * Driver requirement: i915 > - * Functionality: kms_core, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @mmap-cpu: MMAP-CPU > - * @mmap-gtt: MMAP-GTT > - * @pwrite: PWRITE > - */ > static void draw_method_subtest(enum igt_draw_method method, > uint32_t format_index, uint64_t modifier) > { > @@ -213,14 +224,6 @@ static void get_fill_crc(uint64_t modifier, igt_crc_t *crc) > igt_remove_fb(drm_fd, &fb); > } > > -/** > - * SUBTEST: fill-fb > - * Description: This subtest verifies CRC after filling fb with x-tiling or none. > - * Driver requirement: i915, xe > - * Functionality: kms_core, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void fill_fb_subtest(void) > { > int rc; > diff --git a/tests/intel/kms_dsc.c b/tests/intel/kms_dsc.c > index 183944ef7..0df3613b3 100644 > --- a/tests/intel/kms_dsc.c > +++ b/tests/intel/kms_dsc.c > @@ -35,6 +35,7 @@ > * Category: Display > * Description: Test to validate display stream compression > */ > + > #include "kms_dsc_helper.h" > > /** > diff --git a/tests/intel/kms_fb_coherency.c b/tests/intel/kms_fb_coherency.c > index cd6b5da4b..c05bd0508 100644 > --- a/tests/intel/kms_fb_coherency.c > +++ b/tests/intel/kms_fb_coherency.c > @@ -18,6 +18,17 @@ > #include "igt.h" > #include "xe/xe_ioctl.h" > > +/** > + * SUBTEST: memset-crc > + * Description: Use display controller CRC hardware to validate (non)coherency > + * of memset operations on future scanout buffer objects > + * mmapped with different mmap methods and different caching modes. > + * Mega feature: General Display Features > + * Functionality: kms_core > + * Driver requirement: i915, xe > + * Test category: functionality test > + */ > + > typedef struct { > int drm_fd; > igt_display_t display; > @@ -243,16 +254,6 @@ igt_main > select_valid_pipe_output_combo(&data); > } > > - /** > - * SUBTEST: memset-crc > - * Description: Use display controller CRC hardware to validate (non)coherency > - * of memset operations on future scanout buffer objects > - * mmapped with different mmap methods and different caching modes. > - * Mega feature: General Display Features > - * Functionality: kms_core > - * Driver requirement: i915, xe > - * Test category: functionality test > - */ > igt_subtest_with_dynamic("memset-crc") { > if (igt_draw_supports_method(data.drm_fd, IGT_DRAW_MMAP_GTT)) { > igt_dynamic("mmap-gtt") > diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c > index 4078309d9..d437d70f6 100644 > --- a/tests/intel/kms_fbcon_fbt.c > +++ b/tests/intel/kms_fbcon_fbt.c > @@ -24,6 +24,13 @@ > * > */ > > +/** > + * TEST: kms fbcon fbt > + * Category: Display > + * Description: Test the relationship between fbcon and the frontbuffer tracking > + * infrastructure. > + */ > + > #include "igt.h" > #include "igt_device.h" > #include "igt_psr.h" > @@ -33,11 +40,6 @@ > #include <fcntl.h> > > /** > - * TEST: kms fbcon fbt > - * Category: Display > - * Description: Test the relationship between fbcon and the frontbuffer tracking > - * infrastructure. > - * > * SUBTEST: fbc > * Description: Test the relationship between fbcon and the frontbuffer tracking > * infrastructure with fbc enabled. > diff --git a/tests/intel/kms_fence_pin_leak.c b/tests/intel/kms_fence_pin_leak.c > index 47808800f..24e7b011c 100644 > --- a/tests/intel/kms_fence_pin_leak.c > +++ b/tests/intel/kms_fence_pin_leak.c > @@ -22,6 +22,12 @@ > * > */ > > +/** > + * TEST: kms fence pin leak > + * Category: Display > + * Description: Exercises full ppgtt fence pin_count leak in the kernel. > + */ > + > #include <errno.h> > #include <limits.h> > #include <stdbool.h> > @@ -30,11 +36,8 @@ > > #include "i915/gem.h" > #include "igt.h" > + > /** > - * TEST: kms fence pin leak > - * Category: Display > - * Description: Exercises full ppgtt fence pin_count leak in the kernel. > - * > * SUBTEST: > * Description: Along with the modeset, validate fence pin_count leakage. > * Driver requirement: i915 > diff --git a/tests/intel/kms_flip_scaled_crc.c b/tests/intel/kms_flip_scaled_crc.c > index d3489c478..8f37299ea 100644 > --- a/tests/intel/kms_flip_scaled_crc.c > +++ b/tests/intel/kms_flip_scaled_crc.c > @@ -27,6 +27,7 @@ > * Category: Display > * Description: Test flipping between scaled/nonscaled framebuffers > */ > + > #include "igt.h" > > /** > diff --git a/tests/intel/kms_flip_tiling.c b/tests/intel/kms_flip_tiling.c > index a6c6514a6..3bf02564e 100644 > --- a/tests/intel/kms_flip_tiling.c > +++ b/tests/intel/kms_flip_tiling.c > @@ -24,17 +24,20 @@ > * Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> > */ > > +/** > + * TEST: kms flip tiling > + * Category: Display > + * Description: Test page flips and tiling scenarios > + */ > + > #include <errno.h> > #include <stdbool.h> > #include <stdio.h> > #include <string.h> > > #include "igt.h" > + > /** > - * TEST: kms flip tiling > - * Category: Display > - * Description: Test page flips and tiling scenarios > - * > * SUBTEST: flip-change-tiling > * Description: Check pageflip between modifiers > * Driver requirement: i915, xe > diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c > index 213069947..085adc5b1 100644 > --- a/tests/intel/kms_frontbuffer_tracking.c > +++ b/tests/intel/kms_frontbuffer_tracking.c > @@ -29,6 +29,7 @@ > * Category: Display > * Description: Test the Kernel's frontbuffer tracking mechanism and its related features: FBC, PSR and DRRS > */ > + > #include <sys/types.h> > #include <sys/stat.h> > #include <fcntl.h> > @@ -45,3785 +46,4170 @@ > #include "igt_psr.h" > > /** > + * SUBTEST: basic > + * Description: Do some basic operations regardless of which features are enabled > + * Driver requirement: i915, xe > + * Functionality: fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > * SUBTEST: plane-fbc-rte > * Description: Sanity test to enable FBC on a plane. > * Driver requirement: i915, xe > * Functionality: fbc > * Mega feature: General Display Features > * Test category: functionality test > + * > + * SUBTEST: drrs-%dp-rte > + * Description: Sanity test to enable DRRS with %arg[1] panels. > + * Driver requirement: i915, xe > + * Functionality: fbt, drrs > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-rte > + * Description: Sanity test to enable FBC with %arg[1] panels. > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-rte > + * Description: Sanity test to enable PSR with %arg[1] panels. > + * Driver requirement: i915, xe > + * Functionality: fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-rte > + * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-rte > + * Description: Sanity test to enable FBC & PSR with %arg[1] panels. > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-rte > + * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. > + * Driver requirement: i915, xe > + * Functionality: fbt, drrs, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-rte > + * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, drrs, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > */ > > -#define TIME SLOW_QUICK(1000, 10000) > - > -IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " > - "its related features: FBC, PSR and DRRS"); > - > -/* > - * One of the aspects of this test is that, for every subtest, we try different > - * combinations of the parameters defined by the struct below. Because of this, > - * a single addition of a new parameter or subtest function can lead to hundreds > - * of new subtests. > +/** > + * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > * > - * In order to reduce the number combinations we cut the cases that don't make > - * sense, such as writing on the secondary screen when there is only a single > - * pipe, or flipping when the target is the offscreen buffer. We also hide some > - * combinations that are somewhat redundant and don't add much value to the > - * test. For example, since we already do the offscreen testing with a single > - * pipe enabled, there's no much value in doing it again with dual pipes. If you > - * still want to try these redundant tests, you need to use the --show-hidden > - * option. > + * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > * > - * The most important hidden thing is the FEATURE_NONE set of tests. Whenever > - * you get a failure on any test, it is important to check whether the same test > - * fails with FEATURE_NONE - replace the feature name for "nop". If the nop test > - * also fails, then it's likely the problem will be on the IGT side instead of > - * the Kernel side. We don't expose this set of tests by default because (i) > - * they take a long time to test; and (ii) if the feature tests work, then it's > - * very likely that the nop tests will also work. > + * SUBTEST: psr-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @indfb: Individual fb > + * @shrfb: Shared fb > + * > + * arg[2]: > + * > + * @blt: Blitter > + * @mmap-wc: MMAP-WC > + * @render: Render > */ > -struct test_mode { > - /* Are we going to enable just one monitor, or are we going to setup a > - * dual screen environment for the test? */ > - enum { > - PIPE_SINGLE = 0, > - PIPE_DUAL, > - PIPE_COUNT, > - } pipes; > - > - /* The primary screen is the one that's supposed to have the "feature" > - * enabled on, but we have the option to draw on the secondary screen or > - * on some offscreen buffer. We also only theck the CRC of the primary > - * screen. */ > - enum { > - SCREEN_PRIM = 0, > - SCREEN_SCND, > - SCREEN_OFFSCREEN, > - SCREEN_COUNT, > - } screen; > - > - /* When we draw, we can draw directly on the primary plane, on the > - * cursor or on the sprite plane. */ > - enum { > - PLANE_PRI = 0, > - PLANE_CUR, > - PLANE_SPR, > - PLANE_COUNT, > - } plane; > - > - /* We can organize the screens in a way that each screen has its own > - * framebuffer, or in a way that all screens point to the same > - * framebuffer, but on different places. This includes the offscreen > - * screen. */ > - enum { > - FBS_INDIVIDUAL = 0, > - FBS_SHARED, > - FBS_COUNT, > - } fbs; > > - /* Which features are we going to test now? This is a mask! > - * FEATURE_DEFAULT is a special value which instruct the test to just > - * keep what's already enabled by default in the Kernel. */ > - enum { > - FEATURE_NONE = 0, > - FEATURE_FBC = 1, > - FEATURE_PSR = 2, > - FEATURE_DRRS = 4, > - FEATURE_COUNT = 8, > - FEATURE_DEFAULT = 8, > - } feature; > +/** > + * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @indfb: Individual fb > + * @shrfb: Shared fb > + * > + * arg[2]: > + * > + * @mmap-cpu: MMAP-CPU > + * @mmap-gtt: MMAP-GTT > + * @pwrite: PWRITE > + */ > > - /* Possible pixel formats. We just use FORMAT_DEFAULT for most tests and > - * only test a few things on the other formats. */ > - enum pixel_format { > - FORMAT_RGB888 = 0, > - FORMAT_RGB565, > - FORMAT_RGB101010, > - FORMAT_COUNT, > - FORMAT_DEFAULT = FORMAT_RGB888, > - } format; > - > - /* There are multiple APIs where we can do the equivalent of a page flip > - * and they exercise slightly different codepaths inside the Kernel. */ > - enum flip_type { > - FLIP_PAGEFLIP, > - FLIP_MODESET, > - FLIP_PLANES, > - FLIP_COUNT, > - } flip; > - > - enum tiling_type { > - TILING_LINEAR = 0, > - TILING_X, > - TILING_Y, > - TILING_4, > - TILING_COUNT, > - TILING_DEFAULT = TILING_X, > - } tiling; > - > - enum igt_draw_method method; > -}; > - > -enum color { > - COLOR_RED, > - COLOR_GREEN, > - COLOR_BLUE, > - COLOR_MAGENTA, > - COLOR_CYAN, > - COLOR_SCND_BG, > - COLOR_PRIM_BG = COLOR_BLUE, > - COLOR_OFFSCREEN_BG = COLOR_SCND_BG, > -}; > - > -struct rect { > - int x; > - int y; > - int w; > - int h; > - uint32_t color; > -}; > - > -struct { > - int fd; > - int debugfs; > - igt_display_t display; > - > - struct buf_ops *bops; > -} drm; > - > -struct { > - bool can_test; > - > - bool supports_last_action; > - > - struct timespec last_action; > -} fbc = { > - .can_test = false, > - .supports_last_action = false, > -}; > - > -struct { > - bool can_test; > -} psr = { > - .can_test = false, > -}; > - > -#define MAX_DRRS_STATUS_BUF_LEN 256 > - > -struct { > - bool can_test; > -} drrs = { > - .can_test = false, > -}; > - > -igt_pipe_crc_t *pipe_crc; > -igt_crc_t *wanted_crc; > -struct { > - bool initialized; > - igt_crc_t crc; > -} blue_crcs[FORMAT_COUNT]; > - > -/* The goal of this structure is to easily allow us to deal with cases where we > - * have a big framebuffer and the CRTC is just displaying a subregion of this > - * big FB. */ > -struct fb_region { > - igt_plane_t *plane; > - struct igt_fb *fb; > - int x; > - int y; > - int w; > - int h; > -}; > - > -struct draw_pattern_info { > - bool frames_stack; > - int n_rects; > - struct rect (*get_rect)(struct fb_region *fb, int r); > - > - bool initialized[FORMAT_COUNT]; > - igt_crc_t *crcs[FORMAT_COUNT]; > -}; > - > -/* Draw big rectangles on the screen. */ > -struct draw_pattern_info pattern1; > -/* 64x64 rectangles at x:0,y:0, just so we can draw on the cursor and sprite. */ > -struct draw_pattern_info pattern2; > -/* 64x64 rectangles at different positions, same color, for the move test. */ > -struct draw_pattern_info pattern3; > -/* Just a fullscreen green square. */ > -struct draw_pattern_info pattern4; > - > -/* Command line parameters. */ > -struct { > - bool check_status; > - bool check_crc; > - bool fbc_check_compression; > - bool fbc_check_last_action; > - bool no_edp; > - bool small_modes; > - bool show_hidden; > - int step; > - int only_pipes; > - int shared_fb_x_offset; > - int shared_fb_y_offset; > - enum tiling_type tiling; > -} opt = { > - .check_status = true, > - .check_crc = true, > - .fbc_check_compression = true, > - .fbc_check_last_action = true, > - .no_edp = false, > - .small_modes = false, > - .show_hidden= false, > - .step = 0, > - .only_pipes = PIPE_COUNT, > - .shared_fb_x_offset = 248, > - .shared_fb_y_offset = 500, > - .tiling = TILING_DEFAULT, > -}; > - > -struct modeset_params { > - enum pipe pipe; > - igt_output_t *output; > - drmModeModeInfo mode; > - > - struct fb_region primary; > - struct fb_region cursor; > - struct fb_region sprite; > -}; > - > -struct modeset_params prim_mode_params; > -struct modeset_params scnd_mode_params; > - > -struct fb_region offscreen_fb; > -struct screen_fbs { > - bool initialized; > - > - struct igt_fb prim_pri; > - struct igt_fb prim_cur; > - struct igt_fb prim_spr; > - > - struct igt_fb scnd_pri; > - struct igt_fb scnd_cur; > - struct igt_fb scnd_spr; > - > - struct igt_fb offscreen; > - struct igt_fb big; > -} fbs[FORMAT_COUNT]; > - > -struct { > - pthread_t thread; > - bool stop; > - > - uint32_t handle; > - uint32_t size; > - uint32_t stride; > - int width; > - int height; > - uint32_t color; > - int bpp; > - uint32_t tiling; > -} busy_thread = { > - .stop = true, > -}; > - > -static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output) > -{ > - drmModeConnector *c = output->config.connector; > - const drmModeModeInfo *smallest = NULL; > - int i; > - > - if (c->connector_type == DRM_MODE_CONNECTOR_eDP) > - return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); > - > - for (i = 0; i < c->count_modes; i++) { > - const drmModeModeInfo *mode = &c->modes[i]; > - > - if (!smallest || > - mode->hdisplay * mode->vdisplay < > - smallest->hdisplay * smallest->vdisplay) > - smallest = mode; > - } > - > - if (smallest) > - return igt_memdup(smallest, sizeof(*smallest)); > - else > - return igt_std_1024_mode_get(60); > -} > - > -static drmModeModeInfo *connector_get_mode(igt_output_t *output) > -{ > - /* On HSW the CRC WA is so awful that it makes you think everything is > - * bugged. */ > - if (IS_HASWELL(intel_get_drm_devid(drm.fd)) && > - output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP) > - return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); > - > - if (opt.small_modes) > - return get_connector_smallest_mode(output); > - else > - return igt_memdup(&output->config.default_mode, > - sizeof(output->config.default_mode)); > -} > - > -static void init_mode_params(struct modeset_params *params, > - igt_output_t *output, enum pipe pipe) > -{ > - drmModeModeInfo *mode; > - > - igt_output_override_mode(output, NULL); > - mode = connector_get_mode(output); > - > - params->pipe = pipe; > - params->output = output; > - params->mode = *mode; > - > - params->primary.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_PRIMARY); > - params->primary.fb = NULL; > - params->primary.x = 0; > - params->primary.y = 0; > - params->primary.w = mode->hdisplay; > - params->primary.h = mode->vdisplay; > - > - params->cursor.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_CURSOR); > - params->cursor.fb = NULL; > - params->cursor.x = 0; > - params->cursor.y = 0; > - params->cursor.w = 64; > - params->cursor.h = 64; > - > - params->sprite.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_OVERLAY); > - igt_require(params->sprite.plane); > - params->sprite.fb = NULL; > - params->sprite.x = 0; > - params->sprite.y = 0; > - params->sprite.w = 64; > - params->sprite.h = 64; > - > - free(mode); > -} > - > -static bool find_connector(bool edp_only, bool pipe_a, > - igt_output_t *forbidden_output, > - enum pipe forbidden_pipe, > - igt_output_t **ret_output, > - enum pipe *ret_pipe) > -{ > - igt_output_t *output; > - enum pipe pipe; > - > - for_each_pipe_with_valid_output(&drm.display, pipe, output) { > - drmModeConnectorPtr c = output->config.connector; > - > - if (edp_only && c->connector_type != DRM_MODE_CONNECTOR_eDP) > - continue; > - > - if (pipe_a && pipe != PIPE_A) > - continue; > - > - if (output == forbidden_output || pipe == forbidden_pipe) { > - igt_output_set_pipe(output, pipe); > - igt_output_override_mode(output, connector_get_mode(output)); > - > - continue; > - } > - > - if (c->connector_type == DRM_MODE_CONNECTOR_eDP && opt.no_edp) > - continue; > - > - igt_output_set_pipe(output, pipe); > - igt_output_override_mode(output, connector_get_mode(output)); > - if (intel_pipe_output_combo_valid(&drm.display)) { > - *ret_output = output; > - *ret_pipe = pipe; > - return true; > - } > - } > - > - return false; > -} > - > -static bool init_modeset_cached_params(void) > -{ > - igt_output_t *prim_output = NULL, *scnd_output = NULL; > - enum pipe prim_pipe, scnd_pipe; > - > - /* > - * We have this problem where PSR is only present on eDP monitors and > - * FBC is only present on pipe A for some platforms. So we search first > - * for the ideal case of eDP supporting pipe A, and try the less optimal > - * configs later, sacrificing one of the features. > - * TODO: refactor the code in a way that allows us to have different > - * sets of prim/scnd structs for different features. > - */ > - find_connector(true, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); > - if (!prim_output) > - find_connector(true, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); > - if (!prim_output) > - find_connector(false, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); > - if (!prim_output) > - find_connector(false, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); > - > - if (!prim_output) > - return false; > - > - find_connector(false, false, prim_output, prim_pipe, > - &scnd_output, &scnd_pipe); > - > - init_mode_params(&prim_mode_params, prim_output, prim_pipe); > - > - if (!scnd_output) { > - scnd_mode_params.pipe = PIPE_NONE; > - scnd_mode_params.output = NULL; > - return true; > - } > - > - init_mode_params(&scnd_mode_params, scnd_output, scnd_pipe); > - return true; > -} > - > -static uint64_t tiling_to_modifier(enum tiling_type tiling) > -{ > - switch (tiling) { > - case TILING_LINEAR: > - return DRM_FORMAT_MOD_LINEAR; > - case TILING_X: > - return I915_FORMAT_MOD_X_TILED; > - case TILING_Y: > - return I915_FORMAT_MOD_Y_TILED; > - case TILING_4: > - return I915_FORMAT_MOD_4_TILED; > - default: > - igt_assert(false); > - } > -} > - > -static void create_fb(enum pixel_format pformat, int width, int height, > - enum tiling_type tiling, int plane, struct igt_fb *fb) > -{ > - uint32_t format; > - uint64_t size, modifier; > - unsigned int stride; > - > - switch (pformat) { > - case FORMAT_RGB888: > - if (plane == PLANE_CUR) > - format = DRM_FORMAT_ARGB8888; > - else > - format = DRM_FORMAT_XRGB8888; > - break; > - case FORMAT_RGB565: > - /* Only the primary plane supports 16bpp! */ > - if (plane == PLANE_PRI) > - format = DRM_FORMAT_RGB565; > - else if (plane == PLANE_CUR) > - format = DRM_FORMAT_ARGB8888; > - else > - format = DRM_FORMAT_XRGB8888; > - break; > - case FORMAT_RGB101010: > - if (plane == PLANE_PRI) > - format = DRM_FORMAT_XRGB2101010; > - else if (plane == PLANE_CUR) > - format = DRM_FORMAT_ARGB8888; > - else > - format = DRM_FORMAT_XRGB8888; > - break; > - default: > - igt_assert(false); > - } > - > - modifier = tiling_to_modifier(tiling); > - > - igt_warn_on(plane == PLANE_CUR && tiling != TILING_LINEAR); > - > - igt_calc_fb_size(drm.fd, width, height, format, modifier, &size, > - &stride); > - > - igt_create_fb_with_bo_size(drm.fd, width, height, format, modifier, > - IGT_COLOR_YCBCR_BT709, > - IGT_COLOR_YCBCR_LIMITED_RANGE, > - fb, size, stride); > -} > - > -static uint32_t pick_color(struct igt_fb *fb, enum color ecolor) > -{ > - uint32_t color, r, g, b, b2, a; > - bool alpha = false; > - > - switch (fb->drm_format) { > - case DRM_FORMAT_RGB565: > - a = 0x0; > - r = 0x1F << 11; > - g = 0x3F << 5; > - b = 0x1F; > - b2 = 0x10; > - break; > - case DRM_FORMAT_ARGB8888: > - alpha = true; > - case DRM_FORMAT_XRGB8888: > - a = 0xFF << 24; > - r = 0xFF << 16; > - g = 0xFF << 8; > - b = 0xFF; > - b2 = 0x80; > - break; > - case DRM_FORMAT_ARGB2101010: > - alpha = true; > - case DRM_FORMAT_XRGB2101010: > - a = 0x3 << 30; > - r = 0x3FF << 20; > - g = 0x3FF << 10; > - b = 0x3FF; > - b2 = 0x200; > - break; > - default: > - igt_assert(false); > - } > - > - switch (ecolor) { > - case COLOR_RED: > - color = r; > - break; > - case COLOR_GREEN: > - color = g; > - break; > - case COLOR_BLUE: > - color = b; > - break; > - case COLOR_MAGENTA: > - color = r | b; > - break; > - case COLOR_CYAN: > - color = g | b; > - break; > - case COLOR_SCND_BG: > - color = b2; > - break; > - default: > - igt_assert(false); > - } > - > - if (alpha) > - color |= a; > +/** > + * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @cur: Cursor plane > + * @pri: Primary plane > + * @spr: Sprite plane > + * > + * arg[3]: > + * > + * @mmap-cpu: MMAP-CPU > + * @mmap-gtt: MMAP-GTT > + * @pwrite: PWRITE > + */ > > - return color; > -} > +/** > + * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @cur: Cursor plane > + * @pri: Primary plane > + * @spr: Sprite plane > + * > + * arg[3]: > + * > + * @blt: Blitter > + * @mmap-wc: MMAP-WC > + * @render: Render > + */ > > -static void fill_fb(struct igt_fb *fb, enum color ecolor) > -{ > - igt_draw_fill_fb(drm.fd, fb, pick_color(fb, ecolor)); > -} > +/** > + * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @blt: Blitter > + * @mmap-wc: MMAP-WC > + * @render: Render > + */ > > -/* > - * This is how the prim, scnd and offscreen FBs should be positioned inside the > - * shared FB. The prim buffer starts at the X and Y offsets defined by > - * opt.shared_fb_{x,y}_offset, then scnd starts at the same X pixel offset, > - * right after prim ends on the Y axis, then the offscreen fb starts after scnd > - * ends. Just like the picture: > +/** > + * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > * > - * +-------------------------+ > - * | shared fb | > - * | +------------------+ | > - * | | prim | | > - * | | | | > - * | | | | > - * | | | | > - * | +------------------+--+ > - * | | scnd | > - * | | | > - * | | | > - * | +---------------+-----+ > - * | | offscreen | | > - * | | | | > - * | | | | > - * +---+---------------+-----+ > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > * > - * We do it vertically instead of the more common horizontal case in order to > - * avoid super huge strides not supported by FBC. > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @mmap-cpu: MMAP-CPU > + * @mmap-gtt: MMAP-GTT > + * @pwrite: PWRITE > */ > -static void create_shared_fb(enum pixel_format format, enum tiling_type tiling) > -{ > - int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h; > - struct screen_fbs *s = &fbs[format]; > - > - prim_w = prim_mode_params.mode.hdisplay; > - prim_h = prim_mode_params.mode.vdisplay; > - > - if (scnd_mode_params.output) { > - scnd_w = scnd_mode_params.mode.hdisplay; > - scnd_h = scnd_mode_params.mode.vdisplay; > - } else { > - scnd_w = 0; > - scnd_h = 0; > - } > - offs_w = offscreen_fb.w; > - offs_h = offscreen_fb.h; > - > - big_w = prim_w; > - if (scnd_w > big_w) > - big_w = scnd_w; > - if (offs_w > big_w) > - big_w = offs_w; > - big_w += opt.shared_fb_x_offset; > - > - big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset; > - > - create_fb(format, big_w, big_h, tiling, PLANE_PRI, &s->big); > -} > - > -static void destroy_fbs(enum pixel_format format) > -{ > - struct screen_fbs *s = &fbs[format]; > - > - if (!s->initialized) > - return; > - > - if (scnd_mode_params.output) { > - igt_remove_fb(drm.fd, &s->scnd_pri); > - igt_remove_fb(drm.fd, &s->scnd_cur); > - igt_remove_fb(drm.fd, &s->scnd_spr); > - } > - igt_remove_fb(drm.fd, &s->prim_pri); > - igt_remove_fb(drm.fd, &s->prim_cur); > - igt_remove_fb(drm.fd, &s->prim_spr); > - igt_remove_fb(drm.fd, &s->offscreen); > - igt_remove_fb(drm.fd, &s->big); > -} > - > -static void create_fbs(enum pixel_format format, enum tiling_type tiling) > -{ > - struct screen_fbs *s = &fbs[format]; > - > - if (s->initialized) > - destroy_fbs(format); > - > - s->initialized = true; > - > - create_fb(format, prim_mode_params.mode.hdisplay, > - prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, > - &s->prim_pri); > - create_fb(format, prim_mode_params.cursor.w, > - prim_mode_params.cursor.h, DRM_FORMAT_MOD_LINEAR, > - PLANE_CUR, &s->prim_cur); > - create_fb(format, prim_mode_params.sprite.w, > - prim_mode_params.sprite.h, tiling, PLANE_SPR, &s->prim_spr); > - > - create_fb(format, offscreen_fb.w, offscreen_fb.h, tiling, PLANE_PRI, > - &s->offscreen); > - > - create_shared_fb(format, tiling); > - > - if (!scnd_mode_params.output) > - return; > - > - create_fb(format, scnd_mode_params.mode.hdisplay, > - scnd_mode_params.mode.vdisplay, tiling, PLANE_PRI, > - &s->scnd_pri); > - create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h, > - DRM_FORMAT_MOD_LINEAR, PLANE_CUR, &s->scnd_cur); > - create_fb(format, scnd_mode_params.sprite.w, scnd_mode_params.sprite.h, > - tiling, PLANE_SPR, &s->scnd_spr); > -} > - > -static void __set_prim_plane_for_params(struct modeset_params *params) > -{ > - igt_plane_set_fb(params->primary.plane, params->primary.fb); > - igt_plane_set_position(params->primary.plane, 0, 0); > - igt_plane_set_size(params->primary.plane, params->mode.hdisplay, params->mode.vdisplay); > - igt_fb_set_position(params->primary.fb, params->primary.plane, > - params->primary.x, params->primary.y); > - igt_fb_set_size(params->primary.fb, params->primary.plane, > - params->mode.hdisplay, params->mode.vdisplay); > -} > - > -static void __set_mode_for_params(struct modeset_params *params) > -{ > - igt_output_override_mode(params->output, ¶ms->mode); > - igt_output_set_pipe(params->output, params->pipe); > - > - __set_prim_plane_for_params(params); > -} > - > -static void set_mode_for_params(struct modeset_params *params) > -{ > - __set_mode_for_params(params); > - igt_display_commit(&drm.display); > -} > > -static void __debugfs_read_crtc(const char *param, char *buf, int len) > -{ > - int dir; > - enum pipe pipe; > +/** > + * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @cur: Cursor plane > + * @pri: Primary plane > + * @spr: Sprite plane > + * > + * arg[2]: > + * > + * @blt: Blitter > + * @mmap-wc: MMAP-WC > + * @render: Render > + */ > > - pipe = prim_mode_params.pipe; > - dir = igt_debugfs_pipe_dir(drm.fd, pipe, O_DIRECTORY); > - igt_require_fd(dir); > - igt_debugfs_simple_read(dir, param, buf, len); > - close(dir); > -} > +/** > + * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @cur: Cursor plane > + * @pri: Primary plane > + * @spr: Sprite plane > + * > + * arg[2]: > + * > + * @mmap-cpu: MMAP-CPU > + * @mmap-gtt: MMAP-GTT > + * @pwrite: PWRITE > + */ > > -#define debugfs_read_crtc(p, arr) __debugfs_read_crtc(p, arr, sizeof(arr)) > -#define debugfs_write_crtc(p, arr) __debugfs_write_crtc(p, arr, sizeof(arr)) > -#define debugfs_read_connector(p, arr) __debugfs_read_connector(p, arr, sizeof(arr)) > +/** > + * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @blt: Blitter > + * @mmap-wc: MMAP-WC > + * @render: Render > + */ > > -static bool is_drrs_high(void) > -{ > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > +/** > + * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s > + * Description: Draw a set of rectangles on the screen using the provided method > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @mmap-cpu: MMAP-CPU > + * @mmap-gtt: MMAP-GTT > + * @pwrite: PWRITE > + */ > > - debugfs_read_crtc("i915_drrs_status", buf); > - return strstr(buf, "DRRS refresh rate: high"); > -} > +/** > + * SUBTEST: drrs-%dp-pri-indfb-multidraw > + * Description: Draw a set of rectangles on the screen using alternated drawing methods > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-pri-indfb-multidraw > + * Description: Draw a set of rectangles on the screen using alternated drawing methods > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-pri-indfb-multidraw > + * Description: Draw a set of rectangles on the screen using alternated drawing methods > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw > + * Description: Draw a set of rectangles on the screen using alternated drawing methods > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw > + * Description: Draw a set of rectangles on the screen using alternated drawing methods > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw > + * Description: Draw a set of rectangles on the screen using alternated drawing methods > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw > + * Description: Draw a set of rectangles on the screen using alternated drawing methods > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + */ > > -static bool is_drrs_low(void) > -{ > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > +/** > + * SUBTEST: drrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @rgb101010: FORMAT_RGB101010 > + * @rgb565: FORMAT_RGB565 > + * > + * arg[2]: > + * > + * @blt: Blitter > + * @mmap-wc: MMAP-WC > + * @render: Render > + */ > > - debugfs_read_crtc("i915_drrs_status", buf); > - return strstr(buf, "DRRS refresh rate: low"); > -} > +/** > + * SUBTEST: drrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915 > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%s-draw-%s > + * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @rgb101010: FORMAT_RGB101010 > + * @rgb565: FORMAT_RGB565 > + * > + * arg[2]: > + * > + * @mmap-cpu: MMAP-CPU > + * @mmap-gtt: MMAP-GTT > + * @pwrite: PWRITE > + */ > > -static void drrs_print_status(void) > -{ > - char buf[MAX_DRRS_STATUS_BUF_LEN]; > +/** > + * SUBTEST: drrs-slowdraw > + * Description: Sleep a little bit between drawing operations with DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-slowdraw > + * Description: Sleep a little bit between drawing operations with PSR > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-slowdraw > + * Description: Sleep a little bit between drawing operations with FBC & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-slowdraw > + * Description: Sleep a little bit between drawing operations with FBC & PSR > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-slowdraw > + * Description: Sleep a little bit between drawing operations with PSR & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-slowdraw > + * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > > - debugfs_read_crtc("i915_drrs_status", buf); > - igt_info("DRRS STATUS :\n%s\n", buf); > -} > +/** > + * SUBTEST: drrs-%dp-primscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @indfb: Individual fb > + * @shrfb: Shared fb > + * > + * arg[3]: > + * > + * @ms: Modeset > + * @pg: Page flip > + * @pl: Plane change > + */ > > -static struct timespec fbc_get_last_action(void) > -{ > - struct timespec ret = { 0, 0 }; > - char buf[128]; > - char *action; > - ssize_t n_read; > +/** > + * SUBTEST: drrs-2p-scndscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt > + * Description: Just exercise page flips with the patterns we have > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @indfb: Individual fb > + * @shrfb: Shared fb > + * > + * arg[2]: > + * > + * @ms: Modeset > + * @pg: Page flip > + * @pl: Plane change > + */ > > +/** > + * SUBTEST: fbc-%dp-%s-fliptrack-mmap-gtt > + * Description: Check if the hardware tracking works after page flips > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-%s-fliptrack-mmap-gtt > + * Description: Check if the hardware tracking works after page flips > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt > + * Description: Check if the hardware tracking works after page flips > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt > + * Description: Check if the hardware tracking works after page flips > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @indfb: Individual fb > + * @shrfb: Shared fb > + */ > > - debugfs_read_crtc("i915_fbc_status", buf); > - action = strstr(buf, "\nLast action:"); > - igt_assert(action); > +/** > + * SUBTEST: drrs-%dp-primscrn-%s-indfb-move > + * Description: Just move the %arg[2] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-%s-indfb-move > + * Description: Just move the %arg[2] around > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-%s-indfb-move > + * Description: Just move the %arg[2] around > + * Driver requirement: i915, xe > + * Functionality: fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move > + * Description: Just move the %arg[2] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move > + * Description: Just move the %arg[2] around > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move > + * Description: Just move the %arg[2] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move > + * Description: Just move the %arg[2] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @spr: Sprite plane > + * @cur: Cursor plane > + */ > > - n_read = sscanf(action, "Last action: %ld.%ld", > - &ret.tv_sec, &ret.tv_nsec); > - igt_assert(n_read == 2); > +/** > + * SUBTEST: drrs-2p-scndscrn-%s-indfb-move > + * Description: Just move the %arg[1] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-%s-indfb-move > + * Description: Just move the %arg[1] around > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-%s-indfb-move > + * Description: Just move the %arg[1] around > + * Driver requirement: i915, xe > + * Functionality: fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move > + * Description: Just move the %arg[1] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move > + * Description: Just move the %arg[1] around > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move > + * Description: Just move the %arg[1] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move > + * Description: Just move the %arg[1] around > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @spr: Sprite plane > + * @cur: Cursor plane > + */ > > - return ret; > -} > +/** > + * SUBTEST: drrs-%dp-primscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[2] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[2] a few times > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[2] a few times > + * Driver requirement: i915, xe > + * Functionality: fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[2] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[2] a few times > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[2] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[2] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + * > + * arg[2]: > + * > + * @spr: Sprite plane > + * @cur: Cursor plane > + */ > > -static bool fbc_last_action_changed(void) > -{ > - struct timespec t_new, t_old; > +/** > + * SUBTEST: drrs-2p-scndscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[1] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[1] a few times > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[1] a few times > + * Driver requirement: i915, xe > + * Functionality: fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[1] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[1] a few times > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[1] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff > + * Description: Just enable and disable the %arg[1] a few times > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @spr: Sprite plane > + * @cur: Cursor plane > + */ > > - t_old = fbc.last_action; > - t_new = fbc_get_last_action(); > +/** > + * SUBTEST: drrs-%dp-primscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%dp-primscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-2p-scndscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen > + * Description: Put a fullscreen plane covering the whole screen > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1].values: 1, 2 > + */ > > - fbc.last_action = t_new; > +/** > + * SUBTEST: drrs-%s-scaledprimary > + * Description: Try different primary plane scaling strategies > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-%s-scaledprimary > + * Description: Try different primary plane scaling strategies > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-%s-scaledprimary > + * Description: Try different primary plane scaling strategies > + * Driver requirement: i915, xe > + * Functionality: fbt, psr, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-%s-scaledprimary > + * Description: Try different primary plane scaling strategies > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-%s-scaledprimary > + * Description: Try different primary plane scaling strategies > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-%s-scaledprimary > + * Description: Try different primary plane scaling strategies > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-%s-scaledprimary > + * Description: Try different primary plane scaling strategies > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @indfb: Individual fb > + * @shrfb: Shared fb > + */ > > -#if 0 > - igt_info("old: %ld.%ld\n", t_old.tv_sec, t_old.tv_nsec); > - igt_info("new: %ld.%ld\n", t_new.tv_sec, t_new.tv_nsec); > -#endif > +/** > + * SUBTEST: drrs-modesetfrombusy > + * Description: Modeset from a busy buffer to a non-busy buffer with DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-modesetfrombusy > + * Description: Modeset from a busy buffer to a non-busy buffer with FBC > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-modesetfrombusy > + * Description: Modeset from a busy buffer to a non-busy buffer with PSR > + * Driver requirement: i915, xe > + * Functionality: fbt, psr, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-modesetfrombusy > + * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-modesetfrombusy > + * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-modesetfrombusy > + * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-modesetfrombusy > + * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr, scaling > + * Mega feature: General Display Features > + */ > > - return t_old.tv_sec != t_new.tv_sec || > - t_old.tv_nsec != t_new.tv_nsec; > -} > +/** > + * SUBTEST: drrs-suspend > + * Description: Make sure suspend/resume keeps us on the same state of DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-suspend > + * Description: Make sure suspend/resume keeps us on the same state of FBC > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-suspend > + * Description: Make sure suspend/resume keeps us on the same state of PSR > + * Driver requirement: i915, xe > + * Functionality: fbt, psr, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-suspend > + * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-suspend > + * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-suspend > + * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbt, psr, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-suspend > + * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > > -static void fbc_update_last_action(void) > -{ > - if (!fbc.supports_last_action) > - return; > +/** > + * SUBTEST: drrs-farfromfence-mmap-gtt > + * Description: Test drawing as far from the fence start as possible > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbc-farfromfence-mmap-gtt > + * Description: Test drawing as far from the fence start as possible > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psr-farfromfence-mmap-gtt > + * Description: Test drawing as far from the fence start as possible > + * Driver requirement: i915 > + * Functionality: fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-farfromfence-mmap-gtt > + * Description: Test drawing as far from the fence start as possible > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-farfromfence-mmap-gtt > + * Description: Test drawing as far from the fence start as possible > + * Driver requirement: i915 > + * Functionality: fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: psrdrrs-farfromfence-mmap-gtt > + * Description: Test drawing as far from the fence start as possible > + * Driver requirement: i915 > + * Functionality: drrs, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt > + * Description: Test drawing as far from the fence start as possible > + * Driver requirement: i915 > + * Functionality: drrs, fbc, fbt, kms_core, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > > - fbc.last_action = fbc_get_last_action(); > +/** > + * SUBTEST: fbc-stridechange > + * Description: Change the frontbuffer stride by doing a modeset > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-stridechange > + * Description: Change the frontbuffer stride by doing a modeset > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-stridechange > + * Description: Change the frontbuffer stride by doing a modeset > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-stridechange > + * Description: Change the frontbuffer stride by doing a modeset > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > > -#if 0 > - igt_info("Last action: %ld.%ld\n", > - fbc.last_action.tv_sec, fbc.last_action.tv_nsec); > -#endif > -} > +/** > + * SUBTEST: fbc-tiling-%s > + * Description: Test %arg[1] formats, if the tiling format supports FBC do the > + * basic drawing test, else set the mode & test if FBC is disabled > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcdrrs-tiling-%s > + * Description: Test %arg[1] formats, if the tiling format supports FBC do the > + * basic drawing test, else set the mode & test if FBC is disabled > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsr-tiling-%s > + * Description: Test %arg[1] formats, if the tiling format supports FBC do the > + * basic drawing test, else set the mode & test if FBC is disabled > + * Driver requirement: i915, xe > + * Functionality: fbc, fbt, psr, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fbcpsrdrrs-tiling-%s > + * Description: Test %arg[1] formats, if the tiling format supports FBC do the > + * basic drawing test, else set the mode & test if FBC is disabled > + * Driver requirement: i915, xe > + * Functionality: drrs, fbc, fbt, psr, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4: 4 tiling > + * @linear: Linear tiling > + * @y: Y tiling > + */ > > -static void fbc_setup_last_action(void) > -{ > - ssize_t n_read; > - char buf[128]; > - char *action; > +#define TIME SLOW_QUICK(1000, 10000) > > +IGT_TEST_DESCRIPTION("Test the Kernel's frontbuffer tracking mechanism and " > + "its related features: FBC, PSR and DRRS"); > > - debugfs_read_crtc("i915_fbc_status", buf); > - action = strstr(buf, "\nLast action:"); > - if (!action) { > - igt_info("FBC last action not supported\n"); > - return; > - } > +/* > + * One of the aspects of this test is that, for every subtest, we try different > + * combinations of the parameters defined by the struct below. Because of this, > + * a single addition of a new parameter or subtest function can lead to hundreds > + * of new subtests. > + * > + * In order to reduce the number combinations we cut the cases that don't make > + * sense, such as writing on the secondary screen when there is only a single > + * pipe, or flipping when the target is the offscreen buffer. We also hide some > + * combinations that are somewhat redundant and don't add much value to the > + * test. For example, since we already do the offscreen testing with a single > + * pipe enabled, there's no much value in doing it again with dual pipes. If you > + * still want to try these redundant tests, you need to use the --show-hidden > + * option. > + * > + * The most important hidden thing is the FEATURE_NONE set of tests. Whenever > + * you get a failure on any test, it is important to check whether the same test > + * fails with FEATURE_NONE - replace the feature name for "nop". If the nop test > + * also fails, then it's likely the problem will be on the IGT side instead of > + * the Kernel side. We don't expose this set of tests by default because (i) > + * they take a long time to test; and (ii) if the feature tests work, then it's > + * very likely that the nop tests will also work. > + */ > +struct test_mode { > + /* Are we going to enable just one monitor, or are we going to setup a > + * dual screen environment for the test? */ > + enum { > + PIPE_SINGLE = 0, > + PIPE_DUAL, > + PIPE_COUNT, > + } pipes; > > - fbc.supports_last_action = true; > + /* The primary screen is the one that's supposed to have the "feature" > + * enabled on, but we have the option to draw on the secondary screen or > + * on some offscreen buffer. We also only theck the CRC of the primary > + * screen. */ > + enum { > + SCREEN_PRIM = 0, > + SCREEN_SCND, > + SCREEN_OFFSCREEN, > + SCREEN_COUNT, > + } screen; > > - n_read = sscanf(action, "Last action: %ld.%ld", > - &fbc.last_action.tv_sec, &fbc.last_action.tv_nsec); > - igt_assert(n_read == 2); > -} > + /* When we draw, we can draw directly on the primary plane, on the > + * cursor or on the sprite plane. */ > + enum { > + PLANE_PRI = 0, > + PLANE_CUR, > + PLANE_SPR, > + PLANE_COUNT, > + } plane; > > -static bool fbc_is_compressing(void) > -{ > - char buf[128]; > + /* We can organize the screens in a way that each screen has its own > + * framebuffer, or in a way that all screens point to the same > + * framebuffer, but on different places. This includes the offscreen > + * screen. */ > + enum { > + FBS_INDIVIDUAL = 0, > + FBS_SHARED, > + FBS_COUNT, > + } fbs; > > - debugfs_read_crtc("i915_fbc_status", buf); > - return strstr(buf, "\nCompressing: yes\n") != NULL; > -} > + /* Which features are we going to test now? This is a mask! > + * FEATURE_DEFAULT is a special value which instruct the test to just > + * keep what's already enabled by default in the Kernel. */ > + enum { > + FEATURE_NONE = 0, > + FEATURE_FBC = 1, > + FEATURE_PSR = 2, > + FEATURE_DRRS = 4, > + FEATURE_COUNT = 8, > + FEATURE_DEFAULT = 8, > + } feature; > > -static bool fbc_wait_for_compression(void) > -{ > - return igt_wait(fbc_is_compressing(), 2000, 1); > -} > + /* Possible pixel formats. We just use FORMAT_DEFAULT for most tests and > + * only test a few things on the other formats. */ > + enum pixel_format { > + FORMAT_RGB888 = 0, > + FORMAT_RGB565, > + FORMAT_RGB101010, > + FORMAT_COUNT, > + FORMAT_DEFAULT = FORMAT_RGB888, > + } format; > > -static bool fbc_not_enough_stolen(void) > -{ > - char buf[128]; > + /* There are multiple APIs where we can do the equivalent of a page flip > + * and they exercise slightly different codepaths inside the Kernel. */ > + enum flip_type { > + FLIP_PAGEFLIP, > + FLIP_MODESET, > + FLIP_PLANES, > + FLIP_COUNT, > + } flip; > > - debugfs_read_crtc("i915_fbc_status", buf); > - return strstr(buf, "FBC disabled: not enough stolen memory\n"); > -} > + enum tiling_type { > + TILING_LINEAR = 0, > + TILING_X, > + TILING_Y, > + TILING_4, > + TILING_COUNT, > + TILING_DEFAULT = TILING_X, > + } tiling; > > -static bool fbc_stride_not_supported(void) > -{ > - char buf[128]; > + enum igt_draw_method method; > +}; > > - debugfs_read_crtc("i915_fbc_status", buf); > - return strstr(buf, "FBC disabled: framebuffer stride not supported\n"); > -} > +enum color { > + COLOR_RED, > + COLOR_GREEN, > + COLOR_BLUE, > + COLOR_MAGENTA, > + COLOR_CYAN, > + COLOR_SCND_BG, > + COLOR_PRIM_BG = COLOR_BLUE, > + COLOR_OFFSCREEN_BG = COLOR_SCND_BG, > +}; > > -static bool fbc_mode_too_large(void) > -{ > - char buf[128]; > +struct rect { > + int x; > + int y; > + int w; > + int h; > + uint32_t color; > +}; > > - debugfs_read_crtc("i915_fbc_status", buf); > - return strstr(buf, "FBC disabled: mode too large for compression\n"); > -} > +struct { > + int fd; > + int debugfs; > + igt_display_t display; > > -static bool fbc_enable_per_plane(int plane_index, enum pipe pipe) > -{ > - char buf[PATH_MAX]; > - char buf_plane[128]; > + struct buf_ops *bops; > +} drm; > > - sprintf(buf_plane, "%d%s", plane_index, kmstest_pipe_name(pipe)); > +struct { > + bool can_test; > > - debugfs_read_crtc("i915_fbc_status", buf); > - return strstr(strstr(buf, "*"), buf_plane); > -} > + bool supports_last_action; > > -static bool drrs_wait_until_rr_switch_to_low(void) > -{ > - return igt_wait(is_drrs_low(), 5000, 1); > -} > + struct timespec last_action; > +} fbc = { > + .can_test = false, > + .supports_last_action = false, > +}; > > -static struct rect pat1_get_rect(struct fb_region *fb, int r) > -{ > - struct rect rect; > +struct { > + bool can_test; > +} psr = { > + .can_test = false, > +}; > > - switch (r) { > - case 0: > - rect.x = 0; > - rect.y = 0; > - rect.w = fb->w / 8; > - rect.h = fb->h / 8; > - rect.color = pick_color(fb->fb, COLOR_GREEN); > - break; > - case 1: > - rect.x = fb->w / 8 * 4; > - rect.y = fb->h / 8 * 4; > - rect.w = fb->w / 8 * 2; > - rect.h = fb->h / 8 * 2; > - rect.color = pick_color(fb->fb, COLOR_RED); > - break; > - case 2: > - rect.x = fb->w / 16 + 1; > - rect.y = fb->h / 16 + 1; > - rect.w = fb->w / 8 + 1; > - rect.h = fb->h / 8 + 1; > - rect.color = pick_color(fb->fb, COLOR_MAGENTA); > - break; > - case 3: > - rect.x = fb->w - 1; > - rect.y = fb->h - 1; > - rect.w = 1; > - rect.h = 1; > - rect.color = pick_color(fb->fb, COLOR_CYAN); > - break; > - default: > - igt_assert(false); > - } > +#define MAX_DRRS_STATUS_BUF_LEN 256 > > - return rect; > -} > +struct { > + bool can_test; > +} drrs = { > + .can_test = false, > +}; > > -static struct rect pat2_get_rect(struct fb_region *fb, int r) > -{ > - struct rect rect; > +igt_pipe_crc_t *pipe_crc; > +igt_crc_t *wanted_crc; > +struct { > + bool initialized; > + igt_crc_t crc; > +} blue_crcs[FORMAT_COUNT]; > > - rect.x = 0; > - rect.y = 0; > - rect.w = 64; > - rect.h = 64; > +/* The goal of this structure is to easily allow us to deal with cases where we > + * have a big framebuffer and the CRTC is just displaying a subregion of this > + * big FB. */ > +struct fb_region { > + igt_plane_t *plane; > + struct igt_fb *fb; > + int x; > + int y; > + int w; > + int h; > +}; > > - switch (r) { > - case 0: > - rect.color = pick_color(fb->fb, COLOR_GREEN); > - break; > - case 1: > - rect.x = 31; > - rect.y = 31; > - rect.w = 31; > - rect.h = 31; > - rect.color = pick_color(fb->fb, COLOR_RED); > - break; > - case 2: > - rect.x = 16; > - rect.y = 16; > - rect.w = 32; > - rect.h = 32; > - rect.color = pick_color(fb->fb, COLOR_MAGENTA); > - break; > - case 3: > - rect.color = pick_color(fb->fb, COLOR_CYAN); > - break; > - default: > - igt_assert(false); > - } > +struct draw_pattern_info { > + bool frames_stack; > + int n_rects; > + struct rect (*get_rect)(struct fb_region *fb, int r); > > - return rect; > -} > + bool initialized[FORMAT_COUNT]; > + igt_crc_t *crcs[FORMAT_COUNT]; > +}; > > -static struct rect pat3_get_rect(struct fb_region *fb, int r) > -{ > - struct rect rect; > +/* Draw big rectangles on the screen. */ > +struct draw_pattern_info pattern1; > +/* 64x64 rectangles at x:0,y:0, just so we can draw on the cursor and sprite. */ > +struct draw_pattern_info pattern2; > +/* 64x64 rectangles at different positions, same color, for the move test. */ > +struct draw_pattern_info pattern3; > +/* Just a fullscreen green square. */ > +struct draw_pattern_info pattern4; > > - rect.w = 64; > - rect.h = 64; > - rect.color = pick_color(fb->fb, COLOR_GREEN); > +/* Command line parameters. */ > +struct { > + bool check_status; > + bool check_crc; > + bool fbc_check_compression; > + bool fbc_check_last_action; > + bool no_edp; > + bool small_modes; > + bool show_hidden; > + int step; > + int only_pipes; > + int shared_fb_x_offset; > + int shared_fb_y_offset; > + enum tiling_type tiling; > +} opt = { > + .check_status = true, > + .check_crc = true, > + .fbc_check_compression = true, > + .fbc_check_last_action = true, > + .no_edp = false, > + .small_modes = false, > + .show_hidden= false, > + .step = 0, > + .only_pipes = PIPE_COUNT, > + .shared_fb_x_offset = 248, > + .shared_fb_y_offset = 500, > + .tiling = TILING_DEFAULT, > +}; > > - switch (r) { > - case 0: > - rect.x = 0; > - rect.y = 0; > - break; > - case 1: > - rect.x = 64; > - rect.y = 64; > - break; > - case 2: > - rect.x = 1; > - rect.y = 1; > - break; > - case 3: > - rect.x = fb->w - 64; > - rect.y = fb->h - 64; > - break; > - case 4: > - rect.x = fb->w / 2 - 32; > - rect.y = fb->h / 2 - 32; > - break; > - default: > - igt_assert(false); > - } > +struct modeset_params { > + enum pipe pipe; > + igt_output_t *output; > + drmModeModeInfo mode; > > - return rect; > -} > + struct fb_region primary; > + struct fb_region cursor; > + struct fb_region sprite; > +}; > > -static struct rect pat4_get_rect(struct fb_region *fb, int r) > -{ > - struct rect rect; > +struct modeset_params prim_mode_params; > +struct modeset_params scnd_mode_params; > > - igt_assert_eq(r, 0); > +struct fb_region offscreen_fb; > +struct screen_fbs { > + bool initialized; > > - rect.x = 0; > - rect.y = 0; > - rect.w = fb->w; > - rect.h = fb->h; > - rect.color = pick_color(fb->fb, COLOR_GREEN); > + struct igt_fb prim_pri; > + struct igt_fb prim_cur; > + struct igt_fb prim_spr; > > - return rect; > -} > + struct igt_fb scnd_pri; > + struct igt_fb scnd_cur; > + struct igt_fb scnd_spr; > > -static void fb_dirty_ioctl(struct fb_region *fb, struct rect *rect) > -{ > - int rc; > - drmModeClip clip = { > - .x1 = rect->x, > - .x2 = rect->x + rect->w, > - .y1 = rect->y, > - .y2 = rect->y + rect->h, > - }; > + struct igt_fb offscreen; > + struct igt_fb big; > +} fbs[FORMAT_COUNT]; > > - rc = drmModeDirtyFB(drm.fd, fb->fb->fb_id, &clip, 1); > +struct { > + pthread_t thread; > + bool stop; > > - igt_assert(rc == 0 || rc == -ENOSYS); > -} > + uint32_t handle; > + uint32_t size; > + uint32_t stride; > + int width; > + int height; > + uint32_t color; > + int bpp; > + uint32_t tiling; > +} busy_thread = { > + .stop = true, > +}; > > -static void draw_rect(struct draw_pattern_info *pattern, struct fb_region *fb, > - enum igt_draw_method method, int r) > +static drmModeModeInfo *get_connector_smallest_mode(igt_output_t *output) > { > - struct rect rect = pattern->get_rect(fb, r); > + drmModeConnector *c = output->config.connector; > + const drmModeModeInfo *smallest = NULL; > + int i; > > - igt_draw_rect_fb(drm.fd, drm.bops, 0, fb->fb, method, > - fb->x + rect.x, fb->y + rect.y, > - rect.w, rect.h, rect.color); > + if (c->connector_type == DRM_MODE_CONNECTOR_eDP) > + return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); > > - fb_dirty_ioctl(fb, &rect); > -} > + for (i = 0; i < c->count_modes; i++) { > + const drmModeModeInfo *mode = &c->modes[i]; > > -static void draw_rect_igt_fb(struct draw_pattern_info *pattern, > - struct igt_fb *fb, enum igt_draw_method method, > - int r) > -{ > - struct fb_region region = { > - .fb = fb, > - .x = 0, > - .y = 0, > - .w = fb->width, > - .h = fb->height, > - }; > + if (!smallest || > + mode->hdisplay * mode->vdisplay < > + smallest->hdisplay * smallest->vdisplay) > + smallest = mode; > + } > > - draw_rect(pattern, ®ion, method, r); > + if (smallest) > + return igt_memdup(smallest, sizeof(*smallest)); > + else > + return igt_std_1024_mode_get(60); > } > > -static void fill_fb_region(struct fb_region *region, > - enum igt_draw_method method, > - enum color ecolor) > +static drmModeModeInfo *connector_get_mode(igt_output_t *output) > { > - uint32_t color = pick_color(region->fb, ecolor); > + /* On HSW the CRC WA is so awful that it makes you think everything is > + * bugged. */ > + if (IS_HASWELL(intel_get_drm_devid(drm.fd)) && > + output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP) > + return igt_std_1024_mode_get(igt_output_preferred_vrefresh(output)); > > - igt_draw_rect_fb(drm.fd, drm.bops, 0, region->fb, method, > - region->x, region->y, region->w, region->h, > - color); > + if (opt.small_modes) > + return get_connector_smallest_mode(output); > + else > + return igt_memdup(&output->config.default_mode, > + sizeof(output->config.default_mode)); > } > > -static void _fb_dirty_ioctl(struct fb_region *region) > +static void init_mode_params(struct modeset_params *params, > + igt_output_t *output, enum pipe pipe) > { > - struct rect rect; > - > - rect.x = region->x; > - rect.y = region->y; > - rect.w = region->w; > - rect.h = region->h; > - fb_dirty_ioctl(region, &rect); > -} > + drmModeModeInfo *mode; > > -static void unset_all_crtcs(void) > -{ > - igt_display_reset(&drm.display); > - igt_display_commit(&drm.display); > -} > + igt_output_override_mode(output, NULL); > + mode = connector_get_mode(output); > > -static bool disable_features(const struct test_mode *t) > -{ > - if (t->feature == FEATURE_DEFAULT) > - return false; > + params->pipe = pipe; > + params->output = output; > + params->mode = *mode; > > - intel_fbc_disable(drm.fd); > - intel_drrs_disable(drm.fd, prim_mode_params.pipe); > + params->primary.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_PRIMARY); > + params->primary.fb = NULL; > + params->primary.x = 0; > + params->primary.y = 0; > + params->primary.w = mode->hdisplay; > + params->primary.h = mode->vdisplay; > > - return psr.can_test ? psr_disable(drm.fd, drm.debugfs) : false; > -} > + params->cursor.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_CURSOR); > + params->cursor.fb = NULL; > + params->cursor.x = 0; > + params->cursor.y = 0; > + params->cursor.w = 64; > + params->cursor.h = 64; > > -static void *busy_thread_func(void *data) > -{ > - while (!busy_thread.stop) > - igt_draw_rect(drm.fd, drm.bops, 0, busy_thread.handle, > - busy_thread.size, busy_thread.stride, > - busy_thread.tiling, IGT_DRAW_BLT, 0, 0, > - busy_thread.width, busy_thread.height, > - busy_thread.color, busy_thread.bpp); > + params->sprite.plane = igt_pipe_get_plane_type(&drm.display.pipes[pipe], DRM_PLANE_TYPE_OVERLAY); > + igt_require(params->sprite.plane); > + params->sprite.fb = NULL; > + params->sprite.x = 0; > + params->sprite.y = 0; > + params->sprite.w = 64; > + params->sprite.h = 64; > > - pthread_exit(0); > + free(mode); > } > > -static void start_busy_thread(struct igt_fb *fb) > +static bool find_connector(bool edp_only, bool pipe_a, > + igt_output_t *forbidden_output, > + enum pipe forbidden_pipe, > + igt_output_t **ret_output, > + enum pipe *ret_pipe) > { > - int rc; > + igt_output_t *output; > + enum pipe pipe; > > - igt_assert(busy_thread.stop == true); > - busy_thread.stop = false; > - busy_thread.handle = fb->gem_handle; > - busy_thread.size = fb->size; > - busy_thread.stride = fb->strides[0]; > - busy_thread.width = fb->width; > - busy_thread.height = fb->height; > - busy_thread.color = pick_color(fb, COLOR_PRIM_BG); > - busy_thread.bpp = igt_drm_format_to_bpp(fb->drm_format); > - busy_thread.tiling = igt_fb_mod_to_tiling(fb->modifier); > + for_each_pipe_with_valid_output(&drm.display, pipe, output) { > + drmModeConnectorPtr c = output->config.connector; > > - rc = pthread_create(&busy_thread.thread, NULL, busy_thread_func, NULL); > - igt_assert_eq(rc, 0); > -} > + if (edp_only && c->connector_type != DRM_MODE_CONNECTOR_eDP) > + continue; > > -static void stop_busy_thread(void) > -{ > - if (!busy_thread.stop) { > - busy_thread.stop = true; > - igt_assert(pthread_join(busy_thread.thread, NULL) == 0); > - } > -} > + if (pipe_a && pipe != PIPE_A) > + continue; > > -static void print_crc(const char *str, igt_crc_t *crc) > -{ > - char *pipe_str; > + if (output == forbidden_output || pipe == forbidden_pipe) { > + igt_output_set_pipe(output, pipe); > + igt_output_override_mode(output, connector_get_mode(output)); > > - pipe_str = igt_crc_to_string(crc); > + continue; > + } > > - igt_debug("%s pipe:[%s]\n", str, pipe_str); > + if (c->connector_type == DRM_MODE_CONNECTOR_eDP && opt.no_edp) > + continue; > > - free(pipe_str); > -} > + igt_output_set_pipe(output, pipe); > + igt_output_override_mode(output, connector_get_mode(output)); > + if (intel_pipe_output_combo_valid(&drm.display)) { > + *ret_output = output; > + *ret_pipe = pipe; > + return true; > + } > + } > > -static void collect_crc(igt_crc_t *crc) > -{ > - igt_pipe_crc_collect_crc(pipe_crc, crc); > + return false; > } > > -static void init_blue_crc(enum pixel_format format, enum tiling_type tiling) > +static bool init_modeset_cached_params(void) > { > - struct igt_fb blue; > - > - if (blue_crcs[format].initialized) > - return; > - > - create_fb(format, prim_mode_params.mode.hdisplay, > - prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, > - &blue); > - > - fill_fb(&blue, COLOR_PRIM_BG); > - > - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > - igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); > - igt_plane_set_fb(prim_mode_params.primary.plane, &blue); > - igt_display_commit(&drm.display); > + igt_output_t *prim_output = NULL, *scnd_output = NULL; > + enum pipe prim_pipe, scnd_pipe; > > - if (!pipe_crc) { > - pipe_crc = igt_pipe_crc_new(drm.fd, prim_mode_params.pipe, > - IGT_PIPE_CRC_SOURCE_AUTO); > - igt_assert(pipe_crc); > - } > + /* > + * We have this problem where PSR is only present on eDP monitors and > + * FBC is only present on pipe A for some platforms. So we search first > + * for the ideal case of eDP supporting pipe A, and try the less optimal > + * configs later, sacrificing one of the features. > + * TODO: refactor the code in a way that allows us to have different > + * sets of prim/scnd structs for different features. > + */ > + find_connector(true, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); > + if (!prim_output) > + find_connector(true, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); > + if (!prim_output) > + find_connector(false, true, NULL, PIPE_NONE, &prim_output, &prim_pipe); > + if (!prim_output) > + find_connector(false, false, NULL, PIPE_NONE, &prim_output, &prim_pipe); > > - collect_crc(&blue_crcs[format].crc); > + if (!prim_output) > + return false; > > - print_crc("Blue CRC: ", &blue_crcs[format].crc); > + find_connector(false, false, prim_output, prim_pipe, > + &scnd_output, &scnd_pipe); > > - igt_display_reset(&drm.display); > + init_mode_params(&prim_mode_params, prim_output, prim_pipe); > > - igt_remove_fb(drm.fd, &blue); > + if (!scnd_output) { > + scnd_mode_params.pipe = PIPE_NONE; > + scnd_mode_params.output = NULL; > + return true; > + } > > - blue_crcs[format].initialized = true; > + init_mode_params(&scnd_mode_params, scnd_output, scnd_pipe); > + return true; > } > > -static void init_crcs(enum pixel_format format, enum tiling_type tiling, > - struct draw_pattern_info *pattern) > +static uint64_t tiling_to_modifier(enum tiling_type tiling) > { > - int r, r_; > - struct igt_fb tmp_fbs[pattern->n_rects]; > - > - if (pattern->initialized[format]) > - return; > - > - pattern->crcs[format] = calloc(pattern->n_rects, > - sizeof(*(pattern->crcs[format]))); > - > - for (r = 0; r < pattern->n_rects; r++) > - create_fb(format, prim_mode_params.mode.hdisplay, > - prim_mode_params.mode.vdisplay, tiling, > - PLANE_PRI, &tmp_fbs[r]); > - > - for (r = 0; r < pattern->n_rects; r++) > - fill_fb(&tmp_fbs[r], COLOR_PRIM_BG); > - > - if (pattern->frames_stack) { > - for (r = 0; r < pattern->n_rects; r++) > - for (r_ = 0; r_ <= r; r_++) > - draw_rect_igt_fb(pattern, &tmp_fbs[r], > - igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? > - IGT_DRAW_PWRITE : IGT_DRAW_BLT, > - r_); > - } else { > - for (r = 0; r < pattern->n_rects; r++) > - draw_rect_igt_fb(pattern, &tmp_fbs[r], igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? > - IGT_DRAW_PWRITE : IGT_DRAW_BLT, r); > + switch (tiling) { > + case TILING_LINEAR: > + return DRM_FORMAT_MOD_LINEAR; > + case TILING_X: > + return I915_FORMAT_MOD_X_TILED; > + case TILING_Y: > + return I915_FORMAT_MOD_Y_TILED; > + case TILING_4: > + return I915_FORMAT_MOD_4_TILED; > + default: > + igt_assert(false); > } > +} > > - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > - igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); > - for (r = 0; r < pattern->n_rects; r++) { > - igt_plane_set_fb(prim_mode_params.primary.plane, &tmp_fbs[r]); > - igt_display_commit(&drm.display); > +static void create_fb(enum pixel_format pformat, int width, int height, > + enum tiling_type tiling, int plane, struct igt_fb *fb) > +{ > + uint32_t format; > + uint64_t size, modifier; > + unsigned int stride; > > - collect_crc(&pattern->crcs[format][r]); > + switch (pformat) { > + case FORMAT_RGB888: > + if (plane == PLANE_CUR) > + format = DRM_FORMAT_ARGB8888; > + else > + format = DRM_FORMAT_XRGB8888; > + break; > + case FORMAT_RGB565: > + /* Only the primary plane supports 16bpp! */ > + if (plane == PLANE_PRI) > + format = DRM_FORMAT_RGB565; > + else if (plane == PLANE_CUR) > + format = DRM_FORMAT_ARGB8888; > + else > + format = DRM_FORMAT_XRGB8888; > + break; > + case FORMAT_RGB101010: > + if (plane == PLANE_PRI) > + format = DRM_FORMAT_XRGB2101010; > + else if (plane == PLANE_CUR) > + format = DRM_FORMAT_ARGB8888; > + else > + format = DRM_FORMAT_XRGB8888; > + break; > + default: > + igt_assert(false); > } > > - for (r = 0; r < pattern->n_rects; r++) { > - igt_debug("Rect %d CRC:", r); > - print_crc("", &pattern->crcs[format][r]); > - } > + modifier = tiling_to_modifier(tiling); > > - igt_display_reset(&drm.display); > + igt_warn_on(plane == PLANE_CUR && tiling != TILING_LINEAR); > > - for (r = 0; r < pattern->n_rects; r++) > - igt_remove_fb(drm.fd, &tmp_fbs[r]); > + igt_calc_fb_size(drm.fd, width, height, format, modifier, &size, > + &stride); > > - pattern->initialized[format] = true; > + igt_create_fb_with_bo_size(drm.fd, width, height, format, modifier, > + IGT_COLOR_YCBCR_BT709, > + IGT_COLOR_YCBCR_LIMITED_RANGE, > + fb, size, stride); > } > > -static void setup_drm(void) > +static uint32_t pick_color(struct igt_fb *fb, enum color ecolor) > { > - drm.fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE); > - drm.debugfs = igt_debugfs_dir(drm.fd); > + uint32_t color, r, g, b, b2, a; > + bool alpha = false; > > - kmstest_set_vt_graphics_mode(); > - igt_display_require(&drm.display, drm.fd); > + switch (fb->drm_format) { > + case DRM_FORMAT_RGB565: > + a = 0x0; > + r = 0x1F << 11; > + g = 0x3F << 5; > + b = 0x1F; > + b2 = 0x10; > + break; > + case DRM_FORMAT_ARGB8888: > + alpha = true; > + case DRM_FORMAT_XRGB8888: > + a = 0xFF << 24; > + r = 0xFF << 16; > + g = 0xFF << 8; > + b = 0xFF; > + b2 = 0x80; > + break; > + case DRM_FORMAT_ARGB2101010: > + alpha = true; > + case DRM_FORMAT_XRGB2101010: > + a = 0x3 << 30; > + r = 0x3FF << 20; > + g = 0x3FF << 10; > + b = 0x3FF; > + b2 = 0x200; > + break; > + default: > + igt_assert(false); > + } > > - drm.bops = buf_ops_create(drm.fd); > -} > + switch (ecolor) { > + case COLOR_RED: > + color = r; > + break; > + case COLOR_GREEN: > + color = g; > + break; > + case COLOR_BLUE: > + color = b; > + break; > + case COLOR_MAGENTA: > + color = r | b; > + break; > + case COLOR_CYAN: > + color = g | b; > + break; > + case COLOR_SCND_BG: > + color = b2; > + break; > + default: > + igt_assert(false); > + } > > -static void teardown_drm(void) > -{ > - buf_ops_destroy(drm.bops); > - igt_display_fini(&drm.display); > - drm_close_driver(drm.fd); > -} > + if (alpha) > + color |= a; > > -static void setup_modeset(void) > -{ > - igt_require(init_modeset_cached_params()); > - offscreen_fb.fb = NULL; > - offscreen_fb.w = 1024; > - offscreen_fb.h = 1024; > - create_fbs(FORMAT_DEFAULT, opt.tiling); > + return color; > } > > -static void teardown_modeset(void) > +static void fill_fb(struct igt_fb *fb, enum color ecolor) > { > - enum pixel_format f; > - > - for (f = 0; f < FORMAT_COUNT; f++) > - destroy_fbs(f); > + igt_draw_fill_fb(drm.fd, fb, pick_color(fb, ecolor)); > } > > -static void setup_crcs(void) > +/* > + * This is how the prim, scnd and offscreen FBs should be positioned inside the > + * shared FB. The prim buffer starts at the X and Y offsets defined by > + * opt.shared_fb_{x,y}_offset, then scnd starts at the same X pixel offset, > + * right after prim ends on the Y axis, then the offscreen fb starts after scnd > + * ends. Just like the picture: > + * > + * +-------------------------+ > + * | shared fb | > + * | +------------------+ | > + * | | prim | | > + * | | | | > + * | | | | > + * | | | | > + * | +------------------+--+ > + * | | scnd | > + * | | | > + * | | | > + * | +---------------+-----+ > + * | | offscreen | | > + * | | | | > + * | | | | > + * +---+---------------+-----+ > + * > + * We do it vertically instead of the more common horizontal case in order to > + * avoid super huge strides not supported by FBC. > + */ > +static void create_shared_fb(enum pixel_format format, enum tiling_type tiling) > { > - enum pixel_format f; > - > - for (f = 0; f < FORMAT_COUNT; f++) > - blue_crcs[f].initialized = false; > + int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h; > + struct screen_fbs *s = &fbs[format]; > > - pattern1.frames_stack = true; > - pattern1.n_rects = 4; > - pattern1.get_rect = pat1_get_rect; > - for (f = 0; f < FORMAT_COUNT; f++) { > - pattern1.initialized[f] = false; > - pattern1.crcs[f] = NULL; > - } > + prim_w = prim_mode_params.mode.hdisplay; > + prim_h = prim_mode_params.mode.vdisplay; > > - pattern2.frames_stack = true; > - pattern2.n_rects = 4; > - pattern2.get_rect = pat2_get_rect; > - for (f = 0; f < FORMAT_COUNT; f++) { > - pattern2.initialized[f] = false; > - pattern2.crcs[f] = NULL; > + if (scnd_mode_params.output) { > + scnd_w = scnd_mode_params.mode.hdisplay; > + scnd_h = scnd_mode_params.mode.vdisplay; > + } else { > + scnd_w = 0; > + scnd_h = 0; > } > + offs_w = offscreen_fb.w; > + offs_h = offscreen_fb.h; > > - pattern3.frames_stack = false; > - pattern3.n_rects = 5; > - pattern3.get_rect = pat3_get_rect; > - for (f = 0; f < FORMAT_COUNT; f++) { > - pattern3.initialized[f] = false; > - pattern3.crcs[f] = NULL; > - } > + big_w = prim_w; > + if (scnd_w > big_w) > + big_w = scnd_w; > + if (offs_w > big_w) > + big_w = offs_w; > + big_w += opt.shared_fb_x_offset; > > - pattern4.frames_stack = false; > - pattern4.n_rects = 1; > - pattern4.get_rect = pat4_get_rect; > - for (f = 0; f < FORMAT_COUNT; f++) { > - pattern4.initialized[f] = false; > - pattern4.crcs[f] = NULL; > - } > + big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset; > + > + create_fb(format, big_w, big_h, tiling, PLANE_PRI, &s->big); > } > > -static void teardown_crcs(void) > +static void destroy_fbs(enum pixel_format format) > { > - enum pixel_format f; > + struct screen_fbs *s = &fbs[format]; > > - for (f = 0; f < FORMAT_COUNT; f++) { > - if (pattern1.crcs[f]) > - free(pattern1.crcs[f]); > - if (pattern2.crcs[f]) > - free(pattern2.crcs[f]); > - if (pattern3.crcs[f]) > - free(pattern3.crcs[f]); > - if (pattern4.crcs[f]) > - free(pattern4.crcs[f]); > - } > + if (!s->initialized) > + return; > > - igt_pipe_crc_free(pipe_crc); > + if (scnd_mode_params.output) { > + igt_remove_fb(drm.fd, &s->scnd_pri); > + igt_remove_fb(drm.fd, &s->scnd_cur); > + igt_remove_fb(drm.fd, &s->scnd_spr); > + } > + igt_remove_fb(drm.fd, &s->prim_pri); > + igt_remove_fb(drm.fd, &s->prim_cur); > + igt_remove_fb(drm.fd, &s->prim_spr); > + igt_remove_fb(drm.fd, &s->offscreen); > + igt_remove_fb(drm.fd, &s->big); > } > > -static void setup_fbc(void) > +static void create_fbs(enum pixel_format format, enum tiling_type tiling) > { > - if (!intel_fbc_supported_on_chipset(drm.fd, prim_mode_params.pipe)) { > - igt_info("Can't test FBC: not supported on this chipset\n"); > - return; > - } > + struct screen_fbs *s = &fbs[format]; > > - fbc.can_test = true; > + if (s->initialized) > + destroy_fbs(format); > > - fbc_setup_last_action(); > -} > + s->initialized = true; > > -static void teardown_fbc(void) > -{ > -} > + create_fb(format, prim_mode_params.mode.hdisplay, > + prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, > + &s->prim_pri); > + create_fb(format, prim_mode_params.cursor.w, > + prim_mode_params.cursor.h, DRM_FORMAT_MOD_LINEAR, > + PLANE_CUR, &s->prim_cur); > + create_fb(format, prim_mode_params.sprite.w, > + prim_mode_params.sprite.h, tiling, PLANE_SPR, &s->prim_spr); > > -static void setup_psr(void) > -{ > - if (prim_mode_params.output->config.connector->connector_type != > - DRM_MODE_CONNECTOR_eDP) { > - igt_info("Can't test PSR: no usable eDP screen.\n"); > - return; > - } > + create_fb(format, offscreen_fb.w, offscreen_fb.h, tiling, PLANE_PRI, > + &s->offscreen); > > - if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1, NULL)) { > - igt_info("Can't test PSR: not supported by sink.\n"); > + create_shared_fb(format, tiling); > + > + if (!scnd_mode_params.output) > return; > - } > - psr.can_test = true; > + > + create_fb(format, scnd_mode_params.mode.hdisplay, > + scnd_mode_params.mode.vdisplay, tiling, PLANE_PRI, > + &s->scnd_pri); > + create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h, > + DRM_FORMAT_MOD_LINEAR, PLANE_CUR, &s->scnd_cur); > + create_fb(format, scnd_mode_params.sprite.w, scnd_mode_params.sprite.h, > + tiling, PLANE_SPR, &s->scnd_spr); > } > > -static void teardown_psr(void) > +static void __set_prim_plane_for_params(struct modeset_params *params) > { > + igt_plane_set_fb(params->primary.plane, params->primary.fb); > + igt_plane_set_position(params->primary.plane, 0, 0); > + igt_plane_set_size(params->primary.plane, params->mode.hdisplay, params->mode.vdisplay); > + igt_fb_set_position(params->primary.fb, params->primary.plane, > + params->primary.x, params->primary.y); > + igt_fb_set_size(params->primary.fb, params->primary.plane, > + params->mode.hdisplay, params->mode.vdisplay); > } > > -static void setup_drrs(void) > +static void __set_mode_for_params(struct modeset_params *params) > { > - if (!intel_output_has_drrs(drm.fd, prim_mode_params.output)) { > - igt_info("Can't test DRRS: no usable screen.\n"); > - return; > - } > - > - if (!intel_is_drrs_supported(drm.fd, prim_mode_params.pipe)) { > - igt_info("Can't test DRRS: Not supported.\n"); > - return; > - } > + igt_output_override_mode(params->output, ¶ms->mode); > + igt_output_set_pipe(params->output, params->pipe); > > - drrs.can_test = true; > + __set_prim_plane_for_params(params); > } > > -static void setup_environment(void) > +static void set_mode_for_params(struct modeset_params *params) > { > - setup_drm(); > - setup_modeset(); > + __set_mode_for_params(params); > + igt_display_commit(&drm.display); > +} > > - setup_fbc(); > - setup_psr(); > - setup_drrs(); > +static void __debugfs_read_crtc(const char *param, char *buf, int len) > +{ > + int dir; > + enum pipe pipe; > > - setup_crcs(); > + pipe = prim_mode_params.pipe; > + dir = igt_debugfs_pipe_dir(drm.fd, pipe, O_DIRECTORY); > + igt_require_fd(dir); > + igt_debugfs_simple_read(dir, param, buf, len); > + close(dir); > } > > -static void teardown_environment(void) > +#define debugfs_read_crtc(p, arr) __debugfs_read_crtc(p, arr, sizeof(arr)) > +#define debugfs_write_crtc(p, arr) __debugfs_write_crtc(p, arr, sizeof(arr)) > +#define debugfs_read_connector(p, arr) __debugfs_read_connector(p, arr, sizeof(arr)) > + > +static bool is_drrs_high(void) > { > - stop_busy_thread(); > + char buf[MAX_DRRS_STATUS_BUF_LEN]; > > - teardown_crcs(); > - teardown_psr(); > - teardown_fbc(); > - teardown_modeset(); > - teardown_drm(); > + debugfs_read_crtc("i915_drrs_status", buf); > + return strstr(buf, "DRRS refresh rate: high"); > } > > -static void wait_user(int step, const char *msg) > +static bool is_drrs_low(void) > { > - if (opt.step < step) > - return; > + char buf[MAX_DRRS_STATUS_BUF_LEN]; > > - igt_info("%s Press enter...\n", msg); > - while (getchar() != '\n') > - ; > + debugfs_read_crtc("i915_drrs_status", buf); > + return strstr(buf, "DRRS refresh rate: low"); > } > > -static struct modeset_params *pick_params(const struct test_mode *t) > +static void drrs_print_status(void) > { > - switch (t->screen) { > - case SCREEN_PRIM: > - return &prim_mode_params; > - case SCREEN_SCND: > - return &scnd_mode_params; > - case SCREEN_OFFSCREEN: > - return NULL; > - default: > - igt_assert(false); > - } > + char buf[MAX_DRRS_STATUS_BUF_LEN]; > + > + debugfs_read_crtc("i915_drrs_status", buf); > + igt_info("DRRS STATUS :\n%s\n", buf); > } > > -static struct fb_region *pick_target(const struct test_mode *t, > - struct modeset_params *params) > +static struct timespec fbc_get_last_action(void) > { > - if (!params) > - return &offscreen_fb; > + struct timespec ret = { 0, 0 }; > + char buf[128]; > + char *action; > + ssize_t n_read; > > - switch (t->plane) { > - case PLANE_PRI: > - return ¶ms->primary; > - case PLANE_CUR: > - return ¶ms->cursor; > - case PLANE_SPR: > - return ¶ms->sprite; > - default: > - igt_assert(false); > - } > + > + debugfs_read_crtc("i915_fbc_status", buf); > + action = strstr(buf, "\nLast action:"); > + igt_assert(action); > + > + n_read = sscanf(action, "Last action: %ld.%ld", > + &ret.tv_sec, &ret.tv_nsec); > + igt_assert(n_read == 2); > + > + return ret; > } > > -static void do_flush(const struct test_mode *t) > +static bool fbc_last_action_changed(void) > { > - struct modeset_params *params = pick_params(t); > - struct fb_region *target = pick_target(t, params); > + struct timespec t_new, t_old; > > - if (is_i915_device(drm.fd)) > - gem_set_domain(drm.fd, target->fb->gem_handle, I915_GEM_DOMAIN_GTT, 0); > -} > + t_old = fbc.last_action; > + t_new = fbc_get_last_action(); > > -#define DONT_ASSERT_CRC (1 << 0) > -#define DONT_ASSERT_FEATURE_STATUS (1 << 1) > -#define DONT_ASSERT_FBC_STATUS (1 << 12) > + fbc.last_action = t_new; > > -#define FBC_ASSERT_FLAGS (0xF << 2) > -#define ASSERT_FBC_ENABLED (1 << 2) > -#define ASSERT_FBC_DISABLED (1 << 3) > -#define ASSERT_LAST_ACTION_CHANGED (1 << 4) > -#define ASSERT_NO_ACTION_CHANGE (1 << 5) > +#if 0 > + igt_info("old: %ld.%ld\n", t_old.tv_sec, t_old.tv_nsec); > + igt_info("new: %ld.%ld\n", t_new.tv_sec, t_new.tv_nsec); > +#endif > > -#define PSR_ASSERT_FLAGS (3 << 6) > -#define ASSERT_PSR_ENABLED (1 << 6) > -#define ASSERT_PSR_DISABLED (1 << 7) > + return t_old.tv_sec != t_new.tv_sec || > + t_old.tv_nsec != t_new.tv_nsec; > +} > > -#define DRRS_ASSERT_FLAGS (7 << 8) > -#define ASSERT_DRRS_HIGH (1 << 8) > -#define ASSERT_DRRS_LOW (1 << 9) > -#define ASSERT_DRRS_INACTIVE (1 << 10) > +static void fbc_update_last_action(void) > +{ > + if (!fbc.supports_last_action) > + return; > + > + fbc.last_action = fbc_get_last_action(); > > -#define ASSERT_NO_IDLE_GPU (1 << 11) > +#if 0 > + igt_info("Last action: %ld.%ld\n", > + fbc.last_action.tv_sec, fbc.last_action.tv_nsec); > +#endif > +} > > -static int adjust_assertion_flags(const struct test_mode *t, int flags) > +static void fbc_setup_last_action(void) > { > - if (!(flags & DONT_ASSERT_FEATURE_STATUS)) { > - if (!(flags & ASSERT_FBC_DISABLED)) > - flags |= ASSERT_FBC_ENABLED; > - if (!(flags & ASSERT_PSR_DISABLED)) > - flags |= ASSERT_PSR_ENABLED; > - if (!((flags & ASSERT_DRRS_LOW) || > - (flags & ASSERT_DRRS_INACTIVE))) > - flags |= ASSERT_DRRS_HIGH; > + ssize_t n_read; > + char buf[128]; > + char *action; > + > + > + debugfs_read_crtc("i915_fbc_status", buf); > + action = strstr(buf, "\nLast action:"); > + if (!action) { > + igt_info("FBC last action not supported\n"); > + return; > } > > - if ((t->feature & FEATURE_FBC) == 0 || (flags & DONT_ASSERT_FBC_STATUS)) > - flags &= ~FBC_ASSERT_FLAGS; > - if ((t->feature & FEATURE_PSR) == 0) > - flags &= ~PSR_ASSERT_FLAGS; > - if ((t->feature & FEATURE_DRRS) == 0) > - flags &= ~DRRS_ASSERT_FLAGS; > + fbc.supports_last_action = true; > > - return flags; > + n_read = sscanf(action, "Last action: %ld.%ld", > + &fbc.last_action.tv_sec, &fbc.last_action.tv_nsec); > + igt_assert(n_read == 2); > } > > -static void do_crc_assertions(int flags) > +static bool fbc_is_compressing(void) > { > - igt_crc_t crc; > - > - if (!opt.check_crc || (flags & DONT_ASSERT_CRC)) > - return; > + char buf[128]; > > - collect_crc(&crc); > - print_crc("Calculated CRC:", &crc); > + debugfs_read_crtc("i915_fbc_status", buf); > + return strstr(buf, "\nCompressing: yes\n") != NULL; > +} > > - igt_assert(wanted_crc); > - igt_assert_crc_equal(&crc, wanted_crc); > +static bool fbc_wait_for_compression(void) > +{ > + return igt_wait(fbc_is_compressing(), 2000, 1); > } > > -static void do_status_assertions(int flags) > +static bool fbc_not_enough_stolen(void) > { > - if (!opt.check_status) { > - /* Make sure we settle before continuing. */ > - sleep(1); > - return; > - } > + char buf[128]; > > - if (flags & ASSERT_DRRS_HIGH) { > - if (!is_drrs_high()) { > - drrs_print_status(); > - igt_assert_f(false, "DRRS HIGH\n"); > - } > - } else if (flags & ASSERT_DRRS_LOW) { > - if (!drrs_wait_until_rr_switch_to_low()) { > - drrs_print_status(); > - igt_assert_f(false, "DRRS LOW\n"); > - } > - } else if (flags & ASSERT_DRRS_INACTIVE) { > - if (!intel_is_drrs_inactive(drm.fd, prim_mode_params.pipe)) { > - drrs_print_status(); > - igt_assert_f(false, "DRRS INACTIVE\n"); > - } > - } > + debugfs_read_crtc("i915_fbc_status", buf); > + return strstr(buf, "FBC disabled: not enough stolen memory\n"); > +} > > - if (flags & ASSERT_FBC_ENABLED) { > - igt_require(!fbc_not_enough_stolen()); > - igt_require(!fbc_stride_not_supported()); > - igt_require(!fbc_mode_too_large()); > - if (!intel_fbc_wait_until_enabled(drm.fd, prim_mode_params.pipe)) { > - igt_assert_f(intel_fbc_is_enabled(drm.fd, > - prim_mode_params.pipe, > - IGT_LOG_WARN), > - "FBC disabled\n"); > - } > +static bool fbc_stride_not_supported(void) > +{ > + char buf[128]; > > - if (opt.fbc_check_compression) > - igt_assert(fbc_wait_for_compression()); > - } else if (flags & ASSERT_FBC_DISABLED) { > - igt_assert(!intel_fbc_wait_until_enabled(drm.fd, > - prim_mode_params.pipe)); > - } > + debugfs_read_crtc("i915_fbc_status", buf); > + return strstr(buf, "FBC disabled: framebuffer stride not supported\n"); > +} > > - if (flags & ASSERT_PSR_ENABLED) > - igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1, NULL), > - "PSR still disabled\n"); > - else if (flags & ASSERT_PSR_DISABLED) > - igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1, NULL), > - "PSR still enabled\n"); > +static bool fbc_mode_too_large(void) > +{ > + char buf[128]; > + > + debugfs_read_crtc("i915_fbc_status", buf); > + return strstr(buf, "FBC disabled: mode too large for compression\n"); > } > > -static void __do_assertions(const struct test_mode *t, int flags, > - int line) > +static bool fbc_enable_per_plane(int plane_index, enum pipe pipe) > { > - flags = adjust_assertion_flags(t, flags); > + char buf[PATH_MAX]; > + char buf_plane[128]; > > - /* Make sure any submitted rendering is now idle. */ > - if (!(flags & ASSERT_NO_IDLE_GPU)) > - gem_quiescent_gpu(drm.fd); > + sprintf(buf_plane, "%d%s", plane_index, kmstest_pipe_name(pipe)); > > - igt_debug("checking asserts in line %i\n", line); > + debugfs_read_crtc("i915_fbc_status", buf); > + return strstr(strstr(buf, "*"), buf_plane); > +} > > - wait_user(2, "Paused before assertions."); > +static bool drrs_wait_until_rr_switch_to_low(void) > +{ > + return igt_wait(is_drrs_low(), 5000, 1); > +} > > - /* Check the CRC to make sure the drawing operations work > - * immediately, independently of the features being enabled. */ > - do_crc_assertions(flags); > +static struct rect pat1_get_rect(struct fb_region *fb, int r) > +{ > + struct rect rect; > > - /* Now we can flush things to make the test faster. */ > - do_flush(t); > + switch (r) { > + case 0: > + rect.x = 0; > + rect.y = 0; > + rect.w = fb->w / 8; > + rect.h = fb->h / 8; > + rect.color = pick_color(fb->fb, COLOR_GREEN); > + break; > + case 1: > + rect.x = fb->w / 8 * 4; > + rect.y = fb->h / 8 * 4; > + rect.w = fb->w / 8 * 2; > + rect.h = fb->h / 8 * 2; > + rect.color = pick_color(fb->fb, COLOR_RED); > + break; > + case 2: > + rect.x = fb->w / 16 + 1; > + rect.y = fb->h / 16 + 1; > + rect.w = fb->w / 8 + 1; > + rect.h = fb->h / 8 + 1; > + rect.color = pick_color(fb->fb, COLOR_MAGENTA); > + break; > + case 3: > + rect.x = fb->w - 1; > + rect.y = fb->h - 1; > + rect.w = 1; > + rect.h = 1; > + rect.color = pick_color(fb->fb, COLOR_CYAN); > + break; > + default: > + igt_assert(false); > + } > > - do_status_assertions(flags); > + return rect; > +} > > - /* Check CRC again to make sure the compressed screen is ok, > - * except if we're not drawing on the primary screen. On this > - * case, the first check should be enough and a new CRC check > - * would only delay the test suite while adding no value to the > - * test suite. */ > - if (t->screen == SCREEN_PRIM) > - do_crc_assertions(flags); > +static struct rect pat2_get_rect(struct fb_region *fb, int r) > +{ > + struct rect rect; > > - if (fbc.supports_last_action && opt.fbc_check_last_action) { > - if (flags & ASSERT_LAST_ACTION_CHANGED) > - igt_assert(fbc_last_action_changed()); > - else if (flags & ASSERT_NO_ACTION_CHANGE) > - igt_assert(!fbc_last_action_changed()); > + rect.x = 0; > + rect.y = 0; > + rect.w = 64; > + rect.h = 64; > + > + switch (r) { > + case 0: > + rect.color = pick_color(fb->fb, COLOR_GREEN); > + break; > + case 1: > + rect.x = 31; > + rect.y = 31; > + rect.w = 31; > + rect.h = 31; > + rect.color = pick_color(fb->fb, COLOR_RED); > + break; > + case 2: > + rect.x = 16; > + rect.y = 16; > + rect.w = 32; > + rect.h = 32; > + rect.color = pick_color(fb->fb, COLOR_MAGENTA); > + break; > + case 3: > + rect.color = pick_color(fb->fb, COLOR_CYAN); > + break; > + default: > + igt_assert(false); > } > > - wait_user(1, "Paused after assertions."); > + return rect; > } > > -#define do_assertions(__flags) __do_assertions(t, (__flags), __LINE__) > - > -static void enable_prim_screen_and_wait(const struct test_mode *t) > +static struct rect pat3_get_rect(struct fb_region *fb, int r) > { > - fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); > - set_mode_for_params(&prim_mode_params); > + struct rect rect; > > - wanted_crc = &blue_crcs[t->format].crc; > - fbc_update_last_action(); > + rect.w = 64; > + rect.h = 64; > + rect.color = pick_color(fb->fb, COLOR_GREEN); > + > + switch (r) { > + case 0: > + rect.x = 0; > + rect.y = 0; > + break; > + case 1: > + rect.x = 64; > + rect.y = 64; > + break; > + case 2: > + rect.x = 1; > + rect.y = 1; > + break; > + case 3: > + rect.x = fb->w - 64; > + rect.y = fb->h - 64; > + break; > + case 4: > + rect.x = fb->w / 2 - 32; > + rect.y = fb->h / 2 - 32; > + break; > + default: > + igt_assert(false); > + } > > - do_assertions(ASSERT_NO_ACTION_CHANGE); > + return rect; > } > > -static void update_modeset_cached_params(enum igt_draw_method method) > +static struct rect pat4_get_rect(struct fb_region *fb, int r) > { > - bool found = false; > - > - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > - igt_output_set_pipe(scnd_mode_params.output, scnd_mode_params.pipe); > - > - found = igt_override_all_active_output_modes_to_fit_bw(&drm.display); > - igt_require_f(found, "No valid mode combo found.\n"); > - > - prim_mode_params.mode = *igt_output_get_mode(prim_mode_params.output); > - prim_mode_params.primary.w = prim_mode_params.mode.hdisplay; > - prim_mode_params.primary.h = prim_mode_params.mode.vdisplay; > + struct rect rect; > > - scnd_mode_params.mode = *igt_output_get_mode(scnd_mode_params.output); > - scnd_mode_params.primary.w = scnd_mode_params.mode.hdisplay; > - scnd_mode_params.primary.h = scnd_mode_params.mode.vdisplay; > + igt_assert_eq(r, 0); > > - fill_fb_region(&prim_mode_params.primary, method, COLOR_PRIM_BG); > - fill_fb_region(&scnd_mode_params.primary, method, COLOR_SCND_BG); > + rect.x = 0; > + rect.y = 0; > + rect.w = fb->w; > + rect.h = fb->h; > + rect.color = pick_color(fb->fb, COLOR_GREEN); > > - __set_mode_for_params(&prim_mode_params); > - __set_mode_for_params(&scnd_mode_params); > + return rect; > } > > -static void enable_both_screens_and_wait(const struct test_mode *t) > +static void fb_dirty_ioctl(struct fb_region *fb, struct rect *rect) > { > - int ret; > - > - fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); > - fill_fb_region(&scnd_mode_params.primary, t->method, COLOR_SCND_BG); > - > - __set_mode_for_params(&prim_mode_params); > - __set_mode_for_params(&scnd_mode_params); > + int rc; > + drmModeClip clip = { > + .x1 = rect->x, > + .x2 = rect->x + rect->w, > + .y1 = rect->y, > + .y2 = rect->y + rect->h, > + }; > > - if (drm.display.is_atomic) > - ret = igt_display_try_commit_atomic(&drm.display, > - DRM_MODE_ATOMIC_TEST_ONLY | > - DRM_MODE_ATOMIC_ALLOW_MODESET, > - NULL); > - else > - ret = igt_display_try_commit2(&drm.display, COMMIT_LEGACY); > + rc = drmModeDirtyFB(drm.fd, fb->fb->fb_id, &clip, 1); > > - if (ret) > - update_modeset_cached_params(t->method); > + igt_assert(rc == 0 || rc == -ENOSYS); > +} > > - igt_display_commit2(&drm.display, drm.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); > +static void draw_rect(struct draw_pattern_info *pattern, struct fb_region *fb, > + enum igt_draw_method method, int r) > +{ > + struct rect rect = pattern->get_rect(fb, r); > > - wanted_crc = &blue_crcs[t->format].crc; > - fbc_update_last_action(); > + igt_draw_rect_fb(drm.fd, drm.bops, 0, fb->fb, method, > + fb->x + rect.x, fb->y + rect.y, > + rect.w, rect.h, rect.color); > > - do_assertions(ASSERT_NO_ACTION_CHANGE); > + fb_dirty_ioctl(fb, &rect); > } > > -static void set_region_for_test(const struct test_mode *t, > - struct fb_region *reg) > +static void draw_rect_igt_fb(struct draw_pattern_info *pattern, > + struct igt_fb *fb, enum igt_draw_method method, > + int r) > { > - fill_fb_region(reg, t->method, COLOR_PRIM_BG); > - > - igt_plane_set_fb(reg->plane, reg->fb); > - igt_plane_set_position(reg->plane, 0, 0); > - igt_plane_set_size(reg->plane, reg->w, reg->h); > - igt_fb_set_size(reg->fb, reg->plane, reg->w, reg->h); > + struct fb_region region = { > + .fb = fb, > + .x = 0, > + .y = 0, > + .w = fb->width, > + .h = fb->height, > + }; > > - igt_display_commit(&drm.display); > - do_assertions(ASSERT_NO_ACTION_CHANGE); > + draw_rect(pattern, ®ion, method, r); > } > > -static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane) > +static void fill_fb_region(struct fb_region *region, > + enum igt_draw_method method, > + enum color ecolor) > { > - struct igt_fb fb; > - uint32_t color; > - > - igt_info("Testing fbc on plane %i%s\n", plane->index + 1, kmstest_pipe_name(prim_mode_params.pipe)); > + uint32_t color = pick_color(region->fb, ecolor); > > - create_fb(t->format, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay, t->tiling, t->plane, &fb); > - color = pick_color(&fb, COLOR_PRIM_BG); > - igt_draw_rect_fb(drm.fd, drm.bops, 0, &fb, t->method, > - 0, 0, fb.width, fb.height, > + igt_draw_rect_fb(drm.fd, drm.bops, 0, region->fb, method, > + region->x, region->y, region->w, region->h, > color); > +} > > - igt_plane_set_fb(plane, &fb); > - igt_plane_set_position(plane, 0, 0); > - igt_plane_set_size(plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); > - igt_fb_set_size(&fb, plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); > - igt_display_commit_atomic(&drm.display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); > - > - fbc_update_last_action(); > - do_assertions(ASSERT_FBC_ENABLED | ASSERT_NO_ACTION_CHANGE); > - igt_assert_f(fbc_enable_per_plane(plane->index + 1, prim_mode_params.pipe), "FBC disabled\n"); > +static void _fb_dirty_ioctl(struct fb_region *region) > +{ > + struct rect rect; > > - igt_remove_fb(drm.fd, &fb); > - igt_plane_set_fb(plane, NULL); > - igt_display_commit2(&drm.display, COMMIT_ATOMIC); > + rect.x = region->x; > + rect.y = region->y; > + rect.w = region->w; > + rect.h = region->h; > + fb_dirty_ioctl(region, &rect); > } > > -static bool enable_features_for_test(const struct test_mode *t) > +static void unset_all_crtcs(void) > { > - bool ret = false; > + igt_display_reset(&drm.display); > + igt_display_commit(&drm.display); > +} > > +static bool disable_features(const struct test_mode *t) > +{ > if (t->feature == FEATURE_DEFAULT) > return false; > > - if (t->feature & FEATURE_FBC) > - intel_fbc_enable(drm.fd); > - if (t->feature & FEATURE_PSR) > - ret = psr_enable(drm.fd, drm.debugfs, PSR_MODE_1); > - if (t->feature & FEATURE_DRRS) > - intel_drrs_enable(drm.fd, prim_mode_params.pipe); > + intel_fbc_disable(drm.fd); > + intel_drrs_disable(drm.fd, prim_mode_params.pipe); > > - return ret; > + return psr.can_test ? psr_disable(drm.fd, drm.debugfs) : false; > } > > -static void check_test_requirements(const struct test_mode *t) > +static void *busy_thread_func(void *data) > { > - int ver; > - > - if (t->pipes == PIPE_DUAL) > - igt_require_f(scnd_mode_params.output, > - "Can't test dual pipes with the current outputs\n"); > - > - if (t->feature & FEATURE_FBC) > - igt_require_f(fbc.can_test, > - "Can't test FBC with this chipset\n"); > - > - if (t->feature & FEATURE_PSR) { > - igt_require_f(psr.can_test, > - "Can't test PSR with the current outputs\n"); > - } > - > - if (t->feature & FEATURE_DRRS) > - igt_require_f(drrs.can_test, > - "Can't test DRRS with the current outputs\n"); > - > - /* > - * In kernel, When PSR is enabled, DRRS will be disabled. So If a test > - * case needs DRRS + PSR enabled, that will be skipped. > - */ > - igt_require_f(!((t->feature & FEATURE_PSR) && > - (t->feature & FEATURE_DRRS)), > - "Can't test PSR and DRRS together\n"); > - > - if (opt.only_pipes != PIPE_COUNT) > - igt_require(t->pipes == opt.only_pipes); > - > - /* Kernel disables fbc for display versions 12 and 13 if psr is enabled. */ > - ver = intel_display_ver(intel_get_drm_devid(drm.fd)); > - if (ver >= 12 && ver <= 13) > - igt_require_f(!((t->feature & FEATURE_PSR) && > - (t->feature & FEATURE_FBC)), > - "Can't test PSR and FBC together\n"); > + while (!busy_thread.stop) > + igt_draw_rect(drm.fd, drm.bops, 0, busy_thread.handle, > + busy_thread.size, busy_thread.stride, > + busy_thread.tiling, IGT_DRAW_BLT, 0, 0, > + busy_thread.width, busy_thread.height, > + busy_thread.color, busy_thread.bpp); > > + pthread_exit(0); > } > > -static void set_crtc_fbs(const struct test_mode *t) > +static void start_busy_thread(struct igt_fb *fb) > { > - struct screen_fbs *s = &fbs[t->format]; > + int rc; > > - create_fbs(t->format, t->tiling); > + igt_assert(busy_thread.stop == true); > + busy_thread.stop = false; > + busy_thread.handle = fb->gem_handle; > + busy_thread.size = fb->size; > + busy_thread.stride = fb->strides[0]; > + busy_thread.width = fb->width; > + busy_thread.height = fb->height; > + busy_thread.color = pick_color(fb, COLOR_PRIM_BG); > + busy_thread.bpp = igt_drm_format_to_bpp(fb->drm_format); > + busy_thread.tiling = igt_fb_mod_to_tiling(fb->modifier); > > - switch (t->fbs) { > - case FBS_INDIVIDUAL: > - prim_mode_params.primary.fb = &s->prim_pri; > - scnd_mode_params.primary.fb = &s->scnd_pri; > - offscreen_fb.fb = &s->offscreen; > + rc = pthread_create(&busy_thread.thread, NULL, busy_thread_func, NULL); > + igt_assert_eq(rc, 0); > +} > > - prim_mode_params.primary.x = 0; > - scnd_mode_params.primary.x = 0; > - offscreen_fb.x = 0; > +static void stop_busy_thread(void) > +{ > + if (!busy_thread.stop) { > + busy_thread.stop = true; > + igt_assert(pthread_join(busy_thread.thread, NULL) == 0); > + } > +} > > - prim_mode_params.primary.y = 0; > - scnd_mode_params.primary.y = 0; > - offscreen_fb.y = 0; > - break; > - case FBS_SHARED: > - /* Please see the comment at the top of create_shared_fb(). */ > - prim_mode_params.primary.fb = &s->big; > - scnd_mode_params.primary.fb = &s->big; > - offscreen_fb.fb = &s->big; > +static void print_crc(const char *str, igt_crc_t *crc) > +{ > + char *pipe_str; > > - prim_mode_params.primary.x = opt.shared_fb_x_offset; > - scnd_mode_params.primary.x = opt.shared_fb_x_offset; > - offscreen_fb.x = opt.shared_fb_x_offset; > + pipe_str = igt_crc_to_string(crc); > > - prim_mode_params.primary.y = opt.shared_fb_y_offset; > - scnd_mode_params.primary.y = prim_mode_params.primary.y + > - prim_mode_params.primary.h; > - offscreen_fb.y = scnd_mode_params.primary.y + scnd_mode_params.primary.h; > - break; > - default: > - igt_assert(false); > - } > + igt_debug("%s pipe:[%s]\n", str, pipe_str); > > - prim_mode_params.cursor.fb = &s->prim_cur; > - prim_mode_params.sprite.fb = &s->prim_spr; > - scnd_mode_params.cursor.fb = &s->scnd_cur; > - scnd_mode_params.sprite.fb = &s->scnd_spr; > + free(pipe_str); > } > > -static void prepare_subtest_data(const struct test_mode *t, > - struct draw_pattern_info *pattern) > +static void collect_crc(igt_crc_t *crc) > { > - bool need_modeset; > + igt_pipe_crc_collect_crc(pipe_crc, crc); > +} > > - check_test_requirements(t); > +static void init_blue_crc(enum pixel_format format, enum tiling_type tiling) > +{ > + struct igt_fb blue; > > - stop_busy_thread(); > + if (blue_crcs[format].initialized) > + return; > > - need_modeset = disable_features(t); > - set_crtc_fbs(t); > + create_fb(format, prim_mode_params.mode.hdisplay, > + prim_mode_params.mode.vdisplay, tiling, PLANE_PRI, > + &blue); > > - if (t->screen == SCREEN_OFFSCREEN) > - fill_fb_region(&offscreen_fb, t->method, COLOR_OFFSCREEN_BG); > + fill_fb(&blue, COLOR_PRIM_BG); > > - igt_display_reset(&drm.display); > - if (need_modeset) > - igt_display_commit(&drm.display); > + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > + igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); > + igt_plane_set_fb(prim_mode_params.primary.plane, &blue); > + igt_display_commit(&drm.display); > > - init_blue_crc(t->format, t->tiling); > - if (pattern) > - init_crcs(t->format, t->tiling, pattern); > + if (!pipe_crc) { > + pipe_crc = igt_pipe_crc_new(drm.fd, prim_mode_params.pipe, > + IGT_PIPE_CRC_SOURCE_AUTO); > + igt_assert(pipe_crc); > + } > > - need_modeset = enable_features_for_test(t); > - if (need_modeset) > - igt_display_commit(&drm.display); > -} > + collect_crc(&blue_crcs[format].crc); > > -static void prepare_subtest_screens(const struct test_mode *t) > -{ > - if (t->pipes == PIPE_DUAL) > - enable_both_screens_and_wait(t); > - else > - enable_prim_screen_and_wait(t); > + print_crc("Blue CRC: ", &blue_crcs[format].crc); > > - if (t->screen == SCREEN_PRIM) { > - if (t->plane == PLANE_CUR) > - set_region_for_test(t, &prim_mode_params.cursor); > - if (t->plane == PLANE_SPR) > - set_region_for_test(t, &prim_mode_params.sprite); > - } > + igt_display_reset(&drm.display); > > - if (t->pipes == PIPE_DUAL && t->screen == SCREEN_SCND) { > - if (t->plane == PLANE_CUR) > - set_region_for_test(t, &scnd_mode_params.cursor); > - if (t->plane == PLANE_SPR) > - set_region_for_test(t, &scnd_mode_params.sprite); > - } > -} > + igt_remove_fb(drm.fd, &blue); > > -static void prepare_subtest(const struct test_mode *t, > - struct draw_pattern_info *pattern) > -{ > - prepare_subtest_data(t, pattern); > - prepare_subtest_screens(t); > + blue_crcs[format].initialized = true; > } > > -/** > - * SUBTEST: drrs-%dp-rte > - * Description: Sanity test to enable DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > - * Functionality: fbt, drrs > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-rte > - * Description: Sanity test to enable FBC with %arg[1] panels. > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-rte > - * Description: Sanity test to enable PSR with %arg[1] panels. > - * Driver requirement: i915, xe > - * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-rte > - * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-rte > - * Description: Sanity test to enable FBC & PSR with %arg[1] panels. > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-rte > - * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > - * Functionality: fbt, drrs, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-rte > - * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, drrs, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - */ > - > -/* > - * rte - the basic sanity test > - * > - * METHOD > - * Just disable all screens, assert everything is disabled, then enable all > - * screens - including primary, cursor and sprite planes - and assert that > - * the tested feature is enabled. > - * > - * EXPECTED RESULTS > - * Blue screens and t->feature enabled. > - * > - * FAILURES > - * A failure here means that every other subtest will probably fail too. It > - * probably means that the Kernel is just not enabling the feature we want. > - */ > -static void rte_subtest(const struct test_mode *t) > +static void init_crcs(enum pixel_format format, enum tiling_type tiling, > + struct draw_pattern_info *pattern) > { > - prepare_subtest_data(t, NULL); > + int r, r_; > + struct igt_fb tmp_fbs[pattern->n_rects]; > > - unset_all_crtcs(); > - do_assertions(ASSERT_FBC_DISABLED | ASSERT_PSR_DISABLED | > - DONT_ASSERT_CRC | ASSERT_DRRS_INACTIVE); > + if (pattern->initialized[format]) > + return; > > - if (t->pipes == PIPE_SINGLE) > - enable_prim_screen_and_wait(t); > - else > - enable_both_screens_and_wait(t); > + pattern->crcs[format] = calloc(pattern->n_rects, > + sizeof(*(pattern->crcs[format]))); > > - set_region_for_test(t, &prim_mode_params.cursor); > - set_region_for_test(t, &prim_mode_params.sprite); > + for (r = 0; r < pattern->n_rects; r++) > + create_fb(format, prim_mode_params.mode.hdisplay, > + prim_mode_params.mode.vdisplay, tiling, > + PLANE_PRI, &tmp_fbs[r]); > > - if (t->pipes == PIPE_DUAL) { > - set_region_for_test(t, &scnd_mode_params.cursor); > - set_region_for_test(t, &scnd_mode_params.sprite); > + for (r = 0; r < pattern->n_rects; r++) > + fill_fb(&tmp_fbs[r], COLOR_PRIM_BG); > + > + if (pattern->frames_stack) { > + for (r = 0; r < pattern->n_rects; r++) > + for (r_ = 0; r_ <= r; r_++) > + draw_rect_igt_fb(pattern, &tmp_fbs[r], > + igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? > + IGT_DRAW_PWRITE : IGT_DRAW_BLT, > + r_); > + } else { > + for (r = 0; r < pattern->n_rects; r++) > + draw_rect_igt_fb(pattern, &tmp_fbs[r], igt_draw_supports_method(drm.fd, IGT_DRAW_PWRITE) ? > + IGT_DRAW_PWRITE : IGT_DRAW_BLT, r); > } > -} > > -static bool is_valid_plane(igt_plane_t *plane) > -{ > - int index = plane->index; > + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > + igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); > + for (r = 0; r < pattern->n_rects; r++) { > + igt_plane_set_fb(prim_mode_params.primary.plane, &tmp_fbs[r]); > + igt_display_commit(&drm.display); > > - if (plane->type == DRM_PLANE_TYPE_CURSOR) > - return false; > - /* > - * Execute test only on first three planes > - */ > - return ((index >= 0) && (index < 3)); > -} > + collect_crc(&pattern->crcs[format][r]); > + } > > -/** > - * plane-fbc-rte - the basic sanity test > - * > - * METHOD > - * Just disable primary screen, assert everything is disabled, then enable single > - * screens and single plane one by one and assert that the tested fbc is enabled > - * for the particular plane. > - * > - * EXPECTED RESULTS > - * Blue screens and t->feature enabled. > - * > - * FAILURES > - * A failure here means that fbc is not getting enabled for requested plane. It means > - * kernel is not able to enable fbc on the requested plane. > - */ > + for (r = 0; r < pattern->n_rects; r++) { > + igt_debug("Rect %d CRC:", r); > + print_crc("", &pattern->crcs[format][r]); > + } > > -static void plane_fbc_rte_subtest(const struct test_mode *t) > -{ > - int ver; > - igt_plane_t *plane; > + igt_display_reset(&drm.display); > > - ver = intel_display_ver(intel_get_drm_devid(drm.fd)); > - igt_require_f((ver >= 20), "Can't test fbc for each plane\n"); > + for (r = 0; r < pattern->n_rects; r++) > + igt_remove_fb(drm.fd, &tmp_fbs[r]); > > - prepare_subtest_data(t, NULL); > - unset_all_crtcs(); > - do_assertions(ASSERT_FBC_DISABLED | DONT_ASSERT_CRC); > + pattern->initialized[format] = true; > +} > > - igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); > - igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > +static void setup_drm(void) > +{ > + drm.fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE); > + drm.debugfs = igt_debugfs_dir(drm.fd); > > - wanted_crc = &blue_crcs[t->format].crc; > + kmstest_set_vt_graphics_mode(); > + igt_display_require(&drm.display, drm.fd); > > - for_each_plane_on_pipe(&drm.display, prim_mode_params.pipe, plane) { > - if (!is_valid_plane(plane)) > - continue; > + drm.bops = buf_ops_create(drm.fd); > +} > > - set_plane_for_test_fbc(t, plane); > - } > +static void teardown_drm(void) > +{ > + buf_ops_destroy(drm.bops); > + igt_display_fini(&drm.display); > + drm_close_driver(drm.fd); > +} > > - igt_display_reset(&drm.display); > +static void setup_modeset(void) > +{ > + igt_require(init_modeset_cached_params()); > + offscreen_fb.fb = NULL; > + offscreen_fb.w = 1024; > + offscreen_fb.h = 1024; > + create_fbs(FORMAT_DEFAULT, opt.tiling); > } > > -static void update_wanted_crc(const struct test_mode *t, igt_crc_t *crc) > +static void teardown_modeset(void) > { > - if (t->screen == SCREEN_PRIM) > - wanted_crc = crc; > + enum pixel_format f; > + > + for (f = 0; f < FORMAT_COUNT; f++) > + destroy_fbs(f); > } > > -static bool op_disables_psr(const struct test_mode *t, > - enum igt_draw_method method) > +static void setup_crcs(void) > { > - if (method != IGT_DRAW_MMAP_GTT) > - return false; > - if (t->screen == SCREEN_PRIM) > - return true; > - /* On FBS_SHARED, even if the target is not the PSR screen > - * (SCREEN_PRIM), all primary planes share the same frontbuffer, so a > - * write to the second screen primary plane - or offscreen plane - will > - * touch the framebuffer that's also used by the primary screen. */ > - if (t->fbs == FBS_SHARED && t->plane == PLANE_PRI) > - return true; > + enum pixel_format f; > > - return false; > -} > + for (f = 0; f < FORMAT_COUNT; f++) > + blue_crcs[f].initialized = false; > > -/** > - * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @indfb: Individual fb > - * @shrfb: Shared fb > - * > - * arg[2]: > - * > - * @blt: Blitter > - * @mmap-wc: MMAP-WC > - * @render: Render > - */ > + pattern1.frames_stack = true; > + pattern1.n_rects = 4; > + pattern1.get_rect = pat1_get_rect; > + for (f = 0; f < FORMAT_COUNT; f++) { > + pattern1.initialized[f] = false; > + pattern1.crcs[f] = NULL; > + } > > -/** > - * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @indfb: Individual fb > - * @shrfb: Shared fb > - * > - * arg[2]: > - * > - * @mmap-cpu: MMAP-CPU > - * @mmap-gtt: MMAP-GTT > - * @pwrite: PWRITE > - */ > + pattern2.frames_stack = true; > + pattern2.n_rects = 4; > + pattern2.get_rect = pat2_get_rect; > + for (f = 0; f < FORMAT_COUNT; f++) { > + pattern2.initialized[f] = false; > + pattern2.crcs[f] = NULL; > + } > > -/** > - * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - * > - * arg[2]: > - * > - * @cur: Cursor plane > - * @pri: Primary plane > - * @spr: Sprite plane > - * > - * arg[3]: > - * > - * @mmap-cpu: MMAP-CPU > - * @mmap-gtt: MMAP-GTT > - * @pwrite: PWRITE > - */ > + pattern3.frames_stack = false; > + pattern3.n_rects = 5; > + pattern3.get_rect = pat3_get_rect; > + for (f = 0; f < FORMAT_COUNT; f++) { > + pattern3.initialized[f] = false; > + pattern3.crcs[f] = NULL; > + } > + > + pattern4.frames_stack = false; > + pattern4.n_rects = 1; > + pattern4.get_rect = pat4_get_rect; > + for (f = 0; f < FORMAT_COUNT; f++) { > + pattern4.initialized[f] = false; > + pattern4.crcs[f] = NULL; > + } > +} > + > +static void teardown_crcs(void) > +{ > + enum pixel_format f; > + > + for (f = 0; f < FORMAT_COUNT; f++) { > + if (pattern1.crcs[f]) > + free(pattern1.crcs[f]); > + if (pattern2.crcs[f]) > + free(pattern2.crcs[f]); > + if (pattern3.crcs[f]) > + free(pattern3.crcs[f]); > + if (pattern4.crcs[f]) > + free(pattern4.crcs[f]); > + } > > -/** > - * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - * > - * arg[2]: > - * > - * @cur: Cursor plane > - * @pri: Primary plane > - * @spr: Sprite plane > - * > - * arg[3]: > - * > - * @blt: Blitter > - * @mmap-wc: MMAP-WC > - * @render: Render > - */ > + igt_pipe_crc_free(pipe_crc); > +} > > -/** > - * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - * > - * arg[2]: > - * > - * @blt: Blitter > - * @mmap-wc: MMAP-WC > - * @render: Render > - */ > +static void setup_fbc(void) > +{ > + if (!intel_fbc_supported_on_chipset(drm.fd, prim_mode_params.pipe)) { > + igt_info("Can't test FBC: not supported on this chipset\n"); > + return; > + } > > -/** > - * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - * > - * arg[2]: > - * > - * @mmap-cpu: MMAP-CPU > - * @mmap-gtt: MMAP-GTT > - * @pwrite: PWRITE > - */ > + fbc.can_test = true; > > -/** > - * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @cur: Cursor plane > - * @pri: Primary plane > - * @spr: Sprite plane > - * > - * arg[2]: > - * > - * @blt: Blitter > - * @mmap-wc: MMAP-WC > - * @render: Render > - */ > + fbc_setup_last_action(); > +} > > -/** > - * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @cur: Cursor plane > - * @pri: Primary plane > - * @spr: Sprite plane > - * > - * arg[2]: > - * > - * @mmap-cpu: MMAP-CPU > - * @mmap-gtt: MMAP-GTT > - * @pwrite: PWRITE > - */ > +static void teardown_fbc(void) > +{ > +} > > -/** > - * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @blt: Blitter > - * @mmap-wc: MMAP-WC > - * @render: Render > - */ > +static void setup_psr(void) > +{ > + if (prim_mode_params.output->config.connector->connector_type != > + DRM_MODE_CONNECTOR_eDP) { > + igt_info("Can't test PSR: no usable eDP screen.\n"); > + return; > + } > > -/** > - * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s > - * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @mmap-cpu: MMAP-CPU > - * @mmap-gtt: MMAP-GTT > - * @pwrite: PWRITE > - */ > + if (!psr_sink_support(drm.fd, drm.debugfs, PSR_MODE_1, NULL)) { > + igt_info("Can't test PSR: not supported by sink.\n"); > + return; > + } > + psr.can_test = true; > +} > > -/* > - * draw - draw a set of rectangles on the screen using the provided method > - * > - * METHOD > - * Just set the screens as appropriate and then start drawing a series of > - * rectangles on the target screen. The important guy here is the drawing > - * method used. > - * > - * EXPECTED RESULTS > - * The feature either stays enabled or gets reenabled after the oprations. You > - * will also see the rectangles on the target screen. > - * > - * FAILURES > - * A failure here indicates a problem somewhere between the Kernel's > - * frontbuffer tracking infrastructure or the feature itself. You need to pay > - * attention to which drawing method is being used. > - */ > -static void draw_subtest(const struct test_mode *t) > +static void teardown_psr(void) > { > - int r; > - int assertions = 0; > - struct draw_pattern_info *pattern; > - struct modeset_params *params = pick_params(t); > - struct fb_region *target; > +} > + > +static void setup_drrs(void) > +{ > + if (!intel_output_has_drrs(drm.fd, prim_mode_params.output)) { > + igt_info("Can't test DRRS: no usable screen.\n"); > + return; > + } > + > + if (!intel_is_drrs_supported(drm.fd, prim_mode_params.pipe)) { > + igt_info("Can't test DRRS: Not supported.\n"); > + return; > + } > + > + drrs.can_test = true; > +} > + > +static void setup_environment(void) > +{ > + setup_drm(); > + setup_modeset(); > + > + setup_fbc(); > + setup_psr(); > + setup_drrs(); > + > + setup_crcs(); > +} > + > +static void teardown_environment(void) > +{ > + stop_busy_thread(); > + > + teardown_crcs(); > + teardown_psr(); > + teardown_fbc(); > + teardown_modeset(); > + teardown_drm(); > +} > + > +static void wait_user(int step, const char *msg) > +{ > + if (opt.step < step) > + return; > + > + igt_info("%s Press enter...\n", msg); > + while (getchar() != '\n') > + ; > +} > > +static struct modeset_params *pick_params(const struct test_mode *t) > +{ > switch (t->screen) { > case SCREEN_PRIM: > - if (t->method != IGT_DRAW_MMAP_GTT && t->plane == PLANE_PRI) > - assertions |= ASSERT_LAST_ACTION_CHANGED; > - else > - assertions |= ASSERT_NO_ACTION_CHANGE; > - break; > + return &prim_mode_params; > case SCREEN_SCND: > + return &scnd_mode_params; > case SCREEN_OFFSCREEN: > - assertions |= ASSERT_NO_ACTION_CHANGE; > - break; > + return NULL; > default: > igt_assert(false); > } > +} > + > +static struct fb_region *pick_target(const struct test_mode *t, > + struct modeset_params *params) > +{ > + if (!params) > + return &offscreen_fb; > > switch (t->plane) { > case PLANE_PRI: > - pattern = &pattern1; > - break; > + return ¶ms->primary; > case PLANE_CUR: > + return ¶ms->cursor; > case PLANE_SPR: > - pattern = &pattern2; > - break; > + return ¶ms->sprite; > default: > igt_assert(false); > } > +} > > - if (op_disables_psr(t, t->method)) > - assertions |= ASSERT_PSR_DISABLED; > +static void do_flush(const struct test_mode *t) > +{ > + struct modeset_params *params = pick_params(t); > + struct fb_region *target = pick_target(t, params); > > - /* > - * On FBS_INDIVIDUAL, write to offscreen plane will not touch the > - * current frambuffer. Hence assert for DRRS_LOW. > - */ > - if ((t->fbs == FBS_INDIVIDUAL) && (t->screen == SCREEN_OFFSCREEN)) > - assertions |= ASSERT_DRRS_LOW; > + if (is_i915_device(drm.fd)) > + gem_set_domain(drm.fd, target->fb->gem_handle, I915_GEM_DOMAIN_GTT, 0); > +} > > - prepare_subtest(t, pattern); > - target = pick_target(t, params); > +#define DONT_ASSERT_CRC (1 << 0) > +#define DONT_ASSERT_FEATURE_STATUS (1 << 1) > +#define DONT_ASSERT_FBC_STATUS (1 << 12) > > - for (r = 0; r < pattern->n_rects; r++) { > - igt_debug("Drawing rect %d\n", r); > - draw_rect(pattern, target, t->method, r); > - update_wanted_crc(t, &pattern->crcs[t->format][r]); > - do_assertions(assertions); > +#define FBC_ASSERT_FLAGS (0xF << 2) > +#define ASSERT_FBC_ENABLED (1 << 2) > +#define ASSERT_FBC_DISABLED (1 << 3) > +#define ASSERT_LAST_ACTION_CHANGED (1 << 4) > +#define ASSERT_NO_ACTION_CHANGE (1 << 5) > + > +#define PSR_ASSERT_FLAGS (3 << 6) > +#define ASSERT_PSR_ENABLED (1 << 6) > +#define ASSERT_PSR_DISABLED (1 << 7) > + > +#define DRRS_ASSERT_FLAGS (7 << 8) > +#define ASSERT_DRRS_HIGH (1 << 8) > +#define ASSERT_DRRS_LOW (1 << 9) > +#define ASSERT_DRRS_INACTIVE (1 << 10) > + > +#define ASSERT_NO_IDLE_GPU (1 << 11) > + > +static int adjust_assertion_flags(const struct test_mode *t, int flags) > +{ > + if (!(flags & DONT_ASSERT_FEATURE_STATUS)) { > + if (!(flags & ASSERT_FBC_DISABLED)) > + flags |= ASSERT_FBC_ENABLED; > + if (!(flags & ASSERT_PSR_DISABLED)) > + flags |= ASSERT_PSR_ENABLED; > + if (!((flags & ASSERT_DRRS_LOW) || > + (flags & ASSERT_DRRS_INACTIVE))) > + flags |= ASSERT_DRRS_HIGH; > } > + > + if ((t->feature & FEATURE_FBC) == 0 || (flags & DONT_ASSERT_FBC_STATUS)) > + flags &= ~FBC_ASSERT_FLAGS; > + if ((t->feature & FEATURE_PSR) == 0) > + flags &= ~PSR_ASSERT_FLAGS; > + if ((t->feature & FEATURE_DRRS) == 0) > + flags &= ~DRRS_ASSERT_FLAGS; > + > + return flags; > } > > -/** > - * SUBTEST: drrs-%dp-pri-indfb-multidraw > - * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-pri-indfb-multidraw > - * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-pri-indfb-multidraw > - * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw > - * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw > - * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw > - * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw > - * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - */ > +static void do_crc_assertions(int flags) > +{ > + igt_crc_t crc; > + > + if (!opt.check_crc || (flags & DONT_ASSERT_CRC)) > + return; > + > + collect_crc(&crc); > + print_crc("Calculated CRC:", &crc); > + > + igt_assert(wanted_crc); > + igt_assert_crc_equal(&crc, wanted_crc); > +} > + > +static void do_status_assertions(int flags) > +{ > + if (!opt.check_status) { > + /* Make sure we settle before continuing. */ > + sleep(1); > + return; > + } > + > + if (flags & ASSERT_DRRS_HIGH) { > + if (!is_drrs_high()) { > + drrs_print_status(); > + igt_assert_f(false, "DRRS HIGH\n"); > + } > + } else if (flags & ASSERT_DRRS_LOW) { > + if (!drrs_wait_until_rr_switch_to_low()) { > + drrs_print_status(); > + igt_assert_f(false, "DRRS LOW\n"); > + } > + } else if (flags & ASSERT_DRRS_INACTIVE) { > + if (!intel_is_drrs_inactive(drm.fd, prim_mode_params.pipe)) { > + drrs_print_status(); > + igt_assert_f(false, "DRRS INACTIVE\n"); > + } > + } > + > + if (flags & ASSERT_FBC_ENABLED) { > + igt_require(!fbc_not_enough_stolen()); > + igt_require(!fbc_stride_not_supported()); > + igt_require(!fbc_mode_too_large()); > + if (!intel_fbc_wait_until_enabled(drm.fd, prim_mode_params.pipe)) { > + igt_assert_f(intel_fbc_is_enabled(drm.fd, > + prim_mode_params.pipe, > + IGT_LOG_WARN), > + "FBC disabled\n"); > + } > + > + if (opt.fbc_check_compression) > + igt_assert(fbc_wait_for_compression()); > + } else if (flags & ASSERT_FBC_DISABLED) { > + igt_assert(!intel_fbc_wait_until_enabled(drm.fd, > + prim_mode_params.pipe)); > + } > + > + if (flags & ASSERT_PSR_ENABLED) > + igt_assert_f(psr_wait_entry(drm.debugfs, PSR_MODE_1, NULL), > + "PSR still disabled\n"); > + else if (flags & ASSERT_PSR_DISABLED) > + igt_assert_f(psr_wait_update(drm.debugfs, PSR_MODE_1, NULL), > + "PSR still enabled\n"); > +} > + > +static void __do_assertions(const struct test_mode *t, int flags, > + int line) > +{ > + flags = adjust_assertion_flags(t, flags); > + > + /* Make sure any submitted rendering is now idle. */ > + if (!(flags & ASSERT_NO_IDLE_GPU)) > + gem_quiescent_gpu(drm.fd); > + > + igt_debug("checking asserts in line %i\n", line); > + > + wait_user(2, "Paused before assertions."); > + > + /* Check the CRC to make sure the drawing operations work > + * immediately, independently of the features being enabled. */ > + do_crc_assertions(flags); > + > + /* Now we can flush things to make the test faster. */ > + do_flush(t); > + > + do_status_assertions(flags); > + > + /* Check CRC again to make sure the compressed screen is ok, > + * except if we're not drawing on the primary screen. On this > + * case, the first check should be enough and a new CRC check > + * would only delay the test suite while adding no value to the > + * test suite. */ > + if (t->screen == SCREEN_PRIM) > + do_crc_assertions(flags); > + > + if (fbc.supports_last_action && opt.fbc_check_last_action) { > + if (flags & ASSERT_LAST_ACTION_CHANGED) > + igt_assert(fbc_last_action_changed()); > + else if (flags & ASSERT_NO_ACTION_CHANGE) > + igt_assert(!fbc_last_action_changed()); > + } > + > + wait_user(1, "Paused after assertions."); > +} > + > +#define do_assertions(__flags) __do_assertions(t, (__flags), __LINE__) > + > +static void enable_prim_screen_and_wait(const struct test_mode *t) > +{ > + fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); > + set_mode_for_params(&prim_mode_params); > > -/* > - * multidraw - draw a set of rectangles on the screen using alternated drawing > - * methods > - * > - * METHOD > - * This is just like the draw subtest, but now we keep alternating between two > - * drawing methods. Each time we run multidraw_subtest we will test all the > - * possible pairs of drawing methods. > - * > - * EXPECTED RESULTS > - * The same as the draw subtest. > - * > - * FAILURES > - * If you get a failure here, first you need to check whether you also get > - * failures on the individual draw subtests. If yes, then go fix every single > - * draw subtest first. If all the draw subtests pass but this one fails, then > - * you have to study how one drawing method is stopping the other from > - * properly working. > - */ > -static void multidraw_subtest(const struct test_mode *t) > + wanted_crc = &blue_crcs[t->format].crc; > + fbc_update_last_action(); > + > + do_assertions(ASSERT_NO_ACTION_CHANGE); > +} > + > +static void update_modeset_cached_params(enum igt_draw_method method) > { > - int r; > - int assertions = 0; > - struct draw_pattern_info *pattern; > - struct modeset_params *params = pick_params(t); > - struct fb_region *target; > - enum igt_draw_method m1, m2, used_method; > - bool wc_used = false; > + bool found = false; > > - switch (t->plane) { > - case PLANE_PRI: > - pattern = &pattern1; > - break; > - case PLANE_CUR: > - case PLANE_SPR: > - pattern = &pattern2; > - break; > - default: > - igt_assert(false); > - } > + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > + igt_output_set_pipe(scnd_mode_params.output, scnd_mode_params.pipe); > > - prepare_subtest(t, pattern); > - target = pick_target(t, params); > + found = igt_override_all_active_output_modes_to_fit_bw(&drm.display); > + igt_require_f(found, "No valid mode combo found.\n"); > > - for (m1 = 0; m1 < IGT_DRAW_METHOD_COUNT; m1++) { > - for (m2 = m1 + 1; m2 < IGT_DRAW_METHOD_COUNT; m2++) { > + prim_mode_params.mode = *igt_output_get_mode(prim_mode_params.output); > + prim_mode_params.primary.w = prim_mode_params.mode.hdisplay; > + prim_mode_params.primary.h = prim_mode_params.mode.vdisplay; > > - igt_debug("Methods %s and %s\n", > - igt_draw_get_method_name(m1), > - igt_draw_get_method_name(m2)); > + scnd_mode_params.mode = *igt_output_get_mode(scnd_mode_params.output); > + scnd_mode_params.primary.w = scnd_mode_params.mode.hdisplay; > + scnd_mode_params.primary.h = scnd_mode_params.mode.vdisplay; > > - if (!igt_draw_supports_method(drm.fd, m1) || > - !igt_draw_supports_method(drm.fd, m2)) > - continue; > + fill_fb_region(&prim_mode_params.primary, method, COLOR_PRIM_BG); > + fill_fb_region(&scnd_mode_params.primary, method, COLOR_SCND_BG); > > - for (r = 0; r < pattern->n_rects; r++) { > - used_method = (r % 2 == 0) ? m1 : m2; > + __set_mode_for_params(&prim_mode_params); > + __set_mode_for_params(&scnd_mode_params); > +} > > - igt_debug("Used method %s\n", > - igt_draw_get_method_name(used_method)); > +static void enable_both_screens_and_wait(const struct test_mode *t) > +{ > + int ret; > > - draw_rect(pattern, target, used_method, r); > + fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); > + fill_fb_region(&scnd_mode_params.primary, t->method, COLOR_SCND_BG); > > - if (used_method == IGT_DRAW_MMAP_WC || > - used_method == IGT_DRAW_MMAP_GTT) > - wc_used = true; > + __set_mode_for_params(&prim_mode_params); > + __set_mode_for_params(&scnd_mode_params); > > - update_wanted_crc(t, > - &pattern->crcs[t->format][r]); > + if (drm.display.is_atomic) > + ret = igt_display_try_commit_atomic(&drm.display, > + DRM_MODE_ATOMIC_TEST_ONLY | > + DRM_MODE_ATOMIC_ALLOW_MODESET, > + NULL); > + else > + ret = igt_display_try_commit2(&drm.display, COMMIT_LEGACY); > > - assertions = used_method != IGT_DRAW_MMAP_GTT ? > - ASSERT_LAST_ACTION_CHANGED : > - ASSERT_NO_ACTION_CHANGE; > - if (op_disables_psr(t, used_method) && > - !wc_used) > - assertions |= ASSERT_PSR_DISABLED; > + if (ret) > + update_modeset_cached_params(t->method); > > - do_assertions(assertions); > - } > + igt_display_commit2(&drm.display, drm.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); > > - fill_fb_region(target, m2, COLOR_PRIM_BG); > - _fb_dirty_ioctl(target); > + wanted_crc = &blue_crcs[t->format].crc; > + fbc_update_last_action(); > > - update_wanted_crc(t, &blue_crcs[t->format].crc); > - do_assertions(ASSERT_NO_ACTION_CHANGE); > - } > - } > + do_assertions(ASSERT_NO_ACTION_CHANGE); > } > > -static bool format_is_valid(int feature_flags, > - enum pixel_format format) > +static void set_region_for_test(const struct test_mode *t, > + struct fb_region *reg) > { > - int devid = intel_get_drm_devid(drm.fd); > + fill_fb_region(reg, t->method, COLOR_PRIM_BG); > > - if (!(feature_flags & FEATURE_FBC)) > - return true; > + igt_plane_set_fb(reg->plane, reg->fb); > + igt_plane_set_position(reg->plane, 0, 0); > + igt_plane_set_size(reg->plane, reg->w, reg->h); > + igt_fb_set_size(reg->fb, reg->plane, reg->w, reg->h); > > - switch (format) { > - case FORMAT_RGB888: > - return true; > - case FORMAT_RGB565: > - if (IS_GEN2(devid) || IS_G4X(devid)) > - return false; > - return true; > - case FORMAT_RGB101010: > - return false; > - default: > - igt_assert(false); > - } > + igt_display_commit(&drm.display); > + do_assertions(ASSERT_NO_ACTION_CHANGE); > } > > -/* > - * badformat - test pixel formats that are not supported by at least one feature > - * > - * METHOD > - * We just do a modeset on a buffer with the given pixel format and check the > - * status of the relevant features. > - * > - * EXPECTED RESULTS > - * No assertion failures :) > - * > - * FAILURES > - * If you get a feature enabled/disabled assertion failure, then you should > - * probably check the Kernel code for the feature that checks the pixel > - * formats. If you get a CRC assertion failure, then you should use the > - * appropriate command line arguments that will allow you to look at the > - * screen, then judge what to do based on what you see. > - */ > -static void badformat_subtest(const struct test_mode *t) > +static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane) > { > - bool fbc_valid = format_is_valid(FEATURE_FBC, t->format); > - bool psr_valid = format_is_valid(FEATURE_PSR, t->format); > - int assertions = ASSERT_NO_ACTION_CHANGE; > + struct igt_fb fb; > + uint32_t color; > > - prepare_subtest_data(t, NULL); > + igt_info("Testing fbc on plane %i%s\n", plane->index + 1, kmstest_pipe_name(prim_mode_params.pipe)); > > - fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); > - set_mode_for_params(&prim_mode_params); > + create_fb(t->format, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay, t->tiling, t->plane, &fb); > + color = pick_color(&fb, COLOR_PRIM_BG); > + igt_draw_rect_fb(drm.fd, drm.bops, 0, &fb, t->method, > + 0, 0, fb.width, fb.height, > + color); > > - wanted_crc = &blue_crcs[t->format].crc; > + igt_plane_set_fb(plane, &fb); > + igt_plane_set_position(plane, 0, 0); > + igt_plane_set_size(plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); > + igt_fb_set_size(&fb, plane, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay); > + igt_display_commit_atomic(&drm.display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL); > > - if (!fbc_valid) > - assertions |= ASSERT_FBC_DISABLED; > - if (!psr_valid) > - assertions |= ASSERT_PSR_DISABLED; > - do_assertions(assertions); > -} > + fbc_update_last_action(); > + do_assertions(ASSERT_FBC_ENABLED | ASSERT_NO_ACTION_CHANGE); > + igt_assert_f(fbc_enable_per_plane(plane->index + 1, prim_mode_params.pipe), "FBC disabled\n"); > > -/** > - * SUBTEST: drrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @rgb101010: FORMAT_RGB101010 > - * @rgb565: FORMAT_RGB565 > - * > - * arg[2]: > - * > - * @blt: Blitter > - * @mmap-wc: MMAP-WC > - * @render: Render > - */ > + igt_remove_fb(drm.fd, &fb); > + igt_plane_set_fb(plane, NULL); > + igt_display_commit2(&drm.display, COMMIT_ATOMIC); > +} > > -/** > - * SUBTEST: drrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915 > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%s-draw-%s > - * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @rgb101010: FORMAT_RGB101010 > - * @rgb565: FORMAT_RGB565 > - * > - * arg[2]: > - * > - * @mmap-cpu: MMAP-CPU > - * @mmap-gtt: MMAP-GTT > - * @pwrite: PWRITE > - */ > +static bool enable_features_for_test(const struct test_mode *t) > +{ > + bool ret = false; > > -/* > - * format_draw - test pixel formats that are not FORMAT_DEFAULT > - * > - * METHOD > - * The real subtest to be executed depends on whether the pixel format is > - * supported by the features being tested or not. Check the documentation of > - * each subtest. > - * > - * EXPECTED RESULTS > - * See the documentation for each subtest. > - * > - * FAILURES > - * See the documentation for each subtest. > - */ > -static void format_draw_subtest(const struct test_mode *t) > + if (t->feature == FEATURE_DEFAULT) > + return false; > + > + if (t->feature & FEATURE_FBC) > + intel_fbc_enable(drm.fd); > + if (t->feature & FEATURE_PSR) > + ret = psr_enable(drm.fd, drm.debugfs, PSR_MODE_1); > + if (t->feature & FEATURE_DRRS) > + intel_drrs_enable(drm.fd, prim_mode_params.pipe); > + > + return ret; > +} > + > +static void check_test_requirements(const struct test_mode *t) > { > - if (format_is_valid(t->feature, t->format)) > - draw_subtest(t); > - else > - badformat_subtest(t); > + int ver; > + > + if (t->pipes == PIPE_DUAL) > + igt_require_f(scnd_mode_params.output, > + "Can't test dual pipes with the current outputs\n"); > + > + if (t->feature & FEATURE_FBC) > + igt_require_f(fbc.can_test, > + "Can't test FBC with this chipset\n"); > + > + if (t->feature & FEATURE_PSR) { > + igt_require_f(psr.can_test, > + "Can't test PSR with the current outputs\n"); > + } > + > + if (t->feature & FEATURE_DRRS) > + igt_require_f(drrs.can_test, > + "Can't test DRRS with the current outputs\n"); > + > + /* > + * In kernel, When PSR is enabled, DRRS will be disabled. So If a test > + * case needs DRRS + PSR enabled, that will be skipped. > + */ > + igt_require_f(!((t->feature & FEATURE_PSR) && > + (t->feature & FEATURE_DRRS)), > + "Can't test PSR and DRRS together\n"); > + > + if (opt.only_pipes != PIPE_COUNT) > + igt_require(t->pipes == opt.only_pipes); > + > + /* Kernel disables fbc for display versions 12 and 13 if psr is enabled. */ > + ver = intel_display_ver(intel_get_drm_devid(drm.fd)); > + if (ver >= 12 && ver <= 13) > + igt_require_f(!((t->feature & FEATURE_PSR) && > + (t->feature & FEATURE_FBC)), > + "Can't test PSR and FBC together\n"); > + > } > > -static bool tiling_is_valid(int feature_flags, enum tiling_type tiling) > +static void set_crtc_fbs(const struct test_mode *t) > { > - int devid = intel_get_drm_devid(drm.fd); > + struct screen_fbs *s = &fbs[t->format]; > > - if (!(feature_flags & FEATURE_FBC)) > - return true; > + create_fbs(t->format, t->tiling); > > - switch (tiling) { > - case TILING_LINEAR: > - return AT_LEAST_GEN(devid, 9); > - case TILING_X: > - case TILING_Y: > - return true; > - case TILING_4: > - return AT_LEAST_GEN(devid, 12); > + switch (t->fbs) { > + case FBS_INDIVIDUAL: > + prim_mode_params.primary.fb = &s->prim_pri; > + scnd_mode_params.primary.fb = &s->scnd_pri; > + offscreen_fb.fb = &s->offscreen; > + > + prim_mode_params.primary.x = 0; > + scnd_mode_params.primary.x = 0; > + offscreen_fb.x = 0; > + > + prim_mode_params.primary.y = 0; > + scnd_mode_params.primary.y = 0; > + offscreen_fb.y = 0; > + break; > + case FBS_SHARED: > + /* Please see the comment at the top of create_shared_fb(). */ > + prim_mode_params.primary.fb = &s->big; > + scnd_mode_params.primary.fb = &s->big; > + offscreen_fb.fb = &s->big; > + > + prim_mode_params.primary.x = opt.shared_fb_x_offset; > + scnd_mode_params.primary.x = opt.shared_fb_x_offset; > + offscreen_fb.x = opt.shared_fb_x_offset; > + > + prim_mode_params.primary.y = opt.shared_fb_y_offset; > + scnd_mode_params.primary.y = prim_mode_params.primary.y + > + prim_mode_params.primary.h; > + offscreen_fb.y = scnd_mode_params.primary.y + scnd_mode_params.primary.h; > + break; > default: > igt_assert(false); > - return false; > } > -} > > -/** > - * SUBTEST: drrs-slowdraw > - * Description: Sleep a little bit between drawing operations with DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-slowdraw > - * Description: Sleep a little bit between drawing operations with PSR > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-slowdraw > - * Description: Sleep a little bit between drawing operations with FBC & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-slowdraw > - * Description: Sleep a little bit between drawing operations with FBC & PSR > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-slowdraw > - * Description: Sleep a little bit between drawing operations with PSR & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-slowdraw > - * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > + prim_mode_params.cursor.fb = &s->prim_cur; > + prim_mode_params.sprite.fb = &s->prim_spr; > + scnd_mode_params.cursor.fb = &s->scnd_cur; > + scnd_mode_params.sprite.fb = &s->scnd_spr; > +} > > -/* > - * slow_draw - sleep a little bit between drawing operations > - * > - * METHOD > - * This test is basically the same as the draw subtest, except that we sleep a > - * little bit after each drawing operation. The goal is to detect problems > - * that can happen in case a drawing operation is done while the machine is in > - * some deep sleep states. > - * > - * EXPECTED RESULTS > - * The pattern appears on the screen as expected. > - * > - * FAILURES > - * I've seen this happen in a SKL machine and still haven't investigated it. > - * My guess would be that preventing deep sleep states fixes the problem. > - */ > -static void slow_draw_subtest(const struct test_mode *t) > +static void prepare_subtest_data(const struct test_mode *t, > + struct draw_pattern_info *pattern) > { > - int r; > - struct draw_pattern_info *pattern = &pattern1; > - struct modeset_params *params = pick_params(t); > - struct fb_region *target; > + bool need_modeset; > + > + check_test_requirements(t); > + > + stop_busy_thread(); > > - prepare_subtest(t, pattern); > - sleep(2); > - target = pick_target(t, params); > + need_modeset = disable_features(t); > + set_crtc_fbs(t); > > - for (r = 0; r < pattern->n_rects; r++) { > - sleep(2); > - draw_rect(pattern, target, t->method, r); > - sleep(2); > + if (t->screen == SCREEN_OFFSCREEN) > + fill_fb_region(&offscreen_fb, t->method, COLOR_OFFSCREEN_BG); > > - update_wanted_crc(t, &pattern->crcs[t->format][r]); > + igt_display_reset(&drm.display); > + if (need_modeset) > + igt_display_commit(&drm.display); > > - if (t->feature & FEATURE_DRRS) > - do_assertions(ASSERT_DRRS_LOW); > - else > - do_assertions(0); > - } > -} > + init_blue_crc(t->format, t->tiling); > + if (pattern) > + init_crcs(t->format, t->tiling, pattern); > > -static void flip_handler(int fd, unsigned int sequence, unsigned int tv_sec, > - unsigned int tv_usec, void *data) > -{ > - igt_debug("Flip event received.\n"); > + need_modeset = enable_features_for_test(t); > + if (need_modeset) > + igt_display_commit(&drm.display); > } > > -static void wait_flip_event(void) > +static void prepare_subtest_screens(const struct test_mode *t) > { > - int rc; > - drmEventContext evctx; > - struct pollfd pfd; > - > - evctx.version = 2; > - evctx.vblank_handler = NULL; > - evctx.page_flip_handler = flip_handler; > + if (t->pipes == PIPE_DUAL) > + enable_both_screens_and_wait(t); > + else > + enable_prim_screen_and_wait(t); > > - pfd.fd = drm.fd; > - pfd.events = POLLIN; > - pfd.revents = 0; > + if (t->screen == SCREEN_PRIM) { > + if (t->plane == PLANE_CUR) > + set_region_for_test(t, &prim_mode_params.cursor); > + if (t->plane == PLANE_SPR) > + set_region_for_test(t, &prim_mode_params.sprite); > + } > > - rc = poll(&pfd, 1, TIME); > - switch (rc) { > - case 0: > - igt_assert_f(false, "Poll timeout\n"); > - break; > - case 1: > - rc = drmHandleEvent(drm.fd, &evctx); > - igt_assert_eq(rc, 0); > - break; > - default: > - igt_assert_f(false, "Unexpected poll rc %d\n", rc); > - break; > + if (t->pipes == PIPE_DUAL && t->screen == SCREEN_SCND) { > + if (t->plane == PLANE_CUR) > + set_region_for_test(t, &scnd_mode_params.cursor); > + if (t->plane == PLANE_SPR) > + set_region_for_test(t, &scnd_mode_params.sprite); > } > } > > -static void set_prim_plane_for_params(struct modeset_params *params) > +static void prepare_subtest(const struct test_mode *t, > + struct draw_pattern_info *pattern) > { > - __set_prim_plane_for_params(params); > - igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); > + prepare_subtest_data(t, pattern); > + prepare_subtest_screens(t); > } > > -static void page_flip_for_params(struct modeset_params *params, > - enum flip_type type) > +/* > + * rte - the basic sanity test > + * > + * METHOD > + * Just disable all screens, assert everything is disabled, then enable all > + * screens - including primary, cursor and sprite planes - and assert that > + * the tested feature is enabled. > + * > + * EXPECTED RESULTS > + * Blue screens and t->feature enabled. > + * > + * FAILURES > + * A failure here means that every other subtest will probably fail too. It > + * probably means that the Kernel is just not enabling the feature we want. > + */ > +static void rte_subtest(const struct test_mode *t) > { > - int rc; > + prepare_subtest_data(t, NULL); > > - switch (type) { > - case FLIP_PAGEFLIP: > - rc = drmModePageFlip(drm.fd, drm.display.pipes[params->pipe].crtc_id, > - params->primary.fb->fb_id, > - DRM_MODE_PAGE_FLIP_EVENT, NULL); > - igt_assert_eq(rc, 0); > - wait_flip_event(); > - break; > - case FLIP_MODESET: > - set_mode_for_params(params); > - break; > - case FLIP_PLANES: > - set_prim_plane_for_params(params); > - break; > - default: > - igt_assert(false); > + unset_all_crtcs(); > + do_assertions(ASSERT_FBC_DISABLED | ASSERT_PSR_DISABLED | > + DONT_ASSERT_CRC | ASSERT_DRRS_INACTIVE); > + > + if (t->pipes == PIPE_SINGLE) > + enable_prim_screen_and_wait(t); > + else > + enable_both_screens_and_wait(t); > + > + set_region_for_test(t, &prim_mode_params.cursor); > + set_region_for_test(t, &prim_mode_params.sprite); > + > + if (t->pipes == PIPE_DUAL) { > + set_region_for_test(t, &scnd_mode_params.cursor); > + set_region_for_test(t, &scnd_mode_params.sprite); > } > } > > -/** > - * SUBTEST: drrs-%dp-primscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - * > - * arg[2]: > - * > - * @indfb: Individual fb > - * @shrfb: Shared fb > - * > - * arg[3]: > - * > - * @ms: Modeset > - * @pg: Page flip > - * @pl: Plane change > - */ > +static bool is_valid_plane(igt_plane_t *plane) > +{ > + int index = plane->index; > + > + if (plane->type == DRM_PLANE_TYPE_CURSOR) > + return false; > + /* > + * Execute test only on first three planes > + */ > + return ((index >= 0) && (index < 3)); > +} > > /** > - * SUBTEST: drrs-2p-scndscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt > - * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @indfb: Individual fb > - * @shrfb: Shared fb > + * plane-fbc-rte - the basic sanity test > * > - * arg[2]: > + * METHOD > + * Just disable primary screen, assert everything is disabled, then enable single > + * screens and single plane one by one and assert that the tested fbc is enabled > + * for the particular plane. > * > - * @ms: Modeset > - * @pg: Page flip > - * @pl: Plane change > + * EXPECTED RESULTS > + * Blue screens and t->feature enabled. > + * > + * FAILURES > + * A failure here means that fbc is not getting enabled for requested plane. It means > + * kernel is not able to enable fbc on the requested plane. > */ > > +static void plane_fbc_rte_subtest(const struct test_mode *t) > +{ > + int ver; > + igt_plane_t *plane; > + > + ver = intel_display_ver(intel_get_drm_devid(drm.fd)); > + igt_require_f((ver >= 20), "Can't test fbc for each plane\n"); > + > + prepare_subtest_data(t, NULL); > + unset_all_crtcs(); > + do_assertions(ASSERT_FBC_DISABLED | DONT_ASSERT_CRC); > + > + igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode); > + igt_output_set_pipe(prim_mode_params.output, prim_mode_params.pipe); > + > + wanted_crc = &blue_crcs[t->format].crc; > + > + for_each_plane_on_pipe(&drm.display, prim_mode_params.pipe, plane) { > + if (!is_valid_plane(plane)) > + continue; > + > + set_plane_for_test_fbc(t, plane); > + } > + > + igt_display_reset(&drm.display); > +} > + > +static void update_wanted_crc(const struct test_mode *t, igt_crc_t *crc) > +{ > + if (t->screen == SCREEN_PRIM) > + wanted_crc = crc; > +} > + > +static bool op_disables_psr(const struct test_mode *t, > + enum igt_draw_method method) > +{ > + if (method != IGT_DRAW_MMAP_GTT) > + return false; > + if (t->screen == SCREEN_PRIM) > + return true; > + /* On FBS_SHARED, even if the target is not the PSR screen > + * (SCREEN_PRIM), all primary planes share the same frontbuffer, so a > + * write to the second screen primary plane - or offscreen plane - will > + * touch the framebuffer that's also used by the primary screen. */ > + if (t->fbs == FBS_SHARED && t->plane == PLANE_PRI) > + return true; > + > + return false; > +} > + > /* > - * flip - just exercise page flips with the patterns we have > + * draw - draw a set of rectangles on the screen using the provided method > * > * METHOD > - * We draw the pattern on a backbuffer using the provided method, then we > - * flip, making this the frontbuffer. We can flip both using the dedicated > - * pageflip IOCTL or the modeset IOCTL. > + * Just set the screens as appropriate and then start drawing a series of > + * rectangles on the target screen. The important guy here is the drawing > + * method used. > * > * EXPECTED RESULTS > - * Everything works as expected, screen contents are properly updated. > + * The feature either stays enabled or gets reenabled after the oprations. You > + * will also see the rectangles on the target screen. > * > * FAILURES > - * On a failure here you need to go directly to the Kernel's flip code and see > - * how it interacts with the feature being tested. > + * A failure here indicates a problem somewhere between the Kernel's > + * frontbuffer tracking infrastructure or the feature itself. You need to pay > + * attention to which drawing method is being used. > */ > -static void flip_subtest(const struct test_mode *t) > +static void draw_subtest(const struct test_mode *t) > { > int r; > int assertions = 0; > - struct igt_fb fb2, *orig_fb; > + struct draw_pattern_info *pattern; > struct modeset_params *params = pick_params(t); > - struct draw_pattern_info *pattern = &pattern1; > - enum color bg_color; > + struct fb_region *target; > > switch (t->screen) { > case SCREEN_PRIM: > - assertions |= ASSERT_LAST_ACTION_CHANGED; > - bg_color = COLOR_PRIM_BG; > + if (t->method != IGT_DRAW_MMAP_GTT && t->plane == PLANE_PRI) > + assertions |= ASSERT_LAST_ACTION_CHANGED; > + else > + assertions |= ASSERT_NO_ACTION_CHANGE; > break; > case SCREEN_SCND: > + case SCREEN_OFFSCREEN: > assertions |= ASSERT_NO_ACTION_CHANGE; > - bg_color = COLOR_SCND_BG; > break; > default: > igt_assert(false); > } > > - prepare_subtest(t, pattern); > + switch (t->plane) { > + case PLANE_PRI: > + pattern = &pattern1; > + break; > + case PLANE_CUR: > + case PLANE_SPR: > + pattern = &pattern2; > + break; > + default: > + igt_assert(false); > + } > > - create_fb(t->format, params->primary.fb->width, params->primary.fb->height, > - t->tiling, t->plane, &fb2); > - fill_fb(&fb2, bg_color); > - orig_fb = params->primary.fb; > + if (op_disables_psr(t, t->method)) > + assertions |= ASSERT_PSR_DISABLED; > + > + /* > + * On FBS_INDIVIDUAL, write to offscreen plane will not touch the > + * current frambuffer. Hence assert for DRRS_LOW. > + */ > + if ((t->fbs == FBS_INDIVIDUAL) && (t->screen == SCREEN_OFFSCREEN)) > + assertions |= ASSERT_DRRS_LOW; > + > + prepare_subtest(t, pattern); > + target = pick_target(t, params); > > for (r = 0; r < pattern->n_rects; r++) { > - params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; > + igt_debug("Drawing rect %d\n", r); > + draw_rect(pattern, target, t->method, r); > + update_wanted_crc(t, &pattern->crcs[t->format][r]); > + do_assertions(assertions); > + } > +} > + > +/* > + * multidraw - draw a set of rectangles on the screen using alternated drawing > + * methods > + * > + * METHOD > + * This is just like the draw subtest, but now we keep alternating between two > + * drawing methods. Each time we run multidraw_subtest we will test all the > + * possible pairs of drawing methods. > + * > + * EXPECTED RESULTS > + * The same as the draw subtest. > + * > + * FAILURES > + * If you get a failure here, first you need to check whether you also get > + * failures on the individual draw subtests. If yes, then go fix every single > + * draw subtest first. If all the draw subtests pass but this one fails, then > + * you have to study how one drawing method is stopping the other from > + * properly working. > + */ > +static void multidraw_subtest(const struct test_mode *t) > +{ > + int r; > + int assertions = 0; > + struct draw_pattern_info *pattern; > + struct modeset_params *params = pick_params(t); > + struct fb_region *target; > + enum igt_draw_method m1, m2, used_method; > + bool wc_used = false; > + > + switch (t->plane) { > + case PLANE_PRI: > + pattern = &pattern1; > + break; > + case PLANE_CUR: > + case PLANE_SPR: > + pattern = &pattern2; > + break; > + default: > + igt_assert(false); > + } > + > + prepare_subtest(t, pattern); > + target = pick_target(t, params); > + > + for (m1 = 0; m1 < IGT_DRAW_METHOD_COUNT; m1++) { > + for (m2 = m1 + 1; m2 < IGT_DRAW_METHOD_COUNT; m2++) { > + > + igt_debug("Methods %s and %s\n", > + igt_draw_get_method_name(m1), > + igt_draw_get_method_name(m2)); > + > + if (!igt_draw_supports_method(drm.fd, m1) || > + !igt_draw_supports_method(drm.fd, m2)) > + continue; > + > + for (r = 0; r < pattern->n_rects; r++) { > + used_method = (r % 2 == 0) ? m1 : m2; > + > + igt_debug("Used method %s\n", > + igt_draw_get_method_name(used_method)); > + > + draw_rect(pattern, target, used_method, r); > + > + if (used_method == IGT_DRAW_MMAP_WC || > + used_method == IGT_DRAW_MMAP_GTT) > + wc_used = true; > + > + update_wanted_crc(t, > + &pattern->crcs[t->format][r]); > + > + assertions = used_method != IGT_DRAW_MMAP_GTT ? > + ASSERT_LAST_ACTION_CHANGED : > + ASSERT_NO_ACTION_CHANGE; > + if (op_disables_psr(t, used_method) && > + !wc_used) > + assertions |= ASSERT_PSR_DISABLED; > + > + do_assertions(assertions); > + } > + > + fill_fb_region(target, m2, COLOR_PRIM_BG); > + _fb_dirty_ioctl(target); > + > + update_wanted_crc(t, &blue_crcs[t->format].crc); > + do_assertions(ASSERT_NO_ACTION_CHANGE); > + } > + } > +} > + > +static bool format_is_valid(int feature_flags, > + enum pixel_format format) > +{ > + int devid = intel_get_drm_devid(drm.fd); > + > + if (!(feature_flags & FEATURE_FBC)) > + return true; > + > + switch (format) { > + case FORMAT_RGB888: > + return true; > + case FORMAT_RGB565: > + if (IS_GEN2(devid) || IS_G4X(devid)) > + return false; > + return true; > + case FORMAT_RGB101010: > + return false; > + default: > + igt_assert(false); > + } > +} > + > +/* > + * badformat - test pixel formats that are not supported by at least one feature > + * > + * METHOD > + * We just do a modeset on a buffer with the given pixel format and check the > + * status of the relevant features. > + * > + * EXPECTED RESULTS > + * No assertion failures :) > + * > + * FAILURES > + * If you get a feature enabled/disabled assertion failure, then you should > + * probably check the Kernel code for the feature that checks the pixel > + * formats. If you get a CRC assertion failure, then you should use the > + * appropriate command line arguments that will allow you to look at the > + * screen, then judge what to do based on what you see. > + */ > +static void badformat_subtest(const struct test_mode *t) > +{ > + bool fbc_valid = format_is_valid(FEATURE_FBC, t->format); > + bool psr_valid = format_is_valid(FEATURE_PSR, t->format); > + int assertions = ASSERT_NO_ACTION_CHANGE; > > - if (r != 0) > - draw_rect(pattern, ¶ms->primary, t->method, r - 1); > - draw_rect(pattern, ¶ms->primary, t->method, r); > - update_wanted_crc(t, &pattern->crcs[t->format][r]); > + prepare_subtest_data(t, NULL); > > - page_flip_for_params(params, t->flip); > + fill_fb_region(&prim_mode_params.primary, t->method, COLOR_PRIM_BG); > + set_mode_for_params(&prim_mode_params); > > - do_assertions(assertions); > - } > + wanted_crc = &blue_crcs[t->format].crc; > > - igt_remove_fb(drm.fd, &fb2); > + if (!fbc_valid) > + assertions |= ASSERT_FBC_DISABLED; > + if (!psr_valid) > + assertions |= ASSERT_PSR_DISABLED; > + do_assertions(assertions); > } > > -/** > - * SUBTEST: fbc-%dp-%s-fliptrack-mmap-gtt > - * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-%s-fliptrack-mmap-gtt > - * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt > - * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt > - * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > +/* > + * format_draw - test pixel formats that are not FORMAT_DEFAULT > * > - * arg[1].values: 1, 2 > + * METHOD > + * The real subtest to be executed depends on whether the pixel format is > + * supported by the features being tested or not. Check the documentation of > + * each subtest. > * > - * arg[2]: > + * EXPECTED RESULTS > + * See the documentation for each subtest. > * > - * @indfb: Individual fb > - * @shrfb: Shared fb > + * FAILURES > + * See the documentation for each subtest. > */ > +static void format_draw_subtest(const struct test_mode *t) > +{ > + if (format_is_valid(t->feature, t->format)) > + draw_subtest(t); > + else > + badformat_subtest(t); > +} > + > +static bool tiling_is_valid(int feature_flags, enum tiling_type tiling) > +{ > + int devid = intel_get_drm_devid(drm.fd); > + > + if (!(feature_flags & FEATURE_FBC)) > + return true; > + > + switch (tiling) { > + case TILING_LINEAR: > + return AT_LEAST_GEN(devid, 9); > + case TILING_X: > + case TILING_Y: > + return true; > + case TILING_4: > + return AT_LEAST_GEN(devid, 12); > + default: > + igt_assert(false); > + return false; > + } > +} > > /* > - * fliptrack - check if the hardware tracking works after page flips > + * slow_draw - sleep a little bit between drawing operations > * > * METHOD > - * Flip to a new buffer, then draw on it using MMAP_GTT and check the CRC to > - * make sure the hardware tracking detected the write. > + * This test is basically the same as the draw subtest, except that we sleep a > + * little bit after each drawing operation. The goal is to detect problems > + * that can happen in case a drawing operation is done while the machine is in > + * some deep sleep states. > * > * EXPECTED RESULTS > - * Everything works as expected, screen contents are properly updated. > + * The pattern appears on the screen as expected. > * > * FAILURES > - * First you need to check if the draw and flip subtests pass. Only after both > - * are passing this test can be useful. If we're failing only on this subtest, > - * then maybe we are not properly updating the hardware tracking registers > - * during the flip operations. > + * I've seen this happen in a SKL machine and still haven't investigated it. > + * My guess would be that preventing deep sleep states fixes the problem. > */ > -static void fliptrack_subtest(const struct test_mode *t, enum flip_type type) > +static void slow_draw_subtest(const struct test_mode *t) > { > int r; > - struct igt_fb fb2, *orig_fb; > - struct modeset_params *params = pick_params(t); > struct draw_pattern_info *pattern = &pattern1; > + struct modeset_params *params = pick_params(t); > + struct fb_region *target; > > prepare_subtest(t, pattern); > - > - create_fb(t->format, params->primary.fb->width, params->primary.fb->height, > - t->tiling, t->plane, &fb2); > - fill_fb(&fb2, COLOR_PRIM_BG); > - orig_fb = params->primary.fb; > + sleep(2); > + target = pick_target(t, params); > > for (r = 0; r < pattern->n_rects; r++) { > - params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; > - > - if (r != 0) > - draw_rect(pattern, ¶ms->primary, t->method, r - 1); > - > - page_flip_for_params(params, type); > - do_assertions(0); > + sleep(2); > + draw_rect(pattern, target, t->method, r); > + sleep(2); > > - draw_rect(pattern, ¶ms->primary, t->method, r); > update_wanted_crc(t, &pattern->crcs[t->format][r]); > > - do_assertions(ASSERT_PSR_DISABLED); > + if (t->feature & FEATURE_DRRS) > + do_assertions(ASSERT_DRRS_LOW); > + else > + do_assertions(0); > + } > +} > + > +static void flip_handler(int fd, unsigned int sequence, unsigned int tv_sec, > + unsigned int tv_usec, void *data) > +{ > + igt_debug("Flip event received.\n"); > +} > + > +static void wait_flip_event(void) > +{ > + int rc; > + drmEventContext evctx; > + struct pollfd pfd; > + > + evctx.version = 2; > + evctx.vblank_handler = NULL; > + evctx.page_flip_handler = flip_handler; > + > + pfd.fd = drm.fd; > + pfd.events = POLLIN; > + pfd.revents = 0; > + > + rc = poll(&pfd, 1, TIME); > + switch (rc) { > + case 0: > + igt_assert_f(false, "Poll timeout\n"); > + break; > + case 1: > + rc = drmHandleEvent(drm.fd, &evctx); > + igt_assert_eq(rc, 0); > + break; > + default: > + igt_assert_f(false, "Unexpected poll rc %d\n", rc); > + break; > + } > +} > + > +static void set_prim_plane_for_params(struct modeset_params *params) > +{ > + __set_prim_plane_for_params(params); > + igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); > +} > + > +static void page_flip_for_params(struct modeset_params *params, > + enum flip_type type) > +{ > + int rc; > + > + switch (type) { > + case FLIP_PAGEFLIP: > + rc = drmModePageFlip(drm.fd, drm.display.pipes[params->pipe].crtc_id, > + params->primary.fb->fb_id, > + DRM_MODE_PAGE_FLIP_EVENT, NULL); > + igt_assert_eq(rc, 0); > + wait_flip_event(); > + break; > + case FLIP_MODESET: > + set_mode_for_params(params); > + break; > + case FLIP_PLANES: > + set_prim_plane_for_params(params); > + break; > + default: > + igt_assert(false); > } > - > - igt_remove_fb(drm.fd, &fb2); > } > > -/** > - * SUBTEST: drrs-%dp-primscrn-%s-indfb-move > - * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-%s-indfb-move > - * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-%s-indfb-move > - * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > - * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move > - * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move > - * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move > - * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move > - * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - * > - * arg[2]: > - * > - * @spr: Sprite plane > - * @cur: Cursor plane > - */ > - > -/** > - * SUBTEST: drrs-2p-scndscrn-%s-indfb-move > - * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-%s-indfb-move > - * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-%s-indfb-move > - * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > - * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move > - * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move > - * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move > - * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move > - * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @spr: Sprite plane > - * @cur: Cursor plane > - */ > - > /* > - * move - just move the sprite or cursor around > + * flip - just exercise page flips with the patterns we have > * > * METHOD > - * Move the surface around, following the defined pattern. > + * We draw the pattern on a backbuffer using the provided method, then we > + * flip, making this the frontbuffer. We can flip both using the dedicated > + * pageflip IOCTL or the modeset IOCTL. > * > * EXPECTED RESULTS > - * The move operations are properly detected by the Kernel, and the screen is > - * properly updated every time. > + * Everything works as expected, screen contents are properly updated. > * > * FAILURES > - * If you get a failure here, check how the Kernel is enabling or disabling > - * your feature when it moves the planes around. > + * On a failure here you need to go directly to the Kernel's flip code and see > + * how it interacts with the feature being tested. > */ > -static void move_subtest(const struct test_mode *t) > +static void flip_subtest(const struct test_mode *t) > { > int r; > - int assertions = ASSERT_NO_ACTION_CHANGE; > + int assertions = 0; > + struct igt_fb fb2, *orig_fb; > struct modeset_params *params = pick_params(t); > - struct draw_pattern_info *pattern = &pattern3; > - struct fb_region *reg = pick_target(t, params); > - bool repeat = false; > - > - prepare_subtest(t, pattern); > + struct draw_pattern_info *pattern = &pattern1; > + enum color bg_color; > > - /* Just paint the right color since we start at 0x0. */ > - draw_rect(pattern, reg, t->method, 0); > - update_wanted_crc(t, &pattern->crcs[t->format][0]); > + switch (t->screen) { > + case SCREEN_PRIM: > + assertions |= ASSERT_LAST_ACTION_CHANGED; > + bg_color = COLOR_PRIM_BG; > + break; > + case SCREEN_SCND: > + assertions |= ASSERT_NO_ACTION_CHANGE; > + bg_color = COLOR_SCND_BG; > + break; > + default: > + igt_assert(false); > + } > > - do_assertions(assertions); > + prepare_subtest(t, pattern); > > - for (r = 1; r < pattern->n_rects; r++) { > - struct rect rect = pattern->get_rect(¶ms->primary, r); > + create_fb(t->format, params->primary.fb->width, params->primary.fb->height, > + t->tiling, t->plane, &fb2); > + fill_fb(&fb2, bg_color); > + orig_fb = params->primary.fb; > > - igt_plane_set_fb(reg->plane, reg->fb); > - igt_plane_set_position(reg->plane, rect.x, rect.y); > - igt_plane_set_size(reg->plane, rect.w, rect.h); > - igt_fb_set_size(reg->fb, reg->plane, rect.w, rect.h); > - igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); > + for (r = 0; r < pattern->n_rects; r++) { > + params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; > > + if (r != 0) > + draw_rect(pattern, ¶ms->primary, t->method, r - 1); > + draw_rect(pattern, ¶ms->primary, t->method, r); > update_wanted_crc(t, &pattern->crcs[t->format][r]); > > - do_assertions(assertions); > + page_flip_for_params(params, t->flip); > > - /* "Move" the last rect to the same position just to make sure > - * this works too. */ > - if (r+1 == pattern->n_rects && !repeat) { > - repeat = true; > - r--; > - } > + do_assertions(assertions); > } > + > + igt_remove_fb(drm.fd, &fb2); > } > > -/** > - * SUBTEST: drrs-%dp-primscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > - * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > +/* > + * fliptrack - check if the hardware tracking works after page flips > * > - * arg[1].values: 1, 2 > + * METHOD > + * Flip to a new buffer, then draw on it using MMAP_GTT and check the CRC to > + * make sure the hardware tracking detected the write. > * > - * arg[2]: > + * EXPECTED RESULTS > + * Everything works as expected, screen contents are properly updated. > * > - * @spr: Sprite plane > - * @cur: Cursor plane > + * FAILURES > + * First you need to check if the draw and flip subtests pass. Only after both > + * are passing this test can be useful. If we're failing only on this subtest, > + * then maybe we are not properly updating the hardware tracking registers > + * during the flip operations. > */ > +static void fliptrack_subtest(const struct test_mode *t, enum flip_type type) > +{ > + int r; > + struct igt_fb fb2, *orig_fb; > + struct modeset_params *params = pick_params(t); > + struct draw_pattern_info *pattern = &pattern1; > > -/** > - * SUBTEST: drrs-2p-scndscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > - * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > + prepare_subtest(t, pattern); > + > + create_fb(t->format, params->primary.fb->width, params->primary.fb->height, > + t->tiling, t->plane, &fb2); > + fill_fb(&fb2, COLOR_PRIM_BG); > + orig_fb = params->primary.fb; > + > + for (r = 0; r < pattern->n_rects; r++) { > + params->primary.fb = (r % 2 == 0) ? &fb2 : orig_fb; > + > + if (r != 0) > + draw_rect(pattern, ¶ms->primary, t->method, r - 1); > + > + page_flip_for_params(params, type); > + do_assertions(0); > + > + draw_rect(pattern, ¶ms->primary, t->method, r); > + update_wanted_crc(t, &pattern->crcs[t->format][r]); > + > + do_assertions(ASSERT_PSR_DISABLED); > + } > + > + igt_remove_fb(drm.fd, &fb2); > +} > + > +/* > + * move - just move the sprite or cursor around > * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff > - * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > + * METHOD > + * Move the surface around, following the defined pattern. > * > - * arg[1]: > + * EXPECTED RESULTS > + * The move operations are properly detected by the Kernel, and the screen is > + * properly updated every time. > * > - * @spr: Sprite plane > - * @cur: Cursor plane > + * FAILURES > + * If you get a failure here, check how the Kernel is enabling or disabling > + * your feature when it moves the planes around. > */ > +static void move_subtest(const struct test_mode *t) > +{ > + int r; > + int assertions = ASSERT_NO_ACTION_CHANGE; > + struct modeset_params *params = pick_params(t); > + struct draw_pattern_info *pattern = &pattern3; > + struct fb_region *reg = pick_target(t, params); > + bool repeat = false; > + > + prepare_subtest(t, pattern); > + > + /* Just paint the right color since we start at 0x0. */ > + draw_rect(pattern, reg, t->method, 0); > + update_wanted_crc(t, &pattern->crcs[t->format][0]); > + > + do_assertions(assertions); > + > + for (r = 1; r < pattern->n_rects; r++) { > + struct rect rect = pattern->get_rect(¶ms->primary, r); > + > + igt_plane_set_fb(reg->plane, reg->fb); > + igt_plane_set_position(reg->plane, rect.x, rect.y); > + igt_plane_set_size(reg->plane, rect.w, rect.h); > + igt_fb_set_size(reg->fb, reg->plane, rect.w, rect.h); > + igt_display_commit2(&drm.display, COMMIT_UNIVERSAL); > + > + update_wanted_crc(t, &pattern->crcs[t->format][r]); > + > + do_assertions(assertions); > + > + /* "Move" the last rect to the same position just to make sure > + * this works too. */ > + if (r+1 == pattern->n_rects && !repeat) { > + repeat = true; > + r--; > + } > + } > +} > > /* > * onoff - just enable and disable the sprite or cursor plane a few times > @@ -3884,108 +4270,6 @@ static bool prim_plane_disabled(void) > return !prim_mode_params.primary.plane->values[IGT_PLANE_FB_ID]; > } > > -/** > - * SUBTEST: drrs-%dp-primscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%dp-primscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-2p-scndscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen > - * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1].values: 1, 2 > - */ > - > /* > * fullscreen_plane - put a fullscreen plane covering the whole screen > * > @@ -4021,87 +4305,31 @@ static void fullscreen_plane_subtest(const struct test_mode *t) > igt_display_commit(&drm.display); > update_wanted_crc(t, &pattern->crcs[t->format][0]); > > - switch (t->screen) { > - case SCREEN_PRIM: > - assertions = ASSERT_LAST_ACTION_CHANGED; > - > - if (prim_plane_disabled()) > - assertions |= ASSERT_FBC_DISABLED; > - break; > - case SCREEN_SCND: > - assertions = ASSERT_NO_ACTION_CHANGE; > - break; > - default: > - igt_assert(false); > - } > - do_assertions(assertions); > - > - igt_plane_set_fb(params->sprite.plane, NULL); > - igt_display_commit(&drm.display); > - > - if (t->screen == SCREEN_PRIM) > - assertions = ASSERT_LAST_ACTION_CHANGED; > - update_wanted_crc(t, &blue_crcs[t->format].crc); > - do_assertions(assertions); > - > - igt_remove_fb(drm.fd, &fullscreen_fb); > -} > - > -/** > - * SUBTEST: drrs-%s-scaledprimary > - * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-%s-scaledprimary > - * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-%s-scaledprimary > - * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > - * Functionality: fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-%s-scaledprimary > - * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-%s-scaledprimary > - * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-%s-scaledprimary > - * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-%s-scaledprimary > - * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @indfb: Individual fb > - * @shrfb: Shared fb > - */ > + switch (t->screen) { > + case SCREEN_PRIM: > + assertions = ASSERT_LAST_ACTION_CHANGED; > + > + if (prim_plane_disabled()) > + assertions |= ASSERT_FBC_DISABLED; > + break; > + case SCREEN_SCND: > + assertions = ASSERT_NO_ACTION_CHANGE; > + break; > + default: > + igt_assert(false); > + } > + do_assertions(assertions); > + > + igt_plane_set_fb(params->sprite.plane, NULL); > + igt_display_commit(&drm.display); > + > + if (t->screen == SCREEN_PRIM) > + assertions = ASSERT_LAST_ACTION_CHANGED; > + update_wanted_crc(t, &blue_crcs[t->format].crc); > + do_assertions(assertions); > + > + igt_remove_fb(drm.fd, &fullscreen_fb); > +} > > /* > * scaledprimary - try different primary plane scaling strategies > @@ -4209,56 +4437,6 @@ static void scaledprimary_subtest(const struct test_mode *t) > igt_remove_fb(drm.fd, &new_fb); > } > > -/** > - * SUBTEST: drrs-modesetfrombusy > - * Description: Modeset from a busy buffer to a non-busy buffer with DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-modesetfrombusy > - * Description: Modeset from a busy buffer to a non-busy buffer with FBC > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-modesetfrombusy > - * Description: Modeset from a busy buffer to a non-busy buffer with PSR > - * Driver requirement: i915, xe > - * Functionality: fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-modesetfrombusy > - * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-modesetfrombusy > - * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-modesetfrombusy > - * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-modesetfrombusy > - * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr, scaling > - * Mega feature: General Display Features > - */ > - > /** > * modesetfrombusy - modeset from a busy buffer to a non-busy buffer > * > @@ -4302,57 +4480,6 @@ static void modesetfrombusy_subtest(const struct test_mode *t) > igt_remove_fb(drm.fd, &fb2); > } > > -/** > - * SUBTEST: drrs-suspend > - * Description: Make sure suspend/resume keeps us on the same state of DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-suspend > - * Description: Make sure suspend/resume keeps us on the same state of FBC > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-suspend > - * Description: Make sure suspend/resume keeps us on the same state of PSR > - * Driver requirement: i915, xe > - * Functionality: fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-suspend > - * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-suspend > - * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-suspend > - * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-suspend > - * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /** > * suspend - make sure suspend/resume keeps us on the same state > * > @@ -4385,57 +4512,6 @@ static void suspend_subtest(const struct test_mode *t) > do_assertions(0); > } > > -/** > - * SUBTEST: drrs-farfromfence-mmap-gtt > - * Description: Test drawing as far from the fence start as possible > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbc-farfromfence-mmap-gtt > - * Description: Test drawing as far from the fence start as possible > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psr-farfromfence-mmap-gtt > - * Description: Test drawing as far from the fence start as possible > - * Driver requirement: i915 > - * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-farfromfence-mmap-gtt > - * Description: Test drawing as far from the fence start as possible > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-farfromfence-mmap-gtt > - * Description: Test drawing as far from the fence start as possible > - * Driver requirement: i915 > - * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: psrdrrs-farfromfence-mmap-gtt > - * Description: Test drawing as far from the fence start as possible > - * Driver requirement: i915 > - * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt > - * Description: Test drawing as far from the fence start as possible > - * Driver requirement: i915 > - * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /** > * farfromfence - test drawing as far from the fence start as possible > * > @@ -4509,36 +4585,6 @@ static void farfromfence_subtest(const struct test_mode *t) > igt_remove_fb(drm.fd, &tall_fb); > } > > -/** > - * SUBTEST: fbc-stridechange > - * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-stridechange > - * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-stridechange > - * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-stridechange > - * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /** > * stridechange - change the frontbuffer stride by doing a modeset > * > @@ -4603,46 +4649,6 @@ static void stridechange_subtest(const struct test_mode *t) > do_assertions(rc ? 0 : DONT_ASSERT_FBC_STATUS); > } > > -/** > - * SUBTEST: fbc-tiling-%s > - * Description: Test %arg[1] formats, if the tiling format supports FBC do the > - * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcdrrs-tiling-%s > - * Description: Test %arg[1] formats, if the tiling format supports FBC do the > - * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsr-tiling-%s > - * Description: Test %arg[1] formats, if the tiling format supports FBC do the > - * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > - * Functionality: fbc, fbt, psr, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fbcpsrdrrs-tiling-%s > - * Description: Test %arg[1] formats, if the tiling format supports FBC do the > - * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > - * Functionality: drrs, fbc, fbt, psr, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4: 4 tiling > - * @linear: Linear tiling > - * @y: Y tiling > - */ > - > /** > * tiling_disable_fbc_subtest - Check if tiling is unsupported by FBC > * > @@ -4692,15 +4698,6 @@ static void tiling_disable_fbc_subtest(const struct test_mode *t) > igt_remove_fb(drm.fd, &new_fb); > } > > -/** > - * SUBTEST: basic > - * Description: Do some basic operations regardless of which features are enabled > - * Driver requirement: i915, xe > - * Functionality: fbt > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /* > * basic - do some basic operations regardless of which features are enabled > * > diff --git a/tests/intel/kms_legacy_colorkey.c b/tests/intel/kms_legacy_colorkey.c > index 877a6799a..69539f558 100644 > --- a/tests/intel/kms_legacy_colorkey.c > +++ b/tests/intel/kms_legacy_colorkey.c > @@ -21,14 +21,16 @@ > * IN THE SOFTWARE. > */ > > -#include "igt.h" > -#include <errno.h> > - > /** > * TEST: kms legacy colorkey > * Category: Display > * Description: Test to check the legacy set colorkey ioctl on sprite planes. > - * > + */ > + > +#include "igt.h" > +#include <errno.h> > + > +/** > * SUBTEST: basic > * Description: Check that the legacy set colorkey ioctl only works on sprite planes. > * Driver requirement: i915 > diff --git a/tests/intel/kms_mmap_write_crc.c b/tests/intel/kms_mmap_write_crc.c > index c8ff39ef0..59a838fe4 100644 > --- a/tests/intel/kms_mmap_write_crc.c > +++ b/tests/intel/kms_mmap_write_crc.c > @@ -24,6 +24,13 @@ > * Tiago Vignatti <tiago.vignatti at intel.com> > */ > > +/** > + * TEST: kms mmap write crc > + * Category: Display > + * Description: Use the display CRC support to validate mmap write to an already > + * uncached future scanout buffer. > + */ > + > #include <errno.h> > #include <limits.h> > #include <stdbool.h> > @@ -37,12 +44,8 @@ > #include "intel_chipset.h" > #include "ioctl_wrappers.h" > #include "igt_aux.h" > + > /** > - * TEST: kms mmap write crc > - * Category: Display > - * Description: Use the display CRC support to validate mmap write to an already > - * uncached future scanout buffer. > - * > * SUBTEST: main > * Description: Tests that caching mode has become UC/WT and flushed using mmap write > * Driver requirement: i915, xe > diff --git a/tests/intel/kms_pipe_b_c_ivb.c b/tests/intel/kms_pipe_b_c_ivb.c > index 386f3003a..c1a1e6610 100644 > --- a/tests/intel/kms_pipe_b_c_ivb.c > +++ b/tests/intel/kms_pipe_b_c_ivb.c > @@ -24,13 +24,16 @@ > * Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> > */ > > -#include "igt.h" > /** > * TEST: kms pipe b c ivb > * Category: Display > * Description: Exercise the FDI lane bifurcation code for IVB in the kernel by > * setting different combinations of modes for pipes B and C. > - * > + */ > + > +#include "igt.h" > + > +/** > * SUBTEST: disable-pipe-B-enable-pipe-C > * Description: Tests pipe-B and pipe-C interactions in IVB by disabling pipe-B > * and then setting mode on pipe-C. > diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c > index f6e7db0b2..68f4dc3d1 100644 > --- a/tests/intel/kms_pm_backlight.c > +++ b/tests/intel/kms_pm_backlight.c > @@ -25,6 +25,12 @@ > * > */ > > +/** > + * TEST: kms pm backlight > + * Category: Display > + * Description: Basic backlight sysfs test > + */ > + > #include "igt.h" > #include <limits.h> > #include <sys/types.h> > @@ -36,11 +42,8 @@ > #include <time.h> > #include "igt_device.h" > #include "igt_device_scan.h" > + > /** > - * TEST: kms pm backlight > - * Category: Display > - * Description: Basic backlight sysfs test > - * > * SUBTEST: bad-brightness > * Description: Test the bad brightness. > * Driver requirement: i915, xe > diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c > index a3c7c4018..1c33206fc 100644 > --- a/tests/intel/kms_pm_dc.c > +++ b/tests/intel/kms_pm_dc.c > @@ -22,6 +22,12 @@ > * > */ > > +/** > + * TEST: kms pm dc > + * Category: Display > + * Description: Tests to validate display power DC states. > + */ > + > #include <errno.h> > #include <fcntl.h> > #include <stdbool.h> > @@ -39,10 +45,6 @@ > #include "xe/xe_query.h" > > /** > - * TEST: kms pm dc > - * Category: Display > - * Description: Tests to validate display power DC states. > - * > * SUBTEST: dc3co-vpb-simulation > * Description: Make sure that system enters DC3CO when PSR2 is active and system > * is in SLEEP state > diff --git a/tests/intel/kms_pm_lpsp.c b/tests/intel/kms_pm_lpsp.c > index a85e4e795..4ac99faf7 100644 > --- a/tests/intel/kms_pm_lpsp.c > +++ b/tests/intel/kms_pm_lpsp.c > @@ -24,6 +24,12 @@ > * > */ > > +/** > + * TEST: kms pm lpsp > + * Description: These tests validates display Low Power Single Pipe configurations > + * Category: Display > + */ > + > #include "igt.h" > #include "igt_kmod.h" > #include "igt_pm.h" > @@ -32,11 +38,8 @@ > #include <sys/stat.h> > #include <fcntl.h> > #include <unistd.h> > + > /** > - * TEST: kms pm lpsp > - * Description: These tests validates display Low Power Single Pipe configurations > - * Category: Display > - * > * SUBTEST: kms-lpsp > * Description: This test validates lpsp on all connected outputs on low power pipes > * Driver requirement: i915, xe > diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c > index afd74eaff..1586d3bf0 100644 > --- a/tests/intel/kms_psr.c > +++ b/tests/intel/kms_psr.c > @@ -237,18 +237,14 @@ > * Functionality: dpms, pr > * Mega feature: Panel Replay > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: pr_no_drrs > * Description: Check if pr is detecting changes when drrs is disabled > * Driver requirement: i915, xe > * Functionality: drrs, pr > * Mega feature: Panel Replay > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: pr_suspend > * Description: Check if pr is detecting changes when plane operation is > * performed with suspend resume cycles > @@ -256,9 +252,7 @@ > * Functionality: pr, suspend > * Mega feature: Panel Replay > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: pr_basic > * Description: Basic check for pr if it is detecting changes made in planes > * Driver requirement: i915, xe > @@ -296,9 +290,7 @@ > * Functionality: plane, pr > * Mega feature: Panel Replay > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: pr_primary_%s > * Description: Check if pr is detecting memory mapping, rendering and plane > * operations performed on primary planes > @@ -335,6 +327,32 @@ > * @plane_move: Move plane position > */ > > +/** > + * SUBTEST: psr_cursor_plane_move > + * Description: Check if psr is detecting the plane operations performed on > + * cursor planes > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: psr > + * Mega feature: PSR > + * > + * SUBTEST: psr_primary_page_flip > + * Description: Check if psr is detecting page-flipping operations performed > + * on primary planes > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: psr > + * Mega feature: PSR > + * > + * SUBTEST: psr_sprite_plane_onoff > + * Description: Check if psr is detecting the plane operations performed on > + * sprite planes > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: psr > + * Mega feature: PSR > + */ > + > enum operations { > PAGE_FLIP, > MMAP_GTT, > @@ -576,32 +594,6 @@ static void fb_dirty_fb_ioctl(data_t *data, struct igt_fb *fb) > igt_assert(ret == 0 || ret == -ENOSYS); > } > > -/** > - * SUBTEST: psr_cursor_plane_move > - * Description: Check if psr is detecting the plane operations performed on > - * cursor planes > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: psr > - * Mega feature: PSR > - * > - * SUBTEST: psr_primary_page_flip > - * Description: Check if psr is detecting page-flipping operations performed > - * on primary planes > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: psr > - * Mega feature: PSR > - * > - * SUBTEST: psr_sprite_plane_onoff > - * Description: Check if psr is detecting the plane operations performed on > - * sprite planes > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: psr > - * Mega feature: PSR > - */ > - > static void run_test(data_t *data) > { > uint32_t handle = data->fb_white.gem_handle; > diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c > index a597c8701..a93d496e8 100644 > --- a/tests/intel/kms_psr2_sf.c > +++ b/tests/intel/kms_psr2_sf.c > @@ -22,6 +22,13 @@ > * > */ > > +/** > + * TEST: kms psr2 sf > + * Category: Display > + * Description: Tests to varify PSR2 selective fetch by sending multiple damaged > + * areas > + */ > + > #include "igt.h" > #include "igt_sysfs.h" > #include "igt_psr.h" > @@ -30,12 +37,8 @@ > #include <stdbool.h> > #include <stdio.h> > #include <string.h> > + > /** > - * TEST: kms psr2 sf > - * Category: Display > - * Description: Tests to varify PSR2 selective fetch by sending multiple damaged > - * areas > - * > * SUBTEST: %s-plane-move-continuous-%s > * Description: Test that selective fetch works on moving %arg[1] plane %arg[2] > * visible area (no update) > diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c > index 1969c6fa7..56f35622e 100644 > --- a/tests/intel/kms_psr2_su.c > +++ b/tests/intel/kms_psr2_su.c > @@ -22,6 +22,12 @@ > * > */ > > +/** > + * TEST: kms psr2 su > + * Category: Display > + * Description: Test PSR2 selective update > + */ > + > #include "igt.h" > #include "igt_sysfs.h" > #include "igt_psr.h" > @@ -30,11 +36,8 @@ > #include <stdio.h> > #include <string.h> > #include <sys/timerfd.h> > + > /** > - * TEST: kms psr2 su > - * Category: Display > - * Description: Test PSR2 selective update > - * > * SUBTEST: frontbuffer-XRGB8888 > * Description: Test that selective update works when screen changes > * Driver requirement: i915, xe > diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c > index 6a3d2918c..21814f35b 100644 > --- a/tests/intel/kms_psr_stress_test.c > +++ b/tests/intel/kms_psr_stress_test.c > @@ -1,3 +1,9 @@ > + > +/** > + * TEST: kms psr stress test > + * Category: Display > + */ > + > #include "igt.h" > #include "igt_sysfs.h" > #include "igt_psr.h" > @@ -7,10 +13,8 @@ > #include <stdio.h> > #include <string.h> > #include <sys/timerfd.h> > + > /** > - * TEST: kms psr stress test > - * Category: Display > - * > * SUBTEST: flip-primary-invalidate-overlay > * Description: Mix page flips in primary plane and frontbuffer writes to overlay > * plane and check for warnings, underruns or PSR state changes > diff --git a/tests/intel/kms_pwrite_crc.c b/tests/intel/kms_pwrite_crc.c > index ee6b4f3e4..12add5da6 100644 > --- a/tests/intel/kms_pwrite_crc.c > +++ b/tests/intel/kms_pwrite_crc.c > @@ -22,6 +22,12 @@ > * > */ > > +/** > + * TEST: kms pwrite crc > + * Category: Display > + * Description: Test to validate pwrite buffer using the display CRC > + */ > + > #include "igt.h" > #include <errno.h> > #include <limits.h> > @@ -30,10 +36,6 @@ > #include <string.h> > > /** > - * TEST: kms pwrite crc > - * Category: Display > - * Description: Test to validate pwrite buffer using the display CRC > - * > * SUBTEST: > * Description: Use the display CRC support to validate pwrite to an already > * uncached future scanout buffer. > diff --git a/tests/kms_3d.c b/tests/kms_3d.c > index fa73d0cc6..ad6c45e9b 100644 > --- a/tests/kms_3d.c > +++ b/tests/kms_3d.c > @@ -22,13 +22,16 @@ > * > */ > > -#include "igt.h" > -#include "xe/xe_query.h" > /** > * TEST: kms 3d > * Category: Display > * Description: Tests 3D mode setting. > - * > + */ > + > +#include "igt.h" > +#include "xe/xe_query.h" > + > +/** > * SUBTEST: > * Description: Tests 3D mode setting. > * Driver requirement: i915, xe > diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c > index fc16b8814..9f8bf4275 100644 > --- a/tests/kms_addfb_basic.c > +++ b/tests/kms_addfb_basic.c > @@ -50,22 +50,6 @@ > #include "xe/xe_ioctl.h" > #include "xe/xe_query.h" > > -static uint32_t gem_bo; > -static uint32_t gem_bo_small; > -static igt_display_t display; > - > -static int legacy_addfb(int fd, struct drm_mode_fb_cmd *arg) > -{ > - int err; > - > - err = 0; > - if (igt_ioctl(fd, DRM_IOCTL_MODE_ADDFB, arg)) > - err = -errno; > - > - errno = 0; > - return err; > -} > - > /** > * SUBTEST: unused-%s > * Description: Test that addfb2 call fails correctly for unused %arg[1] > @@ -109,6 +93,216 @@ static int legacy_addfb(int fd, struct drm_mode_fb_cmd *arg) > * @pitches: Pitches > * @offsets: Offsets > */ > + > +/** > + * SUBTEST: no-handle > + * Description: Test that addfb2 call fails correctly without handle > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * SUBTEST: basic > + * Description: Check if addfb2 call works with given handle > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * SUBTEST: bad-pitch-%i > + * Description: bad-pitch-%arg[1]: Test that addfb2 call fails correctly for bad-pitches > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * arg[1].values: 0, 32, 63, 128, 256, 999, 1024, 65536 > + */ > + > +/** > + * SUBTEST: basic-%s-tiled-legacy > + * Description: Check if addfb2 and rmfb call works for basic %arg[1] test > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * > + * SUBTEST: framebuffer-vs-set-tiling > + * Description: Check if addfb2 call works for x and y tiling > + * Driver requirement: i915 > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * > + * SUBTEST: tile-pitch-mismatch > + * Description: Test that addfb2 call fails correctly for pitches mismatch > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * > + * arg[1]: > + * > + * @x: x-tiling > + * @y: y-tiling > + */ > + > +/** > + * SUBTEST: size-max > + * Description: Check if addfb2 call works with max size of buffer object > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * SUBTEST: too-wide > + * Description: Test that addfb2 call fails correctly with increased width of fb > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * SUBTEST: too-high > + * Description: Test that addfb2 call fails correctly with increased height of fb > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * SUBTEST: bo-too-small > + * Description: Test that addfb2 call fails correctly with small size of buffer object > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * SUBTEST: small-bo > + * Description: Check if addfb2 call works for given height > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * SUBTEST: bo-too-small-due-to-tiling > + * Description: Test that addfb2 call fails correctly with small buffer object > + * after changing tile > + * Driver requirement: i915 > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + */ > + > +/** > + * SUBTEST: addfb25-modifier-no-flag > + * Description: Test that addfb2 call fails correctly for x-tiling with given modifier > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * > + * SUBTEST: addfb25-bad-modifier > + * Description: Test that addfb2 call fails correctly for irrelevant modifier > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * > + * SUBTEST: addfb25-x-tiled-mismatch-legacy > + * Description: Test that addfb2 call fails correctly for irrelevant x-tiling > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * > + * SUBTEST: addfb25-x-tiled-legacy > + * Description: Check if addfb2 call works for x-tiling > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * > + * SUBTEST: addfb25-framebuffer-vs-set-tiling > + * Description: Check if addfb2 call works for relevant combination of tiling and fbs > + * Driver requirement: i915 > + * Test category: functionality test > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + */ > + > +/** > + * SUBTEST: addfb25-y-tiled-%s > + * Description: Check if addfb2 call works for y-tiling %arg[1] > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: addfb25-yf-tiled-legacy > + * Description: Check if addfb2 call works for yf-tiling > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @legacy: with default size > + * @small-legacy: with given size & modifier > + */ > + > +/** > + * SUBTEST: addfb25-4-tiled > + * Description: Check if addfb2 call works for tiling-4 > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > +/** > + * SUBTEST: invalid-%s-%s > + * Description: Test that %arg[1] ioctl call fails correctly for %arg[2] object > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * > + * arg[1]: > + * > + * @get: get-properties > + * @set: set-properties > + * > + * arg[2]: > + * > + * @prop: fb mode > + * @prop-any: invalid > + */ > + > +/** > + * SUBTEST: master-rmfb > + * Description: Check that only master can rmfb > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > +static uint32_t gem_bo; > +static uint32_t gem_bo_small; > +static igt_display_t display; > + > +static int legacy_addfb(int fd, struct drm_mode_fb_cmd *arg) > +{ > + int err; > + > + err = 0; > + if (igt_ioctl(fd, DRM_IOCTL_MODE_ADDFB, arg)) > + err = -errno; > + > + errno = 0; > + return err; > +} > + > static void invalid_tests(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -322,30 +516,6 @@ static void invalid_tests(int fd) > } > } > > -/** > - * SUBTEST: no-handle > - * Description: Test that addfb2 call fails correctly without handle > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * SUBTEST: basic > - * Description: Check if addfb2 call works with given handle > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * SUBTEST: bad-pitch-%i > - * Description: bad-pitch-%arg[1]: Test that addfb2 call fails correctly for bad-pitches > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * arg[1].values: 0, 32, 63, 128, 256, 999, 1024, 65536 > - */ > static void pitch_tests(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -393,33 +563,6 @@ static void pitch_tests(int fd) > gem_close(fd, gem_bo); > } > > -/** > - * SUBTEST: basic-%s-tiled-legacy > - * Description: Check if addfb2 and rmfb call works for basic %arg[1] test > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * > - * SUBTEST: framebuffer-vs-set-tiling > - * Description: Check if addfb2 call works for x and y tiling > - * Driver requirement: i915 > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * > - * SUBTEST: tile-pitch-mismatch > - * Description: Test that addfb2 call fails correctly for pitches mismatch > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * > - * arg[1]: > - * > - * @x: x-tiling > - * @y: y-tiling > - */ > static void tiling_tests(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -506,50 +649,6 @@ static void tiling_tests(int fd) > } > } > > -/** > - * SUBTEST: size-max > - * Description: Check if addfb2 call works with max size of buffer object > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * SUBTEST: too-wide > - * Description: Test that addfb2 call fails correctly with increased width of fb > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * SUBTEST: too-high > - * Description: Test that addfb2 call fails correctly with increased height of fb > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * SUBTEST: bo-too-small > - * Description: Test that addfb2 call fails correctly with small size of buffer object > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * SUBTEST: small-bo > - * Description: Check if addfb2 call works for given height > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * SUBTEST: bo-too-small-due-to-tiling > - * Description: Test that addfb2 call fails correctly with small buffer object > - * after changing tile > - * Driver requirement: i915 > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - */ > static void size_tests(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -665,42 +764,6 @@ static void size_tests(int fd) > } > } > > -/** > - * SUBTEST: addfb25-modifier-no-flag > - * Description: Test that addfb2 call fails correctly for x-tiling with given modifier > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * > - * SUBTEST: addfb25-bad-modifier > - * Description: Test that addfb2 call fails correctly for irrelevant modifier > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * > - * SUBTEST: addfb25-x-tiled-mismatch-legacy > - * Description: Test that addfb2 call fails correctly for irrelevant x-tiling > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * > - * SUBTEST: addfb25-x-tiled-legacy > - * Description: Check if addfb2 call works for x-tiling > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * > - * SUBTEST: addfb25-framebuffer-vs-set-tiling > - * Description: Check if addfb2 call works for relevant combination of tiling and fbs > - * Driver requirement: i915 > - * Test category: functionality test > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - */ > static void addfb25_tests(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -786,26 +849,6 @@ static int addfb_expected_ret(igt_display_t *disp, struct drm_mode_fb_cmd2 *f) > f->modifier[0]) ? 0 : -1; > } > > -/** > - * SUBTEST: addfb25-y-tiled-%s > - * Description: Check if addfb2 call works for y-tiling %arg[1] > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: addfb25-yf-tiled-legacy > - * Description: Check if addfb2 call works for yf-tiling > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @legacy: with default size > - * @small-legacy: with given size & modifier > - */ > static void addfb25_ytile(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -872,14 +915,6 @@ static void addfb25_ytile(int fd) > } > } > > -/** > - * SUBTEST: addfb25-4-tiled > - * Description: Check if addfb2 call works for tiling-4 > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void addfb25_4tile(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -918,24 +953,6 @@ static void addfb25_4tile(int fd) > gem_close(fd, gem_bo); > } > > -/** > - * SUBTEST: invalid-%s-%s > - * Description: Test that %arg[1] ioctl call fails correctly for %arg[2] object > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * > - * arg[1]: > - * > - * @get: get-properties > - * @set: set-properties > - * > - * arg[2]: > - * > - * @prop: fb mode > - * @prop-any: invalid > - */ > static void prop_tests(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > @@ -1001,14 +1018,6 @@ static void prop_tests(int fd) > } > } > > -/** > - * SUBTEST: master-rmfb > - * Description: Check that only master can rmfb > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void master_tests(int fd) > { > struct drm_mode_fb_cmd2 f = {}; > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c > index f29c46645..82a8f5ef3 100644 > --- a/tests/kms_async_flips.c > +++ b/tests/kms_async_flips.c > @@ -30,6 +30,7 @@ > * Category: Display > * Description: Test asynchronous page flips. > */ > + > #include "igt.h" > #include "igt_aux.h" > #include "igt_psr.h" > @@ -37,6 +38,54 @@ > #include <sys/time.h> > #include <poll.h> > > +/** > + * SUBTEST: alternate-sync-async-flip > + * Description: Verify the async flip functionality and the fps during async flips > + * Alternate between sync and async flips > + * Driver requirement: i915, xe > + * Functionality: async_flips, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: async-flip-with-page-flip-events > + * Description: Verify the async flip functionality and the fps during async flips > + * Wait for page flip events in between successive asynchronous flips > + * Driver requirement: i915, xe > + * Functionality: async_flips, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: test-time-stamp > + * Description: Verify the async flip functionality and the fps during async flips > + * Verify that the async flip timestamp does not coincide with either > + * previous or next vblank > + * Driver requirement: i915, xe > + * Functionality: async_flips, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: test-cursor > + * Description: Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip > + * Driver requirement: i915, xe > + * Functionality: async_flips, cursor, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: crc > + * Description: Use CRC to verify async flip scans out the correct framebuffer > + * Driver requirement: i915, xe > + * Functionality: async_flips, crc, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: invalid-async-flip > + * Description: Negative case to verify if changes in fb are rejected from kernel as expected > + * Driver requirement: i915, xe > + * Functionality: async_flips, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > #define CURSOR_POS 128 > > /* > @@ -203,23 +252,6 @@ static void test_init_fbs(data_t *data) > igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); > } > > -/** > - * SUBTEST: alternate-sync-async-flip > - * Description: Verify the async flip functionality and the fps during async flips > - * Alternate between sync and async flips > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: async-flip-with-page-flip-events > - * Description: Verify the async flip functionality and the fps during async flips > - * Wait for page flip events in between successive asynchronous flips > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_async_flip(data_t *data) > { > int ret, frame; > @@ -315,16 +347,6 @@ static void wait_for_vblank(data_t *data, unsigned long *vbl_time, unsigned int > *seq = wait_vbl.reply.sequence; > } > > -/** > - * SUBTEST: test-time-stamp > - * Description: Verify the async flip functionality and the fps during async flips > - * Verify that the async flip timestamp does not coincide with either > - * previous or next vblank > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_timestamp(data_t *data) > { > int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT; > @@ -369,14 +391,6 @@ static void test_timestamp(data_t *data) > "Async flip time stamp is expected to be in between 2 vblank time stamps\n"); > } > > -/** > - * SUBTEST: test-cursor > - * Description: Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip > - * Driver requirement: i915, xe > - * Functionality: async_flips, cursor, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_cursor(data_t *data) > { > int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT; > @@ -529,14 +543,6 @@ static unsigned int clock_ms(void) > return ts.tv_sec * 1000 + ts.tv_nsec / 1000000; > } > > -/** > - * SUBTEST: crc > - * Description: Use CRC to verify async flip scans out the correct framebuffer > - * Driver requirement: i915, xe > - * Functionality: async_flips, crc, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_crc(data_t *data) > { > unsigned int frame = 0; > @@ -599,14 +605,6 @@ static void test_crc(data_t *data) > igt_assert_lt(data->frame_count * 2, data->flip_count); > } > > -/** > - * SUBTEST: invalid-async-flip > - * Description: Negative case to verify if changes in fb are rejected from kernel as expected > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void run_test(data_t *data, void (*test)(data_t *)) > { > igt_display_t *display = &data->display; > diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c > index a47539e48..28af27f22 100644 > --- a/tests/kms_atomic.c > +++ b/tests/kms_atomic.c > @@ -48,6 +48,94 @@ > #include "igt_aux.h" > #include "sw_sync.h" > > +/** > + * SUBTEST: plane-primary-overlay-mutable-zpos > + * Description: Verify that the overlay plane can cover the primary one (and > + * vice versa) by changing their zpos property. > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-immutable-zpos > + * Description: Verify the reported zpos property of planes by making sure only > + * higher zpos planes cover the lower zpos ones. > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-%s-legacy > + * Description: Test for KMS atomic modesetting on %arg[1] and ensure coherency > + * between legacy and atomic interfaces. > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @cursor: Cursor plane > + * @overlay: Overlay plane > + * @primary: Primary plane > + */ > + > +/** > + * SUBTEST: test-only > + * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches > + * the free-standing state objects and nothing else. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > +/** > + * SUBTEST: plane-invalid-%s > + * Description: Test error handling when invalid %arg[1] are passed > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @params: plane parameters > + * @params-fence: plane fence parameters > + */ > + > +/** > + * SUBTEST: crtc-invalid-%s > + * Description: Test error handling when invalid %arg[1] are passed > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @params: crtc parameters > + * @params-fence: crtc fence parameters > + */ > + > +/** > + * SUBTEST: atomic-invalid-params > + * Description: Test abuse the atomic ioctl directly in order to test various > + * invalid conditions which the libdrm wrapper won't allow us to > + * create. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: atomic-plane-damage > + * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > #ifndef DRM_CAP_CURSOR_WIDTH > #define DRM_CAP_CURSOR_WIDTH 0x8 > #endif > @@ -302,15 +390,6 @@ static uint32_t plane_get_igt_format(igt_plane_t *plane) > return 0; > } > > -/** > - * SUBTEST: plane-primary-overlay-mutable-zpos > - * Description: Verify that the overlay plane can cover the primary one (and > - * vice versa) by changing their zpos property. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void > plane_primary_overlay_mutable_zpos(data_t *data, igt_output_t *output, igt_plane_t *overlay, > uint32_t format_primary, uint32_t format_overlay) > @@ -392,15 +471,6 @@ plane_primary_overlay_mutable_zpos(data_t *data, igt_output_t *output, igt_plane > igt_assert_eq_u64(igt_plane_get_prop(overlay, IGT_PLANE_ZPOS), 1); > } > > -/** > - * SUBTEST: plane-immutable-zpos > - * Description: Verify the reported zpos property of planes by making sure only > - * higher zpos planes cover the lower zpos ones. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void > plane_immutable_zpos(data_t *data, igt_output_t *output, enum pipe pipe, int n_planes) > { > @@ -530,21 +600,6 @@ plane_immutable_zpos(data_t *data, igt_output_t *output, enum pipe pipe, int n_p > igt_remove_fb(data->drm_fd, &fb_upper); > } > > -/** > - * SUBTEST: plane-%s-legacy > - * Description: Test for KMS atomic modesetting on %arg[1] and ensure coherency > - * between legacy and atomic interfaces. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @cursor: Cursor plane > - * @overlay: Overlay plane > - * @primary: Primary plane > - */ > static void plane_overlay(data_t *data, igt_output_t *output, igt_plane_t *plane, > uint32_t format) > { > @@ -631,16 +686,6 @@ static void plane_primary(data_t *data) > plane_commit(data->primary, COMMIT_UNIVERSAL, ATOMIC_RELAX_NONE); > } > > -/** > - * SUBTEST: test-only > - * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches > - * the free-standing state objects and nothing else. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /* > * Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches the > * free-standing state objects and nothing else. > @@ -749,19 +794,6 @@ static void plane_cursor(data_t *data, igt_output_t *output, igt_plane_t *cursor > plane_commit(cursor, COMMIT_LEGACY, ATOMIC_RELAX_NONE); > } > > -/** > - * SUBTEST: plane-invalid-%s > - * Description: Test error handling when invalid %arg[1] are passed > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @params: plane parameters > - * @params-fence: plane fence parameters > - */ > static void plane_invalid_params(data_t *data, igt_output_t *output) > { > struct igt_fb fb2; > @@ -846,19 +878,6 @@ static void plane_invalid_params_fence(data_t *data, igt_output_t *output) > close(timeline); > } > > -/** > - * SUBTEST: crtc-invalid-%s > - * Description: Test error handling when invalid %arg[1] are passed > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @params: crtc parameters > - * @params-fence: crtc fence parameters > - */ > static void crtc_invalid_params(data_t *data, igt_output_t *output) > { > uint64_t old_mode_id = data->pipe->values[IGT_CRTC_MODE_ID]; > @@ -999,17 +1018,6 @@ static void crtc_invalid_params_fence(data_t *data, igt_output_t *output) > igt_assert(data->pipe->out_fence_fd != -1); > } > > -/** > - * SUBTEST: atomic-invalid-params > - * Description: Test abuse the atomic ioctl directly in order to test various > - * invalid conditions which the libdrm wrapper won't allow us to > - * create. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /* > * Abuse the atomic ioctl directly in order to test various invalid conditions, > * which the libdrm wrapper won't allow us to create. > @@ -1148,14 +1156,6 @@ static void atomic_invalid_params(data_t *data, igt_output_t *output) > do_ioctl_err(data->drm_fd, DRM_IOCTL_MODE_ATOMIC, &ioc, EFAULT); > } > > -/** > - * SUBTEST: atomic-plane-damage > - * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void atomic_plane_damage(data_t *data) > { > struct drm_mode_rect damage[2]; > diff --git a/tests/kms_atomic_interruptible.c b/tests/kms_atomic_interruptible.c > index c86db7149..7419e0746 100644 > --- a/tests/kms_atomic_interruptible.c > +++ b/tests/kms_atomic_interruptible.c > @@ -26,59 +26,13 @@ > * Category: Display > * Description: Tests that interrupt various atomic ioctls. > */ > + > #include <signal.h> > > #include "igt.h" > #include "drmtest.h" > #include "sw_sync.h" > > -IGT_TEST_DESCRIPTION("Tests that interrupt various atomic ioctls."); > - > -enum plane_test_type > -{ > - test_legacy_modeset, > - test_atomic_modeset, > - test_legacy_dpms, > - test_setplane, > - test_setcursor, > - test_pageflip > -}; > - > -static int block_plane(igt_display_t *display, igt_output_t *output, enum plane_test_type test_type, igt_plane_t *plane) > -{ > - int timeline = sw_sync_timeline_create(); > - > - igt_fork(child, 1) { > - /* Ignore the signal helper, we need to block indefinitely on the fence. */ > - signal(SIGCONT, SIG_IGN); > - > - if (test_type == test_legacy_modeset || test_type == test_atomic_modeset) { > - igt_output_set_pipe(output, PIPE_NONE); > - } > - igt_plane_set_fence_fd(plane, sw_sync_timeline_create_fence(timeline, 1)); > - > - igt_display_commit2(display, COMMIT_ATOMIC); > - } > - > - return timeline; > -} > - > -static void unblock(int block) > -{ > - sw_sync_timeline_inc(block, 1); > - close(block); > -} > - > -static void ev_page_flip(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, void *user_data) > -{ > - igt_debug("Retrieved vblank seq: %u on unk\n", seq); > -} > - > -static drmEventContext drm_events = { > - .version = 2, > - .page_flip_handler = ev_page_flip > -}; > - > /** > * SUBTEST: %s-setmode > * Description: Tests the interrupt properties of %arg[1] modeset > @@ -114,9 +68,7 @@ static drmEventContext drm_events = { > * Functionality: kms_core > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: universal-setplane-%s > * Description: Tests the interrupt properties for %arg[1] > * Driver requirement: i915, xe > @@ -129,6 +81,54 @@ static drmEventContext drm_events = { > * @cursor: Cursor plane > * @primary: Primary plane > */ > + > +IGT_TEST_DESCRIPTION("Tests that interrupt various atomic ioctls."); > + > +enum plane_test_type > +{ > + test_legacy_modeset, > + test_atomic_modeset, > + test_legacy_dpms, > + test_setplane, > + test_setcursor, > + test_pageflip > +}; > + > +static int block_plane(igt_display_t *display, igt_output_t *output, enum plane_test_type test_type, igt_plane_t *plane) > +{ > + int timeline = sw_sync_timeline_create(); > + > + igt_fork(child, 1) { > + /* Ignore the signal helper, we need to block indefinitely on the fence. */ > + signal(SIGCONT, SIG_IGN); > + > + if (test_type == test_legacy_modeset || test_type == test_atomic_modeset) { > + igt_output_set_pipe(output, PIPE_NONE); > + } > + igt_plane_set_fence_fd(plane, sw_sync_timeline_create_fence(timeline, 1)); > + > + igt_display_commit2(display, COMMIT_ATOMIC); > + } > + > + return timeline; > +} > + > +static void unblock(int block) > +{ > + sw_sync_timeline_inc(block, 1); > + close(block); > +} > + > +static void ev_page_flip(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, void *user_data) > +{ > + igt_debug("Retrieved vblank seq: %u on unk\n", seq); > +} > + > +static drmEventContext drm_events = { > + .version = 2, > + .page_flip_handler = ev_page_flip > +}; > + > static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t *output, > enum plane_test_type test_type, unsigned plane_type) > { > diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c > index 1ec96ce5e..b8053acf7 100644 > --- a/tests/kms_atomic_transition.c > +++ b/tests/kms_atomic_transition.c > @@ -25,6 +25,7 @@ > * TEST: kms atomic transition > * Category: Display > */ > + > #include "igt.h" > #include "igt_rand.h" > #include "drmtest.h" > @@ -37,6 +38,95 @@ > #include <time.h> > #include <poll.h> > > +/** > + * SUBTEST: plane-primary-toggle-with-vblank-wait > + * Description: Check toggling of primary plane with vblank > + * Driver requirement: i915, xe > + * Functionality: plane, vblank, watermark > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-all-modeset-%s > + * Description: Modeset test for all plane combinations %arg[1] > + * Driver requirement: i915, xe > + * Functionality: plane, watermark > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @transition: default > + * @transition-fencing: with fencing commit > + */ > + > +/** > + * SUBTEST: plane-all-modeset-%s > + * Description: Modeset test for all plane combinations %arg[1] > + * Driver requirement: i915, xe > + * Functionality: plane, watermark > + * Mega feature: eDP > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @transition-fencing-internal-panels: on internal panels with fencing commit > + * @transition-internal-panels: on internal panels > + */ > + > +/** > + * SUBTEST: plane-all-%s > + * Description: Transition test for all plane combinations %arg[1] > + * Driver requirement: i915, xe > + * Functionality: plane, watermark > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @transition: default > + * @transition-fencing: with fencing commit > + * @transition-nonblocking: with non-blocking commit > + * @transition-nonblocking-fencing: with non-blocking & fencing commit > + */ > + > +/** > + * SUBTEST: plane-toggle-modeset-transition > + * Description: Check toggling and modeset transition on plane > + * Driver requirement: i915, xe > + * Functionality: plane, watermark > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-use-after-nonblocking-%s > + * Description: Transition test with non %arg[1] and make sure commit of disabled > + * plane has to complete before atomic commit on that plane > + * Driver requirement: i915, xe > + * Functionality: plane, watermark > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @unbind: blocking commit > + * @unbind-fencing: blocking commit with fencing > + */ > + > +/** > + * SUBTEST: modeset-%s > + * Description: Modeset transition tests for combinations of %arg[1] > + * Driver requirement: i915, xe > + * Functionality: plane, watermark > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @transition: crtc enabled > + * @transition-fencing: crtc enabled with fencing commit > + * @transition-nonblocking: crtc enabled with nonblocking commit > + * @transition-nonblocking-fencing: crtc enabled with nonblocking & fencing commit > + */ > + > #ifndef DRM_CAP_CURSOR_WIDTH > #define DRM_CAP_CURSOR_WIDTH 0x8 > #endif > @@ -62,14 +152,6 @@ int *timeline; > pthread_t *thread; > int *seqno; > > -/** > - * SUBTEST: plane-primary-toggle-with-vblank-wait > - * Description: Check toggling of primary plane with vblank > - * Driver requirement: i915, xe > - * Functionality: plane, vblank, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void > run_primary_test(data_t *data, enum pipe pipe, igt_output_t *output) > { > @@ -482,72 +564,6 @@ static void wait_for_transition(data_t *data, enum pipe pipe, bool nonblocking, > } > } > > -/** > - * SUBTEST: plane-all-modeset-%s > - * Description: Modeset test for all plane combinations %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @transition: default > - * @transition-fencing: with fencing commit > - */ > - > -/** > - * SUBTEST: plane-all-modeset-%s > - * Description: Modeset test for all plane combinations %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: eDP > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @transition-fencing-internal-panels: on internal panels with fencing commit > - * @transition-internal-panels: on internal panels > - */ > - > -/** > - * SUBTEST: plane-all-%s > - * Description: Transition test for all plane combinations %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @transition: default > - * @transition-fencing: with fencing commit > - * @transition-nonblocking: with non-blocking commit > - * @transition-nonblocking-fencing: with non-blocking & fencing commit > - */ > - > -/** > - * SUBTEST: plane-toggle-modeset-transition > - * Description: Check toggling and modeset transition on plane > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-use-after-nonblocking-%s > - * Description: Transition test with non %arg[1] and make sure commit of disabled > - * plane has to complete before atomic commit on that plane > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @unbind: blocking commit > - * @unbind-fencing: blocking commit with fencing > - */ > - > /* > * 1. Set primary plane to a known fb. > * 2. Make sure getcrtc returns the correct fb id. > @@ -1041,21 +1057,6 @@ retry: > } > } > > -/** > - * SUBTEST: modeset-%s > - * Description: Modeset transition tests for combinations of %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @transition: crtc enabled > - * @transition-fencing: crtc enabled with fencing commit > - * @transition-nonblocking: crtc enabled with nonblocking commit > - * @transition-nonblocking-fencing: crtc enabled with nonblocking & fencing commit > - */ > static void run_modeset_transition(data_t *data, int requested_outputs, bool nonblocking, bool fencing) > { > igt_output_t *outputs[IGT_MAX_PIPES] = {}; > diff --git a/tests/kms_bw.c b/tests/kms_bw.c > index 896114a3a..0199b5675 100644 > --- a/tests/kms_bw.c > +++ b/tests/kms_bw.c > @@ -20,16 +20,19 @@ > * OTHER DEALINGS IN THE SOFTWARE. > */ > > +/** > + * TEST: kms bw > + * Category: Display > + * Description: BW test with different resolutions > + */ > + > #include "drm_mode.h" > #include "igt.h" > #include "drm.h" > #include <stdio.h> > #include <xf86drmMode.h> > + > /** > - * TEST: kms bw > - * Category: Display > - * Description: BW test with different resolutions > - * > * SUBTEST: linear-tiling-%d-displays-%s > * Description: bw test with %arg[2] > * Driver requirement: i915, xe > diff --git a/tests/kms_color.c b/tests/kms_color.c > index f59feabd4..119dfc1f4 100644 > --- a/tests/kms_color.c > +++ b/tests/kms_color.c > @@ -27,9 +27,8 @@ > * Category: Display > * Description: Test Color Features at Pipe level > */ > -#include "kms_color_helper.h" > > -IGT_TEST_DESCRIPTION("Test Color Features at Pipe level"); > +#include "kms_color_helper.h" > > /** > * SUBTEST: degamma > @@ -38,7 +37,73 @@ IGT_TEST_DESCRIPTION("Test Color Features at Pipe level"); > * Functionality: colorspace > * Mega feature: Color mgmt > * Test category: functionality test > + * > + * SUBTEST: gamma > + * Description: Verify that gamma LUT transformation works correctly > + * Driver requirement: i915, xe > + * Functionality: colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * SUBTEST: legacy-gamma > + * Description: Verify that legacy gamma LUT transformation works correctly > + * Driver requirement: i915, xe > + * Functionality: colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * SUBTEST: legacy-gamma-reset > + * Description: Verify that setting the legacy gamma LUT resets the gamma LUT > + * set through GAMMA_LUT property > + * Driver requirement: i915, xe > + * Functionality: colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * SUBTEST: ctm-%s > + * Description: Check the color transformation %arg[1] > + * Driver requirement: i915, xe > + * Functionality: colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @0-25: for 0.25 transparency > + * @0-50: for 0.50 transparency > + * @0-75: for 0.75 transparency > + * @blue-to-red: from blue to red > + * @green-to-red: from green to red > + * @max: for maximum transparency > + * @negative: for negative transparency > + * @red-to-blue: from red to blue > + * @signed: for correct signed handling > + */ > + > +/** > + * SUBTEST: deep-color > + * Description: Verify that deep color works correctly > + * Driver requirement: i915, xe > + * Functionality: colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * SUBTEST: invalid-%s-sizes > + * Description: Negative check for %arg[1] sizes > + * Driver requirement: i915, xe > + * Functionality: colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @ctm-matrix: Color transformation matrix > + * @degamma-lut: Degamma LUT > + * @gamma-lut: Gamma LUT > */ > + > +IGT_TEST_DESCRIPTION("Test Color Features at Pipe level"); > + > static bool test_pipe_degamma(data_t *data, > igt_plane_t *primary) > { > @@ -127,15 +192,6 @@ static bool test_pipe_degamma(data_t *data, > return ret; > } > > -/** > - * SUBTEST: gamma > - * Description: Verify that gamma LUT transformation works correctly > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - */ > - > /* > * Draw 3 gradient rectangles in red, green and blue, with a maxed out gamma > * LUT and verify we have the same CRC as drawing solid color rectangles. > @@ -224,15 +280,6 @@ static bool test_pipe_gamma(data_t *data, > return ret; > } > > -/** > - * SUBTEST: legacy-gamma > - * Description: Verify that legacy gamma LUT transformation works correctly > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - */ > - > /* > * Draw 3 gradient rectangles in red, green and blue, with a maxed out legacy > * gamma LUT and verify we have the same CRC as drawing solid color rectangles > @@ -345,16 +392,6 @@ static bool test_pipe_legacy_gamma(data_t *data, > return ret; > } > > -/** > - * SUBTEST: legacy-gamma-reset > - * Description: Verify that setting the legacy gamma LUT resets the gamma LUT > - * set through GAMMA_LUT property > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - */ > - > /* > * Verify that setting the legacy gamma LUT resets the gamma LUT set > * through the GAMMA_LUT property. > @@ -489,27 +526,6 @@ end: > return ret; > } > > -/** > - * SUBTEST: ctm-%s > - * Description: Check the color transformation %arg[1] > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @0-25: for 0.25 transparency > - * @0-50: for 0.50 transparency > - * @0-75: for 0.75 transparency > - * @blue-to-red: from blue to red > - * @green-to-red: from green to red > - * @max: for maximum transparency > - * @negative: for negative transparency > - * @red-to-blue: from red to blue > - * @signed: for correct signed handling > - */ > - > /* > * Draw 3 rectangles using before colors with the ctm matrix apply and verify > * the CRC is equal to using after colors with an identify ctm matrix. > @@ -869,14 +885,6 @@ out: > test_cleanup(data); > } > > -/** > - * SUBTEST: deep-color > - * Description: Verify that deep color works correctly > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - */ > static void > run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > { > @@ -978,20 +986,6 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p) > test_cleanup(data); > } > > -/** > - * SUBTEST: invalid-%s-sizes > - * Description: Negative check for %arg[1] sizes > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @ctm-matrix: Color transformation matrix > - * @degamma-lut: Degamma LUT > - * @gamma-lut: Gamma LUT > - */ > static void > run_invalid_tests_for_pipe(data_t *data) > { > diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c > index d1a83d14e..ce0261287 100644 > --- a/tests/kms_concurrent.c > +++ b/tests/kms_concurrent.c > @@ -22,14 +22,17 @@ > * > */ > > -#include "igt.h" > -#include "drmtest.h" > /** > * TEST: kms concurrent > * Category: Display > * Description: Test atomic mode setting concurrently with multiple planes and > * screen resolution > - * > + */ > + > +#include "igt.h" > +#include "drmtest.h" > + > +/** > * SUBTEST: multi-plane-atomic-lowres > * Description: Test atomic mode setting concurrently with multiple planes and > * screen resolution. > diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c > index 9a0583d96..988f370f9 100644 > --- a/tests/kms_content_protection.c > +++ b/tests/kms_content_protection.c > @@ -27,6 +27,7 @@ > * Category: Display > * Description: Test content protection (HDCP) > */ > + > #include <poll.h> > #include <fcntl.h> > #include <sys/epoll.h> > @@ -37,6 +38,77 @@ > #include "igt_kms.h" > #include "igt_kmod.h" > > +/** > + * SUBTEST: lic > + * Description: Test for the integrity of link. > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4 > + * Mega feature: HDCP > + * Test category: functionality test > + * > + * SUBTEST: content-type-change > + * Description: Test the content type change when the content protection already > + * enabled > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4, hdcp2.2 > + * Mega feature: HDCP > + * Test category: functionality test > + * > + * SUBTEST: mei-interface > + * Description: Test the teardown and rebuild of the interface between Intel > + * and mei hdcp. > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4, hdcp2.2 > + * Mega feature: HDCP > + * Test category: functionality test > + * > + * SUBTEST: srm > + * Description: This test writes the facsimile SRM into the /lib/firmware/ and > + * check the kernel parsing of it by invoking the hdcp authentication. > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4 > + * Mega feature: HDCP > + * Test category: functionality test > + * > + * SUBTEST: uevent > + * Description: Test to detect the HDCP status change when we are reading the > + * uevent sent with the corresponding connector id and property id. > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4 > + * Mega feature: HDCP > + * Test category: functionality test > + * > + * SUBTEST: %s > + * Description: Test content protection with %arg[1] > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4 > + * Mega feature: HDCP > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @atomic: atomic modesetting > + * @atomic-dpms: DPMS ON/OFF during atomic modesetting. > + * @legacy: legacy style commit > + * @type1: content type 1 that can be handled only through HDCP2.2. > + */ > + > +/** > + * SUBTEST: dp-mst-%s > + * Description: Test Content protection %arg[1] over DP MST. > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4, mst > + * Mega feature: HDCP > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @lic-type-0: Type 0 with LIC > + * @lic-type-1: Type 1 with LIC. > + * @type-0: Type 0 > + * @type-1: Type 1 > + */ > + > IGT_TEST_DESCRIPTION("Test content protection (HDCP)"); > > struct data { > @@ -490,60 +562,6 @@ test_fini(igt_output_t *output, enum igt_commit_style s) > igt_display_commit2(&data.display, s); > } > > -/** > - * SUBTEST: lic > - * Description: Test for the integrity of link. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > - * > - * SUBTEST: content-type-change > - * Description: Test the content type change when the content protection already > - * enabled > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4, hdcp2.2 > - * Mega feature: HDCP > - * Test category: functionality test > - * > - * SUBTEST: mei-interface > - * Description: Test the teardown and rebuild of the interface between Intel > - * and mei hdcp. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4, hdcp2.2 > - * Mega feature: HDCP > - * Test category: functionality test > - * > - * SUBTEST: srm > - * Description: This test writes the facsimile SRM into the /lib/firmware/ and > - * check the kernel parsing of it by invoking the hdcp authentication. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > - * > - * SUBTEST: uevent > - * Description: Test to detect the HDCP status change when we are reading the > - * uevent sent with the corresponding connector id and property id. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > - * > - * SUBTEST: %s > - * Description: Test content protection with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @atomic: atomic modesetting > - * @atomic-dpms: DPMS ON/OFF during atomic modesetting. > - * @legacy: legacy style commit > - * @type1: content type 1 that can be handled only through HDCP2.2. > - */ > static void > test_content_protection(enum igt_commit_style s, int content_type) > { > @@ -631,21 +649,6 @@ static void test_cp_lic_on_mst(igt_output_t *mst_outputs[], int valid_outputs, b > } > } > > -/** > - * SUBTEST: dp-mst-%s > - * Description: Test Content protection %arg[1] over DP MST. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4, mst > - * Mega feature: HDCP > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @lic-type-0: Type 0 with LIC > - * @lic-type-1: Type 1 with LIC. > - * @type-0: Type 0 > - * @type-1: Type 1 > - */ > static void > test_content_protection_mst(int content_type) > { > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c > index d2f10356b..3d1c3bcd3 100644 > --- a/tests/kms_cursor_crc.c > +++ b/tests/kms_cursor_crc.c > @@ -22,13 +22,6 @@ > * > */ > > -#include "igt.h" > -#include <errno.h> > -#include <limits.h> > -#include <stdbool.h> > -#include <stdio.h> > -#include <string.h> > - > /** > * TEST: kms cursor crc > * Category: Display > @@ -42,6 +35,77 @@ > * software. > */ > > +#include "igt.h" > +#include <errno.h> > +#include <limits.h> > +#include <stdbool.h> > +#include <stdio.h> > +#include <string.h> > + > +/** > + * SUBTEST: cursor-dpms > + * Description: Check random placement of a cursor with DPMS. > + * Driver requirement: i915, xe > + * Functionality: cursor, dpms > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: cursor-suspend > + * Description: Check random placement of a cursor with suspend. > + * Driver requirement: i915, xe > + * Functionality: cursor, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: cursor-%s > + * Description: %arg[1] > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @alpha-opaque: Validates the composition of a fully opaque cursor plane, > + * i.e., alpha channel equal to 1.0. > + * @alpha-transparent: Validates the composition of a fully transparent cursor > + * plane, i.e., alpha channel equal to 0.0. > + * @size-change: Create a maximum size cursor, then change the size in > + * flight to smaller ones to see that the size is applied > + * correctly. > + */ > + > +/** > + * SUBTEST: cursor-%s-%s > + * Description: Check if a %arg[2] cursor is %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @offscreen: well-positioned outside the screen > + * @onscreen: well-positioned inside the screen > + * @random: randomly placed > + * @rapid-movement: rapidly udates for movements > + * @sliding: smooth for horizontal, vertical & diagonal movements > + * > + * arg[2]: > + * > + * @128x128: 128x128 size > + * @128x42: 128x42 size > + * @256x256: 256x256 size > + * @256x85: 256x85 size > + * @32x10: 32x10 size > + * @32x32: 32x32 size > + * @512x170: 512x170 size > + * @512x512: 512x512 size > + * @64x21: 64x21 size > + * @64x64: 64x64 size > + * @max-size: Max supported size > + */ > + > IGT_TEST_DESCRIPTION( > "Use the display CRC support to validate cursor plane functionality. " > "The test will position the cursor plane either fully onscreen, " > @@ -667,38 +731,6 @@ static bool require_cursor_size(data_t *data, int w, int h) > return !!ret; > } > > -/** > - * SUBTEST: cursor-dpms > - * Description: Check random placement of a cursor with DPMS. > - * Driver requirement: i915, xe > - * Functionality: cursor, dpms > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: cursor-suspend > - * Description: Check random placement of a cursor with suspend. > - * Driver requirement: i915, xe > - * Functionality: cursor, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: cursor-%s > - * Description: %arg[1] > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @alpha-opaque: Validates the composition of a fully opaque cursor plane, > - * i.e., alpha channel equal to 1.0. > - * @alpha-transparent: Validates the composition of a fully transparent cursor > - * plane, i.e., alpha channel equal to 0.0. > - * @size-change: Create a maximum size cursor, then change the size in > - * flight to smaller ones to see that the size is applied > - * correctly. > - */ > static void run_test(data_t *data, void (*testfunc)(data_t *), int cursor_w, int cursor_h) > { > prepare_crtc(data, cursor_w, cursor_h); > @@ -795,37 +827,6 @@ static bool execution_constraint(enum pipe pipe) > return false; > } > > - > -/** > - * SUBTEST: cursor-%s-%s > - * Description: Check if a %arg[2] cursor is %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @offscreen: well-positioned outside the screen > - * @onscreen: well-positioned inside the screen > - * @random: randomly placed > - * @rapid-movement: rapidly udates for movements > - * @sliding: smooth for horizontal, vertical & diagonal movements > - * > - * arg[2]: > - * > - * @128x128: 128x128 size > - * @128x42: 128x42 size > - * @256x256: 256x256 size > - * @256x85: 256x85 size > - * @32x10: 32x10 size > - * @32x32: 32x32 size > - * @512x170: 512x170 size > - * @512x512: 512x512 size > - * @64x21: 64x21 size > - * @64x64: 64x64 size > - * @max-size: Max supported size > - */ > static void run_size_tests(data_t *data, int w, int h) > { > enum pipe pipe; > diff --git a/tests/kms_cursor_edge_walk.c b/tests/kms_cursor_edge_walk.c > index e284fc4d8..d9d140409 100644 > --- a/tests/kms_cursor_edge_walk.c > +++ b/tests/kms_cursor_edge_walk.c > @@ -22,18 +22,21 @@ > * > */ > > +/** > + * TEST: kms cursor edge walk > + * Category: Display > + * Description: Exercise CHV pipe C cursor fail > + * Description: Test to check different cursor sizes by walking different edges of screen > + */ > + > #include "igt.h" > #include <errno.h> > #include <limits.h> > #include <stdbool.h> > #include <stdio.h> > #include <string.h> > + > /** > - * TEST: kms cursor edge walk > - * Category: Display > - * Description: Exercise CHV pipe C cursor fail > - * Description: Test to check different cursor sizes by walking different edges of screen > - * > * SUBTEST: %s-%s > * Description: Checking cursor size %arg[1] by walking %arg[2] of screen > * Driver requirement: i915, xe > diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c > index d0d752e5e..6a4955ef1 100644 > --- a/tests/kms_cursor_legacy.c > +++ b/tests/kms_cursor_legacy.c > @@ -37,6 +37,256 @@ > #include "igt_rand.h" > #include "igt_stats.h" > > +/** > + * SUBTEST: %s-%s > + * Description: Test checks how many cursor updates we can fit between vblanks > + * on single/all pipes with different modes, priority and number > + * of processes > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @single: Single > + * @torture: Torture > + * @forked: Forked > + * > + * arg[2]: > + * > + * @bo: BO > + * @move: Move > + */ > + > +/** > + * SUBTEST: basic-busy-flip-before-cursor-%s > + * Description: Cursor test with %arg[1] mode > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: cursor > + * Mega feature: General Display Features > + * > + * SUBTEST: basic-busy-flip-before-cursor-varying-size > + * Description: Change the size of cursor b/w 64*64 to maxw x maxh. > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @atomic: atomic > + * @legacy: legacy > + */ > + > +/** > + * SUBTEST: basic-flip-after-cursor-%s > + * Description: Cursor test with %arg[1] > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: cursor > + * Mega feature: General Display Features > + * > + * SUBTEST: basic-flip-before-cursor-%s > + * Description: Cursor test with %arg[1] > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: cursor > + * Mega feature: General Display Features > + * > + * arg[1]: > + * > + * @atomic: atomic mode > + * @legacy: legacy mode > + * @varying-size: varying size > + */ > + > +/** > + * SUBTEST: %s-flip-before-cursor-%s > + * Description: Adds variety of tests: > + * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n > + * - atomic-transition: alternates between a full screen sprite plane > + * and full screen primary plane.\n" > + * - toggle: which toggles cursor visibility and make sure cursor moves > + * between updates. > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @short: > + * @short-busy: > + * > + * arg[2]: > + * > + * @atomic-transitions: > + * @atomic-transitions-varying-size: > + * @toggle: > + */ > + > +/** > + * SUBTEST: short-flip-after-cursor-%s > + * Description: Adds variety of tests: > + * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n > + * - atomic-transition: alternates between a full screen sprite plane > + * and full screen primary plane.\n" > + * - toggle: which toggles cursor visibility and make sure cursor moves > + * between updates. > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @atomic-transitions: > + * @atomic-transitions-varying-size: > + * @toggle: > + */ > + > +/** > + * SUBTEST: long-nonblocking-modeset-vs-cursor-atomic > + * Description: Test checks how many cursor updates we can fit between vblanks > + * on all pipes with different modes, priority and number of processes > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: nonblocking-modeset-vs-cursor-atomic > + * Description: Test checks how many cursor updates we can fit between vblanks > + * on all pipes with different modes, priority and number of processes > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: 2x-%s-%s > + * Description: This test executes flips on both CRTCs while running cursor > + * updates in parallel > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @flip-vs-cursor: > + * @flip-vs-cursor: > + * @long-flip-vs-cursor: > + * @long-flip-vs-cursor: > + * > + * arg[2]: > + * > + * @atomic: > + * @legacy: > + */ > + > +/** > + * SUBTEST: 2x-%s-atomic > + * Description: This test executes flips on both CRTCs while running cursor > + * updates in parallel > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @long-nonblocking-modeset-vs-cursor: > + * @nonblocking-modeset-vs-cursor: > + */ > + > +/** > + * SUBTEST: %s-%s > + * Description: The essence of the basic test is that neither the cursor nor the > + * nonblocking flip stall the application of the next > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @cursor-vs-flip: > + * @cursorA-vs-flipA: > + * @cursorA-vs-flipB: > + * @cursorB-vs-flipA: > + * @cursorB-vs-flipB: > + * @flip-vs-cursor: > + * > + * arg[2]: > + * > + * @atomic: > + * @atomic-transitions: > + * @atomic-transitions-varying-size: > + * @legacy: > + * @toggle: > + * @varying-size: > + */ > + > +/** > + * SUBTEST: 2x-%s-%s > + * Description: This test executes flips on both CRTCs while running cursor updates in parallel > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @cursor-vs-flip: > + * @cursor-vs-flip: > + * @long-cursor-vs-flip: > + * @long-cursor-vs-flip: > + * > + * arg[2]: > + * > + * @atomic: > + * @legacy: > + */ > + > +/** > + * SUBTEST: flip-vs-cursor-crc-%s > + * Description: this test perform a page flip followed by a cursor update > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @atomic: > + * @legacy: > + */ > + > +/** > + * SUBTEST: flip-vs-cursor-busy-crc-%s > + * Description: this test perform a busy bo update followed by a cursor update > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @atomic: > + * @legacy: > + */ > + > +/** > + * SUBTEST: modeset-atomic-cursor-hotspot > + * Description: Test changes the cursor hotspot and checks that the property is > + * updated accordignly > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > #if defined(__x86_64__) || defined(__i386__) > #define cpu_relax() __builtin_ia32_pause() > #else > @@ -78,27 +328,6 @@ static void override_output_modes(igt_display_t *display, > igt_output_set_pipe(output2, PIPE_NONE); > } > > -/** > - * SUBTEST: %s-%s > - * Description: Test checks how many cursor updates we can fit between vblanks > - * on single/all pipes with different modes, priority and number > - * of processes > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @single: Single > - * @torture: Torture > - * @forked: Forked > - * > - * arg[2]: > - * > - * @bo: BO > - * @move: Move > - */ > static void stress(igt_display_t *display, > enum pipe pipe, int num_children, unsigned mode, > int timeout) > @@ -569,93 +798,6 @@ enum basic_flip_cursor { > > #define BASIC_BUSY 0x1 > > -/** > - * SUBTEST: basic-busy-flip-before-cursor-%s > - * Description: Cursor test with %arg[1] mode > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: cursor > - * Mega feature: General Display Features > - * > - * SUBTEST: basic-busy-flip-before-cursor-varying-size > - * Description: Change the size of cursor b/w 64*64 to maxw x maxh. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @atomic: atomic > - * @legacy: legacy > - */ > - > -/** > - * SUBTEST: basic-flip-after-cursor-%s > - * Description: Cursor test with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: cursor > - * Mega feature: General Display Features > - * > - * SUBTEST: basic-flip-before-cursor-%s > - * Description: Cursor test with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: cursor > - * Mega feature: General Display Features > - * > - * arg[1]: > - * > - * @atomic: atomic mode > - * @legacy: legacy mode > - * @varying-size: varying size > - */ > - > -/** > - * SUBTEST: %s-flip-before-cursor-%s > - * Description: Adds variety of tests: > - * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n > - * - atomic-transition: alternates between a full screen sprite plane > - * and full screen primary plane.\n" > - * - toggle: which toggles cursor visibility and make sure cursor moves > - * between updates. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @short: > - * @short-busy: > - * > - * arg[2]: > - * > - * @atomic-transitions: > - * @atomic-transitions-varying-size: > - * @toggle: > - */ > - > -/** > - * SUBTEST: short-flip-after-cursor-%s > - * Description: Adds variety of tests: > - * - varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n > - * - atomic-transition: alternates between a full screen sprite plane > - * and full screen primary plane.\n" > - * - toggle: which toggles cursor visibility and make sure cursor moves > - * between updates. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @atomic-transitions: > - * @atomic-transitions-varying-size: > - * @toggle: > - */ > static void basic_flip_cursor(igt_display_t *display, > enum flip_test mode, > enum basic_flip_cursor order, > @@ -977,23 +1119,6 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo > igt_remove_fb(display->drm_fd, &cursor_fb2); > } > > -/** > - * SUBTEST: long-nonblocking-modeset-vs-cursor-atomic > - * Description: Test checks how many cursor updates we can fit between vblanks > - * on all pipes with different modes, priority and number of processes > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: nonblocking-modeset-vs-cursor-atomic > - * Description: Test checks how many cursor updates we can fit between vblanks > - * on all pipes with different modes, priority and number of processes > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void nonblocking_modeset_vs_cursor(igt_display_t *display, int loops) > { > struct igt_fb fb_info, cursor_fb; > @@ -1093,42 +1218,6 @@ static void wait_for_modeset(igt_display_t *display, unsigned flags, int timeout > igt_reset_timeout(); > } > > -/** > - * SUBTEST: 2x-%s-%s > - * Description: This test executes flips on both CRTCs while running cursor > - * updates in parallel > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @flip-vs-cursor: > - * @flip-vs-cursor: > - * @long-flip-vs-cursor: > - * @long-flip-vs-cursor: > - * > - * arg[2]: > - * > - * @atomic: > - * @legacy: > - */ > - > -/** > - * SUBTEST: 2x-%s-atomic > - * Description: This test executes flips on both CRTCs while running cursor > - * updates in parallel > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @long-nonblocking-modeset-vs-cursor: > - * @nonblocking-modeset-vs-cursor: > - */ > static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool modeset, bool atomic) > { > struct drm_mode_cursor arg1[2], arg2[2]; > @@ -1316,33 +1405,6 @@ done: > munmap((void *)shared, PAGE_SIZE); > } > > -/** > - * SUBTEST: %s-%s > - * Description: The essence of the basic test is that neither the cursor nor the > - * nonblocking flip stall the application of the next > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @cursor-vs-flip: > - * @cursorA-vs-flipA: > - * @cursorA-vs-flipB: > - * @cursorB-vs-flipA: > - * @cursorB-vs-flipB: > - * @flip-vs-cursor: > - * > - * arg[2]: > - * > - * @atomic: > - * @atomic-transitions: > - * @atomic-transitions-varying-size: > - * @legacy: > - * @toggle: > - * @varying-size: > - */ > static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloops) > { > struct drm_mode_cursor arg[2]; > @@ -1455,26 +1517,6 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo > igt_remove_fb(display->drm_fd, &cursor_fb2); > } > > -/** > - * SUBTEST: 2x-%s-%s > - * Description: This test executes flips on both CRTCs while running cursor updates in parallel > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @cursor-vs-flip: > - * @cursor-vs-flip: > - * @long-cursor-vs-flip: > - * @long-cursor-vs-flip: > - * > - * arg[2]: > - * > - * @atomic: > - * @legacy: > - */ > static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool atomic) > { > struct drm_mode_cursor arg[2][2]; > @@ -1603,19 +1645,6 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool > munmap((void *)shared, PAGE_SIZE); > } > > -/** > - * SUBTEST: flip-vs-cursor-crc-%s > - * Description: this test perform a page flip followed by a cursor update > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @atomic: > - * @legacy: > - */ > static void flip_vs_cursor_crc(igt_display_t *display, bool atomic) > { > struct drm_mode_cursor arg[2]; > @@ -1688,19 +1717,6 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic) > igt_remove_fb(display->drm_fd, &cursor_fb); > } > > -/** > - * SUBTEST: flip-vs-cursor-busy-crc-%s > - * Description: this test perform a busy bo update followed by a cursor update > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @atomic: > - * @legacy: > - */ > static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic) > { > struct drm_mode_cursor arg[2]; > @@ -1813,15 +1829,6 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic) > put_ahnd(ahnd); > } > > -/** > - * SUBTEST: modeset-atomic-cursor-hotspot > - * Description: Test changes the cursor hotspot and checks that the property is > - * updated accordignly > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void modeset_atomic_cursor_hotspot(igt_display_t *display) > { > struct igt_fb cursor_fb; > diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c > index aff2a93bc..a0a831724 100644 > --- a/tests/kms_display_modes.c > +++ b/tests/kms_display_modes.c > @@ -29,8 +29,27 @@ > * Category: Display > * Description: Test Display Modes > */ > + > #include "igt.h" > > +/** > + * SUBTEST: extended-mode-basic > + * Description: Test for validating display extended mode with a pair of connected > + * displays > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: mst-extended-mode-negative > + * Description: Negative test for validating display extended mode with a pair > + * of connected 2k-4k or 4k-4k displays. > + * Driver requirement: i915, xe > + * Functionality: kms_core, mst > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > #define HDISPLAY_4K 3840 > #define VDISPLAY_4K 2160 > > @@ -205,15 +224,6 @@ static void run_extendedmode_basic(data_t *data, > for_each_connected_output_local((display), (output)) \ > for_each_if (igt_pipe_connector_valid((pipe), (output))) > > -/** > - * SUBTEST: extended-mode-basic > - * Description: Test for validating display extended mode with a pair of connected > - * displays > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void run_extendedmode_test(data_t *data) { > enum pipe pipe1, pipe2; > igt_output_t *output1, *output2; > @@ -259,15 +269,6 @@ static void run_extendedmode_test(data_t *data) { > } > } > > -/** > - * SUBTEST: mst-extended-mode-negative > - * Description: Negative test for validating display extended mode with a pair > - * of connected 2k-4k or 4k-4k displays. > - * Driver requirement: i915, xe > - * Functionality: kms_core, mst > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void run_extendedmode_negative(data_t *data, int pipe1, int pipe2) > { > struct igt_fb fbs[2]; > diff --git a/tests/kms_dither.c b/tests/kms_dither.c > index 3387a3b10..5683fe5c5 100644 > --- a/tests/kms_dither.c > +++ b/tests/kms_dither.c > @@ -30,11 +30,28 @@ > * Category: Display > * Description: Test Dithering block status > */ > + > #include "igt.h" > #include <fcntl.h> > #include <termios.h> > #include <unistd.h> > > +/** > + * SUBTEST: fb-8bpc-vs-panel-6bpc > + * Description: Framebuffer BPC:8, Panel BPC:6, Expected Dither:Enable > + * Driver requirement: i915, xe > + * Functionality: colorspace, kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: fb-8bpc-vs-panel-8bpc > + * Description: Framebuffer BPC:8, Panel BPC:8, Expected Dither:Disable > + * Driver requirement: i915, xe > + * Functionality: colorspace, kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > IGT_TEST_DESCRIPTION("Test Dithering block status"); > > /* Connector BPC */ > @@ -186,21 +203,6 @@ static bool is_supported(igt_output_t *output) > igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC); > } > > -/** > - * SUBTEST: fb-8bpc-vs-panel-6bpc > - * Description: Framebuffer BPC:8, Panel BPC:6, Expected Dither:Enable > - * Driver requirement: i915, xe > - * Functionality: colorspace, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: fb-8bpc-vs-panel-8bpc > - * Description: Framebuffer BPC:8, Panel BPC:8, Expected Dither:Disable > - * Driver requirement: i915, xe > - * Functionality: colorspace, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void > run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc) > { > diff --git a/tests/kms_dp_aux_dev.c b/tests/kms_dp_aux_dev.c > index e6a67e22e..597d4c2ef 100644 > --- a/tests/kms_dp_aux_dev.c > +++ b/tests/kms_dp_aux_dev.c > @@ -22,6 +22,12 @@ > * > */ > > +/** > + * TEST: kms dp aux dev > + * Category: Display > + * Description: Test that /dev/drm_dp_aux reads work > + */ > + > #include "config.h" > > #include <sys/types.h> > @@ -31,11 +37,8 @@ > > #include "igt.h" > #include "igt_kms.h" > + > /** > - * TEST: kms dp aux dev > - * Category: Display > - * Description: Test that /dev/drm_dp_aux reads work > - * > * SUBTEST: > * Description: Test that /dev/drm_dp_aux reads work > * Driver requirement: i915, xe > diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c > index 1baa93f5f..7aec4e78c 100644 > --- a/tests/kms_feature_discovery.c > +++ b/tests/kms_feature_discovery.c > @@ -28,7 +28,18 @@ > * Description: A metatest that checks for \"features\" presence. > * The subtests here should only skip or pass, > * anything else means we have a serious problem. > - * > + */ > + > +#include "igt.h" > +#ifdef HAVE_CHAMELIUM > +#include "igt_chamelium.h" > +#endif > +#include "igt_kms.h" > +#include "igt_psr.h" > +#include "igt_sysfs.h" > +#include "igt_types.h" > + > +/** > * SUBTEST: display > * Description: Make sure that we have display support. > * Driver requirement: i915, xe > @@ -75,15 +86,6 @@ > * arg[1].values: 1, 2, 3, 4 > */ > > -#include "igt.h" > -#ifdef HAVE_CHAMELIUM > -#include "igt_chamelium.h" > -#endif > -#include "igt_kms.h" > -#include "igt_psr.h" > -#include "igt_sysfs.h" > -#include "igt_types.h" > - > static igt_display_t display; > > IGT_TEST_DESCRIPTION("A metatest that checks for \"features\" presence. " > diff --git a/tests/kms_flip.c b/tests/kms_flip.c > index c427f22e6..798103682 100755 > --- a/tests/kms_flip.c > +++ b/tests/kms_flip.c > @@ -42,6 +42,18 @@ > #include <sys/time.h> > #include <sys/ioctl.h> > > +#ifdef HAVE_LINUX_KD_H > +#include <linux/kd.h> > +#elif HAVE_SYS_KD_H > +#include <sys/kd.h> > +#endif > +#include <time.h> > +#include <pthread.h> > + > +#include "i915/gem_create.h" > +#include "igt_stats.h" > +#include "xe/xe_query.h" > + > /** > * SUBTEST: 2x-flip-vs-fences > * Description: Test to validate pageflips along with avialable fences on a pair > @@ -280,17 +292,40 @@ > * @modeset-vs-vblank-race: modeset and check for vblank > */ > > -#ifdef HAVE_LINUX_KD_H > -#include <linux/kd.h> > -#elif HAVE_SYS_KD_H > -#include <sys/kd.h> > -#endif > -#include <time.h> > -#include <pthread.h> > - > -#include "i915/gem_create.h" > -#include "igt_stats.h" > -#include "xe/xe_query.h" > +/** > + * SUBTEST: basic-flip-vs-dpms > + * Description: Basic test to valide pageflip with dpms > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: dpms, vblank > + * Mega feature: General Display Features > + * > + * SUBTEST: basic-flip-vs-%s > + * Description: Basic test to valide pageflip with %arg[1] > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: vblank > + * Mega feature: General Display Features > + * > + * arg[1]: > + * > + * @modeset: modeset > + * @wf_vblank: wait for vblank > + * > + * SUBTEST: basic-plain-flip > + * Description: Basic test for validating page flip > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: vblank > + * Mega feature: General Display Features > + * > + * SUBTEST: nonblocking-read > + * Description: Tests that nonblocking reading fails correctly > + * Driver requirement: i915, xe > + * Functionality: vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > > #define TEST_DPMS (1 << 0) > > @@ -1811,34 +1846,6 @@ test: > __run_test_on_crtc_set(o, crtc_idxs, crtc_count, duration_ms); > } > > -/** > - * SUBTEST: basic-flip-vs-dpms > - * Description: Basic test to valide pageflip with dpms > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: dpms, vblank > - * Mega feature: General Display Features > - * > - * SUBTEST: basic-flip-vs-%s > - * Description: Basic test to valide pageflip with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: vblank > - * Mega feature: General Display Features > - * > - * arg[1]: > - * > - * @modeset: modeset > - * @wf_vblank: wait for vblank > - * > - * SUBTEST: basic-plain-flip > - * Description: Basic test for validating page flip > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: vblank > - * Mega feature: General Display Features > - */ > - > static void run_test(int duration, int flags) > { > struct test_output o; > @@ -2023,14 +2030,6 @@ static void kms_flip_exit_handler(int sig) > kmstest_set_connector_dpms(drm_fd, last_connector, DRM_MODE_DPMS_ON); > } > > -/** > - * SUBTEST: nonblocking-read > - * Description: Tests that nonblocking reading fails correctly > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_nonblocking_read(int in) > { > char buffer[1024]; > diff --git a/tests/kms_flip_event_leak.c b/tests/kms_flip_event_leak.c > index f526a0ca9..a668b1da3 100644 > --- a/tests/kms_flip_event_leak.c > +++ b/tests/kms_flip_event_leak.c > @@ -22,6 +22,12 @@ > * > */ > > +/** > + * TEST: kms flip event leak > + * Category: Display > + * Description: Test to validate flip event leak > + */ > + > #include "igt.h" > #include <errno.h> > #include <stdbool.h> > @@ -32,10 +38,6 @@ > #include "xe/xe_query.h" > > /** > - * TEST: kms flip event leak > - * Category: Display > - * Description: Test to validate flip event leak > - * > * SUBTEST: basic > * Description: This test tries to provoke the kernel into leaking a pending > * page flip event when the fd is closed before the flip has > diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c > index e3b9034db..55e6a7767 100644 > --- a/tests/kms_force_connector_basic.c > +++ b/tests/kms_force_connector_basic.c > @@ -30,6 +30,36 @@ > > #include "igt.h" > > +/** > + * SUBTEST: force-load-detect > + * Description: Test to detect forced load. > + * Driver requirement: i915 > + * Functionality: force_connector, vga > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: force-connector-state > + * Description: Test to check the forced connector state > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: force_connector > + * Mega feature: General Display Features > + * > + * SUBTEST: force-edid > + * Description: Test to check the values after forcing edid > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: force_connector > + * Mega feature: General Display Features > + * > + * SUBTEST: prune-stale-modes > + * Description: Tests pruning of stale modes > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: force_connector > + * Mega feature: General Display Features > + */ > + > IGT_TEST_DESCRIPTION("Check the debugfs force connector/edid features work" > " correctly."); > > @@ -69,14 +99,6 @@ static void reset_connectors(void) > drm_close_driver(drm_fd); > } > > -/** > - * SUBTEST: force-load-detect > - * Description: Test to detect forced load. > - * Driver requirement: i915 > - * Functionality: force_connector, vga > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void force_load_detect(int drm_fd, drmModeConnectorPtr connector, drmModeRes *res) > { > int i, j, w = 64, h = 64; > @@ -165,14 +187,6 @@ static void force_load_detect(int drm_fd, drmModeConnectorPtr connector, drmMode > } > } > > -/** > - * SUBTEST: force-connector-state > - * Description: Test to check the forced connector state > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: force_connector > - * Mega feature: General Display Features > - */ > static void force_connector_state(int drm_fd, drmModeConnectorPtr connector) > { > igt_display_t display; > @@ -212,14 +226,6 @@ static void force_connector_state(int drm_fd, drmModeConnectorPtr connector) > igt_display_fini(&display); > } > > -/** > - * SUBTEST: force-edid > - * Description: Test to check the values after forcing edid > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: force_connector > - * Mega feature: General Display Features > - */ > static void force_edid(int drm_fd, drmModeConnectorPtr connector) > { > drmModeConnector *temp; > @@ -261,14 +267,6 @@ static void force_edid(int drm_fd, drmModeConnectorPtr connector) > > } > > -/** > - * SUBTEST: prune-stale-modes > - * Description: Tests pruning of stale modes > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: force_connector > - * Mega feature: General Display Features > - */ > static void prune_stale_modes(int drm_fd, drmModeConnectorPtr connector) > { > int i; > diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c > index 059f66d99..b4a155e2d 100644 > --- a/tests/kms_getfb.c > +++ b/tests/kms_getfb.c > @@ -32,6 +32,7 @@ > * Category: Display > * Description: Tests GETFB and GETFB2 ioctls. > */ > + > #include "igt.h" > #include <unistd.h> > #include <stdlib.h> > @@ -50,6 +51,88 @@ > #include "xe/xe_query.h" > #include "xe/xe_ioctl.h" > > +/** > + * SUBTEST: getfb-handle-%s > + * Description: Tests error handling %arg[1] > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @closed: when passing a handle that has been closed. > + * @not-fb: when passing an invalid handle. > + * @valid: when passing an valid handle. > + * @zero: for a zero'd input. > + */ > + > +/** > + * SUBTEST: getfb-reject-ccs > + * Description: Tests error handling while requesting CCS buffers it should > + * refuse because getfb supports returning a single buffer handle. > + * Driver requirement: i915, xe > + * Functionality: ccs, kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: getfb-%s-different-handles > + * Description: Tests error handling while requesting for two different handles > + * from %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @addfb: same fd > + * @repeated: different fd > + */ > + > +/** > + * SUBTEST: getfb2-accept-ccs > + * Description: Tests outputs are correct when retrieving a CCS framebuffer. > + * Driver requirement: i915, xe > + * Functionality: ccs, kms_gem_interop, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: getfb2-into-addfb2 > + * Description: Output check by passing the output of GETFB2 into ADDFB2. > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: getfb2-handle-%s > + * Description: Tests error handling %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @closed: when passing a handle that has been closed > + * @not-fb: when passing an invalid handle > + * @zero: for a zero'd input > + */ > + > +/** > + * SUBTEST: %s-handle-protection > + * Description: Make sure %arg[1] return handles if caller is non-root or non-master. > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @getfb: GETFB ioctl > + * @getfb2: GETFB2 ioctl > + */ > + > IGT_TEST_DESCRIPTION("Tests GETFB and GETFB2 ioctls."); > > static bool has_getfb_iface(int fd) > @@ -178,21 +261,6 @@ static uint32_t get_any_prop_id(int fd) > return 0; > } > > -/** > - * SUBTEST: getfb-handle-%s > - * Description: Tests error handling %arg[1] > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @closed: when passing a handle that has been closed. > - * @not-fb: when passing an invalid handle. > - * @valid: when passing an valid handle. > - * @zero: for a zero'd input. > - */ > static void test_handle_input(int fd) > { > struct drm_mode_fb_cmd2 add = {}; > @@ -248,28 +316,6 @@ static void test_handle_input(int fd) > gem_close(fd, add.handles[0]); > } > > -/** > - * SUBTEST: getfb-reject-ccs > - * Description: Tests error handling while requesting CCS buffers it should > - * refuse because getfb supports returning a single buffer handle. > - * Driver requirement: i915, xe > - * Functionality: ccs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: getfb-%s-different-handles > - * Description: Tests error handling while requesting for two different handles > - * from %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @addfb: same fd > - * @repeated: different fd > - */ > static void test_duplicate_handles(int fd) > { > struct drm_mode_fb_cmd2 add = {}; > @@ -335,34 +381,6 @@ static void test_duplicate_handles(int fd) > } > } > > -/** > - * SUBTEST: getfb2-accept-ccs > - * Description: Tests outputs are correct when retrieving a CCS framebuffer. > - * Driver requirement: i915, xe > - * Functionality: ccs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: getfb2-into-addfb2 > - * Description: Output check by passing the output of GETFB2 into ADDFB2. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: getfb2-handle-%s > - * Description: Tests error handling %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @closed: when passing a handle that has been closed > - * @not-fb: when passing an invalid handle > - * @zero: for a zero'd input > - */ > static void test_getfb2(int fd) > { > struct drm_mode_fb_cmd2 add_basic = {}; > @@ -471,19 +489,6 @@ static void test_getfb2(int fd) > } > } > > -/** > - * SUBTEST: %s-handle-protection > - * Description: Make sure %arg[1] return handles if caller is non-root or non-master. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @getfb: GETFB ioctl > - * @getfb2: GETFB2 ioctl > - */ > static void test_handle_protection(void) { > int non_master_fd; > struct drm_mode_fb_cmd2 non_master_add = {}; > diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c > index 61f62fa7c..3a279e2c9 100644 > --- a/tests/kms_hdmi_inject.c > +++ b/tests/kms_hdmi_inject.c > @@ -22,6 +22,14 @@ > * > */ > > +/** > + * TEST: kms hdmi inject > + * Category: Display > + * Description: Test that in-kernel EDID parsing is producing expected results > + * by forcing a HDMI connector with a known EDID and checking that > + * the metadata exposed to user space matches. > + */ > + > #include "config.h" > > #include <dirent.h> > @@ -32,12 +40,6 @@ > #include "xe/xe_query.h" > > /** > - * TEST: kms hdmi inject > - * Category: Display > - * Description: Test that in-kernel EDID parsing is producing expected results > - * by forcing a HDMI connector with a known EDID and checking that > - * the metadata exposed to user space matches. > - * > * SUBTEST: inject-4k > * Description: Make sure that 4K modes exposed by DRM match the forced EDID and > * modesetting using it succeed. > diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c > index ed98a0c26..215f81892 100644 > --- a/tests/kms_hdr.c > +++ b/tests/kms_hdr.c > @@ -25,12 +25,76 @@ > * Category: Display > * Description: Test HDR metadata interfaces and bpc switch > */ > + > #include "igt.h" > #include <fcntl.h> > #include <termios.h> > #include <unistd.h> > #include "igt_edid.h" > > +/** > + * SUBTEST: bpc-switch > + * Description: Tests switching between different display output bpc modes > + * Driver requirement: i915, xe > + * Functionality: colorspace, hdr > + * Mega feature: HDR > + * Test category: functionality test > + * > + * SUBTEST: bpc-switch-dpms > + * Description: Tests switching between different display output bpc modes with dpms > + * Driver requirement: i915, xe > + * Functionality: colorspace, dpms, hdr > + * Mega feature: HDR > + * Test category: functionality test > + * > + * SUBTEST: bpc-switch-suspend > + * Description: Tests switching between different display output bpc modes with suspend > + * Driver requirement: i915, xe > + * Functionality: colorspace, hdr, suspend > + * Mega feature: HDR > + * Test category: functionality test > + * > + * SUBTEST: invalid-hdr > + * Description: Test to ensure HDR is not enabled on non-HDR panel > + * Driver requirement: i915, xe > + * Functionality: colorspace, hdr > + * Mega feature: HDR > + * Test category: functionality test > + * > + * SUBTEST: invalid-metadata-sizes > + * Description: Tests invalid HDR metadata sizes > + * Driver requirement: i915, xe > + * Functionality: colorspace, hdr > + * Mega feature: HDR > + * Test category: functionality test > + * > + * SUBTEST: static-toggle-dpms > + * Description: Tests static toggle with dpms > + * Driver requirement: i915, xe > + * Functionality: colorspace, dpms, hdr > + * Mega feature: HDR > + * Test category: functionality test > + * > + * SUBTEST: static-toggle-suspend > + * Description: Tests static toggle with suspend > + * Driver requirement: i915, xe > + * Functionality: colorspace, hdr, suspend > + * Mega feature: HDR > + * Test category: functionality test > + * > + * SUBTEST: static-%s > + * Description: Tests %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: colorspace, hdr > + * Mega feature: HDR > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @swap: swapping static HDR metadata > + * @toggle: entering and exiting HDR mode > + */ > + > IGT_TEST_DESCRIPTION("Test HDR metadata interfaces and bpc switch"); > > /* HDR EDID parsing. */ > @@ -213,28 +277,6 @@ static bool has_max_bpc(igt_output_t *output) > igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC); > } > > -/** > - * SUBTEST: bpc-switch > - * Description: Tests switching between different display output bpc modes > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > - * > - * SUBTEST: bpc-switch-dpms > - * Description: Tests switching between different display output bpc modes with dpms > - * Driver requirement: i915, xe > - * Functionality: colorspace, dpms, hdr > - * Mega feature: HDR > - * Test category: functionality test > - * > - * SUBTEST: bpc-switch-suspend > - * Description: Tests switching between different display output bpc modes with suspend > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr, suspend > - * Mega feature: HDR > - * Test category: functionality test > - */ > static void test_bpc_switch(data_t *data, uint32_t flags) > { > igt_display_t *display = &data->display; > @@ -588,47 +630,6 @@ static bool has_hdr(igt_output_t *output) > return igt_output_has_prop(output, IGT_CONNECTOR_HDR_OUTPUT_METADATA); > } > > -/** > - * SUBTEST: invalid-hdr > - * Description: Test to ensure HDR is not enabled on non-HDR panel > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > - * > - * SUBTEST: invalid-metadata-sizes > - * Description: Tests invalid HDR metadata sizes > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > - * > - * SUBTEST: static-toggle-dpms > - * Description: Tests static toggle with dpms > - * Driver requirement: i915, xe > - * Functionality: colorspace, dpms, hdr > - * Mega feature: HDR > - * Test category: functionality test > - * > - * SUBTEST: static-toggle-suspend > - * Description: Tests static toggle with suspend > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr, suspend > - * Mega feature: HDR > - * Test category: functionality test > - * > - * SUBTEST: static-%s > - * Description: Tests %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @swap: swapping static HDR metadata > - * @toggle: entering and exiting HDR mode > - */ > static void test_hdr(data_t *data, uint32_t flags) > { > igt_display_t *display = &data->display; > diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c > index 55b7fea8f..77cf4d609 100644 > --- a/tests/kms_invalid_mode.c > +++ b/tests/kms_invalid_mode.c > @@ -28,6 +28,7 @@ > * Description: Make sure all modesets are rejected when the requested mode is > * invalid > */ > + > #include "igt.h" > #include <limits.h> > #include <stdbool.h> > diff --git a/tests/kms_multipipe_modeset.c b/tests/kms_multipipe_modeset.c > index a968a3513..e67392668 100644 > --- a/tests/kms_multipipe_modeset.c > +++ b/tests/kms_multipipe_modeset.c > @@ -24,12 +24,15 @@ > * Karthik B S <karthik.b.s@intel.com> > */ > > -#include "igt.h" > /** > * TEST: kms multipipe modeset > * Category: Display > * Description: Test simultaneous modeset on all the supported pipes > - * > + */ > + > +#include "igt.h" > + > +/** > * SUBTEST: basic-max-pipe-crc-check > * Description: Verify if simultaneous modesets on all the supported pipes is > * successful. Validate using CRC verification > diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c > index a583e1435..af0c756ed 100644 > --- a/tests/kms_panel_fitting.c > +++ b/tests/kms_panel_fitting.c > @@ -22,15 +22,18 @@ > * > */ > > +/** > + * TEST: kms panel fitting > + * Category: Display > + * Description: Test display panel fitting > + */ > + > #include "igt.h" > #include <limits.h> > #include <math.h> > #include <sys/stat.h> > + > /** > - * TEST: kms panel fitting > - * Category: Display > - * Description: Test display panel fitting > - * > * SUBTEST: atomic-fastset > * Description: Tests panel fitting usages with atomic fastset. > * Driver requirement: i915, xe > diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c > index 94252415b..4fed582b4 100644 > --- a/tests/kms_pipe_crc_basic.c > +++ b/tests/kms_pipe_crc_basic.c > @@ -36,6 +36,81 @@ > #include <string.h> > #include <fcntl.h> > > +/** > + * SUBTEST: bad-source > + * Description: Tests error handling when the bad source is set. > + * Driver requirement: i915, xe > + * Functionality: crc > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: read-crc > + * Description: Test for pipe CRC reads > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: crc > + * Mega feature: General Display Features > + * > + * SUBTEST: read-crc-frame-sequence > + * Description: Tests the pipe CRC read and ensure frame sequence > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: crc > + * Mega feature: General Display Features > + * > + * SUBTEST: nonblocking-crc > + * Description: Test for O_NONBLOCK CRC reads > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: crc > + * Mega feature: General Display Features > + * > + * SUBTEST: nonblocking-crc-frame-sequence > + * Description: Test for O_NONBLOCK CRC reads and ensure frame sequence > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: crc > + * Mega feature: General Display Features > + * > + * SUBTEST: suspend-read-crc > + * Description: Suspend test for pipe CRC reads > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: crc, suspend > + * Mega feature: General Display Features > + * > + * SUBTEST: hang-read-crc > + * Description: Hang test for pipe CRC read > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: crc, hang > + * Mega feature: General Display Features > + */ > + > +/** > + * SUBTEST: compare-crc-sanitycheck-%s > + * Description: Basic sanity check for CRC mismatches with %arg[1] > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: crc, pixel_format > + * Mega feature: General Display Features > + * > + * arg[1]: > + * > + * @xr24: XR24 format > + * @nv12: NV12 format > + */ > + > +/** > + * SUBTEST: disable-crc-after-crtc > + * Description: Check that disabling CRCs on a CRTC after having disabled the > + * CRTC does not cause issues. > + * Driver requirement: i915, xe > + * Functionality: crc > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > static bool extended; > static enum pipe active_pipes[IGT_MAX_PIPES]; > static uint32_t last_pipe; > @@ -65,14 +140,6 @@ static bool simulation_constraint(enum pipe pipe) > return false; > } > > -/** > - * SUBTEST: bad-source > - * Description: Tests error handling when the bad source is set. > - * Driver requirement: i915, xe > - * Functionality: crc > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_bad_source(data_t *data) > { > errno = 0; > @@ -94,49 +161,6 @@ enum { > TEST_HANG = 1 << 3, > }; > > -/** > - * SUBTEST: read-crc > - * Description: Test for pipe CRC reads > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > - * > - * SUBTEST: read-crc-frame-sequence > - * Description: Tests the pipe CRC read and ensure frame sequence > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > - * > - * SUBTEST: nonblocking-crc > - * Description: Test for O_NONBLOCK CRC reads > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > - * > - * SUBTEST: nonblocking-crc-frame-sequence > - * Description: Test for O_NONBLOCK CRC reads and ensure frame sequence > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > - * > - * SUBTEST: suspend-read-crc > - * Description: Suspend test for pipe CRC reads > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc, suspend > - * Mega feature: General Display Features > - * > - * SUBTEST: hang-read-crc > - * Description: Hang test for pipe CRC read > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc, hang > - * Mega feature: General Display Features > - */ > static void test_read_crc(data_t *data, enum pipe pipe, > igt_output_t *output, unsigned flags) > { > @@ -234,20 +258,6 @@ static void test_read_crc(data_t *data, enum pipe pipe, > igt_display_commit(display); > } > > -/** > - * SUBTEST: compare-crc-sanitycheck-%s > - * Description: Basic sanity check for CRC mismatches with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc, pixel_format > - * Mega feature: General Display Features > - * > - * arg[1]: > - * > - * @xr24: XR24 format > - * @nv12: NV12 format > - */ > - > /* > * CRC-sanity test, to make sure there would be no CRC mismatches > * > @@ -313,15 +323,6 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output, > igt_remove_fb(data->drm_fd, &fb1); > } > > -/** > - * SUBTEST: disable-crc-after-crtc > - * Description: Check that disabling CRCs on a CRTC after having disabled the > - * CRTC does not cause issues. > - * Driver requirement: i915, xe > - * Functionality: crc > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_disable_crc_after_crtc(data_t *data, enum pipe pipe, > igt_output_t *output) > { > diff --git a/tests/kms_plane.c b/tests/kms_plane.c > index c561bf6ba..17550e168 100644 > --- a/tests/kms_plane.c > +++ b/tests/kms_plane.c > @@ -29,6 +29,7 @@ > * Category: Display > * Description: Testes for KMS Plane > */ > + > #include "igt.h" > #include "igt_vec.h" > #include <errno.h> > @@ -37,6 +38,73 @@ > #include <string.h> > #include "xe/xe_query.h" > > +/** > + * SUBTEST: plane-position-%s > + * Description: Verify plane position using two planes to create a %arg[1] > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-position-hole-dpms > + * Description: Verify plane position using two planes to create a partially > + * covered screen and check for DPMS > + * Driver requirement: i915, xe > + * Functionality: dpms, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @covered: fully covered screen > + * @hole: partially covered screen > + */ > + > +/** > + * SUBTEST: plane-panning-%s > + * Description: Verify plane panning at %arg[1] using primary plane > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-panning-bottom-right-suspend > + * Description: Verify plane panning at bottom-right position with suspend using > + * primary plane > + * Driver requirement: i915, xe > + * Functionality: plane, suspend > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @bottom-right: bottom-right position > + * @top-left: top-left position > + */ > + > +/** > + * SUBTEST: pixel-%s > + * Description: verify the pixel formats for given plane and pipe > + * Driver requirement: i915, xe > + * Functionality: pixel_format, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @format: > + * @format-source-clamping: with source clamping > + */ > + > +/** > + * SUBTEST: planar-pixel-format-settings > + * Description: verify planar settings for pixel format are handled correctly > + * Driver requirement: i915, xe > + * Functionality: pixel_format, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > /* > * Throw away enough lsbs in pixel formats tests > * to get a match despite some differences between > @@ -287,27 +355,6 @@ test_plane_position_with_output(data_t *data, > igt_remove_fb(data->drm_fd, &sprite_fb); > } > > -/** > - * SUBTEST: plane-position-%s > - * Description: Verify plane position using two planes to create a %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-position-hole-dpms > - * Description: Verify plane position using two planes to create a partially > - * covered screen and check for DPMS > - * Driver requirement: i915, xe > - * Functionality: dpms, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @covered: fully covered screen > - * @hole: partially covered screen > - */ > static void > test_plane_position(data_t *data, enum pipe pipe) > { > @@ -416,27 +463,6 @@ test_plane_panning_with_output(data_t *data, > igt_remove_fb(data->drm_fd, &primary_fb); > } > > -/** > - * SUBTEST: plane-panning-%s > - * Description: Verify plane panning at %arg[1] using primary plane > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-panning-bottom-right-suspend > - * Description: Verify plane panning at bottom-right position with suspend using > - * primary plane > - * Driver requirement: i915, xe > - * Functionality: plane, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @bottom-right: bottom-right position > - * @top-left: top-left position > - */ > static void > test_plane_panning(data_t *data, enum pipe pipe) > { > @@ -1162,19 +1188,6 @@ static bool skip_plane(data_t *data, igt_plane_t *plane) > return index != 0 && index != 3 && index != 5; > } > > -/** > - * SUBTEST: pixel-%s > - * Description: verify the pixel formats for given plane and pipe > - * Driver requirement: i915, xe > - * Functionality: pixel_format, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @format: > - * @format-source-clamping: with source clamping > - */ > static void > test_pixel_formats(data_t *data, enum pipe pipe) > { > @@ -1231,14 +1244,6 @@ test_pixel_formats(data_t *data, enum pipe pipe) > igt_assert_f(result, "At least one CRC mismatch happened\n"); > } > > -/** > - * SUBTEST: planar-pixel-format-settings > - * Description: verify planar settings for pixel format are handled correctly > - * Driver requirement: i915, xe > - * Functionality: pixel_format, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_planar_settings(data_t *data) > { > enum pipe pipe = PIPE_A; > diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c > index f023fae74..d37407150 100644 > --- a/tests/kms_plane_alpha_blend.c > +++ b/tests/kms_plane_alpha_blend.c > @@ -29,8 +29,56 @@ > * Category: Display > * Description: Test plane alpha and blending mode properties > */ > + > #include "igt.h" > > +/** > + * SUBTEST: alpha-%s > + * Description: Test to %arg[1] > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @7efc: validate alpha values 0x7e and 0xfc are swappable on > + * pre-multiplied blend mode. > + * @basic: basic plane alpha properties. > + * @opaque-fb: alpha properties with opaque fb. > + * @transparent-fb: alpha property with transparent fb. > + */ > + > +/** > + * SUBTEST: coverage-vs-premult-vs-constant > + * Description: Tests pipe coverage blending properties. > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: coverage-7efc > + * Description: Uses alpha values 0x7e and 0xfc to validate fg.alpha and > + * plane_alpha are swappable on coverage blend mode. > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: constant-alpha-%s > + * Description: Tests plane alpha and blending properties with %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @max: maximum alpha value > + * @mid: medium alpha value > + * @min: minimum alpha value > + */ > + > IGT_TEST_DESCRIPTION("Test plane alpha and blending mode properties"); > > static bool extended; > @@ -482,52 +530,6 @@ static void coverage_premult_constant(data_t *data, enum pipe pipe, igt_plane_t > igt_pipe_crc_stop(data->pipe_crc); > } > > -/** > - * SUBTEST: alpha-%s > - * Description: Test to %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @7efc: validate alpha values 0x7e and 0xfc are swappable on > - * pre-multiplied blend mode. > - * @basic: basic plane alpha properties. > - * @opaque-fb: alpha properties with opaque fb. > - * @transparent-fb: alpha property with transparent fb. > - */ > - > -/** > - * SUBTEST: coverage-vs-premult-vs-constant > - * Description: Tests pipe coverage blending properties. > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: coverage-7efc > - * Description: Uses alpha values 0x7e and 0xfc to validate fg.alpha and > - * plane_alpha are swappable on coverage blend mode. > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: constant-alpha-%s > - * Description: Tests plane alpha and blending properties with %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @max: maximum alpha value > - * @mid: medium alpha value > - * @min: minimum alpha value > - */ > static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t *output, > bool blend, bool must_multiply, > void(*test)(data_t *, enum pipe, igt_plane_t *)) > diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c > index bc89414d8..55ddffe44 100644 > --- a/tests/kms_plane_cursor.c > +++ b/tests/kms_plane_cursor.c > @@ -20,13 +20,15 @@ > * OTHER DEALINGS IN THE SOFTWARE. > */ > > -#include "igt.h" > - > /** > * TEST: kms plane cursor > * Category: Display > * Description: Tests cursor interactions with primary and overlay planes. > - * > + */ > + > +#include "igt.h" > + > +/** > * SUBTEST: overlay > * Description: Tests atomic cursor positioning on primary plane and overlay plane > * Driver requirement: i915, xe > diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c > index 3bb92cdd9..13158bf99 100644 > --- a/tests/kms_plane_lowres.c > +++ b/tests/kms_plane_lowres.c > @@ -28,6 +28,7 @@ > * Description: Test atomic mode setting with a plane by switching between high > * and low resolutions > */ > + > #include "igt.h" > #include "drmtest.h" > #include <errno.h> > @@ -36,6 +37,31 @@ > #include <string.h> > #include <time.h> > > +/** > + * SUBTEST: tiling-none > + * Description: Tests the visibility of the planes when switching between high > + * and low resolution with Linear buffer (no tiling) > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: tiling-%s > + * Description: Tests the visibility of the planes when switching between high > + * and low resolution with %arg[1] > + * Driver requirement: i915, xe > + * Functionality: plane, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4: 4-tiling > + * @x: x-tiling > + * @y: y-tiling > + * @yf: yf-tiling > + */ > + > IGT_TEST_DESCRIPTION("Test atomic mode setting with a plane by switching between high and low resolutions"); > > #define SDR_PLANE_BASE 3 > @@ -267,30 +293,6 @@ static void test_cleanup(data_t *data) > igt_display_commit2(&data->display, COMMIT_ATOMIC); > } > > -/** > - * SUBTEST: tiling-none > - * Description: Tests the visibility of the planes when switching between high > - * and low resolution with Linear buffer (no tiling) > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: tiling-%s > - * Description: Tests the visibility of the planes when switching between high > - * and low resolution with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4: 4-tiling > - * @x: x-tiling > - * @y: y-tiling > - * @yf: yf-tiling > - */ > static void run_test(data_t *data, uint64_t modifier) > { > enum pipe pipe; > diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c > index 28791560f..6239e225a 100644 > --- a/tests/kms_plane_multiple.c > +++ b/tests/kms_plane_multiple.c > @@ -27,6 +27,7 @@ > * Category: Display > * Description: Test atomic mode setting with multiple planes. > */ > + > #include "igt.h" > #include "drmtest.h" > #include <errno.h> > @@ -35,6 +36,33 @@ > #include <string.h> > #include <time.h> > > +/** > + * SUBTEST: tiling-none > + * Description: Check that the kernel handles atomic updates of multiple planes > + * correctly by changing their geometry and making sure the changes > + * are reflected immediately after each commit. > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: tiling-%s > + * Description: Check that the kernel handles atomic updates of multiple planes > + * correctly by changing their geometry and making sure the changes > + * are reflected immediately after each commit. > + * Driver requirement: i915, xe > + * Functionality: plane, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4: 4-tiling > + * @x: x-tiling > + * @y: y-tiling > + * @yf: yf-tiling > + */ > + > IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes."); > > #define SIZE_PLANE 256 > @@ -378,32 +406,6 @@ test_plane_position(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t > n_planes, modifier); > } > > -/** > - * SUBTEST: tiling-none > - * Description: Check that the kernel handles atomic updates of multiple planes > - * correctly by changing their geometry and making sure the changes > - * are reflected immediately after each commit. > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: tiling-%s > - * Description: Check that the kernel handles atomic updates of multiple planes > - * correctly by changing their geometry and making sure the changes > - * are reflected immediately after each commit. > - * Driver requirement: i915, xe > - * Functionality: plane, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4: 4-tiling > - * @x: x-tiling > - * @y: y-tiling > - * @yf: yf-tiling > - */ > static void run_test(data_t *data, uint64_t modifier) > { > enum pipe pipe; > diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c > index 67da91b1e..e175c75d8 100644 > --- a/tests/kms_plane_scaling.c > +++ b/tests/kms_plane_scaling.c > @@ -27,10 +27,250 @@ > * Category: Display > * Description: Test display plane scaling > */ > + > #include "igt.h" > #include "igt_vec.h" > #include <math.h> > > +/** > + * SUBTEST: plane-scaler-unity-scaling-with-modifiers > + * Description: Tests scaling with modifiers, unity scaling. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-scaler-with-clipping-clamping-modifiers > + * Description: Tests scaling with clipping and clamping, modifiers. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-upscale-%s-with-modifiers > + * Description: Tests upscaling with modifiers %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @20x20: from 20x20 fb > + * @factor-0-25: for 0.25 scaling factor > + */ > + > +/** > + * SUBTEST: plane-downscale-factor-%s-with-modifiers > + * Description: Tests downscaling with modifiers for %arg[1] scaling factor. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @0-25: 0.25 > + * @0-5: 0.5 > + * @0-75: 0.75 > + */ > + > +/** > + * SUBTEST: plane-scaler-unity-scaling-with-rotation > + * Description: Tests scaling with rotation, unity scaling. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-scaler-with-clipping-clamping-rotation > + * Description: Tests scaling with clipping and clamping, rotation. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-upscale-%s-with-rotation > + * Description: Tests upscaling with rotation %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @20x20: from 20x20 fb > + * @factor-0-25: for 0.25 scaling factor > + */ > + > +/** > + * SUBTEST: plane-downscale-factor-%s-with-rotation > + * Description: Tests downscaling with rotation for %arg[1] scaling factor. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @0-25: 0.25 > + * @0-5: 0.5 > + * @0-75: 0.75 > + */ > + > +/** > + * SUBTEST: plane-scaler-unity-scaling-with-pixel-format > + * Description: Tests scaling with pixel formats, unity scaling. > + * Driver requirement: i915, xe > + * Functionality: pixel_formats, plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-scaler-with-clipping-clamping-pixel-formats > + * Description: Tests scaling with clipping and clamping, pixel formats. > + * Driver requirement: i915, xe > + * Functionality: pixel_formats, plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: plane-upscale-%s-with-pixel-format > + * Description: Tests upscaling with pixel formats %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: pixel_formats, plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @20x20: from 20x20 fb > + * @factor-0-25: for 0.25 scaling factor > + */ > + > +/** > + * SUBTEST: plane-downscale-factor-%s-with-pixel-format > + * Description: Tests downscaling with pixel formats for %arg[1] scaling factor. > + * Driver requirement: i915, xe > + * Functionality: pixel_formats, plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @0-25: 0.25 > + * @0-5: 0.5 > + * @0-75: 0.75 > + */ > + > +/** > + * SUBTEST: planes-downscale-factor-%s > + * Description: Tests downscaling of 2 planes for %arg[1] scaling factor. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @0-25: 0.25 > + * @0-5: 0.5 > + * @0-75: 0.75 > + */ > + > +/** > + * SUBTEST: planes-downscale-factor-%s-%s > + * Description: Tests downscaling (scaling factor %arg[1]) and upscaling (%arg[2]) > + * of 2 planes. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @0-25: 0.25 > + * @0-5: 0.5 > + * @0-75: 0.75 > + * > + * arg[2]: > + * > + * @upscale-20x20: upscale 20x20 > + * @upscale-factor-0-25: scaling factor 0.25 > + * @unity-scaling: Unity > + */ > + > +/** > + * SUBTEST: planes-scaler-unity-scaling > + * Description: Tests scaling of 2 planes, unity scaling. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: planes-upscale-%s > + * Description: Tests upscaling of 2 planes %arg[1]. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @20x20: from 20x20 fb > + * @factor-0-25: for 0.25 scaling factor > + */ > + > +/** > + * SUBTEST: planes-%s-downscale-factor-%s > + * Description: Tests scaling (%arg[1]) and downscaling (scaling factor %arg[2]) > + * of 2 planes. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @unity-scaling: Unity > + * @upscale-factor-0-25: scaling factor 0.25 > + * @upscale-20x20: upscale 20x20 > + * > + * arg[2]: > + * > + * @0-25: 0.25 > + * @0-5: 0.5 > + * @0-75: 0.75 > + */ > + > +/** > + * SUBTEST: invalid-num-scalers > + * Description: Negative test for number of scalers per pipe. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: 2x-scaler-multi-pipe > + * Description: Tests scaling with multi-pipe. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: invalid-parameters > + * Description: Test parameters which should not be accepted > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: intel-max-src-size > + * Description: Test for validating max source size. > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > IGT_TEST_DESCRIPTION("Test display plane scaling"); > > enum scaler_combo_test_type { > @@ -529,48 +769,6 @@ static const uint64_t modifiers[] = { > I915_FORMAT_MOD_4_TILED > }; > > -/** > - * SUBTEST: plane-scaler-unity-scaling-with-modifiers > - * Description: Tests scaling with modifiers, unity scaling. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-scaler-with-clipping-clamping-modifiers > - * Description: Tests scaling with clipping and clamping, modifiers. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-upscale-%s-with-modifiers > - * Description: Tests upscaling with modifiers %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @20x20: from 20x20 fb > - * @factor-0-25: for 0.25 scaling factor > - */ > - > -/** > - * SUBTEST: plane-downscale-factor-%s-with-modifiers > - * Description: Tests downscaling with modifiers for %arg[1] scaling factor. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @0-25: 0.25 > - * @0-5: 0.5 > - * @0-75: 0.75 > - */ > static void test_scaler_with_modifier_pipe(data_t *d, > int width, int height, > bool is_upscale, > @@ -603,48 +801,6 @@ static void test_scaler_with_modifier_pipe(data_t *d, > } > } > > -/** > - * SUBTEST: plane-scaler-unity-scaling-with-rotation > - * Description: Tests scaling with rotation, unity scaling. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-scaler-with-clipping-clamping-rotation > - * Description: Tests scaling with clipping and clamping, rotation. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-upscale-%s-with-rotation > - * Description: Tests upscaling with rotation %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @20x20: from 20x20 fb > - * @factor-0-25: for 0.25 scaling factor > - */ > - > -/** > - * SUBTEST: plane-downscale-factor-%s-with-rotation > - * Description: Tests downscaling with rotation for %arg[1] scaling factor. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @0-25: 0.25 > - * @0-5: 0.5 > - * @0-75: 0.75 > - */ > static void test_scaler_with_rotation_pipe(data_t *d, > int width, int height, > bool is_upscale, > @@ -678,48 +834,6 @@ static void test_scaler_with_rotation_pipe(data_t *d, > } > } > > -/** > - * SUBTEST: plane-scaler-unity-scaling-with-pixel-format > - * Description: Tests scaling with pixel formats, unity scaling. > - * Driver requirement: i915, xe > - * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-scaler-with-clipping-clamping-pixel-formats > - * Description: Tests scaling with clipping and clamping, pixel formats. > - * Driver requirement: i915, xe > - * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: plane-upscale-%s-with-pixel-format > - * Description: Tests upscaling with pixel formats %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @20x20: from 20x20 fb > - * @factor-0-25: for 0.25 scaling factor > - */ > - > -/** > - * SUBTEST: plane-downscale-factor-%s-with-pixel-format > - * Description: Tests downscaling with pixel formats for %arg[1] scaling factor. > - * Driver requirement: i915, xe > - * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @0-25: 0.25 > - * @0-5: 0.5 > - * @0-75: 0.75 > - */ > static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height, bool is_upscale, > enum pipe pipe, igt_output_t *output) > { > @@ -855,83 +969,6 @@ static void setup_fb(int fd, int width, int height, struct igt_fb *fb) > fb); > } > > -/** > - * SUBTEST: planes-downscale-factor-%s > - * Description: Tests downscaling of 2 planes for %arg[1] scaling factor. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @0-25: 0.25 > - * @0-5: 0.5 > - * @0-75: 0.75 > - */ > -/** > - * SUBTEST: planes-downscale-factor-%s-%s > - * Description: Tests downscaling (scaling factor %arg[1]) and upscaling (%arg[2]) > - * of 2 planes. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @0-25: 0.25 > - * @0-5: 0.5 > - * @0-75: 0.75 > - * > - * arg[2]: > - * > - * @upscale-20x20: upscale 20x20 > - * @upscale-factor-0-25: scaling factor 0.25 > - * @unity-scaling: Unity > - */ > -/** > - * SUBTEST: planes-scaler-unity-scaling > - * Description: Tests scaling of 2 planes, unity scaling. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: planes-upscale-%s > - * Description: Tests upscaling of 2 planes %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @20x20: from 20x20 fb > - * @factor-0-25: for 0.25 scaling factor > - */ > -/** > - * SUBTEST: planes-%s-downscale-factor-%s > - * Description: Tests scaling (%arg[1]) and downscaling (scaling factor %arg[2]) > - * of 2 planes. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @unity-scaling: Unity > - * @upscale-factor-0-25: scaling factor 0.25 > - * @upscale-20x20: upscale 20x20 > - * > - * arg[2]: > - * > - * @0-25: 0.25 > - * @0-5: 0.5 > - * @0-75: 0.75 > - */ > - > static void > test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2, > enum pipe pipe, igt_output_t *output, > @@ -990,14 +1027,6 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2, > cleanup_fbs(d); > } > > -/** > - * SUBTEST: invalid-num-scalers > - * Description: Negative test for number of scalers per pipe. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void > test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output) > { > @@ -1063,14 +1092,6 @@ test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output) > cleanup_fbs(d); > } > > -/** > - * SUBTEST: 2x-scaler-multi-pipe > - * Description: Tests scaling with multi-pipe. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_scaler_with_multi_pipe_plane(data_t *d) > { > igt_display_t *display = &d->display; > @@ -1158,14 +1179,6 @@ static void test_scaler_with_multi_pipe_plane(data_t *d) > igt_assert_eq(ret1 && ret2, 0); > } > > -/** > - * SUBTEST: invalid-parameters > - * Description: Test parameters which should not be accepted > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void invalid_parameter_tests(data_t *d) > { > enum pipe pipe = PIPE_A; > @@ -1248,15 +1261,6 @@ static drmModeModeInfo *find_mode(data_t *data, igt_output_t *output, const uint > return mode; > } > > -/** > - * SUBTEST: intel-max-src-size > - * Description: Test for validating max source size. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /* > * Max source/destination width/height for intel driver. > * These numbers are coming from > diff --git a/tests/kms_prime.c b/tests/kms_prime.c > index b06365cbc..1e985fdc4 100644 > --- a/tests/kms_prime.c > +++ b/tests/kms_prime.c > @@ -21,6 +21,12 @@ > * IN THE SOFTWARE. > */ > > +/** > + * TEST: kms prime > + * Category: Display > + * Description: Prime tests, focusing on KMS side > + */ > + > #include "igt.h" > #include "igt_device.h" > #include "igt_debugfs.h" > @@ -30,11 +36,8 @@ > #include <sys/ioctl.h> > #include <sys/poll.h> > #include <time.h> > + > /** > - * TEST: kms prime > - * Category: Display > - * Description: Prime tests, focusing on KMS side > - * > * SUBTEST: D3hot > * Description: Validate pci state of dGPU when dGPU is idle and scanout is on iGPU > * Driver requirement: i915, xe > diff --git a/tests/kms_prop_blob.c b/tests/kms_prop_blob.c > index c92525227..199c673e3 100644 > --- a/tests/kms_prop_blob.c > +++ b/tests/kms_prop_blob.c > @@ -30,12 +30,61 @@ > * Category: Display > * Description: Tests behaviour of mass-data 'blob' properties. > */ > + > #include "igt.h" > #include <errno.h> > #include <stdbool.h> > #include <stdio.h> > #include <string.h> > > +/** > + * SUBTEST: blob-multiple > + * Description: Test validates destroying multiple properties explicitly works as needed. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: blob-prop-%s > + * Description: Tests validates the %arg[1] of the properties created. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @core: validity > + * @lifetime: lifetime > + * @validate: blob size > + */ > + > +/** > + * SUBTEST: basic > + * Description: Test to ensure property support exists > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: kms_core > + * Mega feature: General Display Features > + * > + * SUBTEST: invalid-%s-%s > + * Description: Tests error handling when invalid properties are %ar[1] with %arg[2]. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @get: fetched > + * @set: set > + * > + * arg[2]: > + * > + * @prop: blob object type > + * @prop-any: object of any type > + */ > + > IGT_TEST_DESCRIPTION("Tests behaviour of mass-data 'blob' properties."); > > static const struct drm_mode_modeinfo test_mode_valid = { > @@ -123,27 +172,6 @@ destroy_prop(int fd, uint32_t prop_id) > return 0; > } > > -/** > - * SUBTEST: blob-multiple > - * Description: Test validates destroying multiple properties explicitly works as needed. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: blob-prop-%s > - * Description: Tests validates the %arg[1] of the properties created. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @core: validity > - * @lifetime: lifetime > - * @validate: blob size > - */ > static void > test_validate(int fd) > { > @@ -264,14 +292,6 @@ test_core(int fd) > igt_assert_eq(validate_prop(fd, 0), ENOENT); > } > > -/** > - * SUBTEST: basic > - * Description: Test to ensure property support exists > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_core > - * Mega feature: General Display Features > - */ > static void > test_basic(int fd) > { > @@ -282,24 +302,6 @@ test_basic(int fd) > igt_assert_eq(destroy_prop(fd, prop_id), 0); > } > > -/** > - * SUBTEST: invalid-%s-%s > - * Description: Tests error handling when invalid properties are %ar[1] with %arg[2]. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @get: fetched > - * @set: set > - * > - * arg[2]: > - * > - * @prop: blob object type > - * @prop-any: object of any type > - */ > static void prop_tests(int fd) > { > struct drm_mode_obj_get_properties get_props = {}; > diff --git a/tests/kms_properties.c b/tests/kms_properties.c > index 1a58717e1..33c4156bf 100644 > --- a/tests/kms_properties.c > +++ b/tests/kms_properties.c > @@ -21,6 +21,12 @@ > * IN THE SOFTWARE. > */ > > +/** > + * TEST: kms properties > + * Category: Display > + * Description: Test to validate the properties of all planes, crtc and connectors > + */ > + > #include "igt.h" > #include "drmtest.h" > #include <errno.h> > @@ -28,11 +34,8 @@ > #include <stdio.h> > #include <string.h> > #include <time.h> > + > /** > - * TEST: kms properties > - * Category: Display > - * Description: Test to validate the properties of all planes, crtc and connectors > - * > * SUBTEST: %s-properties-%s > * Description: Tests %arg[1] properties with %arg[2] commit > * Driver requirement: i915, xe > @@ -53,6 +56,20 @@ > * @legacy: legacy > */ > > +/** > + * SUBTEST: get_properties-sanity-%s > + * Description: Test validates the properties of all planes, crtc and connectors > + * with %arg[1] commit > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @atomic: atomic > + * @non-atomic: legacy > + */ > > struct additional_test { > const char *name; > @@ -712,20 +729,6 @@ static void expect_no_props(int fd, uint32_t obj_type, uint32_t obj_id) > igt_assert_neq(drmIoctl(fd, DRM_IOCTL_MODE_OBJ_GETPROPERTIES, &properties), 0); > } > > -/** > - * SUBTEST: get_properties-sanity-%s > - * Description: Test validates the properties of all planes, crtc and connectors > - * with %arg[1] commit > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @atomic: atomic > - * @non-atomic: legacy > - */ > static void get_prop_sanity(igt_display_t *display, bool atomic) > { > int fd = display->drm_fd; > diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c > index 5281370f0..c102c9583 100644 > --- a/tests/kms_rmfb.c > +++ b/tests/kms_rmfb.c > @@ -21,6 +21,13 @@ > * IN THE SOFTWARE. > */ > > +/** > + * TEST: kms rmfb > + * Category: Display > + * Description: This tests rmfb and close-fd behavior. In these casesthe > + * framebuffers should be removed from the crtc. > + */ > + > #include "igt.h" > #include "drmtest.h" > #include <errno.h> > @@ -28,12 +35,8 @@ > #include <stdio.h> > #include <string.h> > #include <time.h> > + > /** > - * TEST: kms rmfb > - * Category: Display > - * Description: This tests rmfb and close-fd behavior. In these casesthe > - * framebuffers should be removed from the crtc. > - * > * SUBTEST: close-fd > * Description: RMFB is supposed to free the framebuffers from any and all planes > * so test this and make sure it works with fd close and reopen. > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c > index 864ab7b03..b2e877a4b 100644 > --- a/tests/kms_rotation_crc.c > +++ b/tests/kms_rotation_crc.c > @@ -27,10 +27,130 @@ > * Category: Display > * Description: Tests different rotations with different planes & formats > */ > + > #include "igt.h" > #include "igt_vec.h" > #include <math.h> > > +/** > + * SUBTEST: %s-rotation-180 > + * Description: Rotation test with 180 degree for %arg[1] planes > + * Driver requirement: i915, xe > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @primary: primary > + * @sprite: sprite > + * @cursor: cursor > + */ > + > +/** > + * SUBTEST: %s-rotation-%d > + * Description: Rotation test with %arg[2] degree for %arg[1] planes of gen9+ > + * Driver requirement: i915, xe > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @primary: primary > + * @sprite: sprite > + * > + * arg[2].values: 90, 270 > + */ > + > +/** > + * SUBTEST: bad-pixel-format > + * Description: Checking unsupported pixel format for gen9+ with 90 degree of rotation > + * Driver requirement: i915, xe > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: bad-tiling > + * Description: Checking unsupported tiling for gen9+ with 90 degree of rotation > + * Driver requirement: i915, xe > + * Functionality: plane, rotation, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > +/** > + * SUBTEST: primary-%s-tiled-reflect-x-%d > + * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane > + * Driver requirement: i915, xe > + * Functionality: plane, rotation, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @4: 4 tiling > + * @x: x tiling > + * @y: y tiling > + * @yf: yf tiling > + * > + * arg[2].values: 0, 180 > + */ > + > +/** > + * SUBTEST: primary-%s-tiled-reflect-x-%d > + * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane > + * Driver requirement: i915, xe > + * Functionality: plane, rotation, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @y: y tiling > + * @yf: yf tiling > + * > + * arg[2].values: 90, 270 > + * > + * SUBTEST: sprite-rotation-90-pos-100-0 > + * Description: Rotation test with 90 degree for a plane of gen9+ with given position > + * Driver requirement: i915, xe > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > +/** > + * SUBTEST: multiplane-rotation > + * Description: Rotation test on both planes by making them fully visible > + * Driver requirement: i915, xe > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: multiplane-rotation-cropping-%s > + * Description: Rotation test on both planes by cropping left/%arg[1] corner of > + * primary plane and right/%arg[1] corner of sprite plane > + * Driver requirement: i915, xe > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @bottom: bottom > + * @top: top > + */ > + > +/** > + * SUBTEST: exhaust-fences > + * Description: This test intends to check for fence leaks exhaustively > + * Driver requirement: i915 > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > + */ > + > #define MAX_FENCES 32 > #define MAXMULTIPLANESAMOUNT 2 > #define TEST_MAX_WIDTH 640 > @@ -479,93 +599,6 @@ static bool test_format(data_t *data, > return true; > } > > -/** > - * SUBTEST: %s-rotation-180 > - * Description: Rotation test with 180 degree for %arg[1] planes > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @primary: primary > - * @sprite: sprite > - * @cursor: cursor > - */ > - > -/** > - * SUBTEST: %s-rotation-%d > - * Description: Rotation test with %arg[2] degree for %arg[1] planes of gen9+ > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @primary: primary > - * @sprite: sprite > - * > - * arg[2].values: 90, 270 > - */ > - > -/** > - * SUBTEST: bad-pixel-format > - * Description: Checking unsupported pixel format for gen9+ with 90 degree of rotation > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: bad-tiling > - * Description: Checking unsupported tiling for gen9+ with 90 degree of rotation > - * Driver requirement: i915, xe > - * Functionality: plane, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > -/** > - * SUBTEST: primary-%s-tiled-reflect-x-%d > - * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane > - * Driver requirement: i915, xe > - * Functionality: plane, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @4: 4 tiling > - * @x: x tiling > - * @y: y tiling > - * @yf: yf tiling > - * > - * arg[2].values: 0, 180 > - */ > - > -/** > - * SUBTEST: primary-%s-tiled-reflect-x-%d > - * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane > - * Driver requirement: i915, xe > - * Functionality: plane, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @y: y tiling > - * @yf: yf tiling > - * > - * arg[2].values: 90, 270 > - * > - * SUBTEST: sprite-rotation-90-pos-100-0 > - * Description: Rotation test with 90 degree for a plane of gen9+ with given position > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_format) > { > igt_display_t *display = &data->display; > @@ -885,28 +918,6 @@ static bool reusecrcfromlastround(planeinfos p[2], int lastroundp1format, > return true; > } > > -/** > - * SUBTEST: multiplane-rotation > - * Description: Rotation test on both planes by making them fully visible > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: multiplane-rotation-cropping-%s > - * Description: Rotation test on both planes by cropping left/%arg[1] corner of > - * primary plane and right/%arg[1] corner of sprite plane > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @bottom: bottom > - * @top: top > - */ > - > /* > * Here is pipe parameter which is now used only for first pipe. > * It is left here if this test ever was wanted to be run on > @@ -1104,14 +1115,6 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe) > igt_require_f(found, "No valid pipe/output combo found.\n"); > } > > -/** > - * SUBTEST: exhaust-fences > - * Description: This test intends to check for fence leaks exhaustively > - * Driver requirement: i915 > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > static void test_plane_rotation_exhaust_fences(data_t *data, > enum pipe pipe, > igt_output_t *output, > diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c > index eb10f7386..960e7d84b 100644 > --- a/tests/kms_scaling_modes.c > +++ b/tests/kms_scaling_modes.c > @@ -24,12 +24,15 @@ > * Swati Sharma <swati2.sharma@intel.com> > */ > > -#include "igt.h" > /** > * TEST: kms scaling modes > * Category: Display > * Description: Test display scaling modes > - * > + */ > + > +#include "igt.h" > + > +/** > * SUBTEST: scaling-mode-%s > * Description: Tests %arg[1] display scaling mode > * Driver requirement: i915, xe > diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c > index 6618dbe50..30fc58d90 100644 > --- a/tests/kms_selftest.c > +++ b/tests/kms_selftest.c > @@ -21,13 +21,16 @@ > * IN THE SOFTWARE. > */ > > -#include "igt.h" > -#include "igt_kmod.h" > /** > * TEST: kms selftest > * Category: Display > * Description: Basic sanity check of KMS selftests. > - * > + */ > + > +#include "igt.h" > +#include "igt_kmod.h" > + > +/** > * SUBTEST: %s > * Description: Basic sanity check of KMS selftest %arg[1]. > * Driver requirement: i915, xe > diff --git a/tests/kms_sequence.c b/tests/kms_sequence.c > index 011733bc8..7dbcca643 100644 > --- a/tests/kms_sequence.c > +++ b/tests/kms_sequence.c > @@ -27,6 +27,7 @@ > * Category: Display > * Description: Test CrtcGetSequence and CrtcQueueSequence. > */ > + > #include "igt.h" > #include <stdlib.h> > #include <stdio.h> > @@ -42,6 +43,36 @@ > > #include <drm.h> > > +/** > + * SUBTEST: get-%s > + * Description: This is a test of drmCrtcGetSequence with %arg[1] > + * Driver requirement: i915, xe > + * Functionality: vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @busy: busy > + * @forked: forked bo > + * @forked-busy: forked bo & busy > + * @idle: idle > + */ > + > +/** > + * SUBTEST: queue-%s > + * Description: This is a test of drmCrtcQueueSequence with %arg[1] > + * Driver requirement: i915, xe > + * Functionality: vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * arg[1]: > + * > + * @busy: busy > + * @idle: idle > + */ > + > IGT_TEST_DESCRIPTION("Test CrtcGetSequence and CrtcQueueSequence."); > > typedef struct { > @@ -136,35 +167,6 @@ static int crtc_queue_sequence(int fd, struct drm_crtc_queue_sequence *cqs) > return err; > } > > -/** > - * SUBTEST: get-%s > - * Description: This is a test of drmCrtcGetSequence with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @busy: busy > - * @forked: forked bo > - * @forked-busy: forked bo & busy > - * @idle: idle > - */ > - > -/** > - * SUBTEST: queue-%s > - * Description: This is a test of drmCrtcQueueSequence with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * arg[1]: > - * > - * @busy: busy > - * @idle: idle > - */ > static void run_test(data_t *data, int fd, void (*testfunc)(data_t *, int, int)) > { > int nchildren = > diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c > index d66ee97c8..7fd1667d7 100644 > --- a/tests/kms_setmode.c > +++ b/tests/kms_setmode.c > @@ -20,6 +20,14 @@ > * Authors: > * Imre Deak <imre.deak@intel.com> > */ > + > +/** > + * TEST: kms setmode > + * Category: Display > + * Description: Tests the mode by iterating through all valid/invalid crtc/connector > + * combinations > + */ > + > #include "config.h" > > #include "igt.h" > @@ -35,11 +43,6 @@ > #include "xe/xe_query.h" > > /** > - * TEST: kms setmode > - * Category: Display > - * Description: Tests the mode by iterating through all valid/invalid crtc/connector > - * combinations > - * > * SUBTEST: basic > * Description: Tests the vblank timing by iterating through all valid crtc/connector > * combinations > diff --git a/tests/kms_sysfs_edid_timing.c b/tests/kms_sysfs_edid_timing.c > index ee47a024e..b36f383e5 100644 > --- a/tests/kms_sysfs_edid_timing.c > +++ b/tests/kms_sysfs_edid_timing.c > @@ -20,16 +20,20 @@ > * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS > * IN THE SOFTWARE. > */ > + > +/** > + * TEST: kms sysfs edid timing > + * Category: Display > + * Description: Test to check the time it takes to reprobe each connector. > + */ > + > #include "igt.h" > > #include <dirent.h> > #include <fcntl.h> > #include <sys/stat.h> > + > /** > - * TEST: kms sysfs edid timing > - * Category: Display > - * Description: Test to check the time it takes to reprobe each connector. > - * > * SUBTEST: > * Description: This test checks the time it takes to reprobe each connector and > * fails if either the time it takes for one reprobe is too long or > diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c > index bb29a4ca7..a094f4df3 100644 > --- a/tests/kms_tiled_display.c > +++ b/tests/kms_tiled_display.c > @@ -41,6 +41,7 @@ > * Category: Display > * Description: Test for Transcoder Port Sync for Display Port Tiled Displays > */ > + > #include "igt.h" > #include "poll.h" > #include "drm_mode.h" > diff --git a/tests/kms_tv_load_detect.c b/tests/kms_tv_load_detect.c > index 67dbb242e..13394f2c6 100644 > --- a/tests/kms_tv_load_detect.c > +++ b/tests/kms_tv_load_detect.c > @@ -22,12 +22,15 @@ > * > */ > > -#include "igt.h" > /** > * TEST: kms tv load detect > * Category: Display > * Description: Test to check tv load detection. > - * > + */ > + > +#include "igt.h" > + > +/** > * SUBTEST: load-detect > * Description: Check tv load detection works correctly. > * Driver requirement: i915, xe > diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c > index 7178bebc0..b79b3d3e3 100644 > --- a/tests/kms_universal_plane.c > +++ b/tests/kms_universal_plane.c > @@ -21,6 +21,12 @@ > * IN THE SOFTWARE. > */ > > +/** > + * TEST: kms universal plane > + * Category: Display > + * Description: Check pageflip & modeset on universal plane > + */ > + > #include "igt.h" > #include <errno.h> > #include <stdbool.h> > @@ -29,10 +35,6 @@ > #include <fcntl.h> > > /** > - * TEST: kms universal plane > - * Category: Display > - * Description: Check pageflip & modeset on universal plane > - * > * SUBTEST: cursor-fb-leak > * Description: Check for cursor leaks after performing cursor operations > * Driver requirement: i915, xe > @@ -54,9 +56,7 @@ > * Functionality: plane > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: universal-plane-%s > * Description: Check %arg[1] > * Driver requirement: i915, xe > diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c > index 549a959ad..5994e682c 100644 > --- a/tests/kms_vblank.c > +++ b/tests/kms_vblank.c > @@ -21,6 +21,12 @@ > * IN THE SOFTWARE. > */ > > +/** > + * TEST: kms vblank > + * Category: Display > + * Description: Test speed of WaitVblank. > + */ > + > #include "igt.h" > #include <stdlib.h> > #include <stdio.h> > @@ -35,11 +41,8 @@ > #include <sys/wait.h> > > #include <drm.h> > + > /** > - * TEST: kms vblank > - * Category: Display > - * Description: Test speed of WaitVblank. > - * > * SUBTEST: crtc-id > * Description: Check the vblank and flip events works with given crtc id > * Driver requirement: i915, xe > @@ -53,9 +56,7 @@ > * Functionality: vblank > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: ts-continuation-dpms-rpm > * Description: Test TS continuty with DPMS & RPM while hanging by introducing > * NOHANG flag > @@ -63,9 +64,7 @@ > * Functionality: dpms, hang, rpm, vblank > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: ts-continuation-dpms-suspend > * Description: Test TS continuty with DPMS & Suspend while hanging by introducing > * NOHANG flag > @@ -73,9 +72,7 @@ > * Functionality: dpms, hang, suspend, vblank > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: ts-continuation-suspend > * Description: Test TS continuty with Suspend while hanging by introducing NOHANG > * flag > @@ -83,9 +80,7 @@ > * Functionality: hang, suspend, vblank > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: ts-continuation-modeset-rpm > * Description: Test TS continuty during Modeset with Suspend while hanging by > * introducing NOHANG flag > @@ -93,9 +88,7 @@ > * Functionality: hang, rpm, vblank > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: accuracy-idle > * Description: Test Accuracy of vblank events while hanging by introducing NOHANG > * flag > diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c > index f26adbccf..23aebb0f2 100644 > --- a/tests/kms_vrr.c > +++ b/tests/kms_vrr.c > @@ -20,15 +20,18 @@ > * OTHER DEALINGS IN THE SOFTWARE. > */ > > +/** > + * TEST: kms vrr > + * Category: Display > + * Description: Test to validate diffent features of VRR > + */ > + > #include "igt.h" > #include "sw_sync.h" > #include <fcntl.h> > #include <signal.h> > + > /** > - * TEST: kms vrr > - * Category: Display > - * Description: Test to validate diffent features of VRR > - * > * SUBTEST: flip-basic > * Description: Tests that VRR is enabled and that the difference between flip > * timestamps converges to the requested rate > diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c > index 25b49eccd..6b436b7ab 100644 > --- a/tests/kms_writeback.c > +++ b/tests/kms_writeback.c > @@ -22,6 +22,15 @@ > * > */ > > +/** > + * TEST: kms writeback > + * Category: Display > + * Description: This test validates the expected behavior of the writeback > + * connectors feature by checking if the target device support > + * writeback; it validates bad and good combination, check color > + * format, and check the output result by using CRC. > + */ > + > #include <errno.h> > #include <stdbool.h> > #include <stdio.h> > @@ -32,14 +41,8 @@ > #include "igt_core.h" > #include "igt_fb.h" > #include "sw_sync.h" > + > /** > - * TEST: kms writeback > - * Category: Display > - * Description: This test validates the expected behavior of the writeback > - * connectors feature by checking if the target device support > - * writeback; it validates bad and good combination, check color > - * format, and check the output result by using CRC. > - * > * SUBTEST: writeback-check-output-XRGB2101010 > * Description: Check XRGB2101010 writeback output with CRC validation > * Functionality: kms_core > diff --git a/tests/testdisplay.c b/tests/testdisplay.c > index 42218210f..109ed496a 100644 > --- a/tests/testdisplay.c > +++ b/tests/testdisplay.c > @@ -45,6 +45,13 @@ > * - DP commands (e.g. poweroff) > * - verify outputs against VBT/physical connectors > */ > + > +/** > + * TEST: testdisplay > + * Category: Display > + * Description: Tests basic display functionality. > + */ > + > #include "config.h" > > #include "igt.h" > @@ -70,10 +77,6 @@ > #include <signal.h> > > /** > - * TEST: testdisplay > - * Category: Display > - * Description: Tests basic display functionality. > - * > * SUBTEST: > * Description: This test is intended for testing of display functionality like > * modeset, clone modes, test patterns & pixel generators etc.. > @@ -82,6 +85,7 @@ > * Mega feature: General Display Features > * Test category: functionality test > */ > + > IGT_TEST_DESCRIPTION("Tests basic display functionality."); > > enum { ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [i-g-t 2/5] tests/kms/testplan: Regroup testplan documentation 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem 2023-11-24 9:35 ` [igt-dev] [i-g-t 1/5] tests/kms/testplan: Move testplan documentation to beginning of the file Bhanuprakash Modem @ 2023-11-24 9:35 ` Bhanuprakash Modem 2023-11-24 17:08 ` Sharma, Swati2 2023-11-24 9:36 ` [igt-dev] [i-g-t 3/5] tests/kms/testplan: Optimize KMS " Bhanuprakash Modem ` (6 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Bhanuprakash Modem @ 2023-11-24 9:35 UTC (permalink / raw) To: igt-dev, swati2.sharma For redability purpose, re-group testplan documentation. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/intel/kms_big_fb.c | 46 +++++---------- tests/intel/kms_busy.c | 33 ++++++----- tests/intel/kms_draw_crc.c | 16 +++-- tests/kms_atomic.c | 75 ++++++++++-------------- tests/kms_cursor_legacy.c | 7 --- tests/kms_flip.c | 116 ++++++++++++++++--------------------- tests/kms_plane.c | 16 +++-- tests/kms_rotation_crc.c | 16 +++-- 8 files changed, 133 insertions(+), 192 deletions(-) diff --git a/tests/intel/kms_big_fb.c b/tests/intel/kms_big_fb.c index 2fb435ff4..cce7027e9 100644 --- a/tests/intel/kms_big_fb.c +++ b/tests/intel/kms_big_fb.c @@ -141,51 +141,33 @@ */ /** - * SUBTEST: %s-addfb-size-overflow - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier - * with small bo. + * SUBTEST: linear-addfb + * Description: Sanity check if addfb ioctl works correctly with Linear modifier + * for given size and strides of fb * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop, tiling + * Functionality: big_fbs, kms_gem_interop * Mega feature: General Display Features * Test category: functionality test * - * arg[1]: - * - * @4-tiled: TILE-4 - * @x-tiled: TILE-X - * @y-tiled: TILE-Y - * @yf-tiled: TILE-YF - */ - -/** - * SUBTEST: %s-addfb-size-offset-overflow - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier - * and offsets with small bo + * SUBTEST: %s-addfb + * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier + * for given size and strides of fb * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, tiling * Mega feature: General Display Features * Test category: functionality test * - * arg[1]: - * - * @4-tiled: TILE-4 - * @x-tiled: TILE-X - * @y-tiled: TILE-Y - * @yf-tiled: TILE-YF - */ - -/** - * SUBTEST: linear-addfb - * Description: Sanity check if addfb ioctl works correctly with Linear modifier - * for given size and strides of fb + * SUBTEST: %s-addfb-size-overflow + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier + * with small bo. * Driver requirement: i915, xe - * Functionality: big_fbs, kms_gem_interop + * Functionality: big_fbs, kms_gem_interop, tiling * Mega feature: General Display Features * Test category: functionality test * - * SUBTEST: %s-addfb - * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier - * for given size and strides of fb + * SUBTEST: %s-addfb-size-offset-overflow + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier + * and offsets with small bo * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, tiling * Mega feature: General Display Features diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c index c65d71b19..63d1bbf71 100644 --- a/tests/intel/kms_busy.c +++ b/tests/intel/kms_busy.c @@ -48,25 +48,14 @@ * Functionality: kms_core, hang * Mega feature: General Display Features * Test category: functionality test - */ - -/** - * SUBTEST: extended-modeset-hang-%s + * + * SUBTEST: extended-pageflip-modeset-hang-oldfb * Description: Test for basic check of KMS ABI with busy framebuffers. * Driver requirement: i915 * Functionality: kms_core, hang * Mega feature: General Display Features * Test category: functionality test * - * arg[1]: - * - * @newfb: New framebuffer - * @oldfb: Old framebuffer - * @newfb-with-reset: New framebuffer with reset - * @oldfb-with-reset: Old framebuffer with reset - */ - -/** * SUBTEST: extended-pageflip-hang-%s * Description: Test for basic check of KMS ABI with busy framebuffers. * Driver requirement: i915 @@ -74,19 +63,31 @@ * Mega feature: General Display Features * Test category: functionality test * + * SUBTEST: extended-modeset-hang-%s + * Description: Test for basic check of KMS ABI with busy framebuffers. + * Driver requirement: i915 + * Functionality: kms_core, hang + * Mega feature: General Display Features + * Test category: functionality test + * * arg[1]: * - * @newfb: New framebuffer - * @oldfb: Old framebuffer + * @newfb: New framebuffer + * @oldfb: Old framebuffer */ /** - * SUBTEST: extended-pageflip-modeset-hang-oldfb + * SUBTEST: extended-modeset-hang-%s * Description: Test for basic check of KMS ABI with busy framebuffers. * Driver requirement: i915 * Functionality: kms_core, hang * Mega feature: General Display Features * Test category: functionality test + * + * arg[1]: + * + * @newfb-with-reset: New framebuffer with reset + * @oldfb-with-reset: Old framebuffer with reset */ IGT_TEST_DESCRIPTION("Basic check of KMS ABI with busy framebuffers."); diff --git a/tests/intel/kms_draw_crc.c b/tests/intel/kms_draw_crc.c index 7cd4c3ff1..b9d9cd6e4 100644 --- a/tests/intel/kms_draw_crc.c +++ b/tests/intel/kms_draw_crc.c @@ -32,6 +32,13 @@ #include "igt.h" /** + * SUBTEST: fill-fb + * Description: This subtest verifies CRC after filling fb with x-tiling or none. + * Driver requirement: i915, xe + * Functionality: kms_core, tiling + * Mega feature: General Display Features + * Test category: functionality test + * * SUBTEST: draw-method-%s * Description: Verify that igt draw library works for the %arg[1] method with * different modifiers & DRM formats. @@ -63,15 +70,6 @@ * @pwrite: PWRITE */ -/** - * SUBTEST: fill-fb - * Description: This subtest verifies CRC after filling fb with x-tiling or none. - * Driver requirement: i915, xe - * Functionality: kms_core, tiling - * Mega feature: General Display Features - * Test category: functionality test - */ - #define MAX_CONNECTORS 32 int drm_fd; diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c index 28af27f22..9b69fc892 100644 --- a/tests/kms_atomic.c +++ b/tests/kms_atomic.c @@ -49,6 +49,30 @@ #include "sw_sync.h" /** + * SUBTEST: atomic-invalid-params + * Description: Test abuse the atomic ioctl directly in order to test various + * invalid conditions which the libdrm wrapper won't allow us to + * create. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: atomic-plane-damage + * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property + * Driver requirement: i915, xe + * Functionality: kms_core, plane + * Mega feature: General Display Features + * Test category: functionality test + * + * SUBTEST: test-only + * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches + * the free-standing state objects and nothing else. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test + * * SUBTEST: plane-primary-overlay-mutable-zpos * Description: Verify that the overlay plane can cover the primary one (and * vice versa) by changing their zpos property. @@ -81,18 +105,8 @@ */ /** - * SUBTEST: test-only - * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches - * the free-standing state objects and nothing else. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - */ - -/** - * SUBTEST: plane-invalid-%s - * Description: Test error handling when invalid %arg[1] are passed + * SUBTEST: %s-invalid-%s + * Description: Test error handling when invalid %arg[1] %arg[2] are passed * Driver requirement: i915, xe * Functionality: kms_core, plane * Mega feature: General Display Features @@ -100,41 +114,16 @@ * * arg[1]: * - * @params: plane parameters - * @params-fence: plane fence parameters - */ - -/** - * SUBTEST: crtc-invalid-%s - * Description: Test error handling when invalid %arg[1] are passed - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test + * @crtc: CRTC + * @plane: Plane * - * arg[1]: + * arg[2]: * - * @params: crtc parameters - * @params-fence: crtc fence parameters + * @params: parameters + * @params-fence: fence parameters */ -/** - * SUBTEST: atomic-invalid-params - * Description: Test abuse the atomic ioctl directly in order to test various - * invalid conditions which the libdrm wrapper won't allow us to - * create. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: atomic-plane-damage - * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test - */ + #ifndef DRM_CAP_CURSOR_WIDTH #define DRM_CAP_CURSOR_WIDTH 0x8 diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c index 6a4955ef1..2e2710ae4 100644 --- a/tests/kms_cursor_legacy.c +++ b/tests/kms_cursor_legacy.c @@ -257,13 +257,6 @@ * Mega feature: General Display Features * Test category: functionality test * - * arg[1]: - * - * @atomic: - * @legacy: - */ - -/** * SUBTEST: flip-vs-cursor-busy-crc-%s * Description: this test perform a busy bo update followed by a cursor update * Driver requirement: i915, xe diff --git a/tests/kms_flip.c b/tests/kms_flip.c index 798103682..9afb78757 100755 --- a/tests/kms_flip.c +++ b/tests/kms_flip.c @@ -55,63 +55,53 @@ #include "xe/xe_query.h" /** - * SUBTEST: 2x-flip-vs-fences - * Description: Test to validate pageflips along with avialable fences on a pair - * of connected displays + * SUBTEST: %s + * Description: %arg[1] test to validate pageflips with available fences * Driver requirement: i915 * Functionality: gtt, vblank * Mega feature: General Display Features * Test category: functionality test * - * SUBTEST: 2x-flip-vs-fences-interruptible - * Description: Interrupt test to validate pageflips along with available fences + * SUBTEST: 2x-%s + * Description: %arg[1] test to validate pageflips along with available fences * on a pair of connected displays - * Driver requirement: i915, xe - * Functionality: gtt, vblank - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: flip-vs-fences - * Description: Basic test to validate pageflips with avialable fences * Driver requirement: i915 * Functionality: gtt, vblank * Mega feature: General Display Features * Test category: functionality test * - * SUBTEST: flip-vs-fences-interruptible - * Description: Interrupt test to validate pageflips with available fences - * Driver requirement: i915 - * Functionality: gtt, vblank - * Mega feature: General Display Features - * Test category: functionality test + * arg[1]: * - * SUBTEST: dpms-off-confusion - * Description: Basic test to validate pageflips by disabling other connectors usng dpms + * @flip-vs-fences: Basic + * @flip-vs-fences-interruptible: Interrupt + */ + +/** + * SUBTEST: dpms-off-%s + * Description: %arg[1] test to validate pageflips by disabling other connectors usng dpms * Driver requirement: i915, xe * Functionality: dpms, vblank * Mega feature: General Display Features * Test category: functionality test * - * SUBTEST: dpms-off-confusion-interruptible - * Description: Interrupt test to validate pageflips by disabling other connectors using dpms - * Driver requirement: i915, xe - * Functionality: dpms, vblank - * Mega feature: General Display Features - * Test category: functionality test + * arg[1]: * - * SUBTEST: bo-too-big - * Description: Basic test to validate pageflips with large BO in size + * @confusion: Basic + * @confusion-interruptible: Interrupt + */ + +/** + * SUBTEST: %s + * Description: %arg[1] test to validate pageflips with large BO in size * Driver requirement: i915, xe * Functionality: kms_gem_interop, vblank * Mega feature: General Display Features * Test category: functionality test * - * SUBTEST: bo-too-big-interruptible - * Description: Interrupt test to validate pageflips with large BO in size - * Driver requirement: i915, xe - * Functionality: kms_gem_interop, vblank - * Mega feature: General Display Features - * Test category: functionality test + * arg[1]: + * + * @bo-too-big: Basic + * @bo-too-big-interruptible: Interrupt */ /** @@ -169,36 +159,28 @@ */ /** - * SUBTEST: flip-vs-suspend - * Description: Basic test to validate pageflips with suspend cycle - * Driver requirement: i915, xe - * Functionality: suspend, vblank - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: 2x-flip-vs-suspend - * Description: Basic test to validate pageflips with suspend cycle on a pair of - * connected displays - * Driver requirement: i915, xe - * Functionality: suspend, vblank - * Mega feature: General Display Features - * Test category: functionality test - * - * SUBTEST: flip-vs-suspend-interruptible - * Description: Interrupt test to validate pageflips with suspend cycle + * SUBTEST: %s + * Description: %arg[1] test to validate pageflips with suspend cycle * Driver requirement: i915, xe * Functionality: suspend, vblank * Mega feature: General Display Features * Test category: functionality test * - * SUBTEST: 2x-flip-vs-suspend-interruptible - * Description: Interrupt test to validate pageflips with suspend cycle on a pair + * SUBTEST: 2x-%s + * Description: %arg[1] test to validate pageflips with suspend cycle on a pair * of connected displays * Driver requirement: i915, xe * Functionality: suspend, vblank * Mega feature: General Display Features * Test category: functionality test * + * arg[1]: + * + * @flip-vs-suspend: Basic + * @flip-vs-suspend-interruptible: Interrupt + */ + +/** * SUBTEST: %s * Description: Basic test to validate %arg[1] * Driver requirement: i915, xe @@ -293,6 +275,20 @@ */ /** + * SUBTEST: basic-plain-flip + * Description: Basic test for validating page flip + * Driver requirement: i915, xe + * Test category: functionality test + * Functionality: vblank + * Mega feature: General Display Features + * + * SUBTEST: nonblocking-read + * Description: Tests that nonblocking reading fails correctly + * Driver requirement: i915, xe + * Functionality: vblank + * Mega feature: General Display Features + * Test category: functionality test + * * SUBTEST: basic-flip-vs-dpms * Description: Basic test to valide pageflip with dpms * Driver requirement: i915, xe @@ -311,20 +307,6 @@ * * @modeset: modeset * @wf_vblank: wait for vblank - * - * SUBTEST: basic-plain-flip - * Description: Basic test for validating page flip - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: vblank - * Mega feature: General Display Features - * - * SUBTEST: nonblocking-read - * Description: Tests that nonblocking reading fails correctly - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test */ #define TEST_DPMS (1 << 0) diff --git a/tests/kms_plane.c b/tests/kms_plane.c index 17550e168..29cf45974 100644 --- a/tests/kms_plane.c +++ b/tests/kms_plane.c @@ -39,6 +39,13 @@ #include "xe/xe_query.h" /** + * SUBTEST: planar-pixel-format-settings + * Description: verify planar settings for pixel format are handled correctly + * Driver requirement: i915, xe + * Functionality: pixel_format, plane + * Mega feature: General Display Features + * Test category: functionality test + * * SUBTEST: plane-position-%s * Description: Verify plane position using two planes to create a %arg[1] * Driver requirement: i915, xe @@ -96,15 +103,6 @@ * @format-source-clamping: with source clamping */ -/** - * SUBTEST: planar-pixel-format-settings - * Description: verify planar settings for pixel format are handled correctly - * Driver requirement: i915, xe - * Functionality: pixel_format, plane - * Mega feature: General Display Features - * Test category: functionality test - */ - /* * Throw away enough lsbs in pixel formats tests * to get a match despite some differences between diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index b2e877a4b..bb082af68 100644 --- a/tests/kms_rotation_crc.c +++ b/tests/kms_rotation_crc.c @@ -77,6 +77,13 @@ * Functionality: plane, rotation, tiling * Mega feature: General Display Features * Test category: functionality test + * + * SUBTEST: exhaust-fences + * Description: This test intends to check for fence leaks exhaustively + * Driver requirement: i915 + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test */ /** @@ -142,15 +149,6 @@ * @top: top */ -/** - * SUBTEST: exhaust-fences - * Description: This test intends to check for fence leaks exhaustively - * Driver requirement: i915 - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test - */ - #define MAX_FENCES 32 #define MAXMULTIPLANESAMOUNT 2 #define TEST_MAX_WIDTH 640 -- 2.40.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [i-g-t 2/5] tests/kms/testplan: Regroup testplan documentation 2023-11-24 9:35 ` [igt-dev] [i-g-t 2/5] tests/kms/testplan: Regroup testplan documentation Bhanuprakash Modem @ 2023-11-24 17:08 ` Sharma, Swati2 0 siblings, 0 replies; 15+ messages in thread From: Sharma, Swati2 @ 2023-11-24 17:08 UTC (permalink / raw) To: Bhanuprakash Modem, igt-dev LGTM Reviewed-by: Swati Sharma <swati2.sharma@intel.com> On 24-Nov-23 3:05 PM, Bhanuprakash Modem wrote: > For redability purpose, re-group testplan documentation. > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > --- > tests/intel/kms_big_fb.c | 46 +++++---------- > tests/intel/kms_busy.c | 33 ++++++----- > tests/intel/kms_draw_crc.c | 16 +++-- > tests/kms_atomic.c | 75 ++++++++++-------------- > tests/kms_cursor_legacy.c | 7 --- > tests/kms_flip.c | 116 ++++++++++++++++--------------------- > tests/kms_plane.c | 16 +++-- > tests/kms_rotation_crc.c | 16 +++-- > 8 files changed, 133 insertions(+), 192 deletions(-) > > diff --git a/tests/intel/kms_big_fb.c b/tests/intel/kms_big_fb.c > index 2fb435ff4..cce7027e9 100644 > --- a/tests/intel/kms_big_fb.c > +++ b/tests/intel/kms_big_fb.c > @@ -141,51 +141,33 @@ > */ > > /** > - * SUBTEST: %s-addfb-size-overflow > - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > - * with small bo. > + * SUBTEST: linear-addfb > + * Description: Sanity check if addfb ioctl works correctly with Linear modifier > + * for given size and strides of fb > * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop, tiling > + * Functionality: big_fbs, kms_gem_interop > * Mega feature: General Display Features > * Test category: functionality test > * > - * arg[1]: > - * > - * @4-tiled: TILE-4 > - * @x-tiled: TILE-X > - * @y-tiled: TILE-Y > - * @yf-tiled: TILE-YF > - */ > - > -/** > - * SUBTEST: %s-addfb-size-offset-overflow > - * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > - * and offsets with small bo > + * SUBTEST: %s-addfb > + * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier > + * for given size and strides of fb > * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, tiling > * Mega feature: General Display Features > * Test category: functionality test > * > - * arg[1]: > - * > - * @4-tiled: TILE-4 > - * @x-tiled: TILE-X > - * @y-tiled: TILE-Y > - * @yf-tiled: TILE-YF > - */ > - > -/** > - * SUBTEST: linear-addfb > - * Description: Sanity check if addfb ioctl works correctly with Linear modifier > - * for given size and strides of fb > + * SUBTEST: %s-addfb-size-overflow > + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > + * with small bo. > * Driver requirement: i915, xe > - * Functionality: big_fbs, kms_gem_interop > + * Functionality: big_fbs, kms_gem_interop, tiling > * Mega feature: General Display Features > * Test category: functionality test > * > - * SUBTEST: %s-addfb > - * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier > - * for given size and strides of fb > + * SUBTEST: %s-addfb-size-offset-overflow > + * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > + * and offsets with small bo > * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, tiling > * Mega feature: General Display Features > diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c > index c65d71b19..63d1bbf71 100644 > --- a/tests/intel/kms_busy.c > +++ b/tests/intel/kms_busy.c > @@ -48,25 +48,14 @@ > * Functionality: kms_core, hang > * Mega feature: General Display Features > * Test category: functionality test > - */ > - > -/** > - * SUBTEST: extended-modeset-hang-%s > + * > + * SUBTEST: extended-pageflip-modeset-hang-oldfb > * Description: Test for basic check of KMS ABI with busy framebuffers. > * Driver requirement: i915 > * Functionality: kms_core, hang > * Mega feature: General Display Features > * Test category: functionality test > * > - * arg[1]: > - * > - * @newfb: New framebuffer > - * @oldfb: Old framebuffer > - * @newfb-with-reset: New framebuffer with reset > - * @oldfb-with-reset: Old framebuffer with reset > - */ > - > -/** > * SUBTEST: extended-pageflip-hang-%s > * Description: Test for basic check of KMS ABI with busy framebuffers. > * Driver requirement: i915 > @@ -74,19 +63,31 @@ > * Mega feature: General Display Features > * Test category: functionality test > * > + * SUBTEST: extended-modeset-hang-%s > + * Description: Test for basic check of KMS ABI with busy framebuffers. > + * Driver requirement: i915 > + * Functionality: kms_core, hang > + * Mega feature: General Display Features > + * Test category: functionality test > + * > * arg[1]: > * > - * @newfb: New framebuffer > - * @oldfb: Old framebuffer > + * @newfb: New framebuffer > + * @oldfb: Old framebuffer > */ > > /** > - * SUBTEST: extended-pageflip-modeset-hang-oldfb > + * SUBTEST: extended-modeset-hang-%s > * Description: Test for basic check of KMS ABI with busy framebuffers. > * Driver requirement: i915 > * Functionality: kms_core, hang > * Mega feature: General Display Features > * Test category: functionality test > + * > + * arg[1]: > + * > + * @newfb-with-reset: New framebuffer with reset > + * @oldfb-with-reset: Old framebuffer with reset > */ > > IGT_TEST_DESCRIPTION("Basic check of KMS ABI with busy framebuffers."); > diff --git a/tests/intel/kms_draw_crc.c b/tests/intel/kms_draw_crc.c > index 7cd4c3ff1..b9d9cd6e4 100644 > --- a/tests/intel/kms_draw_crc.c > +++ b/tests/intel/kms_draw_crc.c > @@ -32,6 +32,13 @@ > #include "igt.h" > > /** > + * SUBTEST: fill-fb > + * Description: This subtest verifies CRC after filling fb with x-tiling or none. > + * Driver requirement: i915, xe > + * Functionality: kms_core, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > + * > * SUBTEST: draw-method-%s > * Description: Verify that igt draw library works for the %arg[1] method with > * different modifiers & DRM formats. > @@ -63,15 +70,6 @@ > * @pwrite: PWRITE > */ > > -/** > - * SUBTEST: fill-fb > - * Description: This subtest verifies CRC after filling fb with x-tiling or none. > - * Driver requirement: i915, xe > - * Functionality: kms_core, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > #define MAX_CONNECTORS 32 > > int drm_fd; > diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c > index 28af27f22..9b69fc892 100644 > --- a/tests/kms_atomic.c > +++ b/tests/kms_atomic.c > @@ -49,6 +49,30 @@ > #include "sw_sync.h" > > /** > + * SUBTEST: atomic-invalid-params > + * Description: Test abuse the atomic ioctl directly in order to test various > + * invalid conditions which the libdrm wrapper won't allow us to > + * create. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: atomic-plane-damage > + * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > + * SUBTEST: test-only > + * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches > + * the free-standing state objects and nothing else. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > + * > * SUBTEST: plane-primary-overlay-mutable-zpos > * Description: Verify that the overlay plane can cover the primary one (and > * vice versa) by changing their zpos property. > @@ -81,18 +105,8 @@ > */ > > /** > - * SUBTEST: test-only > - * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches > - * the free-standing state objects and nothing else. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > -/** > - * SUBTEST: plane-invalid-%s > - * Description: Test error handling when invalid %arg[1] are passed > + * SUBTEST: %s-invalid-%s > + * Description: Test error handling when invalid %arg[1] %arg[2] are passed > * Driver requirement: i915, xe > * Functionality: kms_core, plane > * Mega feature: General Display Features > @@ -100,41 +114,16 @@ > * > * arg[1]: > * > - * @params: plane parameters > - * @params-fence: plane fence parameters > - */ > - > -/** > - * SUBTEST: crtc-invalid-%s > - * Description: Test error handling when invalid %arg[1] are passed > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > + * @crtc: CRTC > + * @plane: Plane > * > - * arg[1]: > + * arg[2]: > * > - * @params: crtc parameters > - * @params-fence: crtc fence parameters > + * @params: parameters > + * @params-fence: fence parameters > */ > > -/** > - * SUBTEST: atomic-invalid-params > - * Description: Test abuse the atomic ioctl directly in order to test various > - * invalid conditions which the libdrm wrapper won't allow us to > - * create. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: atomic-plane-damage > - * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > + > > #ifndef DRM_CAP_CURSOR_WIDTH > #define DRM_CAP_CURSOR_WIDTH 0x8 > diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c > index 6a4955ef1..2e2710ae4 100644 > --- a/tests/kms_cursor_legacy.c > +++ b/tests/kms_cursor_legacy.c > @@ -257,13 +257,6 @@ > * Mega feature: General Display Features > * Test category: functionality test > * > - * arg[1]: > - * > - * @atomic: > - * @legacy: > - */ > - > -/** > * SUBTEST: flip-vs-cursor-busy-crc-%s > * Description: this test perform a busy bo update followed by a cursor update > * Driver requirement: i915, xe > diff --git a/tests/kms_flip.c b/tests/kms_flip.c > index 798103682..9afb78757 100755 > --- a/tests/kms_flip.c > +++ b/tests/kms_flip.c > @@ -55,63 +55,53 @@ > #include "xe/xe_query.h" > > /** > - * SUBTEST: 2x-flip-vs-fences > - * Description: Test to validate pageflips along with avialable fences on a pair > - * of connected displays > + * SUBTEST: %s > + * Description: %arg[1] test to validate pageflips with available fences > * Driver requirement: i915 > * Functionality: gtt, vblank > * Mega feature: General Display Features > * Test category: functionality test > * > - * SUBTEST: 2x-flip-vs-fences-interruptible > - * Description: Interrupt test to validate pageflips along with available fences > + * SUBTEST: 2x-%s > + * Description: %arg[1] test to validate pageflips along with available fences > * on a pair of connected displays > - * Driver requirement: i915, xe > - * Functionality: gtt, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: flip-vs-fences > - * Description: Basic test to validate pageflips with avialable fences > * Driver requirement: i915 > * Functionality: gtt, vblank > * Mega feature: General Display Features > * Test category: functionality test > * > - * SUBTEST: flip-vs-fences-interruptible > - * Description: Interrupt test to validate pageflips with available fences > - * Driver requirement: i915 > - * Functionality: gtt, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > + * arg[1]: > * > - * SUBTEST: dpms-off-confusion > - * Description: Basic test to validate pageflips by disabling other connectors usng dpms > + * @flip-vs-fences: Basic > + * @flip-vs-fences-interruptible: Interrupt > + */ > + > +/** > + * SUBTEST: dpms-off-%s > + * Description: %arg[1] test to validate pageflips by disabling other connectors usng dpms > * Driver requirement: i915, xe > * Functionality: dpms, vblank > * Mega feature: General Display Features > * Test category: functionality test > * > - * SUBTEST: dpms-off-confusion-interruptible > - * Description: Interrupt test to validate pageflips by disabling other connectors using dpms > - * Driver requirement: i915, xe > - * Functionality: dpms, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > + * arg[1]: > * > - * SUBTEST: bo-too-big > - * Description: Basic test to validate pageflips with large BO in size > + * @confusion: Basic > + * @confusion-interruptible: Interrupt > + */ > + > +/** > + * SUBTEST: %s > + * Description: %arg[1] test to validate pageflips with large BO in size > * Driver requirement: i915, xe > * Functionality: kms_gem_interop, vblank > * Mega feature: General Display Features > * Test category: functionality test > * > - * SUBTEST: bo-too-big-interruptible > - * Description: Interrupt test to validate pageflips with large BO in size > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > + * arg[1]: > + * > + * @bo-too-big: Basic > + * @bo-too-big-interruptible: Interrupt > */ > > /** > @@ -169,36 +159,28 @@ > */ > > /** > - * SUBTEST: flip-vs-suspend > - * Description: Basic test to validate pageflips with suspend cycle > - * Driver requirement: i915, xe > - * Functionality: suspend, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: 2x-flip-vs-suspend > - * Description: Basic test to validate pageflips with suspend cycle on a pair of > - * connected displays > - * Driver requirement: i915, xe > - * Functionality: suspend, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > - * > - * SUBTEST: flip-vs-suspend-interruptible > - * Description: Interrupt test to validate pageflips with suspend cycle > + * SUBTEST: %s > + * Description: %arg[1] test to validate pageflips with suspend cycle > * Driver requirement: i915, xe > * Functionality: suspend, vblank > * Mega feature: General Display Features > * Test category: functionality test > * > - * SUBTEST: 2x-flip-vs-suspend-interruptible > - * Description: Interrupt test to validate pageflips with suspend cycle on a pair > + * SUBTEST: 2x-%s > + * Description: %arg[1] test to validate pageflips with suspend cycle on a pair > * of connected displays > * Driver requirement: i915, xe > * Functionality: suspend, vblank > * Mega feature: General Display Features > * Test category: functionality test > * > + * arg[1]: > + * > + * @flip-vs-suspend: Basic > + * @flip-vs-suspend-interruptible: Interrupt > + */ > + > +/** > * SUBTEST: %s > * Description: Basic test to validate %arg[1] > * Driver requirement: i915, xe > @@ -293,6 +275,20 @@ > */ > > /** > + * SUBTEST: basic-plain-flip > + * Description: Basic test for validating page flip > + * Driver requirement: i915, xe > + * Test category: functionality test > + * Functionality: vblank > + * Mega feature: General Display Features > + * > + * SUBTEST: nonblocking-read > + * Description: Tests that nonblocking reading fails correctly > + * Driver requirement: i915, xe > + * Functionality: vblank > + * Mega feature: General Display Features > + * Test category: functionality test > + * > * SUBTEST: basic-flip-vs-dpms > * Description: Basic test to valide pageflip with dpms > * Driver requirement: i915, xe > @@ -311,20 +307,6 @@ > * > * @modeset: modeset > * @wf_vblank: wait for vblank > - * > - * SUBTEST: basic-plain-flip > - * Description: Basic test for validating page flip > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: vblank > - * Mega feature: General Display Features > - * > - * SUBTEST: nonblocking-read > - * Description: Tests that nonblocking reading fails correctly > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > #define TEST_DPMS (1 << 0) > diff --git a/tests/kms_plane.c b/tests/kms_plane.c > index 17550e168..29cf45974 100644 > --- a/tests/kms_plane.c > +++ b/tests/kms_plane.c > @@ -39,6 +39,13 @@ > #include "xe/xe_query.h" > > /** > + * SUBTEST: planar-pixel-format-settings > + * Description: verify planar settings for pixel format are handled correctly > + * Driver requirement: i915, xe > + * Functionality: pixel_format, plane > + * Mega feature: General Display Features > + * Test category: functionality test > + * > * SUBTEST: plane-position-%s > * Description: Verify plane position using two planes to create a %arg[1] > * Driver requirement: i915, xe > @@ -96,15 +103,6 @@ > * @format-source-clamping: with source clamping > */ > > -/** > - * SUBTEST: planar-pixel-format-settings > - * Description: verify planar settings for pixel format are handled correctly > - * Driver requirement: i915, xe > - * Functionality: pixel_format, plane > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > /* > * Throw away enough lsbs in pixel formats tests > * to get a match despite some differences between > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c > index b2e877a4b..bb082af68 100644 > --- a/tests/kms_rotation_crc.c > +++ b/tests/kms_rotation_crc.c > @@ -77,6 +77,13 @@ > * Functionality: plane, rotation, tiling > * Mega feature: General Display Features > * Test category: functionality test > + * > + * SUBTEST: exhaust-fences > + * Description: This test intends to check for fence leaks exhaustively > + * Driver requirement: i915 > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > /** > @@ -142,15 +149,6 @@ > * @top: top > */ > > -/** > - * SUBTEST: exhaust-fences > - * Description: This test intends to check for fence leaks exhaustively > - * Driver requirement: i915 > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > #define MAX_FENCES 32 > #define MAXMULTIPLANESAMOUNT 2 > #define TEST_MAX_WIDTH 640 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [i-g-t 3/5] tests/kms/testplan: Optimize KMS testplan documentation 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem 2023-11-24 9:35 ` [igt-dev] [i-g-t 1/5] tests/kms/testplan: Move testplan documentation to beginning of the file Bhanuprakash Modem 2023-11-24 9:35 ` [igt-dev] [i-g-t 2/5] tests/kms/testplan: Regroup testplan documentation Bhanuprakash Modem @ 2023-11-24 9:36 ` Bhanuprakash Modem 2023-11-24 17:08 ` Sharma, Swati2 2023-11-24 9:36 ` [igt-dev] [i-g-t 4/5] tests/kms/testplan: Fix Mega Feature in " Bhanuprakash Modem ` (5 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Bhanuprakash Modem @ 2023-11-24 9:36 UTC (permalink / raw) To: igt-dev, swati2.sharma Moving all common key:values to TEST level from SUBTEST will minimize the maintenance effort. Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/chamelium/kms_chamelium_audio.c | 10 +- tests/chamelium/kms_chamelium_color.c | 16 +- tests/chamelium/kms_chamelium_edid.c | 22 +- tests/chamelium/kms_chamelium_frames.c | 33 +- tests/chamelium/kms_chamelium_hpd.c | 69 +-- tests/intel/kms_big_fb.c | 33 +- tests/intel/kms_big_joiner.c | 16 +- tests/intel/kms_busy.c | 27 +- tests/intel/kms_ccs.c | 15 +- tests/intel/kms_cdclk.c | 16 +- tests/intel/kms_draw_crc.c | 15 +- tests/intel/kms_dsc.c | 8 +- tests/intel/kms_fbcon_fbt.c | 10 +- tests/intel/kms_flip_scaled_crc.c | 70 +--- tests/intel/kms_frontbuffer_tracking.c | 559 +------------------------ tests/intel/kms_legacy_colorkey.c | 12 +- tests/intel/kms_pipe_b_c_ivb.c | 24 +- tests/intel/kms_pm_backlight.c | 22 +- tests/intel/kms_pm_dc.c | 29 +- tests/intel/kms_pm_lpsp.c | 11 +- tests/intel/kms_pm_rpm.c | 4 + tests/intel/kms_psr.c | 73 +--- tests/intel/kms_psr2_sf.c | 36 +- tests/intel/kms_psr2_su.c | 9 +- tests/intel/kms_psr_stress_test.c | 12 +- tests/kms_addfb_basic.c | 99 +---- tests/kms_async_flips.c | 26 +- tests/kms_atomic.c | 32 +- tests/kms_atomic_interruptible.c | 18 +- tests/kms_atomic_transition.c | 30 +- tests/kms_bw.c | 8 +- tests/kms_color.c | 32 +- tests/kms_content_protection.c | 29 +- tests/kms_cursor_crc.c | 18 +- tests/kms_cursor_edge_walk.c | 9 +- tests/kms_cursor_legacy.c | 68 +-- tests/kms_display_modes.c | 9 +- tests/kms_dither.c | 12 +- tests/kms_feature_discovery.c | 21 +- tests/kms_flip.c | 78 +--- tests/kms_force_connector_basic.c | 18 +- tests/kms_getfb.c | 30 +- tests/kms_hdmi_inject.c | 9 +- tests/kms_hdr.c | 32 +- tests/kms_invalid_mode.c | 8 +- tests/kms_lease.c | 88 +--- tests/kms_panel_fitting.c | 12 +- tests/kms_pipe_crc_basic.c | 37 +- tests/kms_plane.c | 21 +- tests/kms_plane_alpha_blend.c | 20 +- tests/kms_plane_cursor.c | 16 +- tests/kms_plane_lowres.c | 11 +- tests/kms_plane_multiple.c | 11 +- tests/kms_plane_scaling.c | 84 +--- tests/kms_prime.c | 15 +- tests/kms_prop_blob.c | 20 +- tests/kms_properties.c | 12 +- tests/kms_rmfb.c | 12 +- tests/kms_rotation_crc.c | 41 +- tests/kms_scaling_modes.c | 8 +- tests/kms_selftest.c | 8 +- tests/kms_sequence.c | 12 +- tests/kms_setmode.c | 27 +- tests/kms_tiled_display.c | 9 +- tests/kms_universal_plane.c | 19 +- tests/kms_vblank.c | 30 +- tests/kms_vrr.c | 22 +- tests/kms_writeback.c | 26 +- 68 files changed, 255 insertions(+), 2043 deletions(-) diff --git a/tests/chamelium/kms_chamelium_audio.c b/tests/chamelium/kms_chamelium_audio.c index f86610861..cc2c23a76 100644 --- a/tests/chamelium/kms_chamelium_audio.c +++ b/tests/chamelium/kms_chamelium_audio.c @@ -28,6 +28,8 @@ * TEST: kms chamelium audio * Category: Display * Description: Testing Audio with a Chamelium board + * Driver requirement: i915, xe + * Test category: functionality test */ #include "igt_eld.h" @@ -38,34 +40,26 @@ * SUBTEST: dp-audio * Description: Playback various audio signals with various audio formats/rates, * capture them and check they are correct - * Driver requirement: i915, xe * Functionality: chamelium, dp_audio * Mega feature: Audio, DP - * Test category: functionality test * * SUBTEST: hdmi-audio * Description: Playback various audio signals with various audio formats/rates, * capture them and check they are correct - * Driver requirement: i915, xe * Functionality: chamelium, hdmi_audio * Mega feature: Audio, HDMI - * Test category: functionality test * * SUBTEST: dp-audio-edid * Description: Plug a connector with an EDID suitable for audio, check ALSA's * EDID-Like Data reports the correct audio parameters - * Driver requirement: i915, xe * Functionality: chamelium, dp_audio * Mega feature: Audio, DP - * Test category: functionality test * * SUBTEST: hdmi-audio-edid * Description: Plug a connector with an EDID suitable for audio, check ALSA's * EDID-Like Data reports the correct audio parameters - * Driver requirement: i915, xe * Functionality: chamelium, hdmi_audio * Mega feature: Audio, HDMI - * Test category: functionality test */ /* Playback parameters control the audio signal we synthesize and send */ diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c index 6123e8a5f..e94e13e40 100644 --- a/tests/chamelium/kms_chamelium_color.c +++ b/tests/chamelium/kms_chamelium_color.c @@ -26,6 +26,10 @@ * TEST: kms chamelium color * Category: Display * Description: Test Color Features at Pipe level using Chamelium to verify instead of CRC + * Driver requirement: i915, xe + * Functionality: chamelium, colorspace + * Mega feature: Color mgmt + * Test category: functionality test */ #include "kms_color_helper.h" @@ -33,24 +37,12 @@ /** * SUBTEST: degamma * Description: Verify that degamma LUT transformation works correctly - * Driver requirement: i915, xe - * Functionality: chamelium, colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * SUBTEST: gamma * Description: Verify that gamma LUT transformation works correctly - * Driver requirement: i915, xe - * Functionality: chamelium, colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * SUBTEST: ctm-%s * Description: Check the color transformation %arg[1] - * Driver requirement: i915, xe - * Functionality: chamelium, colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * arg[1]: * diff --git a/tests/chamelium/kms_chamelium_edid.c b/tests/chamelium/kms_chamelium_edid.c index f3f0b1e50..6550b7b74 100644 --- a/tests/chamelium/kms_chamelium_edid.c +++ b/tests/chamelium/kms_chamelium_edid.c @@ -28,6 +28,8 @@ * TEST: kms chamelium edid * Category: Display * Description: Testing EDID with a Chamelium board + * Driver requirement: i915, xe + * Test category: functionality test */ #include <fcntl.h> @@ -51,22 +53,16 @@ /** * SUBTEST: dp-edid-read * Description: Make sure the EDID exposed by KMS is the same as the screen's - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: chamelium, dp_edid * Mega feature: DP * * SUBTEST: hdmi-edid-read * Description: Make sure the EDID exposed by KMS is the same as the screen's - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: chamelium, hdmi_edid * Mega feature: HDMI * * SUBTEST: vga-edid-read * Description: Make sure the EDID exposed by KMS is the same as the screen's - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: chamelium, vga_edid * Mega feature: VGA * @@ -74,28 +70,22 @@ * Description: Get an EDID with many modes of different configurations, set * them on the screen and check the screen resolution matches the * mode resolution. - * Driver requirement: i915, xe * Functionality: chamelium, dp_edid * Mega feature: DP - * Test category: functionality test * * SUBTEST: dp-mode-timings * Description: For each mode of the IGT base EDID, perform a modeset and check * the mode detected by the Chamelium receiver matches the mode we * set - * Driver requirement: i915, xe * Functionality: chamelium, dp_edid * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-mode-timings * Description: For each mode of the IGT base EDID, perform a modeset and check * the mode detected by the Chamelium receiver matches the mode we * set - * Driver requirement: i915, xe * Functionality: chamelium, dp_edid * Mega feature: DP - * Test category: functionality test */ /** @@ -103,19 +93,15 @@ * Description: Stress test the DUT by testing multiple EDIDs, one right after * the other, and ensure their validity by check the real screen * resolution vs the advertised mode (%arg[1]) resolution. - * Driver requirement: i915, xe * Functionality: chamelium, dp_edid * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-edid-stress-resolution-%s * Description: Stress test the DUT by testing multiple EDIDs, one right after * the other, and ensure their validity by check the real screen * resolution vs the advertised mode (%arg[1]) resolution. - * Driver requirement: i915, xe * Functionality: chamelium, hdmi_edid * Mega feature: HDMI - * Test category: functionality test * * arg[1]: * @@ -128,19 +114,15 @@ * Description: Simulate a screen being unplugged and another screen being * plugged during suspend, check that a uevent is sent and * connector status is updated during %arg[1] - * Driver requirement: i915, xe * Functionality: chamelium, dp_edid * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-edid-change-during-%s * Description: Simulate a screen being unplugged and another screen being * plugged during suspend, check that a uevent is sent and * connector status is updated during %arg[1] - * Driver requirement: i915, xe * Functionality: chamelium, dp_edid * Mega feature: DP - * Test category: functionality test * * arg[1]: * diff --git a/tests/chamelium/kms_chamelium_frames.c b/tests/chamelium/kms_chamelium_frames.c index 490ab3fe9..c14245a71 100644 --- a/tests/chamelium/kms_chamelium_frames.c +++ b/tests/chamelium/kms_chamelium_frames.c @@ -28,6 +28,9 @@ * TEST: kms chamelium frames * Category: Display * Description: Tests requiring a Chamelium board + * Driver requirement: i915, xe + * Functionality: chamelium, frame_integrity + * Test category: functionality test */ #include "igt_eld.h" @@ -38,26 +41,17 @@ * SUBTEST: dp-crc-fast * Description: Pick the first mode of the IGT base EDID, display and capture * a few frames, then check captured frames are correct - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-crc-fast * Description: Pick the first mode of the IGT base EDID, display and capture * a few frames, then check captured frames are correct - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: hdmi-%s-formats * Description: Pick the first mode of the IGT base EDID, display and capture a * few frames, then check captured frames are correct - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: HDMI - * Test category: functionality test * * arg[1]: * @@ -69,26 +63,17 @@ * SUBTEST: vga-frame-dump * Description: For each mode of the IGT base EDID, display and capture a few * frames, then check captured frames are correct - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: VGA - * Test category: functionality test * * SUBTEST: dp-crc-%s * Description: For each mode of the IGT base EDID, display and capture a %arg[1] * frame(s), then check captured frame(s) are correct - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-crc-%s * Description: For each mode of the IGT base EDID, display and capture a %arg[1] * frame(s), then check captured frame(s) are correct - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: HDMI - * Test category: functionality test * * arg[1]: * @@ -101,35 +86,23 @@ * Description: For each mode of the IGT base EDID, display and capture a few * frames, then download the captured frames and compare them * bit-by-bit to the sent ones - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-frame-dump * Description: For each mode of the IGT base EDID, display and capture a few * frames, then download the captured frames and compare them * bit-by-bit to the sent ones - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: hdmi-aspect-ratio * Description: Pick a mode with a picture aspect-ratio, capture AVI InfoFrames * and check they include the relevant fields - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: hdmi-%s-planes-random * Description: Setup a few overlay planes with random parameters, capture the * frame and check it matches the expected output - * Driver requirement: i915, xe - * Functionality: chamelium, frame_integrity * Mega feature: HDMI - * Test category: functionality test * * arg[1]: * diff --git a/tests/chamelium/kms_chamelium_hpd.c b/tests/chamelium/kms_chamelium_hpd.c index 360694c76..7e580e20e 100644 --- a/tests/chamelium/kms_chamelium_hpd.c +++ b/tests/chamelium/kms_chamelium_hpd.c @@ -28,6 +28,9 @@ * TEST: kms chamelium hpd * Category: Display * Description: Testing HPD with a Chamelium board + * Driver requirement: i915, xe + * Functionality: chamelium, hotplug + * Test category: functionality test */ #include "kms_chamelium_helper.h" @@ -36,74 +39,47 @@ * SUBTEST: dp-hpd-fast * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd-fast * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: vga-hpd-fast * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: VGA - * Test category: functionality test * * SUBTEST: dp-hpd * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: vga-hpd * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: VGA - * Test category: functionality test * * SUBTEST: dp-hpd-%s * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd-%s * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: vga-hpd-%s * Description: Check that we get uevents and updated connector status on * hotplug and unplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: VGA - * Test category: functionality test * * arg[1]: * @@ -115,132 +91,93 @@ * SUBTEST: dp-hpd-for-each-pipe * Description: Check that we get uevents and updated connector status on * hotplug and unplug for each pipe with valid output - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd-for-each-pipe * Description: Check that we get uevents and updated connector status on * hotplug and unplug for each pipe with valid output - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: vga-hpd-for-each-pipe * Description: Check that we get uevents and updated connector status on * hotplug and unplug for each pipe with valid output - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: VGA * Test category: functionality test * * SUBTEST: dp-hpd-after-hibernate * Description: Toggle HPD during Hibernation, check that uevents are sent and * connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, hibernation * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd-after-hibernate * Description: Toggle HPD during Hibernation, check that uevents are sent and * connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, hibernation * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: vga-hpd-after-hibernate * Description: Toggle HPD during Hibernation, check that uevents are sent and * connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, hibernation * Mega feature: VGA - * Test category: functionality test * * SUBTEST: dp-hpd-after-suspend * Description: Toggle HPD during Suspend, check that uevents are sent and * connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, suspend * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd-after-suspend * Description: Toggle HPD during Suspend, check that uevents are sent and * connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, suspend * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: vga-hpd-after-suspend * Description: Toggle HPD during Suspend, check that uevents are sent and * connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, suspend * Mega feature: VGA - * Test category: functionality test * * SUBTEST: common-hpd-after-suspend * Description: Toggle HPD during suspend on all connectors, check that uevents * are sent and connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, suspend * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: common-hpd-after-hibernate * Description: Toggle HPD during suspend on all connectors, check that uevents * are sent and connector status is updated - * Driver requirement: i915, xe * Functionality: chamelium, hotplug, hibernation * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: vga-hpd-without-ddc * Description: Disable DDC on a VGA connector, check we still get a uevent on * hotplug - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: VGA - * Test category: functionality test * * SUBTEST: dp-hpd-storm * Description: Trigger a series of hotplugs in a very small timeframe to * simulate abad cable, check the kernel falls back to polling * to avoid a hotplug storm - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd-storm * Description: Trigger a series of hotplugs in a very small timeframe to * simulate abad cable, check the kernel falls back to polling * to avoid a hotplug storm - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: dp-hpd-storm-disable * Description: Disable HPD storm detection, trigger a storm and check the * kernel doesn't detect one - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: DP - * Test category: functionality test * * SUBTEST: hdmi-hpd-storm-disable * Description: Disable HPD storm detection, trigger a storm and check the * kernel doesn't detect one - * Driver requirement: i915, xe - * Functionality: chamelium, hotplug * Mega feature: HDMI - * Test category: functionality test */ #define HPD_STORM_PULSE_INTERVAL_DP 100 /* ms */ diff --git a/tests/intel/kms_big_fb.c b/tests/intel/kms_big_fb.c index cce7027e9..82aff532b 100644 --- a/tests/intel/kms_big_fb.c +++ b/tests/intel/kms_big_fb.c @@ -25,6 +25,9 @@ * TEST: kms big fb * Category: Display * Description: Test big framebuffers + * Driver requirement: i915, xe + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -41,10 +44,7 @@ * SUBTEST: linear-%dbpp-rotate-%d * Description: Sanity check if addfb ioctl works correctly for given combination * of Linear modifier with %arg[1]-bpp & %arg[2]-rotation - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, rotation - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 8, 16, 32, 64 * arg[2].values: 0, 90, 180, 270 @@ -54,10 +54,7 @@ * SUBTEST: %s-%dbpp-rotate-%d * Description: Sanity check if addfb ioctl works correctly for given combination * of %arg[1] with %arg[2]-bpp & %arg[3]-rotation - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -75,10 +72,7 @@ * Description: Test maximum hardware supported stride length for given combination * of linear modifier with max hardware stride length, %arg[1]-bpp, * and %arg[2]-rotation - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, rotation - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 32, 64 * arg[2].values: 0, 180 @@ -89,10 +83,7 @@ * Description: Test maximum hardware supported stride length for given combination * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, * and %arg[3]-rotation - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -110,19 +101,13 @@ * Description: Test maximum hardware supported stride length for given combination * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, * and %arg[3]-rotation with H-flip mode - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-%s * Description: Test maximum hardware supported stride length for given combination * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, * and %arg[3]-rotation with %arg[4] mode - * Driver requirement: i915, xe * Functionality: async_flips, big_fbs, kms_gem_interop, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -144,34 +129,22 @@ * SUBTEST: linear-addfb * Description: Sanity check if addfb ioctl works correctly with Linear modifier * for given size and strides of fb - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: %s-addfb * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier * for given size and strides of fb - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: %s-addfb-size-overflow * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier * with small bo. - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: %s-addfb-size-offset-overflow * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier * and offsets with small bo - * Driver requirement: i915, xe * Functionality: big_fbs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c index 3f2091723..c5f9f8db7 100644 --- a/tests/intel/kms_big_joiner.c +++ b/tests/intel/kms_big_joiner.c @@ -28,6 +28,10 @@ * TEST: kms big joiner * Category: Display * Description: Test big joiner + * Driver requirement: i915, xe + * Functionality: 2p1p + * Mega feature: Bigjoiner + * Test category: functionality test */ #include "igt.h" @@ -36,24 +40,12 @@ * SUBTEST: invalid-modeset * Description: Verify if the modeset on the adjoining pipe is rejected when * the pipe is active with a big joiner modeset - * Driver requirement: i915, xe - * Functionality: 2p1p - * Mega feature: Bigjoiner - * Test category: functionality test * * SUBTEST: basic * Description: Verify the basic modeset on big joiner mode on all pipes - * Driver requirement: i915, xe - * Functionality: 2p1p - * Mega feature: Bigjoiner - * Test category: functionality test * * SUBTEST: 2x-modeset * Description: Verify simultaneous modeset on 2 big joiner outputs - * Driver requirement: i915, xe - * Functionality: 2p1p - * Mega feature: Bigjoiner - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test big joiner"); diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c index 63d1bbf71..004d9ee6e 100644 --- a/tests/intel/kms_busy.c +++ b/tests/intel/kms_busy.c @@ -25,6 +25,10 @@ * TEST: kms busy * Category: Display * Description: Basic check of KMS ABI with busy framebuffers. + * Driver requirement: i915 + * Functionality: kms_core, hang + * Mega feature: General Display Features + * Test category: functionality test */ #include <sys/poll.h> @@ -37,38 +41,19 @@ /** * SUBTEST: basic * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: basic-hang * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: extended-pageflip-modeset-hang-oldfb * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: extended-pageflip-hang-%s * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: extended-modeset-hang-%s * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -79,10 +64,6 @@ /** * SUBTEST: extended-modeset-hang-%s * Description: Test for basic check of KMS ABI with busy framebuffers. - * Driver requirement: i915 - * Functionality: kms_core, hang - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c index d1eb735fa..0a202d037 100644 --- a/tests/intel/kms_ccs.c +++ b/tests/intel/kms_ccs.c @@ -28,6 +28,10 @@ * Description: Test render compression (RC), in which the main surface is * complemented by a color control surface (CCS) that the display * uses to interpret the compressed data. + * Driver requirement: i915, xe + * Functionality: ccs, tiling + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -39,10 +43,6 @@ /** * SUBTEST: %s-%s-%s * Description: Test %arg[2] with given %arg[3] modifier - * Driver requirement: i915, xe - * Functionality: ccs, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -84,10 +84,6 @@ /** * SUBTEST: %s-%s-%s * Description: Test %arg[2] with %arg[3] modifier - * Driver requirement: i915, xe - * Functionality: ccs, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -133,10 +129,7 @@ /** * SUBTEST: %s-%s-%s * Description: Test %arg[2] with %arg[3] modifier - * Driver requirement: i915, xe * Functionality: ccs, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/intel/kms_cdclk.c b/tests/intel/kms_cdclk.c index 97cb615c5..7baf7d98e 100644 --- a/tests/intel/kms_cdclk.c +++ b/tests/intel/kms_cdclk.c @@ -28,6 +28,10 @@ * TEST: kms cdclk * Category: Display * Description: Test cdclk features : crawling and squashing + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -36,24 +40,12 @@ * SUBTEST: mode-transition-all-outputs * Description: Mode transition (low to high) test to validate cdclk frequency * change by simultaneous modesets on all pipes with valid outputs. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: mode-transition * Description: Mode transition (low to high) test to validate cdclk frequency change. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-scaling * Description: Plane scaling test to validate cdclk frequency change. - * Driver requirement: i915, xe - * Functionality: kms_core, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test cdclk features : crawling and squashing"); diff --git a/tests/intel/kms_draw_crc.c b/tests/intel/kms_draw_crc.c index b9d9cd6e4..e3d1c0ba9 100644 --- a/tests/intel/kms_draw_crc.c +++ b/tests/intel/kms_draw_crc.c @@ -26,6 +26,10 @@ * TEST: kms draw crc * Category: Display * Description: Tests whether the igt_draw library actually works. + * Driver requirement: i915, xe + * Functionality: kms_core, tiling + * Mega feature: General Display Features + * Test category: functionality test */ #include "i915/gem.h" @@ -34,18 +38,10 @@ /** * SUBTEST: fill-fb * Description: This subtest verifies CRC after filling fb with x-tiling or none. - * Driver requirement: i915, xe - * Functionality: kms_core, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: draw-method-%s * Description: Verify that igt draw library works for the %arg[1] method with * different modifiers & DRM formats. - * Driver requirement: i915, xe - * Functionality: kms_core, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -59,9 +55,6 @@ * Description: Verify that igt draw library works for the %arg[1] method with * different modifiers & DRM formats. * Driver requirement: i915 - * Functionality: kms_core, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/intel/kms_dsc.c b/tests/intel/kms_dsc.c index 0df3613b3..3433e0907 100644 --- a/tests/intel/kms_dsc.c +++ b/tests/intel/kms_dsc.c @@ -34,6 +34,10 @@ * TEST: kms dsc * Category: Display * Description: Test to validate display stream compression + * Driver requirement: i915, xe + * Functionality: dsc + * Mega feature: VDSC + * Test category: functionality test */ #include "kms_dsc_helper.h" @@ -42,10 +46,6 @@ * SUBTEST: dsc-%s * Description: Tests Display Stream Compression functionality if supported by a * connector by forcing %arg[1] on all connectors that support it - * Driver requirement: i915, xe - * Functionality: dsc - * Mega feature: VDSC - * Test category: functionality test * * arg[1]: * diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c index d437d70f6..e2617a79a 100644 --- a/tests/intel/kms_fbcon_fbt.c +++ b/tests/intel/kms_fbcon_fbt.c @@ -29,6 +29,8 @@ * Category: Display * Description: Test the relationship between fbcon and the frontbuffer tracking * infrastructure. + * Driver requirement: i915, xe + * Test category: functionality test */ #include "igt.h" @@ -43,34 +45,26 @@ * SUBTEST: fbc * Description: Test the relationship between fbcon and the frontbuffer tracking * infrastructure with fbc enabled. - * Driver requirement: i915, xe * Functionality: fbc, fbcon, fbt * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-suspend * Description: Suspend test to validate the relationship between fbcon and the * frontbuffer tracking infrastructure with fbc enabled. - * Driver requirement: i915, xe * Functionality: fbc, fbcon, fbt, suspend * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr * Description: Test the relationship between fbcon and the frontbuffer tracking * infrastructure with psr enabled. - * Driver requirement: i915, xe * Functionality: fbcon, fbt, psr * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr-suspend * Description: Suspend test to validate the relationship between fbcon and the * frontbuffer tracking infrastructure with psr enabled. - * Driver requirement: i915, xe * Functionality: fbcon, fbt, psr, suspend * Mega feature: PSR - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test the relationship between fbcon and the frontbuffer " diff --git a/tests/intel/kms_flip_scaled_crc.c b/tests/intel/kms_flip_scaled_crc.c index 8f37299ea..7dc07bc83 100644 --- a/tests/intel/kms_flip_scaled_crc.c +++ b/tests/intel/kms_flip_scaled_crc.c @@ -26,6 +26,10 @@ * TEST: kms flip scaled crc * Category: Display * Description: Test flipping between scaled/nonscaled framebuffers + * Driver requirement: i915, xe + * Functionality: ccs, scaling, tiling, vblank + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -34,114 +38,63 @@ * SUBTEST: flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling * Description: Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling * Description: Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-linear-to-64bpp-linear-%s * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe * Functionality: scaling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-%s * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-4tile-to-64bpp-4tile-%s * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-xtile-to-64bpp-xtile-%s * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-yftile-to-32bpp-yftileccs-%s * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-yftile-to-64bpp-yftile-%s * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-yftileccs-to-64bpp-yftile-%s * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-ytile-to-32bpp-ytileccs-%s * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-%s * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-ytile-to-64bpp-ytile-%s * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-32bpp-ytileccs-to-64bpp-ytile-%s * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-%s * Description: Flip from 64bpp non scaled fb to 32bpp %arg[1] fb to stress CD * clock programming - * Driver requirement: i915, xe - * Functionality: ccs, scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -153,42 +106,27 @@ * SUBTEST: flip-64bpp-4tile-to-%dbpp-4tile-%s * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress * CD clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-64bpp-xtile-to-%dbpp-xtile-%s * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress * CD clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-64bpp-yftile-to-%dbpp-yftile-%s * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress * CD clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-64bpp-ytile-to-%dbpp-ytile-%s * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress * CD clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-64bpp-linear-to-%dbpp-linear-%s * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress * CD clock programming - * Driver requirement: i915, xe * Functionality: scaling, tiling, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 16, 32 * arg[2]: diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c index 085adc5b1..abc44bf39 100644 --- a/tests/intel/kms_frontbuffer_tracking.c +++ b/tests/intel/kms_frontbuffer_tracking.c @@ -28,6 +28,9 @@ * TEST: kms frontbuffer tracking * Category: Display * Description: Test the Kernel's frontbuffer tracking mechanism and its related features: FBC, PSR and DRRS + * Driver requirement: i915, xe + * Mega feature: General Display Features + * Test category: functionality test */ #include <sys/types.h> @@ -48,66 +51,39 @@ /** * SUBTEST: basic * Description: Do some basic operations regardless of which features are enabled - * Driver requirement: i915, xe * Functionality: fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-fbc-rte * Description: Sanity test to enable FBC on a plane. - * Driver requirement: i915, xe * Functionality: fbc - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: drrs-%dp-rte * Description: Sanity test to enable DRRS with %arg[1] panels. - * Driver requirement: i915, xe * Functionality: fbt, drrs - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-rte * Description: Sanity test to enable FBC with %arg[1] panels. - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-rte * Description: Sanity test to enable PSR with %arg[1] panels. - * Driver requirement: i915, xe * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-rte * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-rte * Description: Sanity test to enable FBC & PSR with %arg[1] panels. - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-rte * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. - * Driver requirement: i915, xe * Functionality: fbt, drrs, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-rte * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. - * Driver requirement: i915, xe * Functionality: fbc, fbt, drrs, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 */ @@ -115,52 +91,31 @@ /** * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -179,50 +134,36 @@ * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -241,50 +182,36 @@ * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -304,52 +231,31 @@ /** * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -369,52 +275,31 @@ /** * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -430,50 +315,36 @@ * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -487,52 +358,31 @@ /** * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -552,50 +402,36 @@ * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -613,52 +449,31 @@ /** * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -672,50 +487,36 @@ * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -727,52 +528,31 @@ /** * SUBTEST: drrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 */ @@ -780,52 +560,31 @@ /** * SUBTEST: drrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -844,50 +603,36 @@ * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -904,96 +649,57 @@ /** * SUBTEST: drrs-slowdraw * Description: Sleep a little bit between drawing operations with DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-slowdraw * Description: Sleep a little bit between drawing operations with PSR - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-slowdraw * Description: Sleep a little bit between drawing operations with FBC & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-slowdraw * Description: Sleep a little bit between drawing operations with FBC & PSR - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-slowdraw * Description: Sleep a little bit between drawing operations with PSR & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-slowdraw * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test */ /** * SUBTEST: drrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -1012,52 +718,31 @@ /** * SUBTEST: drrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -1074,31 +759,19 @@ /** * SUBTEST: fbc-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -1111,52 +784,31 @@ /** * SUBTEST: drrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Driver requirement: i915, xe * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Driver requirement: i915, xe * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -1169,52 +821,31 @@ /** * SUBTEST: drrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Driver requirement: i915, xe * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Driver requirement: i915, xe * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -1225,52 +856,31 @@ /** * SUBTEST: drrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 * @@ -1283,52 +893,31 @@ /** * SUBTEST: drrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -1339,101 +928,59 @@ /** * SUBTEST: drrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2 */ @@ -1441,52 +988,31 @@ /** * SUBTEST: drrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe * Functionality: drrs, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe * Functionality: fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe * Functionality: fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -1497,102 +1023,61 @@ /** * SUBTEST: drrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC - * Driver requirement: i915, xe * Functionality: fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with PSR - * Driver requirement: i915, xe * Functionality: fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr, scaling - * Mega feature: General Display Features */ /** * SUBTEST: drrs-suspend * Description: Make sure suspend/resume keeps us on the same state of DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbt, suspend - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC - * Driver requirement: i915, xe * Functionality: fbc, fbt, suspend - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-suspend * Description: Make sure suspend/resume keeps us on the same state of PSR - * Driver requirement: i915, xe * Functionality: fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, suspend - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr, suspend - * Mega feature: General Display Features - * Test category: functionality test */ /** @@ -1600,114 +1085,76 @@ * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 * Functionality: drrs, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbc-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 * Functionality: fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 * Functionality: fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 * Functionality: fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psrdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 * Functionality: drrs, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 * Functionality: drrs, fbc, fbt, kms_core, psr - * Mega feature: General Display Features - * Test category: functionality test */ /** * SUBTEST: fbc-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe * Functionality: fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr - * Mega feature: General Display Features - * Test category: functionality test */ /** * SUBTEST: fbc-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe * Functionality: fbc, fbt, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcdrrs-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsr-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe * Functionality: fbc, fbt, psr, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fbcpsrdrrs-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Driver requirement: i915, xe * Functionality: drrs, fbc, fbt, psr, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/intel/kms_legacy_colorkey.c b/tests/intel/kms_legacy_colorkey.c index 69539f558..27ec64051 100644 --- a/tests/intel/kms_legacy_colorkey.c +++ b/tests/intel/kms_legacy_colorkey.c @@ -25,6 +25,10 @@ * TEST: kms legacy colorkey * Category: Display * Description: Test to check the legacy set colorkey ioctl on sprite planes. + * Driver requirement: i915 + * Functionality: plane, xorg_xv + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -33,17 +37,9 @@ /** * SUBTEST: basic * Description: Check that the legacy set colorkey ioctl only works on sprite planes. - * Driver requirement: i915 - * Functionality: plane, xorg_xv - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-plane * Description: Check invalid plane id's, zero and outrange - * Driver requirement: i915 - * Functionality: plane, xorg_xv - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Check that the legacy set colorkey ioctl only works on sprite planes."); diff --git a/tests/intel/kms_pipe_b_c_ivb.c b/tests/intel/kms_pipe_b_c_ivb.c index c1a1e6610..73277e970 100644 --- a/tests/intel/kms_pipe_b_c_ivb.c +++ b/tests/intel/kms_pipe_b_c_ivb.c @@ -29,6 +29,10 @@ * Category: Display * Description: Exercise the FDI lane bifurcation code for IVB in the kernel by * setting different combinations of modes for pipes B and C. + * Driver requirement: i915 + * Functionality: kms_core, obsolete + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -37,43 +41,23 @@ * SUBTEST: disable-pipe-B-enable-pipe-C * Description: Tests pipe-B and pipe-C interactions in IVB by disabling pipe-B * and then setting mode on pipe-C. - * Driver requirement: i915 - * Functionality: kms_core, obsolete - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: enable-pipe-C-while-B-has-3-lanes * Description: Tests pipe-B and pipe-C interactions in IVB by enabling pipe-C * while pipe-B has 3-lanes - * Driver requirement: i915 - * Functionality: kms_core, obsolete - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: from-pipe-C-to-B-with-3-lanes * Description: Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B * with 3 lanes from pipe-C. - * Driver requirement: i915 - * Functionality: kms_core, obsolete - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: pipe-B-double-modeset-then-modeset-pipe-C * Description: Tests pipe-B and pipe-C interactions in IVB by enabling two * different modes on pipe-B and then a single mode on pipe-C. - * Driver requirement: i915 - * Functionality: kms_core, obsolete - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: pipe-B-dpms-off-modeset-pipe-C * Description: Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B * with mode that requires 3 lanes and then enabling pipe-c with * dpms off/on pipe-B. - * Driver requirement: i915 - * Functionality: kms_core, obsolete - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION( diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c index 68f4dc3d1..5b4c397bb 100644 --- a/tests/intel/kms_pm_backlight.c +++ b/tests/intel/kms_pm_backlight.c @@ -29,6 +29,10 @@ * TEST: kms pm backlight * Category: Display * Description: Basic backlight sysfs test + * Driver requirement: i915, xe + * Functionality: backlight + * Mega feature: Display Power + * Test category: functionality test */ #include "igt.h" @@ -46,38 +50,20 @@ /** * SUBTEST: bad-brightness * Description: Test the bad brightness. - * Driver requirement: i915, xe - * Functionality: backlight - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: basic-brightness * Description: Test the basic brightness. - * Driver requirement: i915, xe - * Functionality: backlight - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: fade * Description: Test basic fade. - * Driver requirement: i915, xe - * Functionality: backlight - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: fade-with-dpms * Description: Test the fade with DPMS. - * Driver requirement: i915, xe * Functionality: dpms, backlight - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: fade-with-suspend * Description: Test the fade with suspend. - * Driver requirement: i915, xe * Functionality: backlight, suspend - * Mega feature: Display Power - * Test category: functionality test */ struct context { diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c index 1c33206fc..f11d6d29a 100644 --- a/tests/intel/kms_pm_dc.c +++ b/tests/intel/kms_pm_dc.c @@ -26,6 +26,10 @@ * TEST: kms pm dc * Category: Display * Description: Tests to validate display power DC states. + * Driver requirement: i915, xe + * Functionality: dpms, pm_dc + * Mega feature: Display Power + * Test category: functionality test */ #include <errno.h> @@ -48,55 +52,30 @@ * SUBTEST: dc3co-vpb-simulation * Description: Make sure that system enters DC3CO when PSR2 is active and system * is in SLEEP state - * Driver requirement: i915, xe * Functionality: dc3co, pm_dc, psr2 - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: dc5-dpms * Description: Validate display engine entry to DC5 state while all connectors's * DPMS property set to OFF - * Driver requirement: i915, xe - * Functionality: dpms, pm_dc - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: dc5-dpms-negative * Description: Validate negative scenario of DC5 display engine entry to DC5 state * while all connectors's DPMS property set to ON - * Driver requirement: i915, xe - * Functionality: dpms, pm_dc - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: dc5-psr * Description: This test validates display engine entry to DC5 state while PSR is active - * Driver requirement: i915, xe * Functionality: pm_dc, psr - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: dc6-dpms * Description: Validate display engine entry to DC6 state while all connectors's * DPMS property set to OFF - * Driver requirement: i915, xe - * Functionality: dpms, pm_dc - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: dc6-psr * Description: This test validates display engine entry to DC6 state while PSR is active - * Driver requirement: i915, xe * Functionality: pm_dc, psr - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: dc9-dpms * Description: This test validates display engine entry to DC9 state - * Driver requirement: i915, xe - * Functionality: dpms, pm_dc - * Mega feature: Display Power - * Test category: functionality test */ /* DC State Flags */ diff --git a/tests/intel/kms_pm_lpsp.c b/tests/intel/kms_pm_lpsp.c index 4ac99faf7..30158f673 100644 --- a/tests/intel/kms_pm_lpsp.c +++ b/tests/intel/kms_pm_lpsp.c @@ -26,8 +26,11 @@ /** * TEST: kms pm lpsp - * Description: These tests validates display Low Power Single Pipe configurations * Category: Display + * Description: These tests validates display Low Power Single Pipe configurations + * Functionality: pm_lpsp + * Mega feature: Display Power + * Test category: functionality test */ #include "igt.h" @@ -43,16 +46,10 @@ * SUBTEST: kms-lpsp * Description: This test validates lpsp on all connected outputs on low power pipes * Driver requirement: i915, xe - * Functionality: pm_lpsp - * Mega feature: Display Power - * Test category: functionality test * * SUBTEST: screens-disabled * Description: This test validates lpsp while all crtc are disabled * Driver requirement: i915 - * Functionality: pm_lpsp - * Mega feature: Display Power - * Test category: functionality test */ #define MAX_SINK_LPSP_INFO_BUF_LEN 4096 diff --git a/tests/intel/kms_pm_rpm.c b/tests/intel/kms_pm_rpm.c index 14f34d904..97c886a6e 100644 --- a/tests/intel/kms_pm_rpm.c +++ b/tests/intel/kms_pm_rpm.c @@ -76,9 +76,11 @@ * * SUBTEST: fences * Description: Sanity test for drm fences. + * Driver requirement: i915 * * SUBTEST: fences-dpms * Description: Sanity test for drm fences with dpms. + * Driver requirement: i915 * Functionality: dpms, pm_rpm * * SUBTEST: i2c @@ -121,9 +123,11 @@ * * SUBTEST: pm-caching * Description: Test to change different cache levels & check for rpm + * Driver requirement: i915 * * SUBTEST: pm-tiling * Description: Test to change different tiling methods & check for rpm + * Driver requirement: i915 * Functionality: pm_rpm, tiling * * SUBTEST: system-suspend-modeset diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c index 1586d3bf0..b9e95fdfe 100644 --- a/tests/intel/kms_psr.c +++ b/tests/intel/kms_psr.c @@ -26,6 +26,9 @@ * TEST: kms psr * Category: Display * Description: Tests behaviour of PSR & PSR2 & PR + * Driver requirement: i915, xe + * Mega feature: PSR + * Test category: functionality test */ #include "igt.h" @@ -41,18 +44,13 @@ /** * SUBTEST: psr_basic * Description: Basic check for psr if it is detecting changes made in planes - * Driver requirement: i915, xe * Functionality: psr - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] * Driver requirement: i915 * Functionality: kms_core, plane, psr - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * @@ -70,18 +68,12 @@ * SUBTEST: psr_sprite_plane_move * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on sprite planes - * Driver requirement: i915, xe * Functionality: plane, psr - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Driver requirement: i915, xe * Functionality: kms_core, plane, psr - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * @@ -99,10 +91,7 @@ * SUBTEST: psr_primary_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Driver requirement: i915, xe * Functionality: kms_core, psr - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * @@ -114,63 +103,40 @@ * SUBTEST: psr_dpms * Description: Check if psr is detecting changes when rendering operation is * performed with dpms enabled or disabled - * Driver requirement: i915, xe * Functionality: dpms, psr - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr_no_drrs * Description: Check if psr is detecting changes when drrs is disabled - * Driver requirement: i915, xe * Functionality: drrs, psr - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr_suspend * Description: Check if psr is detecting changes when plane operation * is performed with suspend resume cycles - * Driver requirement: i915, xe * Functionality: psr, suspend - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr2_dpms * Description: Check if psr is detecting changes when rendering operation * is performed with dpms enabled or disabled - * Driver requirement: i915, xe * Functionality: dpms, psr, psr2 - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr2_no_drrs * Description: Check if psr is detecting changes when drrs is disabled - * Driver requirement: i915, xe * Functionality: drrs, psr, psr2 - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr2_suspend * Description: Check if psr is detecting changes when plane operation is * performed with suspend resume cycles - * Driver requirement: i915, xe * Functionality: psr, psr2, suspend - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr2_basic * Description: Basic check for psr if it is detecting changes made in planes - * Driver requirement: i915, xe * Functionality: psr, psr2 - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr2_%s_%s * Description: Check if psr2 is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes * Driver requirement: i915 * Functionality: kms_core, plane, psr, psr2 - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * @@ -188,18 +154,12 @@ * SUBTEST: psr2_primary_page_flip * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Driver requirement: i915, xe * Functionality: plane, psr, psr2 - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr2_primary_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Driver requirement: i915, xe * Functionality: kms_core, plane, psr, psr2 - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * @@ -211,10 +171,7 @@ * SUBTEST: psr2_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Driver requirement: i915, xe * Functionality: kms_core, plane, psr, psr2 - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * @@ -233,32 +190,24 @@ * SUBTEST: pr_dpms * Description: Check if pr is detecting changes when rendering operation * is performed with dpms enabled or disabled - * Driver requirement: i915, xe * Functionality: dpms, pr * Mega feature: Panel Replay - * Test category: functionality test * * SUBTEST: pr_no_drrs * Description: Check if pr is detecting changes when drrs is disabled - * Driver requirement: i915, xe * Functionality: drrs, pr * Mega feature: Panel Replay - * Test category: functionality test * * SUBTEST: pr_suspend * Description: Check if pr is detecting changes when plane operation is * performed with suspend resume cycles - * Driver requirement: i915, xe * Functionality: pr, suspend * Mega feature: Panel Replay - * Test category: functionality test * * SUBTEST: pr_basic * Description: Basic check for pr if it is detecting changes made in planes - * Driver requirement: i915, xe * Functionality: pr * Mega feature: Panel Replay - * Test category: functionality test */ /** @@ -268,7 +217,6 @@ * Driver requirement: i915 * Functionality: kms_core, plane, pr * Mega feature: Panel Replay - * Test category: functionality test * * arg[1]: * @@ -286,18 +234,14 @@ * SUBTEST: pr_primary_page_flip * Description: Check if pr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Driver requirement: i915, xe * Functionality: plane, pr * Mega feature: Panel Replay - * Test category: functionality test * * SUBTEST: pr_primary_%s * Description: Check if pr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Driver requirement: i915, xe * Functionality: kms_core, plane, pr * Mega feature: Panel Replay - * Test category: functionality test * * arg[1]: * @@ -309,10 +253,8 @@ * SUBTEST: pr_%s_%s * Description: Check if pr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Driver requirement: i915, xe * Functionality: kms_core, plane, pr * Mega feature: Panel Replay - * Test category: functionality test * * arg[1]: * @@ -331,26 +273,17 @@ * SUBTEST: psr_cursor_plane_move * Description: Check if psr is detecting the plane operations performed on * cursor planes - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: psr - * Mega feature: PSR * * SUBTEST: psr_primary_page_flip * Description: Check if psr is detecting page-flipping operations performed * on primary planes - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: psr - * Mega feature: PSR * * SUBTEST: psr_sprite_plane_onoff * Description: Check if psr is detecting the plane operations performed on * sprite planes - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: psr - * Mega feature: PSR */ enum operations { diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c index a93d496e8..27faa93d9 100644 --- a/tests/intel/kms_psr2_sf.c +++ b/tests/intel/kms_psr2_sf.c @@ -27,6 +27,10 @@ * Category: Display * Description: Tests to varify PSR2 selective fetch by sending multiple damaged * areas + * Driver requirement: i915, xe + * Functionality: plane, psr2, selective_fetch + * Mega feature: PSR + * Test category: functionality test */ #include "igt.h" @@ -42,10 +46,6 @@ * SUBTEST: %s-plane-move-continuous-%s * Description: Test that selective fetch works on moving %arg[1] plane %arg[2] * visible area (no update) - * Driver requirement: i915, xe - * Functionality: plane, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * @@ -62,53 +62,25 @@ /** * SUBTEST: cursor-plane-update-sf * Description: Test that selective fetch works on cursor plane - * Driver requirement: i915, xe - * Functionality: cursor, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: overlay-plane-update-continuous-sf * Description: Test that selective fetch works on overlay plane - * Driver requirement: i915, xe - * Functionality: plane, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: overlay-plane-update-sf-dmg-area * Description: Test that selective fetch works on overlay plane - * Driver requirement: i915, xe - * Functionality: plane, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: overlay-primary-update-sf-dmg-area * Description: Test that selective fetch works on primary plane with blended * overlay plane - * Driver requirement: i915, xe - * Functionality: plane, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: plane-move-sf-dmg-area * Description: Test that selective fetch works on moving overlay plane - * Driver requirement: i915, xe - * Functionality: plane, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: primary-plane-update-sf-dmg-area * Description: Test that selective fetch works on primary plane - * Driver requirement: i915, xe - * Functionality: plane, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: primary-plane-update-sf-dmg-area-big-fb * Description: Test that selective fetch works on primary plane with big fb - * Driver requirement: i915, xe - * Functionality: plane, psr2, selective_fetch - * Mega feature: PSR - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Tests to varify PSR2 selective fetch by sending multiple" diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c index 56f35622e..96b4fd2b4 100644 --- a/tests/intel/kms_psr2_su.c +++ b/tests/intel/kms_psr2_su.c @@ -26,6 +26,9 @@ * TEST: kms psr2 su * Category: Display * Description: Test PSR2 selective update + * Driver requirement: i915, xe + * Mega feature: PSR + * Test category: functionality test */ #include "igt.h" @@ -40,17 +43,11 @@ /** * SUBTEST: frontbuffer-XRGB8888 * Description: Test that selective update works when screen changes - * Driver requirement: i915, xe * Functionality: fbt, psr2, selective_update - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: page_flip-%s * Description: Test the selective update with %arg[1] when screen changes - * Driver requirement: i915, xe * Functionality: pixel-format, psr2, selective_update - * Mega feature: PSR - * Test category: functionality test * * arg[1]: * diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c index 21814f35b..28529b1f1 100644 --- a/tests/intel/kms_psr_stress_test.c +++ b/tests/intel/kms_psr_stress_test.c @@ -2,6 +2,10 @@ /** * TEST: kms psr stress test * Category: Display + * Driver requirement: i915, xe + * Functionality: plane, psr + * Mega feature: PSR + * Test category: functionality test */ #include "igt.h" @@ -18,18 +22,10 @@ * SUBTEST: flip-primary-invalidate-overlay * Description: Mix page flips in primary plane and frontbuffer writes to overlay * plane and check for warnings, underruns or PSR state changes - * Driver requirement: i915, xe - * Functionality: plane, psr - * Mega feature: PSR - * Test category: functionality test * * SUBTEST: invalidate-primary-flip-overlay * Description: Mix frontbuffer writes to the primary plane and page flips in the * overlay plane and check for warnings, underruns or PSR state changes - * Driver requirement: i915, xe - * Functionality: plane, psr - * Mega feature: PSR - * Test category: functionality test */ #define INVALIDATES_PER_SEC 15 diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c index 9f8bf4275..b27475ada 100644 --- a/tests/kms_addfb_basic.c +++ b/tests/kms_addfb_basic.c @@ -29,6 +29,10 @@ * TEST: kms addfb basic * Category: Display * Description: Sanity test for ioctls DRM_IOCTL_MODE_ADDFB2 & DRM_IOCTL_MODE_RMFB. + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -53,39 +57,22 @@ /** * SUBTEST: unused-%s * Description: Test that addfb2 call fails correctly for unused %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: unused-modifier * Description: Test that addfb2 call fails correctly for unused modifier - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * SUBTEST: clobberred-modifier * Description: Check if addfb2 call works for clobbered modifier * Driver requirement: i915 * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-smem-bo-on-discrete * Description: Check if addfb2 with a system memory gem object fails correctly * if device requires local memory framebuffers - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: legacy-format * Description: Check if addfb2 call works for legacy formats - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -97,24 +84,12 @@ /** * SUBTEST: no-handle * Description: Test that addfb2 call fails correctly without handle - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: basic * Description: Check if addfb2 call works with given handle - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: bad-pitch-%i * Description: bad-pitch-%arg[1]: Test that addfb2 call fails correctly for bad-pitches - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * arg[1].values: 0, 32, 63, 128, 256, 999, 1024, 65536 */ @@ -122,24 +97,16 @@ /** * SUBTEST: basic-%s-tiled-legacy * Description: Check if addfb2 and rmfb call works for basic %arg[1] test - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * SUBTEST: framebuffer-vs-set-tiling * Description: Check if addfb2 call works for x and y tiling * Driver requirement: i915 - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * SUBTEST: tile-pitch-mismatch * Description: Test that addfb2 call fails correctly for pitches mismatch - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * arg[1]: * @@ -150,99 +117,56 @@ /** * SUBTEST: size-max * Description: Check if addfb2 call works with max size of buffer object - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: too-wide * Description: Test that addfb2 call fails correctly with increased width of fb - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: too-high * Description: Test that addfb2 call fails correctly with increased height of fb - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: bo-too-small * Description: Test that addfb2 call fails correctly with small size of buffer object - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: small-bo * Description: Check if addfb2 call works for given height - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * SUBTEST: bo-too-small-due-to-tiling * Description: Test that addfb2 call fails correctly with small buffer object * after changing tile - * Driver requirement: i915 - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features */ /** * SUBTEST: addfb25-modifier-no-flag * Description: Test that addfb2 call fails correctly for x-tiling with given modifier - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * SUBTEST: addfb25-bad-modifier * Description: Test that addfb2 call fails correctly for irrelevant modifier - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * SUBTEST: addfb25-x-tiled-mismatch-legacy * Description: Test that addfb2 call fails correctly for irrelevant x-tiling - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * SUBTEST: addfb25-x-tiled-legacy * Description: Check if addfb2 call works for x-tiling - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features * * SUBTEST: addfb25-framebuffer-vs-set-tiling * Description: Check if addfb2 call works for relevant combination of tiling and fbs * Driver requirement: i915 - * Test category: functionality test * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features */ /** * SUBTEST: addfb25-y-tiled-%s * Description: Check if addfb2 call works for y-tiling %arg[1] - * Driver requirement: i915, xe * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: addfb25-yf-tiled-legacy * Description: Check if addfb2 call works for yf-tiling - * Driver requirement: i915, xe * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -253,19 +177,10 @@ /** * SUBTEST: addfb25-4-tiled * Description: Check if addfb2 call works for tiling-4 - * Driver requirement: i915, xe * Functionality: kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test - */ - -/** + * * SUBTEST: invalid-%s-%s * Description: Test that %arg[1] ioctl call fails correctly for %arg[2] object - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_gem_interop - * Mega feature: General Display Features * * arg[1]: * @@ -281,10 +196,6 @@ /** * SUBTEST: master-rmfb * Description: Check that only master can rmfb - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test */ static uint32_t gem_bo; diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c index 82a8f5ef3..6fddad093 100644 --- a/tests/kms_async_flips.c +++ b/tests/kms_async_flips.c @@ -29,6 +29,10 @@ * TEST: kms async flips * Category: Display * Description: Test asynchronous page flips. + * Driver requirement: i915, xe + * Functionality: async_flips, vblank + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -42,48 +46,26 @@ * SUBTEST: alternate-sync-async-flip * Description: Verify the async flip functionality and the fps during async flips * Alternate between sync and async flips - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: async-flip-with-page-flip-events * Description: Verify the async flip functionality and the fps during async flips * Wait for page flip events in between successive asynchronous flips - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: test-time-stamp * Description: Verify the async flip functionality and the fps during async flips * Verify that the async flip timestamp does not coincide with either * previous or next vblank - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: test-cursor * Description: Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip - * Driver requirement: i915, xe * Functionality: async_flips, cursor, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: crc * Description: Use CRC to verify async flip scans out the correct framebuffer - * Driver requirement: i915, xe * Functionality: async_flips, crc, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-async-flip * Description: Negative case to verify if changes in fb are rejected from kernel as expected - * Driver requirement: i915, xe - * Functionality: async_flips, vblank - * Mega feature: General Display Features - * Test category: functionality test */ #define CURSOR_POS 128 diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c index 9b69fc892..aa3af936a 100644 --- a/tests/kms_atomic.c +++ b/tests/kms_atomic.c @@ -31,6 +31,10 @@ * TEST: kms atomic * Category: Display * Description: Test atomic modesetting API + * Driver requirement: i915, xe + * Functionality: kms_core, plane + * Mega feature: General Display Features + * Test category: functionality test */ #include <unistd.h> @@ -53,49 +57,27 @@ * Description: Test abuse the atomic ioctl directly in order to test various * invalid conditions which the libdrm wrapper won't allow us to * create. - * Driver requirement: i915, xe * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: atomic-plane-damage * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: test-only * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches * the free-standing state objects and nothing else. - * Driver requirement: i915, xe * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-primary-overlay-mutable-zpos * Description: Verify that the overlay plane can cover the primary one (and * vice versa) by changing their zpos property. - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-immutable-zpos * Description: Verify the reported zpos property of planes by making sure only * higher zpos planes cover the lower zpos ones. - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-%s-legacy * Description: Test for KMS atomic modesetting on %arg[1] and ensure coherency * between legacy and atomic interfaces. - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -107,10 +89,6 @@ /** * SUBTEST: %s-invalid-%s * Description: Test error handling when invalid %arg[1] %arg[2] are passed - * Driver requirement: i915, xe - * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -123,8 +101,6 @@ * @params-fence: fence parameters */ - - #ifndef DRM_CAP_CURSOR_WIDTH #define DRM_CAP_CURSOR_WIDTH 0x8 #endif diff --git a/tests/kms_atomic_interruptible.c b/tests/kms_atomic_interruptible.c index 7419e0746..962c33f6f 100644 --- a/tests/kms_atomic_interruptible.c +++ b/tests/kms_atomic_interruptible.c @@ -25,6 +25,9 @@ * TEST: kms atomic interruptible * Category: Display * Description: Tests that interrupt various atomic ioctls. + * Driver requirement: i915, xe + * Mega feature: General Display Features + * Test category: functionality test */ #include <signal.h> @@ -36,10 +39,7 @@ /** * SUBTEST: %s-setmode * Description: Tests the interrupt properties of %arg[1] modeset - * Driver requirement: i915, xe * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -50,31 +50,19 @@ /** * SUBTEST: legacy-cursor * Description: Tests the interrupt properties for Cursor - * Driver requirement: i915, xe * Functionality: cursor, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: legacy-dpms * Description: Tests the interrupt properties for DPMS - * Driver requirement: i915, xe * Functionality: dpms, kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: legacy-pageflip * Description: Tests the interrupt properties for page flip - * Driver requirement: i915, xe * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: universal-setplane-%s * Description: Tests the interrupt properties for %arg[1] - * Driver requirement: i915, xe * Functionality: kms_core, plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c index b8053acf7..210986f55 100644 --- a/tests/kms_atomic_transition.c +++ b/tests/kms_atomic_transition.c @@ -24,6 +24,10 @@ /** * TEST: kms atomic transition * Category: Display + * Driver requirement: i915, xe + * Functionality: plane, watermark + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -41,17 +45,10 @@ /** * SUBTEST: plane-primary-toggle-with-vblank-wait * Description: Check toggling of primary plane with vblank - * Driver requirement: i915, xe * Functionality: plane, vblank, watermark - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-all-modeset-%s * Description: Modeset test for all plane combinations %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -62,10 +59,7 @@ /** * SUBTEST: plane-all-modeset-%s * Description: Modeset test for all plane combinations %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark * Mega feature: eDP - * Test category: functionality test * * arg[1]: * @@ -76,10 +70,6 @@ /** * SUBTEST: plane-all-%s * Description: Transition test for all plane combinations %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -92,18 +82,10 @@ /** * SUBTEST: plane-toggle-modeset-transition * Description: Check toggling and modeset transition on plane - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-use-after-nonblocking-%s * Description: Transition test with non %arg[1] and make sure commit of disabled * plane has to complete before atomic commit on that plane - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -114,10 +96,6 @@ /** * SUBTEST: modeset-%s * Description: Modeset transition tests for combinations of %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, watermark - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_bw.c b/tests/kms_bw.c index 0199b5675..ddea7f2ff 100644 --- a/tests/kms_bw.c +++ b/tests/kms_bw.c @@ -24,6 +24,10 @@ * TEST: kms bw * Category: Display * Description: BW test with different resolutions + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include "drm_mode.h" @@ -35,10 +39,6 @@ /** * SUBTEST: linear-tiling-%d-displays-%s * Description: bw test with %arg[2] - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1].values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 * diff --git a/tests/kms_color.c b/tests/kms_color.c index 119dfc1f4..39752de81 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -26,6 +26,10 @@ * TEST: kms color * Category: Display * Description: Test Color Features at Pipe level + * Driver requirement: i915, xe + * Functionality: colorspace + * Mega feature: Color mgmt + * Test category: functionality test */ #include "kms_color_helper.h" @@ -33,39 +37,19 @@ /** * SUBTEST: degamma * Description: Verify that degamma LUT transformation works correctly - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * SUBTEST: gamma * Description: Verify that gamma LUT transformation works correctly - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * SUBTEST: legacy-gamma * Description: Verify that legacy gamma LUT transformation works correctly - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * SUBTEST: legacy-gamma-reset * Description: Verify that setting the legacy gamma LUT resets the gamma LUT * set through GAMMA_LUT property - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * SUBTEST: ctm-%s * Description: Check the color transformation %arg[1] - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * arg[1]: * @@ -83,17 +67,9 @@ /** * SUBTEST: deep-color * Description: Verify that deep color works correctly - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * SUBTEST: invalid-%s-sizes * Description: Negative check for %arg[1] sizes - * Driver requirement: i915, xe - * Functionality: colorspace - * Mega feature: Color mgmt - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c index 988f370f9..6d472ee02 100644 --- a/tests/kms_content_protection.c +++ b/tests/kms_content_protection.c @@ -26,6 +26,10 @@ * TEST: kms content protection * Category: Display * Description: Test content protection (HDCP) + * Driver requirement: i915, xe + * Functionality: hdcp1.4 + * Mega feature: HDCP + * Test category: functionality test */ #include <poll.h> @@ -41,49 +45,27 @@ /** * SUBTEST: lic * Description: Test for the integrity of link. - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test * * SUBTEST: content-type-change * Description: Test the content type change when the content protection already * enabled - * Driver requirement: i915, xe * Functionality: hdcp1.4, hdcp2.2 - * Mega feature: HDCP - * Test category: functionality test * * SUBTEST: mei-interface * Description: Test the teardown and rebuild of the interface between Intel * and mei hdcp. - * Driver requirement: i915, xe * Functionality: hdcp1.4, hdcp2.2 - * Mega feature: HDCP - * Test category: functionality test * * SUBTEST: srm * Description: This test writes the facsimile SRM into the /lib/firmware/ and * check the kernel parsing of it by invoking the hdcp authentication. - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test * * SUBTEST: uevent * Description: Test to detect the HDCP status change when we are reading the * uevent sent with the corresponding connector id and property id. - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test * * SUBTEST: %s * Description: Test content protection with %arg[1] - * Driver requirement: i915, xe - * Functionality: hdcp1.4 - * Mega feature: HDCP - * Test category: functionality test * * arg[1]: * @@ -96,10 +78,7 @@ /** * SUBTEST: dp-mst-%s * Description: Test Content protection %arg[1] over DP MST. - * Driver requirement: i915, xe * Functionality: hdcp1.4, mst - * Mega feature: HDCP - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c index 3d1c3bcd3..f747b919f 100644 --- a/tests/kms_cursor_crc.c +++ b/tests/kms_cursor_crc.c @@ -33,6 +33,10 @@ * compares it with the CRC value obtained when the cursor plane * was disabled and its drawing is directly inserted on the PF by * software. + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -45,24 +49,14 @@ /** * SUBTEST: cursor-dpms * Description: Check random placement of a cursor with DPMS. - * Driver requirement: i915, xe * Functionality: cursor, dpms - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: cursor-suspend * Description: Check random placement of a cursor with suspend. - * Driver requirement: i915, xe * Functionality: cursor, suspend - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: cursor-%s * Description: %arg[1] - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -78,10 +72,6 @@ /** * SUBTEST: cursor-%s-%s * Description: Check if a %arg[2] cursor is %arg[1]. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_cursor_edge_walk.c b/tests/kms_cursor_edge_walk.c index d9d140409..54e9dc92f 100644 --- a/tests/kms_cursor_edge_walk.c +++ b/tests/kms_cursor_edge_walk.c @@ -25,8 +25,11 @@ /** * TEST: kms cursor edge walk * Category: Display - * Description: Exercise CHV pipe C cursor fail * Description: Test to check different cursor sizes by walking different edges of screen + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -39,10 +42,6 @@ /** * SUBTEST: %s-%s * Description: Checking cursor size %arg[1] by walking %arg[2] of screen - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c index 2e2710ae4..0017659d4 100644 --- a/tests/kms_cursor_legacy.c +++ b/tests/kms_cursor_legacy.c @@ -26,6 +26,10 @@ * TEST: kms cursor legacy * Category: Display * Description: Stress legacy cursor ioctl + * Driver requirement: i915, xe + * Functionality: cursor + * Mega feature: General Display Features + * Test category: functionality test */ #include <sched.h> @@ -42,10 +46,6 @@ * Description: Test checks how many cursor updates we can fit between vblanks * on single/all pipes with different modes, priority and number * of processes - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -62,17 +62,9 @@ /** * SUBTEST: basic-busy-flip-before-cursor-%s * Description: Cursor test with %arg[1] mode - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: cursor - * Mega feature: General Display Features * * SUBTEST: basic-busy-flip-before-cursor-varying-size * Description: Change the size of cursor b/w 64*64 to maxw x maxh. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -83,17 +75,9 @@ /** * SUBTEST: basic-flip-after-cursor-%s * Description: Cursor test with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: cursor - * Mega feature: General Display Features * * SUBTEST: basic-flip-before-cursor-%s * Description: Cursor test with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: cursor - * Mega feature: General Display Features * * arg[1]: * @@ -110,10 +94,6 @@ * and full screen primary plane.\n" * - toggle: which toggles cursor visibility and make sure cursor moves * between updates. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -135,10 +115,6 @@ * and full screen primary plane.\n" * - toggle: which toggles cursor visibility and make sure cursor moves * between updates. - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -151,26 +127,14 @@ * SUBTEST: long-nonblocking-modeset-vs-cursor-atomic * Description: Test checks how many cursor updates we can fit between vblanks * on all pipes with different modes, priority and number of processes - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: nonblocking-modeset-vs-cursor-atomic * Description: Test checks how many cursor updates we can fit between vblanks * on all pipes with different modes, priority and number of processes - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s-%s * Description: This test executes flips on both CRTCs while running cursor * updates in parallel - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -189,10 +153,6 @@ * SUBTEST: 2x-%s-atomic * Description: This test executes flips on both CRTCs while running cursor * updates in parallel - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -204,10 +164,6 @@ * SUBTEST: %s-%s * Description: The essence of the basic test is that neither the cursor nor the * nonblocking flip stall the application of the next - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -231,10 +187,6 @@ /** * SUBTEST: 2x-%s-%s * Description: This test executes flips on both CRTCs while running cursor updates in parallel - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -252,17 +204,9 @@ /** * SUBTEST: flip-vs-cursor-crc-%s * Description: this test perform a page flip followed by a cursor update - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: flip-vs-cursor-busy-crc-%s * Description: this test perform a busy bo update followed by a cursor update - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -274,10 +218,6 @@ * SUBTEST: modeset-atomic-cursor-hotspot * Description: Test changes the cursor hotspot and checks that the property is * updated accordignly - * Driver requirement: i915, xe - * Functionality: cursor - * Mega feature: General Display Features - * Test category: functionality test */ #if defined(__x86_64__) || defined(__i386__) diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c index a0a831724..1f0f811c8 100644 --- a/tests/kms_display_modes.c +++ b/tests/kms_display_modes.c @@ -28,6 +28,9 @@ * TEST: kms display modes * Category: Display * Description: Test Display Modes + * Driver requirement: i915, xe + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -36,18 +39,12 @@ * SUBTEST: extended-mode-basic * Description: Test for validating display extended mode with a pair of connected * displays - * Driver requirement: i915, xe * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: mst-extended-mode-negative * Description: Negative test for validating display extended mode with a pair * of connected 2k-4k or 4k-4k displays. - * Driver requirement: i915, xe * Functionality: kms_core, mst - * Mega feature: General Display Features - * Test category: functionality test */ #define HDISPLAY_4K 3840 diff --git a/tests/kms_dither.c b/tests/kms_dither.c index 5683fe5c5..af7b7f05c 100644 --- a/tests/kms_dither.c +++ b/tests/kms_dither.c @@ -29,6 +29,10 @@ * TEST: kms dither * Category: Display * Description: Test Dithering block status + * Driver requirement: i915, xe + * Functionality: colorspace, kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -39,17 +43,9 @@ /** * SUBTEST: fb-8bpc-vs-panel-6bpc * Description: Framebuffer BPC:8, Panel BPC:6, Expected Dither:Enable - * Driver requirement: i915, xe - * Functionality: colorspace, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: fb-8bpc-vs-panel-8bpc * Description: Framebuffer BPC:8, Panel BPC:8, Expected Dither:Disable - * Driver requirement: i915, xe - * Functionality: colorspace, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test Dithering block status"); diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c index 7aec4e78c..24c71ed22 100644 --- a/tests/kms_feature_discovery.c +++ b/tests/kms_feature_discovery.c @@ -28,6 +28,10 @@ * Description: A metatest that checks for \"features\" presence. * The subtests here should only skip or pass, * anything else means we have a serious problem. + * Driver requirement: i915, xe + * Functionality: feature_discovery + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -42,45 +46,28 @@ /** * SUBTEST: display * Description: Make sure that we have display support. - * Driver requirement: i915, xe - * Functionality: feature_discovery - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: display-%dx * Description: Make sure that we have display support with %arg[1] * outputs connected. - * Driver requirement: i915, xe - * Functionality: feature_discovery - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: chamelium * Description: Make sure that Chamelium is configured and reachable. - * Driver requirement: i915, xe * Functionality: feature_discovery, chamelium - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: psr1 * Description: Make sure that we have eDP panel with PSR1 support. - * Driver requirement: i915, xe * Functionality: feature_discovery, psr1, eDP * Mega feature: PSR - * Test category: functionality test * * SUBTEST: psr2 * Description: Make sure that we have eDP panel with PSR2 support. - * Driver requirement: i915, xe * Functionality: feature_discovery, psr2, eDP * Mega feature: PSR - * Test category: functionality test * * SUBTEST: dp-mst * Description: Make sure that we have DP-MST configuration. - * Driver requirement: i915, xe * Functionality: feature_discovery, mst - * Mega feature: General Display Features * Test category: functionality test * * arg[1].values: 1, 2, 3, 4 diff --git a/tests/kms_flip.c b/tests/kms_flip.c index 9afb78757..3973ec862 100755 --- a/tests/kms_flip.c +++ b/tests/kms_flip.c @@ -25,6 +25,10 @@ * TEST: kms flip * Category: Display * Description: Tests for validating modeset, dpms and pageflips + * Driver requirement: i915, xe + * Functionality: vblank + * Mega feature: General Display Features + * Test category: functionality test */ #include "config.h" @@ -59,16 +63,12 @@ * Description: %arg[1] test to validate pageflips with available fences * Driver requirement: i915 * Functionality: gtt, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s * Description: %arg[1] test to validate pageflips along with available fences * on a pair of connected displays * Driver requirement: i915 * Functionality: gtt, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -79,10 +79,7 @@ /** * SUBTEST: dpms-off-%s * Description: %arg[1] test to validate pageflips by disabling other connectors usng dpms - * Driver requirement: i915, xe * Functionality: dpms, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -93,10 +90,7 @@ /** * SUBTEST: %s * Description: %arg[1] test to validate pageflips with large BO in size - * Driver requirement: i915, xe * Functionality: kms_gem_interop, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -107,17 +101,11 @@ /** * SUBTEST: %s * Description: Basic test to validate %arg[1] - * Driver requirement: i915, xe * Functionality: hang, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s * Description: Test to validate %arg[1] on a pair of connected displays - * Driver requirement: i915, xe * Functionality: hang, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -128,17 +116,9 @@ /** * SUBTEST: %s * Description: Basic test to validate %arg[1] - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s * Description: Test to validate %arg[1] on a pair of connected displays - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -161,18 +141,12 @@ /** * SUBTEST: %s * Description: %arg[1] test to validate pageflips with suspend cycle - * Driver requirement: i915, xe * Functionality: suspend, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s * Description: %arg[1] test to validate pageflips with suspend cycle on a pair * of connected displays - * Driver requirement: i915, xe * Functionality: suspend, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -183,31 +157,17 @@ /** * SUBTEST: %s * Description: Basic test to validate %arg[1] - * Driver requirement: i915, xe * Functionality: dpms, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s * Description: Basic test to validate %arg[1] on a pair of connected displays - * Driver requirement: i915, xe * Functionality: dpms, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: %s-interruptible * Description: Basic test to validate %arg[1] - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s-interruptible * Description: Basic test to validate %arg[1] on a pair of connected displays - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -222,17 +182,10 @@ * SUBTEST: 2x-flip-vs-dpms * Description: Basic test to validate pageflip along with dpms on a pair of * connected displays - * Driver requirement: i915, xe * Functionality: dpms, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s * Description: Basic test to validate %arg[1] on a pair of connected displays - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -244,18 +197,10 @@ /** * SUBTEST: %s-interruptible * Description: Basic test for validating modeset, dpms and pageflips - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-%s-interruptible * Description: Test for validating modeset, dpms and pageflips with a pair of * connected displays - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -277,31 +222,16 @@ /** * SUBTEST: basic-plain-flip * Description: Basic test for validating page flip - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: vblank - * Mega feature: General Display Features * * SUBTEST: nonblocking-read * Description: Tests that nonblocking reading fails correctly - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: basic-flip-vs-dpms * Description: Basic test to valide pageflip with dpms - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: dpms, vblank - * Mega feature: General Display Features * * SUBTEST: basic-flip-vs-%s * Description: Basic test to valide pageflip with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: vblank - * Mega feature: General Display Features * * arg[1]: * diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c index 55e6a7767..392a02f7e 100644 --- a/tests/kms_force_connector_basic.c +++ b/tests/kms_force_connector_basic.c @@ -26,6 +26,10 @@ * TEST: kms force connector basic * Category: Display * Description: Check the debugfs force connector/edid features work correctly. + * Driver requirement: i915, xe + * Functionality: force_connector + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -35,29 +39,15 @@ * Description: Test to detect forced load. * Driver requirement: i915 * Functionality: force_connector, vga - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: force-connector-state * Description: Test to check the forced connector state - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: force_connector - * Mega feature: General Display Features * * SUBTEST: force-edid * Description: Test to check the values after forcing edid - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: force_connector - * Mega feature: General Display Features * * SUBTEST: prune-stale-modes * Description: Tests pruning of stale modes - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: force_connector - * Mega feature: General Display Features */ IGT_TEST_DESCRIPTION("Check the debugfs force connector/edid features work" diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c index b4a155e2d..e6b8dd873 100644 --- a/tests/kms_getfb.c +++ b/tests/kms_getfb.c @@ -31,6 +31,10 @@ * TEST: kms getfb * Category: Display * Description: Tests GETFB and GETFB2 ioctls. + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -54,10 +58,6 @@ /** * SUBTEST: getfb-handle-%s * Description: Tests error handling %arg[1] - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -71,18 +71,11 @@ * SUBTEST: getfb-reject-ccs * Description: Tests error handling while requesting CCS buffers it should * refuse because getfb supports returning a single buffer handle. - * Driver requirement: i915, xe * Functionality: ccs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: getfb-%s-different-handles * Description: Tests error handling while requesting for two different handles * from %arg[1]. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -93,24 +86,13 @@ /** * SUBTEST: getfb2-accept-ccs * Description: Tests outputs are correct when retrieving a CCS framebuffer. - * Driver requirement: i915, xe * Functionality: ccs, kms_gem_interop, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: getfb2-into-addfb2 * Description: Output check by passing the output of GETFB2 into ADDFB2. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: getfb2-handle-%s * Description: Tests error handling %arg[1]. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -122,10 +104,6 @@ /** * SUBTEST: %s-handle-protection * Description: Make sure %arg[1] return handles if caller is non-root or non-master. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c index 3a279e2c9..9691f2818 100644 --- a/tests/kms_hdmi_inject.c +++ b/tests/kms_hdmi_inject.c @@ -28,6 +28,9 @@ * Description: Test that in-kernel EDID parsing is producing expected results * by forcing a HDMI connector with a known EDID and checking that * the metadata exposed to user space matches. + * Driver requirement: i915, xe + * Mega feature: HDMI + * Test category: functionality test */ #include "config.h" @@ -43,18 +46,12 @@ * SUBTEST: inject-4k * Description: Make sure that 4K modes exposed by DRM match the forced EDID and * modesetting using it succeed. - * Driver requirement: i915, xe * Functionality: force_connector, hdmi_edid - * Mega feature: HDMI - * Test category: functionality test * * SUBTEST: inject-audio * Description: Make sure that audio information exposed by ALSA match the forced * EDID. - * Driver requirement: i915, xe * Functionality: audio, force_connector - * Mega feature: HDMI - * Test category: functionality test */ #define HDISPLAY_4K 3840 diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c index 215f81892..4dd2eda37 100644 --- a/tests/kms_hdr.c +++ b/tests/kms_hdr.c @@ -24,6 +24,10 @@ * TEST: kms hdr * Category: Display * Description: Test HDR metadata interfaces and bpc switch + * Driver requirement: i915, xe + * Functionality: colorspace, hdr + * Mega feature: HDR + * Test category: functionality test */ #include "igt.h" @@ -35,59 +39,31 @@ /** * SUBTEST: bpc-switch * Description: Tests switching between different display output bpc modes - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test * * SUBTEST: bpc-switch-dpms * Description: Tests switching between different display output bpc modes with dpms - * Driver requirement: i915, xe * Functionality: colorspace, dpms, hdr - * Mega feature: HDR - * Test category: functionality test * * SUBTEST: bpc-switch-suspend * Description: Tests switching between different display output bpc modes with suspend - * Driver requirement: i915, xe * Functionality: colorspace, hdr, suspend - * Mega feature: HDR - * Test category: functionality test * * SUBTEST: invalid-hdr * Description: Test to ensure HDR is not enabled on non-HDR panel - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test * * SUBTEST: invalid-metadata-sizes * Description: Tests invalid HDR metadata sizes - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test * * SUBTEST: static-toggle-dpms * Description: Tests static toggle with dpms - * Driver requirement: i915, xe * Functionality: colorspace, dpms, hdr - * Mega feature: HDR - * Test category: functionality test * * SUBTEST: static-toggle-suspend * Description: Tests static toggle with suspend - * Driver requirement: i915, xe * Functionality: colorspace, hdr, suspend - * Mega feature: HDR - * Test category: functionality test * * SUBTEST: static-%s * Description: Tests %arg[1]. - * Driver requirement: i915, xe - * Functionality: colorspace, hdr - * Mega feature: HDR - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c index 77cf4d609..4fd644594 100644 --- a/tests/kms_invalid_mode.c +++ b/tests/kms_invalid_mode.c @@ -27,6 +27,10 @@ * Category: Display * Description: Make sure all modesets are rejected when the requested mode is * invalid + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -37,10 +41,6 @@ * SUBTEST: %s * Description: Make sure all modesets are rejected when the requested mode * (%arg[1]) is invalid - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_lease.c b/tests/kms_lease.c index 5c5a23fed..8ac58af38 100644 --- a/tests/kms_lease.c +++ b/tests/kms_lease.c @@ -25,6 +25,10 @@ * TEST: kms lease * Category: Display * Description: Test of CreateLease. + * Driver requirement: i915, xe + * Functionality: lease + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -48,155 +52,71 @@ /** * SUBTEST: atomic-implicit-crtc * Description: Negative test by using a different crtc with atomic ioctl - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: cursor-implicit-plane * Description: Negative test by using a non-primary plane with setcursor ioctl - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: empty-lease * Description: Check that creating an empty lease works - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: implicit-plane-lease * Description: Tests the implicitly added planes. - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-create-leases * Description: Tests error handling while creating invalid corner-cases for * create-lease ioctl - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-uevent * Description: Tests all the uevent cases - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-again * Description: Tests leasing objects more than once - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-get * Description: Tests getting the required contents of a lease - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-invalid-connector * Description: Tests leasing an invalid connector - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-invalid-crtc * Description: Tests leasing an invalid crtc - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-invalid-plane * Description: Tests leasing an invalid plane - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-revoke * Description: Tests revocation of lease - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-unleased-connector * Description: Negative test by trying to use an unleased connector - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lease-unleased-crtc * Description: Negative test by trying to use an unleased crtc - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: lessee-list * Description: Check if listed lease is same as created one - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: master-vs-lease * Description: Tests the drop/set_master interactions. - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: multimaster-lease * Description: Tests that the 2nd master can only create leases while being * active master, and that leases on the first master don't prevent * lease creation for the 2nd master. - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: page-flip-implicit-plane * Description: Negative test by using a non-primary plane with the page flip ioctl - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: possible-crtcs-filtering * Description: Tests that possible_crtcs logically match between master and * lease, and that the values are correctly renumbered on the lease * side. - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: setcrtc-implicit-plane * Description: Negative test by using a non-primary plane with the setcrtc ioctl - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: simple-lease * Description: Check if create lease ioctl call works - * Driver requirement: i915, xe - * Functionality: lease - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test of CreateLease."); diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c index af0c756ed..4b5d9d5ab 100644 --- a/tests/kms_panel_fitting.c +++ b/tests/kms_panel_fitting.c @@ -26,6 +26,10 @@ * TEST: kms panel fitting * Category: Display * Description: Test display panel fitting + * Driver requirement: i915, xe + * Functionality: eDP, panel_fitting, scaling + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -36,17 +40,9 @@ /** * SUBTEST: atomic-fastset * Description: Tests panel fitting usages with atomic fastset. - * Driver requirement: i915, xe - * Functionality: eDP, panel_fitting, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: legacy * Description: Tests panel fitting usages with legacy style commit. - * Driver requirement: i915, xe - * Functionality: eDP, panel_fitting, scaling - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test display panel fitting"); diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c index 4fed582b4..3c12d8098 100644 --- a/tests/kms_pipe_crc_basic.c +++ b/tests/kms_pipe_crc_basic.c @@ -26,6 +26,10 @@ * TEST: kms pipe crc basic * Category: Display * Description: Tests behaviour of CRC + * Driver requirement: i915, xe + * Functionality: crc + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -39,61 +43,32 @@ /** * SUBTEST: bad-source * Description: Tests error handling when the bad source is set. - * Driver requirement: i915, xe - * Functionality: crc - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: read-crc * Description: Test for pipe CRC reads - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features * * SUBTEST: read-crc-frame-sequence * Description: Tests the pipe CRC read and ensure frame sequence - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features * * SUBTEST: nonblocking-crc * Description: Test for O_NONBLOCK CRC reads - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features * * SUBTEST: nonblocking-crc-frame-sequence * Description: Test for O_NONBLOCK CRC reads and ensure frame sequence - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: crc - * Mega feature: General Display Features * * SUBTEST: suspend-read-crc * Description: Suspend test for pipe CRC reads - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: crc, suspend - * Mega feature: General Display Features * * SUBTEST: hang-read-crc * Description: Hang test for pipe CRC read - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: crc, hang - * Mega feature: General Display Features */ /** * SUBTEST: compare-crc-sanitycheck-%s * Description: Basic sanity check for CRC mismatches with %arg[1] - * Driver requirement: i915, xe - * Test category: functionality test * Functionality: crc, pixel_format - * Mega feature: General Display Features * * arg[1]: * @@ -105,10 +80,6 @@ * SUBTEST: disable-crc-after-crtc * Description: Check that disabling CRCs on a CRTC after having disabled the * CRTC does not cause issues. - * Driver requirement: i915, xe - * Functionality: crc - * Mega feature: General Display Features - * Test category: functionality test */ static bool extended; diff --git a/tests/kms_plane.c b/tests/kms_plane.c index 29cf45974..e50a94578 100644 --- a/tests/kms_plane.c +++ b/tests/kms_plane.c @@ -28,6 +28,9 @@ * TEST: kms plane * Category: Display * Description: Testes for KMS Plane + * Driver requirement: i915, xe + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -41,25 +44,16 @@ /** * SUBTEST: planar-pixel-format-settings * Description: verify planar settings for pixel format are handled correctly - * Driver requirement: i915, xe * Functionality: pixel_format, plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-position-%s * Description: Verify plane position using two planes to create a %arg[1] - * Driver requirement: i915, xe * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-position-hole-dpms * Description: Verify plane position using two planes to create a partially * covered screen and check for DPMS - * Driver requirement: i915, xe * Functionality: dpms, plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -70,18 +64,12 @@ /** * SUBTEST: plane-panning-%s * Description: Verify plane panning at %arg[1] using primary plane - * Driver requirement: i915, xe * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-panning-bottom-right-suspend * Description: Verify plane panning at bottom-right position with suspend using * primary plane - * Driver requirement: i915, xe * Functionality: plane, suspend - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -92,10 +80,7 @@ /** * SUBTEST: pixel-%s * Description: verify the pixel formats for given plane and pipe - * Driver requirement: i915, xe * Functionality: pixel_format, plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c index d37407150..eaec37661 100644 --- a/tests/kms_plane_alpha_blend.c +++ b/tests/kms_plane_alpha_blend.c @@ -28,6 +28,10 @@ * TEST: kms plane alpha blend * Category: Display * Description: Test plane alpha and blending mode properties + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -35,10 +39,6 @@ /** * SUBTEST: alpha-%s * Description: Test to %arg[1] - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -52,25 +52,13 @@ /** * SUBTEST: coverage-vs-premult-vs-constant * Description: Tests pipe coverage blending properties. - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: coverage-7efc * Description: Uses alpha values 0x7e and 0xfc to validate fg.alpha and * plane_alpha are swappable on coverage blend mode. - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: constant-alpha-%s * Description: Tests plane alpha and blending properties with %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c index 55ddffe44..dd33d8129 100644 --- a/tests/kms_plane_cursor.c +++ b/tests/kms_plane_cursor.c @@ -24,6 +24,10 @@ * TEST: kms plane cursor * Category: Display * Description: Tests cursor interactions with primary and overlay planes. + * Driver requirement: i915, xe + * Functionality: cursor, plane + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -31,25 +35,13 @@ /** * SUBTEST: overlay * Description: Tests atomic cursor positioning on primary plane and overlay plane - * Driver requirement: i915, xe - * Functionality: cursor, plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: primary * Description: Tests atomic cursor positioning on primary plane - * Driver requirement: i915, xe - * Functionality: cursor, plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: viewport * Description: Tests atomic cursor positioning on primary plane and overlay plane * with buffer larger than viewport used for display - * Driver requirement: i915, xe - * Functionality: cursor, plane - * Mega feature: General Display Features - * Test category: functionality test */ /* diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c index 13158bf99..ef85e8fb9 100644 --- a/tests/kms_plane_lowres.c +++ b/tests/kms_plane_lowres.c @@ -27,6 +27,10 @@ * Category: Display * Description: Test atomic mode setting with a plane by switching between high * and low resolutions + * Driver requirement: i915, xe + * Functionality: plane, tiling + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -41,18 +45,11 @@ * SUBTEST: tiling-none * Description: Tests the visibility of the planes when switching between high * and low resolution with Linear buffer (no tiling) - * Driver requirement: i915, xe * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: tiling-%s * Description: Tests the visibility of the planes when switching between high * and low resolution with %arg[1] - * Driver requirement: i915, xe - * Functionality: plane, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c index 6239e225a..6bffb1f68 100644 --- a/tests/kms_plane_multiple.c +++ b/tests/kms_plane_multiple.c @@ -26,6 +26,10 @@ * TEST: kms plane multiple * Category: Display * Description: Test atomic mode setting with multiple planes. + * Driver requirement: i915, xe + * Functionality: plane, tiling + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -41,19 +45,12 @@ * Description: Check that the kernel handles atomic updates of multiple planes * correctly by changing their geometry and making sure the changes * are reflected immediately after each commit. - * Driver requirement: i915, xe * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: tiling-%s * Description: Check that the kernel handles atomic updates of multiple planes * correctly by changing their geometry and making sure the changes * are reflected immediately after each commit. - * Driver requirement: i915, xe - * Functionality: plane, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c index e175c75d8..acb4a1da1 100644 --- a/tests/kms_plane_scaling.c +++ b/tests/kms_plane_scaling.c @@ -26,6 +26,10 @@ * TEST: kms plane scaling * Category: Display * Description: Test display plane scaling + * Driver requirement: i915, xe + * Functionality: plane, scaling + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -35,24 +39,12 @@ /** * SUBTEST: plane-scaler-unity-scaling-with-modifiers * Description: Tests scaling with modifiers, unity scaling. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-scaler-with-clipping-clamping-modifiers * Description: Tests scaling with clipping and clamping, modifiers. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-upscale-%s-with-modifiers * Description: Tests upscaling with modifiers %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -63,10 +55,6 @@ /** * SUBTEST: plane-downscale-factor-%s-with-modifiers * Description: Tests downscaling with modifiers for %arg[1] scaling factor. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -78,24 +66,12 @@ /** * SUBTEST: plane-scaler-unity-scaling-with-rotation * Description: Tests scaling with rotation, unity scaling. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-scaler-with-clipping-clamping-rotation * Description: Tests scaling with clipping and clamping, rotation. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-upscale-%s-with-rotation * Description: Tests upscaling with rotation %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -106,10 +82,6 @@ /** * SUBTEST: plane-downscale-factor-%s-with-rotation * Description: Tests downscaling with rotation for %arg[1] scaling factor. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -121,24 +93,15 @@ /** * SUBTEST: plane-scaler-unity-scaling-with-pixel-format * Description: Tests scaling with pixel formats, unity scaling. - * Driver requirement: i915, xe * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-scaler-with-clipping-clamping-pixel-formats * Description: Tests scaling with clipping and clamping, pixel formats. - * Driver requirement: i915, xe * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: plane-upscale-%s-with-pixel-format * Description: Tests upscaling with pixel formats %arg[1]. - * Driver requirement: i915, xe * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -149,10 +112,7 @@ /** * SUBTEST: plane-downscale-factor-%s-with-pixel-format * Description: Tests downscaling with pixel formats for %arg[1] scaling factor. - * Driver requirement: i915, xe * Functionality: pixel_formats, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -164,10 +124,6 @@ /** * SUBTEST: planes-downscale-factor-%s * Description: Tests downscaling of 2 planes for %arg[1] scaling factor. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -180,10 +136,6 @@ * SUBTEST: planes-downscale-factor-%s-%s * Description: Tests downscaling (scaling factor %arg[1]) and upscaling (%arg[2]) * of 2 planes. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -201,17 +153,9 @@ /** * SUBTEST: planes-scaler-unity-scaling * Description: Tests scaling of 2 planes, unity scaling. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: planes-upscale-%s * Description: Tests upscaling of 2 planes %arg[1]. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -223,10 +167,6 @@ * SUBTEST: planes-%s-downscale-factor-%s * Description: Tests scaling (%arg[1]) and downscaling (scaling factor %arg[2]) * of 2 planes. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -244,31 +184,15 @@ /** * SUBTEST: invalid-num-scalers * Description: Negative test for number of scalers per pipe. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: 2x-scaler-multi-pipe * Description: Tests scaling with multi-pipe. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-parameters * Description: Test parameters which should not be accepted - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: intel-max-src-size * Description: Test for validating max source size. - * Driver requirement: i915, xe - * Functionality: plane, scaling - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test display plane scaling"); diff --git a/tests/kms_prime.c b/tests/kms_prime.c index 1e985fdc4..135c75168 100644 --- a/tests/kms_prime.c +++ b/tests/kms_prime.c @@ -25,6 +25,10 @@ * TEST: kms prime * Category: Display * Description: Prime tests, focusing on KMS side + * Driver requirement: i915, xe + * Functionality: hybrid, kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -40,25 +44,14 @@ /** * SUBTEST: D3hot * Description: Validate pci state of dGPU when dGPU is idle and scanout is on iGPU - * Driver requirement: i915, xe - * Functionality: hybrid, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: basic-modeset-hybrid * Description: Basic modeset on the one device when the other device is active - * Driver requirement: i915, xe - * Functionality: hybrid, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: basic-crc-%s * Description: Make a dumb color buffer, export to another device and compare * the CRCs with a buffer native to that device - * Driver requirement: i915, xe * Functionality: crc, hybrid, kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_prop_blob.c b/tests/kms_prop_blob.c index 199c673e3..7e7924618 100644 --- a/tests/kms_prop_blob.c +++ b/tests/kms_prop_blob.c @@ -29,6 +29,10 @@ * TEST: kms prop blob * Category: Display * Description: Tests behaviour of mass-data 'blob' properties. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -40,17 +44,9 @@ /** * SUBTEST: blob-multiple * Description: Test validates destroying multiple properties explicitly works as needed. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: blob-prop-%s * Description: Tests validates the %arg[1] of the properties created. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -62,17 +58,9 @@ /** * SUBTEST: basic * Description: Test to ensure property support exists - * Driver requirement: i915, xe - * Test category: functionality test - * Functionality: kms_core - * Mega feature: General Display Features * * SUBTEST: invalid-%s-%s * Description: Tests error handling when invalid properties are %ar[1] with %arg[2]. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_properties.c b/tests/kms_properties.c index 33c4156bf..bd414f534 100644 --- a/tests/kms_properties.c +++ b/tests/kms_properties.c @@ -25,6 +25,10 @@ * TEST: kms properties * Category: Display * Description: Test to validate the properties of all planes, crtc and connectors + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -38,10 +42,6 @@ /** * SUBTEST: %s-properties-%s * Description: Tests %arg[1] properties with %arg[2] commit - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -60,10 +60,6 @@ * SUBTEST: get_properties-sanity-%s * Description: Test validates the properties of all planes, crtc and connectors * with %arg[1] commit - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c index c102c9583..39e8bbd55 100644 --- a/tests/kms_rmfb.c +++ b/tests/kms_rmfb.c @@ -26,6 +26,10 @@ * Category: Display * Description: This tests rmfb and close-fd behavior. In these casesthe * framebuffers should be removed from the crtc. + * Driver requirement: i915, xe + * Functionality: kms_gem_interop + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -40,18 +44,10 @@ * SUBTEST: close-fd * Description: RMFB is supposed to free the framebuffers from any and all planes * so test this and make sure it works with fd close and reopen. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: rmfb-ioctl * Description: RMFB is supposed to free the framebuffers from any and all planes * so test this and make sure it works. - * Driver requirement: i915, xe - * Functionality: kms_gem_interop - * Mega feature: General Display Features - * Test category: functionality test */ #ifndef DRM_CAP_CURSOR_WIDTH diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index bb082af68..8d8c53b5f 100644 --- a/tests/kms_rotation_crc.c +++ b/tests/kms_rotation_crc.c @@ -26,6 +26,10 @@ * TEST: kms rotation crc * Category: Display * Description: Tests different rotations with different planes & formats + * Driver requirement: i915, xe + * Functionality: plane, rotation + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -35,10 +39,6 @@ /** * SUBTEST: %s-rotation-180 * Description: Rotation test with 180 degree for %arg[1] planes - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -50,10 +50,6 @@ /** * SUBTEST: %s-rotation-%d * Description: Rotation test with %arg[2] degree for %arg[1] planes of gen9+ - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -66,33 +62,19 @@ /** * SUBTEST: bad-pixel-format * Description: Checking unsupported pixel format for gen9+ with 90 degree of rotation - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: bad-tiling * Description: Checking unsupported tiling for gen9+ with 90 degree of rotation - * Driver requirement: i915, xe * Functionality: plane, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: exhaust-fences * Description: This test intends to check for fence leaks exhaustively - * Driver requirement: i915 - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test */ /** * SUBTEST: primary-%s-tiled-reflect-x-%d * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane - * Driver requirement: i915, xe * Functionality: plane, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -107,10 +89,7 @@ /** * SUBTEST: primary-%s-tiled-reflect-x-%d * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane - * Driver requirement: i915, xe * Functionality: plane, rotation, tiling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -121,27 +100,15 @@ * * SUBTEST: sprite-rotation-90-pos-100-0 * Description: Rotation test with 90 degree for a plane of gen9+ with given position - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test */ /** * SUBTEST: multiplane-rotation * Description: Rotation test on both planes by making them fully visible - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: multiplane-rotation-cropping-%s * Description: Rotation test on both planes by cropping left/%arg[1] corner of * primary plane and right/%arg[1] corner of sprite plane - * Driver requirement: i915, xe - * Functionality: plane, rotation - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c index 960e7d84b..add6e77c9 100644 --- a/tests/kms_scaling_modes.c +++ b/tests/kms_scaling_modes.c @@ -28,6 +28,10 @@ * TEST: kms scaling modes * Category: Display * Description: Test display scaling modes + * Driver requirement: i915, xe + * Functionality: eDP, plane, scaling + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -35,10 +39,6 @@ /** * SUBTEST: scaling-mode-%s * Description: Tests %arg[1] display scaling mode - * Driver requirement: i915, xe - * Functionality: eDP, plane, scaling - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c index 30fc58d90..0ecb825db 100644 --- a/tests/kms_selftest.c +++ b/tests/kms_selftest.c @@ -25,6 +25,10 @@ * TEST: kms selftest * Category: Display * Description: Basic sanity check of KMS selftests. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -33,10 +37,6 @@ /** * SUBTEST: %s * Description: Basic sanity check of KMS selftest %arg[1]. - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_sequence.c b/tests/kms_sequence.c index 7dbcca643..23867d1aa 100644 --- a/tests/kms_sequence.c +++ b/tests/kms_sequence.c @@ -26,6 +26,10 @@ * TEST: kms sequence * Category: Display * Description: Test CrtcGetSequence and CrtcQueueSequence. + * Driver requirement: i915, xe + * Functionality: vblank + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -46,10 +50,6 @@ /** * SUBTEST: get-%s * Description: This is a test of drmCrtcGetSequence with %arg[1] - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * @@ -62,10 +62,6 @@ /** * SUBTEST: queue-%s * Description: This is a test of drmCrtcQueueSequence with %arg[1] - * Driver requirement: i915, xe - * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c index 7fd1667d7..490bfd3dd 100644 --- a/tests/kms_setmode.c +++ b/tests/kms_setmode.c @@ -26,6 +26,10 @@ * Category: Display * Description: Tests the mode by iterating through all valid/invalid crtc/connector * combinations + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include "config.h" @@ -46,50 +50,27 @@ * SUBTEST: basic * Description: Tests the vblank timing by iterating through all valid crtc/connector * combinations - * Driver requirement: i915, xe * Functionality: kms_core, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: basic-clone-single-crtc * Description: Test allows the use of a single CRTC for two connectors, such as VGA/HDMI, * VGA/DP, and HDMI/HDMI - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: clone-exclusive-crtc * Description: Tests the mode by cloning the exclusive crtc by iterating through * all valid crtc/connector combinations - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-clone-exclusive-crtc * Description: Test is allowed when a connector uses CRTC that is not compatible with the * connector, for instance, DP/HDMI can be used on certain pipes only on older platforms - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-clone-single-crtc * Description: Tests the mode by cloning the single crtc by iterating through all * invalid crtc/connector combinations - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid-clone-single-crtc-stealing * Description: Tests the stealing mode by cloning the single crtc by iterating * through all invalid crtc/connector combinations - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test */ #define MAX_CONNECTORS 10 diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c index a094f4df3..3ffd6a9a4 100644 --- a/tests/kms_tiled_display.c +++ b/tests/kms_tiled_display.c @@ -40,6 +40,9 @@ * TEST: kms tiled display * Category: Display * Description: Test for Transcoder Port Sync for Display Port Tiled Displays + * Driver requirement: i915, xe + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -52,18 +55,12 @@ * SUBTEST: basic-test-pattern * Description: Make sure the Tiled CRTCs are synchronized and we get page flips * for all tiled CRTCs in one vblank (executes on real panel). - * Driver requirement: i915, xe * Functionality: tiled_display - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: basic-test-pattern-with-chamelium * Description: Make sure the Tiled CRTCs are synchronized and we get page flips * for all tiled CRTCs in one vblank (executes on chamelium). - * Driver requirement: i915, xe * Functionality: chamelium, tiled_display - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION("Test for genlocked CRTCs with tiled displays"); diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c index b79b3d3e3..6a39f93cc 100644 --- a/tests/kms_universal_plane.c +++ b/tests/kms_universal_plane.c @@ -25,6 +25,10 @@ * TEST: kms universal plane * Category: Display * Description: Check pageflip & modeset on universal plane + * Driver requirement: i915, xe + * Functionality: plane + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -37,32 +41,17 @@ /** * SUBTEST: cursor-fb-leak * Description: Check for cursor leaks after performing cursor operations - * Driver requirement: i915, xe * Functionality: cursor, plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: disable-primary-vs-flip * Description: Check pageflips while primary plane is disabled before IOCTL or * between IOCTL and pageflip execution - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: universal-plane-pageflip-windowed * Description: Check if pageflip succeeds in windowed setting - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: universal-plane-%s * Description: Check %arg[1] - * Driver requirement: i915, xe - * Functionality: plane - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c index 5994e682c..956ba483a 100644 --- a/tests/kms_vblank.c +++ b/tests/kms_vblank.c @@ -25,6 +25,9 @@ * TEST: kms vblank * Category: Display * Description: Test speed of WaitVblank. + * Driver requirement: i915, xe + * Mega feature: General Display Features + * Test category: functionality test */ #include "igt.h" @@ -45,71 +48,44 @@ /** * SUBTEST: crtc-id * Description: Check the vblank and flip events works with given crtc id - * Driver requirement: i915, xe * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: invalid * Description: Negative test for vblank request - * Driver requirement: i915, xe * Functionality: vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: ts-continuation-dpms-rpm * Description: Test TS continuty with DPMS & RPM while hanging by introducing * NOHANG flag - * Driver requirement: i915, xe * Functionality: dpms, hang, rpm, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: ts-continuation-dpms-suspend * Description: Test TS continuty with DPMS & Suspend while hanging by introducing * NOHANG flag - * Driver requirement: i915, xe * Functionality: dpms, hang, suspend, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: ts-continuation-suspend * Description: Test TS continuty with Suspend while hanging by introducing NOHANG * flag - * Driver requirement: i915, xe * Functionality: hang, suspend, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: ts-continuation-modeset-rpm * Description: Test TS continuty during Modeset with Suspend while hanging by * introducing NOHANG flag - * Driver requirement: i915, xe * Functionality: hang, rpm, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: accuracy-idle * Description: Test Accuracy of vblank events while hanging by introducing NOHANG * flag - * Driver requirement: i915, xe * Functionality: hang, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: %s * Description: Test %arg[1] while hanging by introducing NOHANG flag - * Driver requirement: i915, xe * Functionality: hang, vblank - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: %s-hang * Description: Test %arg[1] with injected hang is working properly - * Driver requirement: i915, xe * Functionality: hang, vblank - * Mega feature: General Display Features - * Test category: functionality test * * arg[1]: * diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index 23aebb0f2..13b347631 100644 --- a/tests/kms_vrr.c +++ b/tests/kms_vrr.c @@ -24,6 +24,10 @@ * TEST: kms vrr * Category: Display * Description: Test to validate diffent features of VRR + * Driver requirement: i915, xe + * Functionality: adaptive_sync + * Mega feature: VRR + * Test category: functionality test */ #include "igt.h" @@ -35,40 +39,22 @@ * SUBTEST: flip-basic * Description: Tests that VRR is enabled and that the difference between flip * timestamps converges to the requested rate - * Driver requirement: i915, xe - * Functionality: adaptive_sync - * Mega feature: VRR - * Test category: functionality test * * SUBTEST: flip-dpms * Description: Tests with DPMS that VRR is enabled and that the difference * between flip timestamps converges to the requested rate. - * Driver requirement: i915, xe * Functionality: adaptive_sync, dpms - * Mega feature: VRR - * Test category: functionality test * * SUBTEST: flip-suspend * Description: Tests that VRR is enabled and that the difference between flip * timestamps converges to the requested rate in a suspend test - * Driver requirement: i915, xe * Functionality: adaptive_sync, suspend - * Mega feature: VRR - * Test category: functionality test * * SUBTEST: flipline * Description: Make sure that flips happen at flipline decision boundary. - * Driver requirement: i915, xe - * Functionality: adaptive_sync - * Mega feature: VRR - * Test category: functionality test * * SUBTEST: negative-basic * Description: Make sure that VRR should not be enabled on the Non-VRR panel. - * Driver requirement: i915, xe - * Functionality: adaptive_sync - * Mega feature: VRR - * Test category: functionality test */ #define NSECS_PER_SEC (1000000000ull) diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c index 6b436b7ab..f95d71166 100644 --- a/tests/kms_writeback.c +++ b/tests/kms_writeback.c @@ -29,6 +29,10 @@ * connectors feature by checking if the target device support * writeback; it validates bad and good combination, check color * format, and check the output result by using CRC. + * Driver requirement: i915, xe + * Functionality: kms_core + * Mega feature: General Display Features + * Test category: functionality test */ #include <errno.h> @@ -45,45 +49,23 @@ /** * SUBTEST: writeback-check-output-XRGB2101010 * Description: Check XRGB2101010 writeback output with CRC validation - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: writeback-check-output * Description: Check writeback output with CRC validation - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: writeback-fb-id-XRGB2101010 * Description: Validate WRITEBACK_FB_ID with valid and invalid options - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: writeback-fb-id * Description: Validate WRITEBACK_FB_ID with valid and invalid options - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: writeback-invalid-parameters * Description: Writeback has a couple of parameters linked together(output * framebuffer and fence); this test goes throughthe combination * of possible bad options - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test * * SUBTEST: writeback-pixel-formats * Description: Check the writeback format - * Driver requirement: i915, xe - * Functionality: kms_core - * Mega feature: General Display Features - * Test category: functionality test */ IGT_TEST_DESCRIPTION( -- 2.40.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [i-g-t 3/5] tests/kms/testplan: Optimize KMS testplan documentation 2023-11-24 9:36 ` [igt-dev] [i-g-t 3/5] tests/kms/testplan: Optimize KMS " Bhanuprakash Modem @ 2023-11-24 17:08 ` Sharma, Swati2 0 siblings, 0 replies; 15+ messages in thread From: Sharma, Swati2 @ 2023-11-24 17:08 UTC (permalink / raw) To: Bhanuprakash Modem, igt-dev LGTM Reviewed-by: Swati Sharma <swati2.sharma@intel.com> On 24-Nov-23 3:06 PM, Bhanuprakash Modem wrote: > Moving all common key:values to TEST level from SUBTEST will > minimize the maintenance effort. > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > --- > tests/chamelium/kms_chamelium_audio.c | 10 +- > tests/chamelium/kms_chamelium_color.c | 16 +- > tests/chamelium/kms_chamelium_edid.c | 22 +- > tests/chamelium/kms_chamelium_frames.c | 33 +- > tests/chamelium/kms_chamelium_hpd.c | 69 +-- > tests/intel/kms_big_fb.c | 33 +- > tests/intel/kms_big_joiner.c | 16 +- > tests/intel/kms_busy.c | 27 +- > tests/intel/kms_ccs.c | 15 +- > tests/intel/kms_cdclk.c | 16 +- > tests/intel/kms_draw_crc.c | 15 +- > tests/intel/kms_dsc.c | 8 +- > tests/intel/kms_fbcon_fbt.c | 10 +- > tests/intel/kms_flip_scaled_crc.c | 70 +--- > tests/intel/kms_frontbuffer_tracking.c | 559 +------------------------ > tests/intel/kms_legacy_colorkey.c | 12 +- > tests/intel/kms_pipe_b_c_ivb.c | 24 +- > tests/intel/kms_pm_backlight.c | 22 +- > tests/intel/kms_pm_dc.c | 29 +- > tests/intel/kms_pm_lpsp.c | 11 +- > tests/intel/kms_pm_rpm.c | 4 + > tests/intel/kms_psr.c | 73 +--- > tests/intel/kms_psr2_sf.c | 36 +- > tests/intel/kms_psr2_su.c | 9 +- > tests/intel/kms_psr_stress_test.c | 12 +- > tests/kms_addfb_basic.c | 99 +---- > tests/kms_async_flips.c | 26 +- > tests/kms_atomic.c | 32 +- > tests/kms_atomic_interruptible.c | 18 +- > tests/kms_atomic_transition.c | 30 +- > tests/kms_bw.c | 8 +- > tests/kms_color.c | 32 +- > tests/kms_content_protection.c | 29 +- > tests/kms_cursor_crc.c | 18 +- > tests/kms_cursor_edge_walk.c | 9 +- > tests/kms_cursor_legacy.c | 68 +-- > tests/kms_display_modes.c | 9 +- > tests/kms_dither.c | 12 +- > tests/kms_feature_discovery.c | 21 +- > tests/kms_flip.c | 78 +--- > tests/kms_force_connector_basic.c | 18 +- > tests/kms_getfb.c | 30 +- > tests/kms_hdmi_inject.c | 9 +- > tests/kms_hdr.c | 32 +- > tests/kms_invalid_mode.c | 8 +- > tests/kms_lease.c | 88 +--- > tests/kms_panel_fitting.c | 12 +- > tests/kms_pipe_crc_basic.c | 37 +- > tests/kms_plane.c | 21 +- > tests/kms_plane_alpha_blend.c | 20 +- > tests/kms_plane_cursor.c | 16 +- > tests/kms_plane_lowres.c | 11 +- > tests/kms_plane_multiple.c | 11 +- > tests/kms_plane_scaling.c | 84 +--- > tests/kms_prime.c | 15 +- > tests/kms_prop_blob.c | 20 +- > tests/kms_properties.c | 12 +- > tests/kms_rmfb.c | 12 +- > tests/kms_rotation_crc.c | 41 +- > tests/kms_scaling_modes.c | 8 +- > tests/kms_selftest.c | 8 +- > tests/kms_sequence.c | 12 +- > tests/kms_setmode.c | 27 +- > tests/kms_tiled_display.c | 9 +- > tests/kms_universal_plane.c | 19 +- > tests/kms_vblank.c | 30 +- > tests/kms_vrr.c | 22 +- > tests/kms_writeback.c | 26 +- > 68 files changed, 255 insertions(+), 2043 deletions(-) > > diff --git a/tests/chamelium/kms_chamelium_audio.c b/tests/chamelium/kms_chamelium_audio.c > index f86610861..cc2c23a76 100644 > --- a/tests/chamelium/kms_chamelium_audio.c > +++ b/tests/chamelium/kms_chamelium_audio.c > @@ -28,6 +28,8 @@ > * TEST: kms chamelium audio > * Category: Display > * Description: Testing Audio with a Chamelium board > + * Driver requirement: i915, xe > + * Test category: functionality test > */ > > #include "igt_eld.h" > @@ -38,34 +40,26 @@ > * SUBTEST: dp-audio > * Description: Playback various audio signals with various audio formats/rates, > * capture them and check they are correct > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_audio > * Mega feature: Audio, DP > - * Test category: functionality test > * > * SUBTEST: hdmi-audio > * Description: Playback various audio signals with various audio formats/rates, > * capture them and check they are correct > - * Driver requirement: i915, xe > * Functionality: chamelium, hdmi_audio > * Mega feature: Audio, HDMI > - * Test category: functionality test > * > * SUBTEST: dp-audio-edid > * Description: Plug a connector with an EDID suitable for audio, check ALSA's > * EDID-Like Data reports the correct audio parameters > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_audio > * Mega feature: Audio, DP > - * Test category: functionality test > * > * SUBTEST: hdmi-audio-edid > * Description: Plug a connector with an EDID suitable for audio, check ALSA's > * EDID-Like Data reports the correct audio parameters > - * Driver requirement: i915, xe > * Functionality: chamelium, hdmi_audio > * Mega feature: Audio, HDMI > - * Test category: functionality test > */ > > /* Playback parameters control the audio signal we synthesize and send */ > diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c > index 6123e8a5f..e94e13e40 100644 > --- a/tests/chamelium/kms_chamelium_color.c > +++ b/tests/chamelium/kms_chamelium_color.c > @@ -26,6 +26,10 @@ > * TEST: kms chamelium color > * Category: Display > * Description: Test Color Features at Pipe level using Chamelium to verify instead of CRC > + * Driver requirement: i915, xe > + * Functionality: chamelium, colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > */ > > #include "kms_color_helper.h" > @@ -33,24 +37,12 @@ > /** > * SUBTEST: degamma > * Description: Verify that degamma LUT transformation works correctly > - * Driver requirement: i915, xe > - * Functionality: chamelium, colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * SUBTEST: gamma > * Description: Verify that gamma LUT transformation works correctly > - * Driver requirement: i915, xe > - * Functionality: chamelium, colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * SUBTEST: ctm-%s > * Description: Check the color transformation %arg[1] > - * Driver requirement: i915, xe > - * Functionality: chamelium, colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/chamelium/kms_chamelium_edid.c b/tests/chamelium/kms_chamelium_edid.c > index f3f0b1e50..6550b7b74 100644 > --- a/tests/chamelium/kms_chamelium_edid.c > +++ b/tests/chamelium/kms_chamelium_edid.c > @@ -28,6 +28,8 @@ > * TEST: kms chamelium edid > * Category: Display > * Description: Testing EDID with a Chamelium board > + * Driver requirement: i915, xe > + * Test category: functionality test > */ > > #include <fcntl.h> > @@ -51,22 +53,16 @@ > /** > * SUBTEST: dp-edid-read > * Description: Make sure the EDID exposed by KMS is the same as the screen's > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: chamelium, dp_edid > * Mega feature: DP > * > * SUBTEST: hdmi-edid-read > * Description: Make sure the EDID exposed by KMS is the same as the screen's > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: chamelium, hdmi_edid > * Mega feature: HDMI > * > * SUBTEST: vga-edid-read > * Description: Make sure the EDID exposed by KMS is the same as the screen's > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: chamelium, vga_edid > * Mega feature: VGA > * > @@ -74,28 +70,22 @@ > * Description: Get an EDID with many modes of different configurations, set > * them on the screen and check the screen resolution matches the > * mode resolution. > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_edid > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: dp-mode-timings > * Description: For each mode of the IGT base EDID, perform a modeset and check > * the mode detected by the Chamelium receiver matches the mode we > * set > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_edid > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-mode-timings > * Description: For each mode of the IGT base EDID, perform a modeset and check > * the mode detected by the Chamelium receiver matches the mode we > * set > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_edid > * Mega feature: DP > - * Test category: functionality test > */ > > /** > @@ -103,19 +93,15 @@ > * Description: Stress test the DUT by testing multiple EDIDs, one right after > * the other, and ensure their validity by check the real screen > * resolution vs the advertised mode (%arg[1]) resolution. > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_edid > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-edid-stress-resolution-%s > * Description: Stress test the DUT by testing multiple EDIDs, one right after > * the other, and ensure their validity by check the real screen > * resolution vs the advertised mode (%arg[1]) resolution. > - * Driver requirement: i915, xe > * Functionality: chamelium, hdmi_edid > * Mega feature: HDMI > - * Test category: functionality test > * > * arg[1]: > * > @@ -128,19 +114,15 @@ > * Description: Simulate a screen being unplugged and another screen being > * plugged during suspend, check that a uevent is sent and > * connector status is updated during %arg[1] > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_edid > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-edid-change-during-%s > * Description: Simulate a screen being unplugged and another screen being > * plugged during suspend, check that a uevent is sent and > * connector status is updated during %arg[1] > - * Driver requirement: i915, xe > * Functionality: chamelium, dp_edid > * Mega feature: DP > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/chamelium/kms_chamelium_frames.c b/tests/chamelium/kms_chamelium_frames.c > index 490ab3fe9..c14245a71 100644 > --- a/tests/chamelium/kms_chamelium_frames.c > +++ b/tests/chamelium/kms_chamelium_frames.c > @@ -28,6 +28,9 @@ > * TEST: kms chamelium frames > * Category: Display > * Description: Tests requiring a Chamelium board > + * Driver requirement: i915, xe > + * Functionality: chamelium, frame_integrity > + * Test category: functionality test > */ > > #include "igt_eld.h" > @@ -38,26 +41,17 @@ > * SUBTEST: dp-crc-fast > * Description: Pick the first mode of the IGT base EDID, display and capture > * a few frames, then check captured frames are correct > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-crc-fast > * Description: Pick the first mode of the IGT base EDID, display and capture > * a few frames, then check captured frames are correct > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: hdmi-%s-formats > * Description: Pick the first mode of the IGT base EDID, display and capture a > * few frames, then check captured frames are correct > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: HDMI > - * Test category: functionality test > * > * arg[1]: > * > @@ -69,26 +63,17 @@ > * SUBTEST: vga-frame-dump > * Description: For each mode of the IGT base EDID, display and capture a few > * frames, then check captured frames are correct > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: VGA > - * Test category: functionality test > * > * SUBTEST: dp-crc-%s > * Description: For each mode of the IGT base EDID, display and capture a %arg[1] > * frame(s), then check captured frame(s) are correct > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-crc-%s > * Description: For each mode of the IGT base EDID, display and capture a %arg[1] > * frame(s), then check captured frame(s) are correct > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: HDMI > - * Test category: functionality test > * > * arg[1]: > * > @@ -101,35 +86,23 @@ > * Description: For each mode of the IGT base EDID, display and capture a few > * frames, then download the captured frames and compare them > * bit-by-bit to the sent ones > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-frame-dump > * Description: For each mode of the IGT base EDID, display and capture a few > * frames, then download the captured frames and compare them > * bit-by-bit to the sent ones > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: hdmi-aspect-ratio > * Description: Pick a mode with a picture aspect-ratio, capture AVI InfoFrames > * and check they include the relevant fields > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: hdmi-%s-planes-random > * Description: Setup a few overlay planes with random parameters, capture the > * frame and check it matches the expected output > - * Driver requirement: i915, xe > - * Functionality: chamelium, frame_integrity > * Mega feature: HDMI > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/chamelium/kms_chamelium_hpd.c b/tests/chamelium/kms_chamelium_hpd.c > index 360694c76..7e580e20e 100644 > --- a/tests/chamelium/kms_chamelium_hpd.c > +++ b/tests/chamelium/kms_chamelium_hpd.c > @@ -28,6 +28,9 @@ > * TEST: kms chamelium hpd > * Category: Display > * Description: Testing HPD with a Chamelium board > + * Driver requirement: i915, xe > + * Functionality: chamelium, hotplug > + * Test category: functionality test > */ > > #include "kms_chamelium_helper.h" > @@ -36,74 +39,47 @@ > * SUBTEST: dp-hpd-fast > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd-fast > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: vga-hpd-fast > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: VGA > - * Test category: functionality test > * > * SUBTEST: dp-hpd > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: vga-hpd > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: VGA > - * Test category: functionality test > * > * SUBTEST: dp-hpd-%s > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd-%s > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: vga-hpd-%s > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: VGA > - * Test category: functionality test > * > * arg[1]: > * > @@ -115,132 +91,93 @@ > * SUBTEST: dp-hpd-for-each-pipe > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug for each pipe with valid output > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd-for-each-pipe > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug for each pipe with valid output > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: vga-hpd-for-each-pipe > * Description: Check that we get uevents and updated connector status on > * hotplug and unplug for each pipe with valid output > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: VGA > * Test category: functionality test > * > * SUBTEST: dp-hpd-after-hibernate > * Description: Toggle HPD during Hibernation, check that uevents are sent and > * connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, hibernation > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd-after-hibernate > * Description: Toggle HPD during Hibernation, check that uevents are sent and > * connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, hibernation > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: vga-hpd-after-hibernate > * Description: Toggle HPD during Hibernation, check that uevents are sent and > * connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, hibernation > * Mega feature: VGA > - * Test category: functionality test > * > * SUBTEST: dp-hpd-after-suspend > * Description: Toggle HPD during Suspend, check that uevents are sent and > * connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, suspend > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd-after-suspend > * Description: Toggle HPD during Suspend, check that uevents are sent and > * connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, suspend > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: vga-hpd-after-suspend > * Description: Toggle HPD during Suspend, check that uevents are sent and > * connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, suspend > * Mega feature: VGA > - * Test category: functionality test > * > * SUBTEST: common-hpd-after-suspend > * Description: Toggle HPD during suspend on all connectors, check that uevents > * are sent and connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, suspend > * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: common-hpd-after-hibernate > * Description: Toggle HPD during suspend on all connectors, check that uevents > * are sent and connector status is updated > - * Driver requirement: i915, xe > * Functionality: chamelium, hotplug, hibernation > * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: vga-hpd-without-ddc > * Description: Disable DDC on a VGA connector, check we still get a uevent on > * hotplug > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: VGA > - * Test category: functionality test > * > * SUBTEST: dp-hpd-storm > * Description: Trigger a series of hotplugs in a very small timeframe to > * simulate abad cable, check the kernel falls back to polling > * to avoid a hotplug storm > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd-storm > * Description: Trigger a series of hotplugs in a very small timeframe to > * simulate abad cable, check the kernel falls back to polling > * to avoid a hotplug storm > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: dp-hpd-storm-disable > * Description: Disable HPD storm detection, trigger a storm and check the > * kernel doesn't detect one > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: DP > - * Test category: functionality test > * > * SUBTEST: hdmi-hpd-storm-disable > * Description: Disable HPD storm detection, trigger a storm and check the > * kernel doesn't detect one > - * Driver requirement: i915, xe > - * Functionality: chamelium, hotplug > * Mega feature: HDMI > - * Test category: functionality test > */ > > #define HPD_STORM_PULSE_INTERVAL_DP 100 /* ms */ > diff --git a/tests/intel/kms_big_fb.c b/tests/intel/kms_big_fb.c > index cce7027e9..82aff532b 100644 > --- a/tests/intel/kms_big_fb.c > +++ b/tests/intel/kms_big_fb.c > @@ -25,6 +25,9 @@ > * TEST: kms big fb > * Category: Display > * Description: Test big framebuffers > + * Driver requirement: i915, xe > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -41,10 +44,7 @@ > * SUBTEST: linear-%dbpp-rotate-%d > * Description: Sanity check if addfb ioctl works correctly for given combination > * of Linear modifier with %arg[1]-bpp & %arg[2]-rotation > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 8, 16, 32, 64 > * arg[2].values: 0, 90, 180, 270 > @@ -54,10 +54,7 @@ > * SUBTEST: %s-%dbpp-rotate-%d > * Description: Sanity check if addfb ioctl works correctly for given combination > * of %arg[1] with %arg[2]-bpp & %arg[3]-rotation > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -75,10 +72,7 @@ > * Description: Test maximum hardware supported stride length for given combination > * of linear modifier with max hardware stride length, %arg[1]-bpp, > * and %arg[2]-rotation > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 32, 64 > * arg[2].values: 0, 180 > @@ -89,10 +83,7 @@ > * Description: Test maximum hardware supported stride length for given combination > * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > * and %arg[3]-rotation > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -110,19 +101,13 @@ > * Description: Test maximum hardware supported stride length for given combination > * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > * and %arg[3]-rotation with H-flip mode > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: %s-max-hw-stride-%dbpp-rotate-%d-%s > * Description: Test maximum hardware supported stride length for given combination > * of %arg[1] modifier with max hardware stride length, %arg[2]-bpp, > * and %arg[3]-rotation with %arg[4] mode > - * Driver requirement: i915, xe > * Functionality: async_flips, big_fbs, kms_gem_interop, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -144,34 +129,22 @@ > * SUBTEST: linear-addfb > * Description: Sanity check if addfb ioctl works correctly with Linear modifier > * for given size and strides of fb > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: %s-addfb > * Description: Sanity check if addfb ioctl works correctly with %arg[1] modifier > * for given size and strides of fb > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: %s-addfb-size-overflow > * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > * with small bo. > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: %s-addfb-size-offset-overflow > * Description: Sanity check if addfb ioctl fails correctly for (%arg[1]) modifier > * and offsets with small bo > - * Driver requirement: i915, xe > * Functionality: big_fbs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c > index 3f2091723..c5f9f8db7 100644 > --- a/tests/intel/kms_big_joiner.c > +++ b/tests/intel/kms_big_joiner.c > @@ -28,6 +28,10 @@ > * TEST: kms big joiner > * Category: Display > * Description: Test big joiner > + * Driver requirement: i915, xe > + * Functionality: 2p1p > + * Mega feature: Bigjoiner > + * Test category: functionality test > */ > > #include "igt.h" > @@ -36,24 +40,12 @@ > * SUBTEST: invalid-modeset > * Description: Verify if the modeset on the adjoining pipe is rejected when > * the pipe is active with a big joiner modeset > - * Driver requirement: i915, xe > - * Functionality: 2p1p > - * Mega feature: Bigjoiner > - * Test category: functionality test > * > * SUBTEST: basic > * Description: Verify the basic modeset on big joiner mode on all pipes > - * Driver requirement: i915, xe > - * Functionality: 2p1p > - * Mega feature: Bigjoiner > - * Test category: functionality test > * > * SUBTEST: 2x-modeset > * Description: Verify simultaneous modeset on 2 big joiner outputs > - * Driver requirement: i915, xe > - * Functionality: 2p1p > - * Mega feature: Bigjoiner > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test big joiner"); > diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c > index 63d1bbf71..004d9ee6e 100644 > --- a/tests/intel/kms_busy.c > +++ b/tests/intel/kms_busy.c > @@ -25,6 +25,10 @@ > * TEST: kms busy > * Category: Display > * Description: Basic check of KMS ABI with busy framebuffers. > + * Driver requirement: i915 > + * Functionality: kms_core, hang > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include <sys/poll.h> > @@ -37,38 +41,19 @@ > /** > * SUBTEST: basic > * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: basic-hang > * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: extended-pageflip-modeset-hang-oldfb > * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: extended-pageflip-hang-%s > * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: extended-modeset-hang-%s > * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -79,10 +64,6 @@ > /** > * SUBTEST: extended-modeset-hang-%s > * Description: Test for basic check of KMS ABI with busy framebuffers. > - * Driver requirement: i915 > - * Functionality: kms_core, hang > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c > index d1eb735fa..0a202d037 100644 > --- a/tests/intel/kms_ccs.c > +++ b/tests/intel/kms_ccs.c > @@ -28,6 +28,10 @@ > * Description: Test render compression (RC), in which the main surface is > * complemented by a color control surface (CCS) that the display > * uses to interpret the compressed data. > + * Driver requirement: i915, xe > + * Functionality: ccs, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -39,10 +43,6 @@ > /** > * SUBTEST: %s-%s-%s > * Description: Test %arg[2] with given %arg[3] modifier > - * Driver requirement: i915, xe > - * Functionality: ccs, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -84,10 +84,6 @@ > /** > * SUBTEST: %s-%s-%s > * Description: Test %arg[2] with %arg[3] modifier > - * Driver requirement: i915, xe > - * Functionality: ccs, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -133,10 +129,7 @@ > /** > * SUBTEST: %s-%s-%s > * Description: Test %arg[2] with %arg[3] modifier > - * Driver requirement: i915, xe > * Functionality: ccs, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/intel/kms_cdclk.c b/tests/intel/kms_cdclk.c > index 97cb615c5..7baf7d98e 100644 > --- a/tests/intel/kms_cdclk.c > +++ b/tests/intel/kms_cdclk.c > @@ -28,6 +28,10 @@ > * TEST: kms cdclk > * Category: Display > * Description: Test cdclk features : crawling and squashing > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -36,24 +40,12 @@ > * SUBTEST: mode-transition-all-outputs > * Description: Mode transition (low to high) test to validate cdclk frequency > * change by simultaneous modesets on all pipes with valid outputs. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: mode-transition > * Description: Mode transition (low to high) test to validate cdclk frequency change. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-scaling > * Description: Plane scaling test to validate cdclk frequency change. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test cdclk features : crawling and squashing"); > diff --git a/tests/intel/kms_draw_crc.c b/tests/intel/kms_draw_crc.c > index b9d9cd6e4..e3d1c0ba9 100644 > --- a/tests/intel/kms_draw_crc.c > +++ b/tests/intel/kms_draw_crc.c > @@ -26,6 +26,10 @@ > * TEST: kms draw crc > * Category: Display > * Description: Tests whether the igt_draw library actually works. > + * Driver requirement: i915, xe > + * Functionality: kms_core, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "i915/gem.h" > @@ -34,18 +38,10 @@ > /** > * SUBTEST: fill-fb > * Description: This subtest verifies CRC after filling fb with x-tiling or none. > - * Driver requirement: i915, xe > - * Functionality: kms_core, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: draw-method-%s > * Description: Verify that igt draw library works for the %arg[1] method with > * different modifiers & DRM formats. > - * Driver requirement: i915, xe > - * Functionality: kms_core, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -59,9 +55,6 @@ > * Description: Verify that igt draw library works for the %arg[1] method with > * different modifiers & DRM formats. > * Driver requirement: i915 > - * Functionality: kms_core, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/intel/kms_dsc.c b/tests/intel/kms_dsc.c > index 0df3613b3..3433e0907 100644 > --- a/tests/intel/kms_dsc.c > +++ b/tests/intel/kms_dsc.c > @@ -34,6 +34,10 @@ > * TEST: kms dsc > * Category: Display > * Description: Test to validate display stream compression > + * Driver requirement: i915, xe > + * Functionality: dsc > + * Mega feature: VDSC > + * Test category: functionality test > */ > > #include "kms_dsc_helper.h" > @@ -42,10 +46,6 @@ > * SUBTEST: dsc-%s > * Description: Tests Display Stream Compression functionality if supported by a > * connector by forcing %arg[1] on all connectors that support it > - * Driver requirement: i915, xe > - * Functionality: dsc > - * Mega feature: VDSC > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c > index d437d70f6..e2617a79a 100644 > --- a/tests/intel/kms_fbcon_fbt.c > +++ b/tests/intel/kms_fbcon_fbt.c > @@ -29,6 +29,8 @@ > * Category: Display > * Description: Test the relationship between fbcon and the frontbuffer tracking > * infrastructure. > + * Driver requirement: i915, xe > + * Test category: functionality test > */ > > #include "igt.h" > @@ -43,34 +45,26 @@ > * SUBTEST: fbc > * Description: Test the relationship between fbcon and the frontbuffer tracking > * infrastructure with fbc enabled. > - * Driver requirement: i915, xe > * Functionality: fbc, fbcon, fbt > * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-suspend > * Description: Suspend test to validate the relationship between fbcon and the > * frontbuffer tracking infrastructure with fbc enabled. > - * Driver requirement: i915, xe > * Functionality: fbc, fbcon, fbt, suspend > * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr > * Description: Test the relationship between fbcon and the frontbuffer tracking > * infrastructure with psr enabled. > - * Driver requirement: i915, xe > * Functionality: fbcon, fbt, psr > * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr-suspend > * Description: Suspend test to validate the relationship between fbcon and the > * frontbuffer tracking infrastructure with psr enabled. > - * Driver requirement: i915, xe > * Functionality: fbcon, fbt, psr, suspend > * Mega feature: PSR > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test the relationship between fbcon and the frontbuffer " > diff --git a/tests/intel/kms_flip_scaled_crc.c b/tests/intel/kms_flip_scaled_crc.c > index 8f37299ea..7dc07bc83 100644 > --- a/tests/intel/kms_flip_scaled_crc.c > +++ b/tests/intel/kms_flip_scaled_crc.c > @@ -26,6 +26,10 @@ > * TEST: kms flip scaled crc > * Category: Display > * Description: Test flipping between scaled/nonscaled framebuffers > + * Driver requirement: i915, xe > + * Functionality: ccs, scaling, tiling, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -34,114 +38,63 @@ > * SUBTEST: flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling > * Description: Flip from 64bpp non scaled fb to 32bpp upscaled fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling > * Description: Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-linear-to-64bpp-linear-%s > * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-%s > * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-4tile-to-64bpp-4tile-%s > * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-xtile-to-64bpp-xtile-%s > * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-yftile-to-32bpp-yftileccs-%s > * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-yftile-to-64bpp-yftile-%s > * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-yftileccs-to-64bpp-yftile-%s > * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-ytile-to-32bpp-ytileccs-%s > * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-%s > * Description: Flip from 32bpp non scaled fb to 32bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-ytile-to-64bpp-ytile-%s > * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-32bpp-ytileccs-to-64bpp-ytile-%s > * Description: Flip from 32bpp non scaled fb to 64bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-%s > * Description: Flip from 64bpp non scaled fb to 32bpp %arg[1] fb to stress CD > * clock programming > - * Driver requirement: i915, xe > - * Functionality: ccs, scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -153,42 +106,27 @@ > * SUBTEST: flip-64bpp-4tile-to-%dbpp-4tile-%s > * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress > * CD clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-64bpp-xtile-to-%dbpp-xtile-%s > * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress > * CD clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-64bpp-yftile-to-%dbpp-yftile-%s > * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress > * CD clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-64bpp-ytile-to-%dbpp-ytile-%s > * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress > * CD clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-64bpp-linear-to-%dbpp-linear-%s > * Description: Flip from 64bpp non scaled fb to %arg[1]bpp %arg[2] fb to stress > * CD clock programming > - * Driver requirement: i915, xe > * Functionality: scaling, tiling, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 16, 32 > * arg[2]: > diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c > index 085adc5b1..abc44bf39 100644 > --- a/tests/intel/kms_frontbuffer_tracking.c > +++ b/tests/intel/kms_frontbuffer_tracking.c > @@ -28,6 +28,9 @@ > * TEST: kms frontbuffer tracking > * Category: Display > * Description: Test the Kernel's frontbuffer tracking mechanism and its related features: FBC, PSR and DRRS > + * Driver requirement: i915, xe > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include <sys/types.h> > @@ -48,66 +51,39 @@ > /** > * SUBTEST: basic > * Description: Do some basic operations regardless of which features are enabled > - * Driver requirement: i915, xe > * Functionality: fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-fbc-rte > * Description: Sanity test to enable FBC on a plane. > - * Driver requirement: i915, xe > * Functionality: fbc > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: drrs-%dp-rte > * Description: Sanity test to enable DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > * Functionality: fbt, drrs > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-rte > * Description: Sanity test to enable FBC with %arg[1] panels. > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-rte > * Description: Sanity test to enable PSR with %arg[1] panels. > - * Driver requirement: i915, xe > * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-rte > * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-rte > * Description: Sanity test to enable FBC & PSR with %arg[1] panels. > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-rte > * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > * Functionality: fbt, drrs, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-rte > * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, drrs, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > */ > @@ -115,52 +91,31 @@ > /** > * SUBTEST: drrs-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -179,50 +134,36 @@ > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -241,50 +182,36 @@ > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -304,52 +231,31 @@ > /** > * SUBTEST: drrs-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -369,52 +275,31 @@ > /** > * SUBTEST: drrs-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -430,50 +315,36 @@ > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -487,52 +358,31 @@ > /** > * SUBTEST: drrs-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -552,50 +402,36 @@ > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -613,52 +449,31 @@ > /** > * SUBTEST: drrs-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -672,50 +487,36 @@ > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s > * Description: Draw a set of rectangles on the screen using the provided method > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -727,52 +528,31 @@ > /** > * SUBTEST: drrs-%dp-pri-indfb-multidraw > * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-pri-indfb-multidraw > * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-pri-indfb-multidraw > * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw > * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw > * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw > * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw > * Description: Draw a set of rectangles on the screen using alternated drawing methods > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > */ > @@ -780,52 +560,31 @@ > /** > * SUBTEST: drrs-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -844,50 +603,36 @@ > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > * Driver requirement: i915 > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%s-draw-%s > * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -904,96 +649,57 @@ > /** > * SUBTEST: drrs-slowdraw > * Description: Sleep a little bit between drawing operations with DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-slowdraw > * Description: Sleep a little bit between drawing operations with PSR > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-slowdraw > * Description: Sleep a little bit between drawing operations with FBC & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-slowdraw > * Description: Sleep a little bit between drawing operations with FBC & PSR > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-slowdraw > * Description: Sleep a little bit between drawing operations with PSR & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-slowdraw > * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > /** > * SUBTEST: drrs-%dp-primscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -1012,52 +718,31 @@ > /** > * SUBTEST: drrs-2p-scndscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt > * Description: Just exercise page flips with the patterns we have > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -1074,31 +759,19 @@ > /** > * SUBTEST: fbc-%dp-%s-fliptrack-mmap-gtt > * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-%s-fliptrack-mmap-gtt > * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt > * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt > * Description: Check if the hardware tracking works after page flips > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -1111,52 +784,31 @@ > /** > * SUBTEST: drrs-%dp-primscrn-%s-indfb-move > * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-%s-indfb-move > * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-%s-indfb-move > * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move > * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move > * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move > * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move > * Description: Just move the %arg[2] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -1169,52 +821,31 @@ > /** > * SUBTEST: drrs-2p-scndscrn-%s-indfb-move > * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-%s-indfb-move > * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-%s-indfb-move > * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move > * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move > * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move > * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move > * Description: Just move the %arg[1] around > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -1225,52 +856,31 @@ > /** > * SUBTEST: drrs-%dp-primscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[2] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > * > @@ -1283,52 +893,31 @@ > /** > * SUBTEST: drrs-2p-scndscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff > * Description: Just enable and disable the %arg[1] a few times > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -1339,101 +928,59 @@ > /** > * SUBTEST: drrs-%dp-primscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%dp-primscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-2p-scndscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen > * Description: Put a fullscreen plane covering the whole screen > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2 > */ > @@ -1441,52 +988,31 @@ > /** > * SUBTEST: drrs-%s-scaledprimary > * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-%s-scaledprimary > * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-%s-scaledprimary > * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > * Functionality: fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-%s-scaledprimary > * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-%s-scaledprimary > * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-%s-scaledprimary > * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-%s-scaledprimary > * Description: Try different primary plane scaling strategies > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -1497,102 +1023,61 @@ > /** > * SUBTEST: drrs-modesetfrombusy > * Description: Modeset from a busy buffer to a non-busy buffer with DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-modesetfrombusy > * Description: Modeset from a busy buffer to a non-busy buffer with FBC > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-modesetfrombusy > * Description: Modeset from a busy buffer to a non-busy buffer with PSR > - * Driver requirement: i915, xe > * Functionality: fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-modesetfrombusy > * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-modesetfrombusy > * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-modesetfrombusy > * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-modesetfrombusy > * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr, scaling > - * Mega feature: General Display Features > */ > > /** > * SUBTEST: drrs-suspend > * Description: Make sure suspend/resume keeps us on the same state of DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-suspend > * Description: Make sure suspend/resume keeps us on the same state of FBC > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-suspend > * Description: Make sure suspend/resume keeps us on the same state of PSR > - * Driver requirement: i915, xe > * Functionality: fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-suspend > * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-suspend > * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-suspend > * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-suspend > * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > /** > @@ -1600,114 +1085,76 @@ > * Description: Test drawing as far from the fence start as possible > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbc-farfromfence-mmap-gtt > * Description: Test drawing as far from the fence start as possible > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr-farfromfence-mmap-gtt > * Description: Test drawing as far from the fence start as possible > * Driver requirement: i915 > * Functionality: fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-farfromfence-mmap-gtt > * Description: Test drawing as far from the fence start as possible > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-farfromfence-mmap-gtt > * Description: Test drawing as far from the fence start as possible > * Driver requirement: i915 > * Functionality: fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psrdrrs-farfromfence-mmap-gtt > * Description: Test drawing as far from the fence start as possible > * Driver requirement: i915 > * Functionality: drrs, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt > * Description: Test drawing as far from the fence start as possible > * Driver requirement: i915 > * Functionality: drrs, fbc, fbt, kms_core, psr > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > /** > * SUBTEST: fbc-stridechange > * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > * Functionality: fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-stridechange > * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-stridechange > * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-stridechange > * Description: Change the frontbuffer stride by doing a modeset > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > /** > * SUBTEST: fbc-tiling-%s > * Description: Test %arg[1] formats, if the tiling format supports FBC do the > * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcdrrs-tiling-%s > * Description: Test %arg[1] formats, if the tiling format supports FBC do the > * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsr-tiling-%s > * Description: Test %arg[1] formats, if the tiling format supports FBC do the > * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > * Functionality: fbc, fbt, psr, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fbcpsrdrrs-tiling-%s > * Description: Test %arg[1] formats, if the tiling format supports FBC do the > * basic drawing test, else set the mode & test if FBC is disabled > - * Driver requirement: i915, xe > * Functionality: drrs, fbc, fbt, psr, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/intel/kms_legacy_colorkey.c b/tests/intel/kms_legacy_colorkey.c > index 69539f558..27ec64051 100644 > --- a/tests/intel/kms_legacy_colorkey.c > +++ b/tests/intel/kms_legacy_colorkey.c > @@ -25,6 +25,10 @@ > * TEST: kms legacy colorkey > * Category: Display > * Description: Test to check the legacy set colorkey ioctl on sprite planes. > + * Driver requirement: i915 > + * Functionality: plane, xorg_xv > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -33,17 +37,9 @@ > /** > * SUBTEST: basic > * Description: Check that the legacy set colorkey ioctl only works on sprite planes. > - * Driver requirement: i915 > - * Functionality: plane, xorg_xv > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-plane > * Description: Check invalid plane id's, zero and outrange > - * Driver requirement: i915 > - * Functionality: plane, xorg_xv > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Check that the legacy set colorkey ioctl only works on sprite planes."); > diff --git a/tests/intel/kms_pipe_b_c_ivb.c b/tests/intel/kms_pipe_b_c_ivb.c > index c1a1e6610..73277e970 100644 > --- a/tests/intel/kms_pipe_b_c_ivb.c > +++ b/tests/intel/kms_pipe_b_c_ivb.c > @@ -29,6 +29,10 @@ > * Category: Display > * Description: Exercise the FDI lane bifurcation code for IVB in the kernel by > * setting different combinations of modes for pipes B and C. > + * Driver requirement: i915 > + * Functionality: kms_core, obsolete > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -37,43 +41,23 @@ > * SUBTEST: disable-pipe-B-enable-pipe-C > * Description: Tests pipe-B and pipe-C interactions in IVB by disabling pipe-B > * and then setting mode on pipe-C. > - * Driver requirement: i915 > - * Functionality: kms_core, obsolete > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: enable-pipe-C-while-B-has-3-lanes > * Description: Tests pipe-B and pipe-C interactions in IVB by enabling pipe-C > * while pipe-B has 3-lanes > - * Driver requirement: i915 > - * Functionality: kms_core, obsolete > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: from-pipe-C-to-B-with-3-lanes > * Description: Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B > * with 3 lanes from pipe-C. > - * Driver requirement: i915 > - * Functionality: kms_core, obsolete > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: pipe-B-double-modeset-then-modeset-pipe-C > * Description: Tests pipe-B and pipe-C interactions in IVB by enabling two > * different modes on pipe-B and then a single mode on pipe-C. > - * Driver requirement: i915 > - * Functionality: kms_core, obsolete > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: pipe-B-dpms-off-modeset-pipe-C > * Description: Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B > * with mode that requires 3 lanes and then enabling pipe-c with > * dpms off/on pipe-B. > - * Driver requirement: i915 > - * Functionality: kms_core, obsolete > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION( > diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c > index 68f4dc3d1..5b4c397bb 100644 > --- a/tests/intel/kms_pm_backlight.c > +++ b/tests/intel/kms_pm_backlight.c > @@ -29,6 +29,10 @@ > * TEST: kms pm backlight > * Category: Display > * Description: Basic backlight sysfs test > + * Driver requirement: i915, xe > + * Functionality: backlight > + * Mega feature: Display Power > + * Test category: functionality test > */ > > #include "igt.h" > @@ -46,38 +50,20 @@ > /** > * SUBTEST: bad-brightness > * Description: Test the bad brightness. > - * Driver requirement: i915, xe > - * Functionality: backlight > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: basic-brightness > * Description: Test the basic brightness. > - * Driver requirement: i915, xe > - * Functionality: backlight > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: fade > * Description: Test basic fade. > - * Driver requirement: i915, xe > - * Functionality: backlight > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: fade-with-dpms > * Description: Test the fade with DPMS. > - * Driver requirement: i915, xe > * Functionality: dpms, backlight > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: fade-with-suspend > * Description: Test the fade with suspend. > - * Driver requirement: i915, xe > * Functionality: backlight, suspend > - * Mega feature: Display Power > - * Test category: functionality test > */ > > struct context { > diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c > index 1c33206fc..f11d6d29a 100644 > --- a/tests/intel/kms_pm_dc.c > +++ b/tests/intel/kms_pm_dc.c > @@ -26,6 +26,10 @@ > * TEST: kms pm dc > * Category: Display > * Description: Tests to validate display power DC states. > + * Driver requirement: i915, xe > + * Functionality: dpms, pm_dc > + * Mega feature: Display Power > + * Test category: functionality test > */ > > #include <errno.h> > @@ -48,55 +52,30 @@ > * SUBTEST: dc3co-vpb-simulation > * Description: Make sure that system enters DC3CO when PSR2 is active and system > * is in SLEEP state > - * Driver requirement: i915, xe > * Functionality: dc3co, pm_dc, psr2 > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: dc5-dpms > * Description: Validate display engine entry to DC5 state while all connectors's > * DPMS property set to OFF > - * Driver requirement: i915, xe > - * Functionality: dpms, pm_dc > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: dc5-dpms-negative > * Description: Validate negative scenario of DC5 display engine entry to DC5 state > * while all connectors's DPMS property set to ON > - * Driver requirement: i915, xe > - * Functionality: dpms, pm_dc > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: dc5-psr > * Description: This test validates display engine entry to DC5 state while PSR is active > - * Driver requirement: i915, xe > * Functionality: pm_dc, psr > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: dc6-dpms > * Description: Validate display engine entry to DC6 state while all connectors's > * DPMS property set to OFF > - * Driver requirement: i915, xe > - * Functionality: dpms, pm_dc > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: dc6-psr > * Description: This test validates display engine entry to DC6 state while PSR is active > - * Driver requirement: i915, xe > * Functionality: pm_dc, psr > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: dc9-dpms > * Description: This test validates display engine entry to DC9 state > - * Driver requirement: i915, xe > - * Functionality: dpms, pm_dc > - * Mega feature: Display Power > - * Test category: functionality test > */ > > /* DC State Flags */ > diff --git a/tests/intel/kms_pm_lpsp.c b/tests/intel/kms_pm_lpsp.c > index 4ac99faf7..30158f673 100644 > --- a/tests/intel/kms_pm_lpsp.c > +++ b/tests/intel/kms_pm_lpsp.c > @@ -26,8 +26,11 @@ > > /** > * TEST: kms pm lpsp > - * Description: These tests validates display Low Power Single Pipe configurations > * Category: Display > + * Description: These tests validates display Low Power Single Pipe configurations > + * Functionality: pm_lpsp > + * Mega feature: Display Power > + * Test category: functionality test > */ > > #include "igt.h" > @@ -43,16 +46,10 @@ > * SUBTEST: kms-lpsp > * Description: This test validates lpsp on all connected outputs on low power pipes > * Driver requirement: i915, xe > - * Functionality: pm_lpsp > - * Mega feature: Display Power > - * Test category: functionality test > * > * SUBTEST: screens-disabled > * Description: This test validates lpsp while all crtc are disabled > * Driver requirement: i915 > - * Functionality: pm_lpsp > - * Mega feature: Display Power > - * Test category: functionality test > */ > > #define MAX_SINK_LPSP_INFO_BUF_LEN 4096 > diff --git a/tests/intel/kms_pm_rpm.c b/tests/intel/kms_pm_rpm.c > index 14f34d904..97c886a6e 100644 > --- a/tests/intel/kms_pm_rpm.c > +++ b/tests/intel/kms_pm_rpm.c > @@ -76,9 +76,11 @@ > * > * SUBTEST: fences > * Description: Sanity test for drm fences. > + * Driver requirement: i915 > * > * SUBTEST: fences-dpms > * Description: Sanity test for drm fences with dpms. > + * Driver requirement: i915 > * Functionality: dpms, pm_rpm > * > * SUBTEST: i2c > @@ -121,9 +123,11 @@ > * > * SUBTEST: pm-caching > * Description: Test to change different cache levels & check for rpm > + * Driver requirement: i915 > * > * SUBTEST: pm-tiling > * Description: Test to change different tiling methods & check for rpm > + * Driver requirement: i915 > * Functionality: pm_rpm, tiling > * > * SUBTEST: system-suspend-modeset > diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c > index 1586d3bf0..b9e95fdfe 100644 > --- a/tests/intel/kms_psr.c > +++ b/tests/intel/kms_psr.c > @@ -26,6 +26,9 @@ > * TEST: kms psr > * Category: Display > * Description: Tests behaviour of PSR & PSR2 & PR > + * Driver requirement: i915, xe > + * Mega feature: PSR > + * Test category: functionality test > */ > > #include "igt.h" > @@ -41,18 +44,13 @@ > /** > * SUBTEST: psr_basic > * Description: Basic check for psr if it is detecting changes made in planes > - * Driver requirement: i915, xe > * Functionality: psr > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr_%s_%s > * Description: Check if psr is detecting memory mapping, rendering and plane > * operations performed on %arg[1] > * Driver requirement: i915 > * Functionality: kms_core, plane, psr > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > @@ -70,18 +68,12 @@ > * SUBTEST: psr_sprite_plane_move > * Description: Check if psr is detecting memory mapping, rendering and plane > * operations performed on sprite planes > - * Driver requirement: i915, xe > * Functionality: plane, psr > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr_%s_%s > * Description: Check if psr is detecting memory mapping, rendering and plane > * operations performed on %arg[1] planes > - * Driver requirement: i915, xe > * Functionality: kms_core, plane, psr > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > @@ -99,10 +91,7 @@ > * SUBTEST: psr_primary_%s > * Description: Check if psr is detecting memory mapping, rendering and plane > * operations performed on %arg[1] planes > - * Driver requirement: i915, xe > * Functionality: kms_core, psr > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > @@ -114,63 +103,40 @@ > * SUBTEST: psr_dpms > * Description: Check if psr is detecting changes when rendering operation is > * performed with dpms enabled or disabled > - * Driver requirement: i915, xe > * Functionality: dpms, psr > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr_no_drrs > * Description: Check if psr is detecting changes when drrs is disabled > - * Driver requirement: i915, xe > * Functionality: drrs, psr > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr_suspend > * Description: Check if psr is detecting changes when plane operation > * is performed with suspend resume cycles > - * Driver requirement: i915, xe > * Functionality: psr, suspend > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr2_dpms > * Description: Check if psr is detecting changes when rendering operation > * is performed with dpms enabled or disabled > - * Driver requirement: i915, xe > * Functionality: dpms, psr, psr2 > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr2_no_drrs > * Description: Check if psr is detecting changes when drrs is disabled > - * Driver requirement: i915, xe > * Functionality: drrs, psr, psr2 > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr2_suspend > * Description: Check if psr is detecting changes when plane operation is > * performed with suspend resume cycles > - * Driver requirement: i915, xe > * Functionality: psr, psr2, suspend > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr2_basic > * Description: Basic check for psr if it is detecting changes made in planes > - * Driver requirement: i915, xe > * Functionality: psr, psr2 > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr2_%s_%s > * Description: Check if psr2 is detecting memory mapping, rendering and plane > * operations performed on %arg[1] planes > * Driver requirement: i915 > * Functionality: kms_core, plane, psr, psr2 > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > @@ -188,18 +154,12 @@ > * SUBTEST: psr2_primary_page_flip > * Description: Check if psr is detecting memory mapping, rendering and plane > * operations performed on primary planes > - * Driver requirement: i915, xe > * Functionality: plane, psr, psr2 > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr2_primary_%s > * Description: Check if psr is detecting memory mapping, rendering and plane > * operations performed on primary planes > - * Driver requirement: i915, xe > * Functionality: kms_core, plane, psr, psr2 > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > @@ -211,10 +171,7 @@ > * SUBTEST: psr2_%s_%s > * Description: Check if psr is detecting memory mapping, rendering and plane > * operations performed on %arg[1] planes > - * Driver requirement: i915, xe > * Functionality: kms_core, plane, psr, psr2 > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > @@ -233,32 +190,24 @@ > * SUBTEST: pr_dpms > * Description: Check if pr is detecting changes when rendering operation > * is performed with dpms enabled or disabled > - * Driver requirement: i915, xe > * Functionality: dpms, pr > * Mega feature: Panel Replay > - * Test category: functionality test > * > * SUBTEST: pr_no_drrs > * Description: Check if pr is detecting changes when drrs is disabled > - * Driver requirement: i915, xe > * Functionality: drrs, pr > * Mega feature: Panel Replay > - * Test category: functionality test > * > * SUBTEST: pr_suspend > * Description: Check if pr is detecting changes when plane operation is > * performed with suspend resume cycles > - * Driver requirement: i915, xe > * Functionality: pr, suspend > * Mega feature: Panel Replay > - * Test category: functionality test > * > * SUBTEST: pr_basic > * Description: Basic check for pr if it is detecting changes made in planes > - * Driver requirement: i915, xe > * Functionality: pr > * Mega feature: Panel Replay > - * Test category: functionality test > */ > > /** > @@ -268,7 +217,6 @@ > * Driver requirement: i915 > * Functionality: kms_core, plane, pr > * Mega feature: Panel Replay > - * Test category: functionality test > * > * arg[1]: > * > @@ -286,18 +234,14 @@ > * SUBTEST: pr_primary_page_flip > * Description: Check if pr is detecting memory mapping, rendering and plane > * operations performed on primary planes > - * Driver requirement: i915, xe > * Functionality: plane, pr > * Mega feature: Panel Replay > - * Test category: functionality test > * > * SUBTEST: pr_primary_%s > * Description: Check if pr is detecting memory mapping, rendering and plane > * operations performed on primary planes > - * Driver requirement: i915, xe > * Functionality: kms_core, plane, pr > * Mega feature: Panel Replay > - * Test category: functionality test > * > * arg[1]: > * > @@ -309,10 +253,8 @@ > * SUBTEST: pr_%s_%s > * Description: Check if pr is detecting memory mapping, rendering and plane > * operations performed on %arg[1] planes > - * Driver requirement: i915, xe > * Functionality: kms_core, plane, pr > * Mega feature: Panel Replay > - * Test category: functionality test > * > * arg[1]: > * > @@ -331,26 +273,17 @@ > * SUBTEST: psr_cursor_plane_move > * Description: Check if psr is detecting the plane operations performed on > * cursor planes > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: psr > - * Mega feature: PSR > * > * SUBTEST: psr_primary_page_flip > * Description: Check if psr is detecting page-flipping operations performed > * on primary planes > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: psr > - * Mega feature: PSR > * > * SUBTEST: psr_sprite_plane_onoff > * Description: Check if psr is detecting the plane operations performed on > * sprite planes > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: psr > - * Mega feature: PSR > */ > > enum operations { > diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c > index a93d496e8..27faa93d9 100644 > --- a/tests/intel/kms_psr2_sf.c > +++ b/tests/intel/kms_psr2_sf.c > @@ -27,6 +27,10 @@ > * Category: Display > * Description: Tests to varify PSR2 selective fetch by sending multiple damaged > * areas > + * Driver requirement: i915, xe > + * Functionality: plane, psr2, selective_fetch > + * Mega feature: PSR > + * Test category: functionality test > */ > > #include "igt.h" > @@ -42,10 +46,6 @@ > * SUBTEST: %s-plane-move-continuous-%s > * Description: Test that selective fetch works on moving %arg[1] plane %arg[2] > * visible area (no update) > - * Driver requirement: i915, xe > - * Functionality: plane, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > @@ -62,53 +62,25 @@ > /** > * SUBTEST: cursor-plane-update-sf > * Description: Test that selective fetch works on cursor plane > - * Driver requirement: i915, xe > - * Functionality: cursor, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: overlay-plane-update-continuous-sf > * Description: Test that selective fetch works on overlay plane > - * Driver requirement: i915, xe > - * Functionality: plane, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: overlay-plane-update-sf-dmg-area > * Description: Test that selective fetch works on overlay plane > - * Driver requirement: i915, xe > - * Functionality: plane, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: overlay-primary-update-sf-dmg-area > * Description: Test that selective fetch works on primary plane with blended > * overlay plane > - * Driver requirement: i915, xe > - * Functionality: plane, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: plane-move-sf-dmg-area > * Description: Test that selective fetch works on moving overlay plane > - * Driver requirement: i915, xe > - * Functionality: plane, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: primary-plane-update-sf-dmg-area > * Description: Test that selective fetch works on primary plane > - * Driver requirement: i915, xe > - * Functionality: plane, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: primary-plane-update-sf-dmg-area-big-fb > * Description: Test that selective fetch works on primary plane with big fb > - * Driver requirement: i915, xe > - * Functionality: plane, psr2, selective_fetch > - * Mega feature: PSR > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Tests to varify PSR2 selective fetch by sending multiple" > diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c > index 56f35622e..96b4fd2b4 100644 > --- a/tests/intel/kms_psr2_su.c > +++ b/tests/intel/kms_psr2_su.c > @@ -26,6 +26,9 @@ > * TEST: kms psr2 su > * Category: Display > * Description: Test PSR2 selective update > + * Driver requirement: i915, xe > + * Mega feature: PSR > + * Test category: functionality test > */ > > #include "igt.h" > @@ -40,17 +43,11 @@ > /** > * SUBTEST: frontbuffer-XRGB8888 > * Description: Test that selective update works when screen changes > - * Driver requirement: i915, xe > * Functionality: fbt, psr2, selective_update > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: page_flip-%s > * Description: Test the selective update with %arg[1] when screen changes > - * Driver requirement: i915, xe > * Functionality: pixel-format, psr2, selective_update > - * Mega feature: PSR > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c > index 21814f35b..28529b1f1 100644 > --- a/tests/intel/kms_psr_stress_test.c > +++ b/tests/intel/kms_psr_stress_test.c > @@ -2,6 +2,10 @@ > /** > * TEST: kms psr stress test > * Category: Display > + * Driver requirement: i915, xe > + * Functionality: plane, psr > + * Mega feature: PSR > + * Test category: functionality test > */ > > #include "igt.h" > @@ -18,18 +22,10 @@ > * SUBTEST: flip-primary-invalidate-overlay > * Description: Mix page flips in primary plane and frontbuffer writes to overlay > * plane and check for warnings, underruns or PSR state changes > - * Driver requirement: i915, xe > - * Functionality: plane, psr > - * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: invalidate-primary-flip-overlay > * Description: Mix frontbuffer writes to the primary plane and page flips in the > * overlay plane and check for warnings, underruns or PSR state changes > - * Driver requirement: i915, xe > - * Functionality: plane, psr > - * Mega feature: PSR > - * Test category: functionality test > */ > > #define INVALIDATES_PER_SEC 15 > diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c > index 9f8bf4275..b27475ada 100644 > --- a/tests/kms_addfb_basic.c > +++ b/tests/kms_addfb_basic.c > @@ -29,6 +29,10 @@ > * TEST: kms addfb basic > * Category: Display > * Description: Sanity test for ioctls DRM_IOCTL_MODE_ADDFB2 & DRM_IOCTL_MODE_RMFB. > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -53,39 +57,22 @@ > /** > * SUBTEST: unused-%s > * Description: Test that addfb2 call fails correctly for unused %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: unused-modifier > * Description: Test that addfb2 call fails correctly for unused modifier > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * SUBTEST: clobberred-modifier > * Description: Check if addfb2 call works for clobbered modifier > * Driver requirement: i915 > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-smem-bo-on-discrete > * Description: Check if addfb2 with a system memory gem object fails correctly > * if device requires local memory framebuffers > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: legacy-format > * Description: Check if addfb2 call works for legacy formats > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -97,24 +84,12 @@ > /** > * SUBTEST: no-handle > * Description: Test that addfb2 call fails correctly without handle > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: basic > * Description: Check if addfb2 call works with given handle > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: bad-pitch-%i > * Description: bad-pitch-%arg[1]: Test that addfb2 call fails correctly for bad-pitches > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * arg[1].values: 0, 32, 63, 128, 256, 999, 1024, 65536 > */ > @@ -122,24 +97,16 @@ > /** > * SUBTEST: basic-%s-tiled-legacy > * Description: Check if addfb2 and rmfb call works for basic %arg[1] test > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * SUBTEST: framebuffer-vs-set-tiling > * Description: Check if addfb2 call works for x and y tiling > * Driver requirement: i915 > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * SUBTEST: tile-pitch-mismatch > * Description: Test that addfb2 call fails correctly for pitches mismatch > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * arg[1]: > * > @@ -150,99 +117,56 @@ > /** > * SUBTEST: size-max > * Description: Check if addfb2 call works with max size of buffer object > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: too-wide > * Description: Test that addfb2 call fails correctly with increased width of fb > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: too-high > * Description: Test that addfb2 call fails correctly with increased height of fb > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: bo-too-small > * Description: Test that addfb2 call fails correctly with small size of buffer object > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: small-bo > * Description: Check if addfb2 call works for given height > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * SUBTEST: bo-too-small-due-to-tiling > * Description: Test that addfb2 call fails correctly with small buffer object > * after changing tile > - * Driver requirement: i915 > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > */ > > /** > * SUBTEST: addfb25-modifier-no-flag > * Description: Test that addfb2 call fails correctly for x-tiling with given modifier > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * SUBTEST: addfb25-bad-modifier > * Description: Test that addfb2 call fails correctly for irrelevant modifier > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * SUBTEST: addfb25-x-tiled-mismatch-legacy > * Description: Test that addfb2 call fails correctly for irrelevant x-tiling > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * SUBTEST: addfb25-x-tiled-legacy > * Description: Check if addfb2 call works for x-tiling > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > * > * SUBTEST: addfb25-framebuffer-vs-set-tiling > * Description: Check if addfb2 call works for relevant combination of tiling and fbs > * Driver requirement: i915 > - * Test category: functionality test > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > */ > > /** > * SUBTEST: addfb25-y-tiled-%s > * Description: Check if addfb2 call works for y-tiling %arg[1] > - * Driver requirement: i915, xe > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: addfb25-yf-tiled-legacy > * Description: Check if addfb2 call works for yf-tiling > - * Driver requirement: i915, xe > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -253,19 +177,10 @@ > /** > * SUBTEST: addfb25-4-tiled > * Description: Check if addfb2 call works for tiling-4 > - * Driver requirement: i915, xe > * Functionality: kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > - */ > - > -/** > + * > * SUBTEST: invalid-%s-%s > * Description: Test that %arg[1] ioctl call fails correctly for %arg[2] object > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > * > * arg[1]: > * > @@ -281,10 +196,6 @@ > /** > * SUBTEST: master-rmfb > * Description: Check that only master can rmfb > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > static uint32_t gem_bo; > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c > index 82a8f5ef3..6fddad093 100644 > --- a/tests/kms_async_flips.c > +++ b/tests/kms_async_flips.c > @@ -29,6 +29,10 @@ > * TEST: kms async flips > * Category: Display > * Description: Test asynchronous page flips. > + * Driver requirement: i915, xe > + * Functionality: async_flips, vblank > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -42,48 +46,26 @@ > * SUBTEST: alternate-sync-async-flip > * Description: Verify the async flip functionality and the fps during async flips > * Alternate between sync and async flips > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: async-flip-with-page-flip-events > * Description: Verify the async flip functionality and the fps during async flips > * Wait for page flip events in between successive asynchronous flips > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: test-time-stamp > * Description: Verify the async flip functionality and the fps during async flips > * Verify that the async flip timestamp does not coincide with either > * previous or next vblank > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: test-cursor > * Description: Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip > - * Driver requirement: i915, xe > * Functionality: async_flips, cursor, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: crc > * Description: Use CRC to verify async flip scans out the correct framebuffer > - * Driver requirement: i915, xe > * Functionality: async_flips, crc, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-async-flip > * Description: Negative case to verify if changes in fb are rejected from kernel as expected > - * Driver requirement: i915, xe > - * Functionality: async_flips, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > #define CURSOR_POS 128 > diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c > index 9b69fc892..aa3af936a 100644 > --- a/tests/kms_atomic.c > +++ b/tests/kms_atomic.c > @@ -31,6 +31,10 @@ > * TEST: kms atomic > * Category: Display > * Description: Test atomic modesetting API > + * Driver requirement: i915, xe > + * Functionality: kms_core, plane > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include <unistd.h> > @@ -53,49 +57,27 @@ > * Description: Test abuse the atomic ioctl directly in order to test various > * invalid conditions which the libdrm wrapper won't allow us to > * create. > - * Driver requirement: i915, xe > * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: atomic-plane-damage > * Description: Simple test cases to use FB_DAMAGE_CLIPS plane property > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: test-only > * Description: Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches > * the free-standing state objects and nothing else. > - * Driver requirement: i915, xe > * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-primary-overlay-mutable-zpos > * Description: Verify that the overlay plane can cover the primary one (and > * vice versa) by changing their zpos property. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-immutable-zpos > * Description: Verify the reported zpos property of planes by making sure only > * higher zpos planes cover the lower zpos ones. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-%s-legacy > * Description: Test for KMS atomic modesetting on %arg[1] and ensure coherency > * between legacy and atomic interfaces. > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -107,10 +89,6 @@ > /** > * SUBTEST: %s-invalid-%s > * Description: Test error handling when invalid %arg[1] %arg[2] are passed > - * Driver requirement: i915, xe > - * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -123,8 +101,6 @@ > * @params-fence: fence parameters > */ > > - > - > #ifndef DRM_CAP_CURSOR_WIDTH > #define DRM_CAP_CURSOR_WIDTH 0x8 > #endif > diff --git a/tests/kms_atomic_interruptible.c b/tests/kms_atomic_interruptible.c > index 7419e0746..962c33f6f 100644 > --- a/tests/kms_atomic_interruptible.c > +++ b/tests/kms_atomic_interruptible.c > @@ -25,6 +25,9 @@ > * TEST: kms atomic interruptible > * Category: Display > * Description: Tests that interrupt various atomic ioctls. > + * Driver requirement: i915, xe > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include <signal.h> > @@ -36,10 +39,7 @@ > /** > * SUBTEST: %s-setmode > * Description: Tests the interrupt properties of %arg[1] modeset > - * Driver requirement: i915, xe > * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -50,31 +50,19 @@ > /** > * SUBTEST: legacy-cursor > * Description: Tests the interrupt properties for Cursor > - * Driver requirement: i915, xe > * Functionality: cursor, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: legacy-dpms > * Description: Tests the interrupt properties for DPMS > - * Driver requirement: i915, xe > * Functionality: dpms, kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: legacy-pageflip > * Description: Tests the interrupt properties for page flip > - * Driver requirement: i915, xe > * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: universal-setplane-%s > * Description: Tests the interrupt properties for %arg[1] > - * Driver requirement: i915, xe > * Functionality: kms_core, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c > index b8053acf7..210986f55 100644 > --- a/tests/kms_atomic_transition.c > +++ b/tests/kms_atomic_transition.c > @@ -24,6 +24,10 @@ > /** > * TEST: kms atomic transition > * Category: Display > + * Driver requirement: i915, xe > + * Functionality: plane, watermark > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -41,17 +45,10 @@ > /** > * SUBTEST: plane-primary-toggle-with-vblank-wait > * Description: Check toggling of primary plane with vblank > - * Driver requirement: i915, xe > * Functionality: plane, vblank, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-all-modeset-%s > * Description: Modeset test for all plane combinations %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -62,10 +59,7 @@ > /** > * SUBTEST: plane-all-modeset-%s > * Description: Modeset test for all plane combinations %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > * Mega feature: eDP > - * Test category: functionality test > * > * arg[1]: > * > @@ -76,10 +70,6 @@ > /** > * SUBTEST: plane-all-%s > * Description: Transition test for all plane combinations %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -92,18 +82,10 @@ > /** > * SUBTEST: plane-toggle-modeset-transition > * Description: Check toggling and modeset transition on plane > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-use-after-nonblocking-%s > * Description: Transition test with non %arg[1] and make sure commit of disabled > * plane has to complete before atomic commit on that plane > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -114,10 +96,6 @@ > /** > * SUBTEST: modeset-%s > * Description: Modeset transition tests for combinations of %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, watermark > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_bw.c b/tests/kms_bw.c > index 0199b5675..ddea7f2ff 100644 > --- a/tests/kms_bw.c > +++ b/tests/kms_bw.c > @@ -24,6 +24,10 @@ > * TEST: kms bw > * Category: Display > * Description: BW test with different resolutions > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "drm_mode.h" > @@ -35,10 +39,6 @@ > /** > * SUBTEST: linear-tiling-%d-displays-%s > * Description: bw test with %arg[2] > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1].values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 > * > diff --git a/tests/kms_color.c b/tests/kms_color.c > index 119dfc1f4..39752de81 100644 > --- a/tests/kms_color.c > +++ b/tests/kms_color.c > @@ -26,6 +26,10 @@ > * TEST: kms color > * Category: Display > * Description: Test Color Features at Pipe level > + * Driver requirement: i915, xe > + * Functionality: colorspace > + * Mega feature: Color mgmt > + * Test category: functionality test > */ > > #include "kms_color_helper.h" > @@ -33,39 +37,19 @@ > /** > * SUBTEST: degamma > * Description: Verify that degamma LUT transformation works correctly > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * SUBTEST: gamma > * Description: Verify that gamma LUT transformation works correctly > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * SUBTEST: legacy-gamma > * Description: Verify that legacy gamma LUT transformation works correctly > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * SUBTEST: legacy-gamma-reset > * Description: Verify that setting the legacy gamma LUT resets the gamma LUT > * set through GAMMA_LUT property > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * SUBTEST: ctm-%s > * Description: Check the color transformation %arg[1] > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * arg[1]: > * > @@ -83,17 +67,9 @@ > /** > * SUBTEST: deep-color > * Description: Verify that deep color works correctly > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * SUBTEST: invalid-%s-sizes > * Description: Negative check for %arg[1] sizes > - * Driver requirement: i915, xe > - * Functionality: colorspace > - * Mega feature: Color mgmt > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c > index 988f370f9..6d472ee02 100644 > --- a/tests/kms_content_protection.c > +++ b/tests/kms_content_protection.c > @@ -26,6 +26,10 @@ > * TEST: kms content protection > * Category: Display > * Description: Test content protection (HDCP) > + * Driver requirement: i915, xe > + * Functionality: hdcp1.4 > + * Mega feature: HDCP > + * Test category: functionality test > */ > > #include <poll.h> > @@ -41,49 +45,27 @@ > /** > * SUBTEST: lic > * Description: Test for the integrity of link. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > * > * SUBTEST: content-type-change > * Description: Test the content type change when the content protection already > * enabled > - * Driver requirement: i915, xe > * Functionality: hdcp1.4, hdcp2.2 > - * Mega feature: HDCP > - * Test category: functionality test > * > * SUBTEST: mei-interface > * Description: Test the teardown and rebuild of the interface between Intel > * and mei hdcp. > - * Driver requirement: i915, xe > * Functionality: hdcp1.4, hdcp2.2 > - * Mega feature: HDCP > - * Test category: functionality test > * > * SUBTEST: srm > * Description: This test writes the facsimile SRM into the /lib/firmware/ and > * check the kernel parsing of it by invoking the hdcp authentication. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > * > * SUBTEST: uevent > * Description: Test to detect the HDCP status change when we are reading the > * uevent sent with the corresponding connector id and property id. > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > * > * SUBTEST: %s > * Description: Test content protection with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: hdcp1.4 > - * Mega feature: HDCP > - * Test category: functionality test > * > * arg[1]: > * > @@ -96,10 +78,7 @@ > /** > * SUBTEST: dp-mst-%s > * Description: Test Content protection %arg[1] over DP MST. > - * Driver requirement: i915, xe > * Functionality: hdcp1.4, mst > - * Mega feature: HDCP > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c > index 3d1c3bcd3..f747b919f 100644 > --- a/tests/kms_cursor_crc.c > +++ b/tests/kms_cursor_crc.c > @@ -33,6 +33,10 @@ > * compares it with the CRC value obtained when the cursor plane > * was disabled and its drawing is directly inserted on the PF by > * software. > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -45,24 +49,14 @@ > /** > * SUBTEST: cursor-dpms > * Description: Check random placement of a cursor with DPMS. > - * Driver requirement: i915, xe > * Functionality: cursor, dpms > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: cursor-suspend > * Description: Check random placement of a cursor with suspend. > - * Driver requirement: i915, xe > * Functionality: cursor, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: cursor-%s > * Description: %arg[1] > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -78,10 +72,6 @@ > /** > * SUBTEST: cursor-%s-%s > * Description: Check if a %arg[2] cursor is %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_cursor_edge_walk.c b/tests/kms_cursor_edge_walk.c > index d9d140409..54e9dc92f 100644 > --- a/tests/kms_cursor_edge_walk.c > +++ b/tests/kms_cursor_edge_walk.c > @@ -25,8 +25,11 @@ > /** > * TEST: kms cursor edge walk > * Category: Display > - * Description: Exercise CHV pipe C cursor fail > * Description: Test to check different cursor sizes by walking different edges of screen > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -39,10 +42,6 @@ > /** > * SUBTEST: %s-%s > * Description: Checking cursor size %arg[1] by walking %arg[2] of screen > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c > index 2e2710ae4..0017659d4 100644 > --- a/tests/kms_cursor_legacy.c > +++ b/tests/kms_cursor_legacy.c > @@ -26,6 +26,10 @@ > * TEST: kms cursor legacy > * Category: Display > * Description: Stress legacy cursor ioctl > + * Driver requirement: i915, xe > + * Functionality: cursor > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include <sched.h> > @@ -42,10 +46,6 @@ > * Description: Test checks how many cursor updates we can fit between vblanks > * on single/all pipes with different modes, priority and number > * of processes > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -62,17 +62,9 @@ > /** > * SUBTEST: basic-busy-flip-before-cursor-%s > * Description: Cursor test with %arg[1] mode > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: cursor > - * Mega feature: General Display Features > * > * SUBTEST: basic-busy-flip-before-cursor-varying-size > * Description: Change the size of cursor b/w 64*64 to maxw x maxh. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -83,17 +75,9 @@ > /** > * SUBTEST: basic-flip-after-cursor-%s > * Description: Cursor test with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: cursor > - * Mega feature: General Display Features > * > * SUBTEST: basic-flip-before-cursor-%s > * Description: Cursor test with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: cursor > - * Mega feature: General Display Features > * > * arg[1]: > * > @@ -110,10 +94,6 @@ > * and full screen primary plane.\n" > * - toggle: which toggles cursor visibility and make sure cursor moves > * between updates. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -135,10 +115,6 @@ > * and full screen primary plane.\n" > * - toggle: which toggles cursor visibility and make sure cursor moves > * between updates. > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -151,26 +127,14 @@ > * SUBTEST: long-nonblocking-modeset-vs-cursor-atomic > * Description: Test checks how many cursor updates we can fit between vblanks > * on all pipes with different modes, priority and number of processes > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: nonblocking-modeset-vs-cursor-atomic > * Description: Test checks how many cursor updates we can fit between vblanks > * on all pipes with different modes, priority and number of processes > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s-%s > * Description: This test executes flips on both CRTCs while running cursor > * updates in parallel > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -189,10 +153,6 @@ > * SUBTEST: 2x-%s-atomic > * Description: This test executes flips on both CRTCs while running cursor > * updates in parallel > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -204,10 +164,6 @@ > * SUBTEST: %s-%s > * Description: The essence of the basic test is that neither the cursor nor the > * nonblocking flip stall the application of the next > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -231,10 +187,6 @@ > /** > * SUBTEST: 2x-%s-%s > * Description: This test executes flips on both CRTCs while running cursor updates in parallel > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -252,17 +204,9 @@ > /** > * SUBTEST: flip-vs-cursor-crc-%s > * Description: this test perform a page flip followed by a cursor update > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: flip-vs-cursor-busy-crc-%s > * Description: this test perform a busy bo update followed by a cursor update > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -274,10 +218,6 @@ > * SUBTEST: modeset-atomic-cursor-hotspot > * Description: Test changes the cursor hotspot and checks that the property is > * updated accordignly > - * Driver requirement: i915, xe > - * Functionality: cursor > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > #if defined(__x86_64__) || defined(__i386__) > diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c > index a0a831724..1f0f811c8 100644 > --- a/tests/kms_display_modes.c > +++ b/tests/kms_display_modes.c > @@ -28,6 +28,9 @@ > * TEST: kms display modes > * Category: Display > * Description: Test Display Modes > + * Driver requirement: i915, xe > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -36,18 +39,12 @@ > * SUBTEST: extended-mode-basic > * Description: Test for validating display extended mode with a pair of connected > * displays > - * Driver requirement: i915, xe > * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: mst-extended-mode-negative > * Description: Negative test for validating display extended mode with a pair > * of connected 2k-4k or 4k-4k displays. > - * Driver requirement: i915, xe > * Functionality: kms_core, mst > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > #define HDISPLAY_4K 3840 > diff --git a/tests/kms_dither.c b/tests/kms_dither.c > index 5683fe5c5..af7b7f05c 100644 > --- a/tests/kms_dither.c > +++ b/tests/kms_dither.c > @@ -29,6 +29,10 @@ > * TEST: kms dither > * Category: Display > * Description: Test Dithering block status > + * Driver requirement: i915, xe > + * Functionality: colorspace, kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -39,17 +43,9 @@ > /** > * SUBTEST: fb-8bpc-vs-panel-6bpc > * Description: Framebuffer BPC:8, Panel BPC:6, Expected Dither:Enable > - * Driver requirement: i915, xe > - * Functionality: colorspace, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: fb-8bpc-vs-panel-8bpc > * Description: Framebuffer BPC:8, Panel BPC:8, Expected Dither:Disable > - * Driver requirement: i915, xe > - * Functionality: colorspace, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test Dithering block status"); > diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c > index 7aec4e78c..24c71ed22 100644 > --- a/tests/kms_feature_discovery.c > +++ b/tests/kms_feature_discovery.c > @@ -28,6 +28,10 @@ > * Description: A metatest that checks for \"features\" presence. > * The subtests here should only skip or pass, > * anything else means we have a serious problem. > + * Driver requirement: i915, xe > + * Functionality: feature_discovery > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -42,45 +46,28 @@ > /** > * SUBTEST: display > * Description: Make sure that we have display support. > - * Driver requirement: i915, xe > - * Functionality: feature_discovery > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: display-%dx > * Description: Make sure that we have display support with %arg[1] > * outputs connected. > - * Driver requirement: i915, xe > - * Functionality: feature_discovery > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: chamelium > * Description: Make sure that Chamelium is configured and reachable. > - * Driver requirement: i915, xe > * Functionality: feature_discovery, chamelium > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: psr1 > * Description: Make sure that we have eDP panel with PSR1 support. > - * Driver requirement: i915, xe > * Functionality: feature_discovery, psr1, eDP > * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: psr2 > * Description: Make sure that we have eDP panel with PSR2 support. > - * Driver requirement: i915, xe > * Functionality: feature_discovery, psr2, eDP > * Mega feature: PSR > - * Test category: functionality test > * > * SUBTEST: dp-mst > * Description: Make sure that we have DP-MST configuration. > - * Driver requirement: i915, xe > * Functionality: feature_discovery, mst > - * Mega feature: General Display Features > * Test category: functionality test > * > * arg[1].values: 1, 2, 3, 4 > diff --git a/tests/kms_flip.c b/tests/kms_flip.c > index 9afb78757..3973ec862 100755 > --- a/tests/kms_flip.c > +++ b/tests/kms_flip.c > @@ -25,6 +25,10 @@ > * TEST: kms flip > * Category: Display > * Description: Tests for validating modeset, dpms and pageflips > + * Driver requirement: i915, xe > + * Functionality: vblank > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "config.h" > @@ -59,16 +63,12 @@ > * Description: %arg[1] test to validate pageflips with available fences > * Driver requirement: i915 > * Functionality: gtt, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s > * Description: %arg[1] test to validate pageflips along with available fences > * on a pair of connected displays > * Driver requirement: i915 > * Functionality: gtt, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -79,10 +79,7 @@ > /** > * SUBTEST: dpms-off-%s > * Description: %arg[1] test to validate pageflips by disabling other connectors usng dpms > - * Driver requirement: i915, xe > * Functionality: dpms, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -93,10 +90,7 @@ > /** > * SUBTEST: %s > * Description: %arg[1] test to validate pageflips with large BO in size > - * Driver requirement: i915, xe > * Functionality: kms_gem_interop, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -107,17 +101,11 @@ > /** > * SUBTEST: %s > * Description: Basic test to validate %arg[1] > - * Driver requirement: i915, xe > * Functionality: hang, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s > * Description: Test to validate %arg[1] on a pair of connected displays > - * Driver requirement: i915, xe > * Functionality: hang, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -128,17 +116,9 @@ > /** > * SUBTEST: %s > * Description: Basic test to validate %arg[1] > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s > * Description: Test to validate %arg[1] on a pair of connected displays > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -161,18 +141,12 @@ > /** > * SUBTEST: %s > * Description: %arg[1] test to validate pageflips with suspend cycle > - * Driver requirement: i915, xe > * Functionality: suspend, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s > * Description: %arg[1] test to validate pageflips with suspend cycle on a pair > * of connected displays > - * Driver requirement: i915, xe > * Functionality: suspend, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -183,31 +157,17 @@ > /** > * SUBTEST: %s > * Description: Basic test to validate %arg[1] > - * Driver requirement: i915, xe > * Functionality: dpms, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s > * Description: Basic test to validate %arg[1] on a pair of connected displays > - * Driver requirement: i915, xe > * Functionality: dpms, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: %s-interruptible > * Description: Basic test to validate %arg[1] > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s-interruptible > * Description: Basic test to validate %arg[1] on a pair of connected displays > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -222,17 +182,10 @@ > * SUBTEST: 2x-flip-vs-dpms > * Description: Basic test to validate pageflip along with dpms on a pair of > * connected displays > - * Driver requirement: i915, xe > * Functionality: dpms, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s > * Description: Basic test to validate %arg[1] on a pair of connected displays > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -244,18 +197,10 @@ > /** > * SUBTEST: %s-interruptible > * Description: Basic test for validating modeset, dpms and pageflips > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-%s-interruptible > * Description: Test for validating modeset, dpms and pageflips with a pair of > * connected displays > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -277,31 +222,16 @@ > /** > * SUBTEST: basic-plain-flip > * Description: Basic test for validating page flip > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: vblank > - * Mega feature: General Display Features > * > * SUBTEST: nonblocking-read > * Description: Tests that nonblocking reading fails correctly > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: basic-flip-vs-dpms > * Description: Basic test to valide pageflip with dpms > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: dpms, vblank > - * Mega feature: General Display Features > * > * SUBTEST: basic-flip-vs-%s > * Description: Basic test to valide pageflip with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: vblank > - * Mega feature: General Display Features > * > * arg[1]: > * > diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c > index 55e6a7767..392a02f7e 100644 > --- a/tests/kms_force_connector_basic.c > +++ b/tests/kms_force_connector_basic.c > @@ -26,6 +26,10 @@ > * TEST: kms force connector basic > * Category: Display > * Description: Check the debugfs force connector/edid features work correctly. > + * Driver requirement: i915, xe > + * Functionality: force_connector > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -35,29 +39,15 @@ > * Description: Test to detect forced load. > * Driver requirement: i915 > * Functionality: force_connector, vga > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: force-connector-state > * Description: Test to check the forced connector state > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: force_connector > - * Mega feature: General Display Features > * > * SUBTEST: force-edid > * Description: Test to check the values after forcing edid > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: force_connector > - * Mega feature: General Display Features > * > * SUBTEST: prune-stale-modes > * Description: Tests pruning of stale modes > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: force_connector > - * Mega feature: General Display Features > */ > > IGT_TEST_DESCRIPTION("Check the debugfs force connector/edid features work" > diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c > index b4a155e2d..e6b8dd873 100644 > --- a/tests/kms_getfb.c > +++ b/tests/kms_getfb.c > @@ -31,6 +31,10 @@ > * TEST: kms getfb > * Category: Display > * Description: Tests GETFB and GETFB2 ioctls. > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -54,10 +58,6 @@ > /** > * SUBTEST: getfb-handle-%s > * Description: Tests error handling %arg[1] > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -71,18 +71,11 @@ > * SUBTEST: getfb-reject-ccs > * Description: Tests error handling while requesting CCS buffers it should > * refuse because getfb supports returning a single buffer handle. > - * Driver requirement: i915, xe > * Functionality: ccs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: getfb-%s-different-handles > * Description: Tests error handling while requesting for two different handles > * from %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -93,24 +86,13 @@ > /** > * SUBTEST: getfb2-accept-ccs > * Description: Tests outputs are correct when retrieving a CCS framebuffer. > - * Driver requirement: i915, xe > * Functionality: ccs, kms_gem_interop, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: getfb2-into-addfb2 > * Description: Output check by passing the output of GETFB2 into ADDFB2. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: getfb2-handle-%s > * Description: Tests error handling %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -122,10 +104,6 @@ > /** > * SUBTEST: %s-handle-protection > * Description: Make sure %arg[1] return handles if caller is non-root or non-master. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c > index 3a279e2c9..9691f2818 100644 > --- a/tests/kms_hdmi_inject.c > +++ b/tests/kms_hdmi_inject.c > @@ -28,6 +28,9 @@ > * Description: Test that in-kernel EDID parsing is producing expected results > * by forcing a HDMI connector with a known EDID and checking that > * the metadata exposed to user space matches. > + * Driver requirement: i915, xe > + * Mega feature: HDMI > + * Test category: functionality test > */ > > #include "config.h" > @@ -43,18 +46,12 @@ > * SUBTEST: inject-4k > * Description: Make sure that 4K modes exposed by DRM match the forced EDID and > * modesetting using it succeed. > - * Driver requirement: i915, xe > * Functionality: force_connector, hdmi_edid > - * Mega feature: HDMI > - * Test category: functionality test > * > * SUBTEST: inject-audio > * Description: Make sure that audio information exposed by ALSA match the forced > * EDID. > - * Driver requirement: i915, xe > * Functionality: audio, force_connector > - * Mega feature: HDMI > - * Test category: functionality test > */ > > #define HDISPLAY_4K 3840 > diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c > index 215f81892..4dd2eda37 100644 > --- a/tests/kms_hdr.c > +++ b/tests/kms_hdr.c > @@ -24,6 +24,10 @@ > * TEST: kms hdr > * Category: Display > * Description: Test HDR metadata interfaces and bpc switch > + * Driver requirement: i915, xe > + * Functionality: colorspace, hdr > + * Mega feature: HDR > + * Test category: functionality test > */ > > #include "igt.h" > @@ -35,59 +39,31 @@ > /** > * SUBTEST: bpc-switch > * Description: Tests switching between different display output bpc modes > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > * > * SUBTEST: bpc-switch-dpms > * Description: Tests switching between different display output bpc modes with dpms > - * Driver requirement: i915, xe > * Functionality: colorspace, dpms, hdr > - * Mega feature: HDR > - * Test category: functionality test > * > * SUBTEST: bpc-switch-suspend > * Description: Tests switching between different display output bpc modes with suspend > - * Driver requirement: i915, xe > * Functionality: colorspace, hdr, suspend > - * Mega feature: HDR > - * Test category: functionality test > * > * SUBTEST: invalid-hdr > * Description: Test to ensure HDR is not enabled on non-HDR panel > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > * > * SUBTEST: invalid-metadata-sizes > * Description: Tests invalid HDR metadata sizes > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > * > * SUBTEST: static-toggle-dpms > * Description: Tests static toggle with dpms > - * Driver requirement: i915, xe > * Functionality: colorspace, dpms, hdr > - * Mega feature: HDR > - * Test category: functionality test > * > * SUBTEST: static-toggle-suspend > * Description: Tests static toggle with suspend > - * Driver requirement: i915, xe > * Functionality: colorspace, hdr, suspend > - * Mega feature: HDR > - * Test category: functionality test > * > * SUBTEST: static-%s > * Description: Tests %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: colorspace, hdr > - * Mega feature: HDR > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c > index 77cf4d609..4fd644594 100644 > --- a/tests/kms_invalid_mode.c > +++ b/tests/kms_invalid_mode.c > @@ -27,6 +27,10 @@ > * Category: Display > * Description: Make sure all modesets are rejected when the requested mode is > * invalid > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -37,10 +41,6 @@ > * SUBTEST: %s > * Description: Make sure all modesets are rejected when the requested mode > * (%arg[1]) is invalid > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_lease.c b/tests/kms_lease.c > index 5c5a23fed..8ac58af38 100644 > --- a/tests/kms_lease.c > +++ b/tests/kms_lease.c > @@ -25,6 +25,10 @@ > * TEST: kms lease > * Category: Display > * Description: Test of CreateLease. > + * Driver requirement: i915, xe > + * Functionality: lease > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -48,155 +52,71 @@ > /** > * SUBTEST: atomic-implicit-crtc > * Description: Negative test by using a different crtc with atomic ioctl > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: cursor-implicit-plane > * Description: Negative test by using a non-primary plane with setcursor ioctl > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: empty-lease > * Description: Check that creating an empty lease works > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: implicit-plane-lease > * Description: Tests the implicitly added planes. > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-create-leases > * Description: Tests error handling while creating invalid corner-cases for > * create-lease ioctl > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-uevent > * Description: Tests all the uevent cases > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-again > * Description: Tests leasing objects more than once > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-get > * Description: Tests getting the required contents of a lease > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-invalid-connector > * Description: Tests leasing an invalid connector > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-invalid-crtc > * Description: Tests leasing an invalid crtc > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-invalid-plane > * Description: Tests leasing an invalid plane > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-revoke > * Description: Tests revocation of lease > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-unleased-connector > * Description: Negative test by trying to use an unleased connector > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lease-unleased-crtc > * Description: Negative test by trying to use an unleased crtc > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: lessee-list > * Description: Check if listed lease is same as created one > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: master-vs-lease > * Description: Tests the drop/set_master interactions. > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: multimaster-lease > * Description: Tests that the 2nd master can only create leases while being > * active master, and that leases on the first master don't prevent > * lease creation for the 2nd master. > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: page-flip-implicit-plane > * Description: Negative test by using a non-primary plane with the page flip ioctl > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: possible-crtcs-filtering > * Description: Tests that possible_crtcs logically match between master and > * lease, and that the values are correctly renumbered on the lease > * side. > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: setcrtc-implicit-plane > * Description: Negative test by using a non-primary plane with the setcrtc ioctl > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: simple-lease > * Description: Check if create lease ioctl call works > - * Driver requirement: i915, xe > - * Functionality: lease > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test of CreateLease."); > diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c > index af0c756ed..4b5d9d5ab 100644 > --- a/tests/kms_panel_fitting.c > +++ b/tests/kms_panel_fitting.c > @@ -26,6 +26,10 @@ > * TEST: kms panel fitting > * Category: Display > * Description: Test display panel fitting > + * Driver requirement: i915, xe > + * Functionality: eDP, panel_fitting, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -36,17 +40,9 @@ > /** > * SUBTEST: atomic-fastset > * Description: Tests panel fitting usages with atomic fastset. > - * Driver requirement: i915, xe > - * Functionality: eDP, panel_fitting, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: legacy > * Description: Tests panel fitting usages with legacy style commit. > - * Driver requirement: i915, xe > - * Functionality: eDP, panel_fitting, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test display panel fitting"); > diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c > index 4fed582b4..3c12d8098 100644 > --- a/tests/kms_pipe_crc_basic.c > +++ b/tests/kms_pipe_crc_basic.c > @@ -26,6 +26,10 @@ > * TEST: kms pipe crc basic > * Category: Display > * Description: Tests behaviour of CRC > + * Driver requirement: i915, xe > + * Functionality: crc > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -39,61 +43,32 @@ > /** > * SUBTEST: bad-source > * Description: Tests error handling when the bad source is set. > - * Driver requirement: i915, xe > - * Functionality: crc > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: read-crc > * Description: Test for pipe CRC reads > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > * > * SUBTEST: read-crc-frame-sequence > * Description: Tests the pipe CRC read and ensure frame sequence > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > * > * SUBTEST: nonblocking-crc > * Description: Test for O_NONBLOCK CRC reads > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > * > * SUBTEST: nonblocking-crc-frame-sequence > * Description: Test for O_NONBLOCK CRC reads and ensure frame sequence > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: crc > - * Mega feature: General Display Features > * > * SUBTEST: suspend-read-crc > * Description: Suspend test for pipe CRC reads > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: crc, suspend > - * Mega feature: General Display Features > * > * SUBTEST: hang-read-crc > * Description: Hang test for pipe CRC read > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: crc, hang > - * Mega feature: General Display Features > */ > > /** > * SUBTEST: compare-crc-sanitycheck-%s > * Description: Basic sanity check for CRC mismatches with %arg[1] > - * Driver requirement: i915, xe > - * Test category: functionality test > * Functionality: crc, pixel_format > - * Mega feature: General Display Features > * > * arg[1]: > * > @@ -105,10 +80,6 @@ > * SUBTEST: disable-crc-after-crtc > * Description: Check that disabling CRCs on a CRTC after having disabled the > * CRTC does not cause issues. > - * Driver requirement: i915, xe > - * Functionality: crc > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > static bool extended; > diff --git a/tests/kms_plane.c b/tests/kms_plane.c > index 29cf45974..e50a94578 100644 > --- a/tests/kms_plane.c > +++ b/tests/kms_plane.c > @@ -28,6 +28,9 @@ > * TEST: kms plane > * Category: Display > * Description: Testes for KMS Plane > + * Driver requirement: i915, xe > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -41,25 +44,16 @@ > /** > * SUBTEST: planar-pixel-format-settings > * Description: verify planar settings for pixel format are handled correctly > - * Driver requirement: i915, xe > * Functionality: pixel_format, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-position-%s > * Description: Verify plane position using two planes to create a %arg[1] > - * Driver requirement: i915, xe > * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-position-hole-dpms > * Description: Verify plane position using two planes to create a partially > * covered screen and check for DPMS > - * Driver requirement: i915, xe > * Functionality: dpms, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -70,18 +64,12 @@ > /** > * SUBTEST: plane-panning-%s > * Description: Verify plane panning at %arg[1] using primary plane > - * Driver requirement: i915, xe > * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-panning-bottom-right-suspend > * Description: Verify plane panning at bottom-right position with suspend using > * primary plane > - * Driver requirement: i915, xe > * Functionality: plane, suspend > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -92,10 +80,7 @@ > /** > * SUBTEST: pixel-%s > * Description: verify the pixel formats for given plane and pipe > - * Driver requirement: i915, xe > * Functionality: pixel_format, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c > index d37407150..eaec37661 100644 > --- a/tests/kms_plane_alpha_blend.c > +++ b/tests/kms_plane_alpha_blend.c > @@ -28,6 +28,10 @@ > * TEST: kms plane alpha blend > * Category: Display > * Description: Test plane alpha and blending mode properties > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -35,10 +39,6 @@ > /** > * SUBTEST: alpha-%s > * Description: Test to %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -52,25 +52,13 @@ > /** > * SUBTEST: coverage-vs-premult-vs-constant > * Description: Tests pipe coverage blending properties. > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: coverage-7efc > * Description: Uses alpha values 0x7e and 0xfc to validate fg.alpha and > * plane_alpha are swappable on coverage blend mode. > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: constant-alpha-%s > * Description: Tests plane alpha and blending properties with %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c > index 55ddffe44..dd33d8129 100644 > --- a/tests/kms_plane_cursor.c > +++ b/tests/kms_plane_cursor.c > @@ -24,6 +24,10 @@ > * TEST: kms plane cursor > * Category: Display > * Description: Tests cursor interactions with primary and overlay planes. > + * Driver requirement: i915, xe > + * Functionality: cursor, plane > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -31,25 +35,13 @@ > /** > * SUBTEST: overlay > * Description: Tests atomic cursor positioning on primary plane and overlay plane > - * Driver requirement: i915, xe > - * Functionality: cursor, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: primary > * Description: Tests atomic cursor positioning on primary plane > - * Driver requirement: i915, xe > - * Functionality: cursor, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: viewport > * Description: Tests atomic cursor positioning on primary plane and overlay plane > * with buffer larger than viewport used for display > - * Driver requirement: i915, xe > - * Functionality: cursor, plane > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > /* > diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c > index 13158bf99..ef85e8fb9 100644 > --- a/tests/kms_plane_lowres.c > +++ b/tests/kms_plane_lowres.c > @@ -27,6 +27,10 @@ > * Category: Display > * Description: Test atomic mode setting with a plane by switching between high > * and low resolutions > + * Driver requirement: i915, xe > + * Functionality: plane, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -41,18 +45,11 @@ > * SUBTEST: tiling-none > * Description: Tests the visibility of the planes when switching between high > * and low resolution with Linear buffer (no tiling) > - * Driver requirement: i915, xe > * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: tiling-%s > * Description: Tests the visibility of the planes when switching between high > * and low resolution with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c > index 6239e225a..6bffb1f68 100644 > --- a/tests/kms_plane_multiple.c > +++ b/tests/kms_plane_multiple.c > @@ -26,6 +26,10 @@ > * TEST: kms plane multiple > * Category: Display > * Description: Test atomic mode setting with multiple planes. > + * Driver requirement: i915, xe > + * Functionality: plane, tiling > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -41,19 +45,12 @@ > * Description: Check that the kernel handles atomic updates of multiple planes > * correctly by changing their geometry and making sure the changes > * are reflected immediately after each commit. > - * Driver requirement: i915, xe > * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: tiling-%s > * Description: Check that the kernel handles atomic updates of multiple planes > * correctly by changing their geometry and making sure the changes > * are reflected immediately after each commit. > - * Driver requirement: i915, xe > - * Functionality: plane, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c > index e175c75d8..acb4a1da1 100644 > --- a/tests/kms_plane_scaling.c > +++ b/tests/kms_plane_scaling.c > @@ -26,6 +26,10 @@ > * TEST: kms plane scaling > * Category: Display > * Description: Test display plane scaling > + * Driver requirement: i915, xe > + * Functionality: plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -35,24 +39,12 @@ > /** > * SUBTEST: plane-scaler-unity-scaling-with-modifiers > * Description: Tests scaling with modifiers, unity scaling. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-scaler-with-clipping-clamping-modifiers > * Description: Tests scaling with clipping and clamping, modifiers. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-upscale-%s-with-modifiers > * Description: Tests upscaling with modifiers %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -63,10 +55,6 @@ > /** > * SUBTEST: plane-downscale-factor-%s-with-modifiers > * Description: Tests downscaling with modifiers for %arg[1] scaling factor. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -78,24 +66,12 @@ > /** > * SUBTEST: plane-scaler-unity-scaling-with-rotation > * Description: Tests scaling with rotation, unity scaling. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-scaler-with-clipping-clamping-rotation > * Description: Tests scaling with clipping and clamping, rotation. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-upscale-%s-with-rotation > * Description: Tests upscaling with rotation %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -106,10 +82,6 @@ > /** > * SUBTEST: plane-downscale-factor-%s-with-rotation > * Description: Tests downscaling with rotation for %arg[1] scaling factor. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -121,24 +93,15 @@ > /** > * SUBTEST: plane-scaler-unity-scaling-with-pixel-format > * Description: Tests scaling with pixel formats, unity scaling. > - * Driver requirement: i915, xe > * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-scaler-with-clipping-clamping-pixel-formats > * Description: Tests scaling with clipping and clamping, pixel formats. > - * Driver requirement: i915, xe > * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: plane-upscale-%s-with-pixel-format > * Description: Tests upscaling with pixel formats %arg[1]. > - * Driver requirement: i915, xe > * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -149,10 +112,7 @@ > /** > * SUBTEST: plane-downscale-factor-%s-with-pixel-format > * Description: Tests downscaling with pixel formats for %arg[1] scaling factor. > - * Driver requirement: i915, xe > * Functionality: pixel_formats, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -164,10 +124,6 @@ > /** > * SUBTEST: planes-downscale-factor-%s > * Description: Tests downscaling of 2 planes for %arg[1] scaling factor. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -180,10 +136,6 @@ > * SUBTEST: planes-downscale-factor-%s-%s > * Description: Tests downscaling (scaling factor %arg[1]) and upscaling (%arg[2]) > * of 2 planes. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -201,17 +153,9 @@ > /** > * SUBTEST: planes-scaler-unity-scaling > * Description: Tests scaling of 2 planes, unity scaling. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: planes-upscale-%s > * Description: Tests upscaling of 2 planes %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -223,10 +167,6 @@ > * SUBTEST: planes-%s-downscale-factor-%s > * Description: Tests scaling (%arg[1]) and downscaling (scaling factor %arg[2]) > * of 2 planes. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -244,31 +184,15 @@ > /** > * SUBTEST: invalid-num-scalers > * Description: Negative test for number of scalers per pipe. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: 2x-scaler-multi-pipe > * Description: Tests scaling with multi-pipe. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-parameters > * Description: Test parameters which should not be accepted > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: intel-max-src-size > * Description: Test for validating max source size. > - * Driver requirement: i915, xe > - * Functionality: plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test display plane scaling"); > diff --git a/tests/kms_prime.c b/tests/kms_prime.c > index 1e985fdc4..135c75168 100644 > --- a/tests/kms_prime.c > +++ b/tests/kms_prime.c > @@ -25,6 +25,10 @@ > * TEST: kms prime > * Category: Display > * Description: Prime tests, focusing on KMS side > + * Driver requirement: i915, xe > + * Functionality: hybrid, kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -40,25 +44,14 @@ > /** > * SUBTEST: D3hot > * Description: Validate pci state of dGPU when dGPU is idle and scanout is on iGPU > - * Driver requirement: i915, xe > - * Functionality: hybrid, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: basic-modeset-hybrid > * Description: Basic modeset on the one device when the other device is active > - * Driver requirement: i915, xe > - * Functionality: hybrid, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: basic-crc-%s > * Description: Make a dumb color buffer, export to another device and compare > * the CRCs with a buffer native to that device > - * Driver requirement: i915, xe > * Functionality: crc, hybrid, kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_prop_blob.c b/tests/kms_prop_blob.c > index 199c673e3..7e7924618 100644 > --- a/tests/kms_prop_blob.c > +++ b/tests/kms_prop_blob.c > @@ -29,6 +29,10 @@ > * TEST: kms prop blob > * Category: Display > * Description: Tests behaviour of mass-data 'blob' properties. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -40,17 +44,9 @@ > /** > * SUBTEST: blob-multiple > * Description: Test validates destroying multiple properties explicitly works as needed. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: blob-prop-%s > * Description: Tests validates the %arg[1] of the properties created. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -62,17 +58,9 @@ > /** > * SUBTEST: basic > * Description: Test to ensure property support exists > - * Driver requirement: i915, xe > - * Test category: functionality test > - * Functionality: kms_core > - * Mega feature: General Display Features > * > * SUBTEST: invalid-%s-%s > * Description: Tests error handling when invalid properties are %ar[1] with %arg[2]. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_properties.c b/tests/kms_properties.c > index 33c4156bf..bd414f534 100644 > --- a/tests/kms_properties.c > +++ b/tests/kms_properties.c > @@ -25,6 +25,10 @@ > * TEST: kms properties > * Category: Display > * Description: Test to validate the properties of all planes, crtc and connectors > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -38,10 +42,6 @@ > /** > * SUBTEST: %s-properties-%s > * Description: Tests %arg[1] properties with %arg[2] commit > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -60,10 +60,6 @@ > * SUBTEST: get_properties-sanity-%s > * Description: Test validates the properties of all planes, crtc and connectors > * with %arg[1] commit > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c > index c102c9583..39e8bbd55 100644 > --- a/tests/kms_rmfb.c > +++ b/tests/kms_rmfb.c > @@ -26,6 +26,10 @@ > * Category: Display > * Description: This tests rmfb and close-fd behavior. In these casesthe > * framebuffers should be removed from the crtc. > + * Driver requirement: i915, xe > + * Functionality: kms_gem_interop > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -40,18 +44,10 @@ > * SUBTEST: close-fd > * Description: RMFB is supposed to free the framebuffers from any and all planes > * so test this and make sure it works with fd close and reopen. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: rmfb-ioctl > * Description: RMFB is supposed to free the framebuffers from any and all planes > * so test this and make sure it works. > - * Driver requirement: i915, xe > - * Functionality: kms_gem_interop > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > #ifndef DRM_CAP_CURSOR_WIDTH > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c > index bb082af68..8d8c53b5f 100644 > --- a/tests/kms_rotation_crc.c > +++ b/tests/kms_rotation_crc.c > @@ -26,6 +26,10 @@ > * TEST: kms rotation crc > * Category: Display > * Description: Tests different rotations with different planes & formats > + * Driver requirement: i915, xe > + * Functionality: plane, rotation > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -35,10 +39,6 @@ > /** > * SUBTEST: %s-rotation-180 > * Description: Rotation test with 180 degree for %arg[1] planes > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -50,10 +50,6 @@ > /** > * SUBTEST: %s-rotation-%d > * Description: Rotation test with %arg[2] degree for %arg[1] planes of gen9+ > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -66,33 +62,19 @@ > /** > * SUBTEST: bad-pixel-format > * Description: Checking unsupported pixel format for gen9+ with 90 degree of rotation > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: bad-tiling > * Description: Checking unsupported tiling for gen9+ with 90 degree of rotation > - * Driver requirement: i915, xe > * Functionality: plane, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: exhaust-fences > * Description: This test intends to check for fence leaks exhaustively > - * Driver requirement: i915 > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > /** > * SUBTEST: primary-%s-tiled-reflect-x-%d > * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane > - * Driver requirement: i915, xe > * Functionality: plane, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -107,10 +89,7 @@ > /** > * SUBTEST: primary-%s-tiled-reflect-x-%d > * Description: Test for %arg[1] & %arg[2] degree rotation on primary plane > - * Driver requirement: i915, xe > * Functionality: plane, rotation, tiling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -121,27 +100,15 @@ > * > * SUBTEST: sprite-rotation-90-pos-100-0 > * Description: Rotation test with 90 degree for a plane of gen9+ with given position > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > /** > * SUBTEST: multiplane-rotation > * Description: Rotation test on both planes by making them fully visible > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: multiplane-rotation-cropping-%s > * Description: Rotation test on both planes by cropping left/%arg[1] corner of > * primary plane and right/%arg[1] corner of sprite plane > - * Driver requirement: i915, xe > - * Functionality: plane, rotation > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c > index 960e7d84b..add6e77c9 100644 > --- a/tests/kms_scaling_modes.c > +++ b/tests/kms_scaling_modes.c > @@ -28,6 +28,10 @@ > * TEST: kms scaling modes > * Category: Display > * Description: Test display scaling modes > + * Driver requirement: i915, xe > + * Functionality: eDP, plane, scaling > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -35,10 +39,6 @@ > /** > * SUBTEST: scaling-mode-%s > * Description: Tests %arg[1] display scaling mode > - * Driver requirement: i915, xe > - * Functionality: eDP, plane, scaling > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_selftest.c b/tests/kms_selftest.c > index 30fc58d90..0ecb825db 100644 > --- a/tests/kms_selftest.c > +++ b/tests/kms_selftest.c > @@ -25,6 +25,10 @@ > * TEST: kms selftest > * Category: Display > * Description: Basic sanity check of KMS selftests. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -33,10 +37,6 @@ > /** > * SUBTEST: %s > * Description: Basic sanity check of KMS selftest %arg[1]. > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_sequence.c b/tests/kms_sequence.c > index 7dbcca643..23867d1aa 100644 > --- a/tests/kms_sequence.c > +++ b/tests/kms_sequence.c > @@ -26,6 +26,10 @@ > * TEST: kms sequence > * Category: Display > * Description: Test CrtcGetSequence and CrtcQueueSequence. > + * Driver requirement: i915, xe > + * Functionality: vblank > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -46,10 +50,6 @@ > /** > * SUBTEST: get-%s > * Description: This is a test of drmCrtcGetSequence with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > @@ -62,10 +62,6 @@ > /** > * SUBTEST: queue-%s > * Description: This is a test of drmCrtcQueueSequence with %arg[1] > - * Driver requirement: i915, xe > - * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c > index 7fd1667d7..490bfd3dd 100644 > --- a/tests/kms_setmode.c > +++ b/tests/kms_setmode.c > @@ -26,6 +26,10 @@ > * Category: Display > * Description: Tests the mode by iterating through all valid/invalid crtc/connector > * combinations > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "config.h" > @@ -46,50 +50,27 @@ > * SUBTEST: basic > * Description: Tests the vblank timing by iterating through all valid crtc/connector > * combinations > - * Driver requirement: i915, xe > * Functionality: kms_core, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: basic-clone-single-crtc > * Description: Test allows the use of a single CRTC for two connectors, such as VGA/HDMI, > * VGA/DP, and HDMI/HDMI > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: clone-exclusive-crtc > * Description: Tests the mode by cloning the exclusive crtc by iterating through > * all valid crtc/connector combinations > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-clone-exclusive-crtc > * Description: Test is allowed when a connector uses CRTC that is not compatible with the > * connector, for instance, DP/HDMI can be used on certain pipes only on older platforms > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-clone-single-crtc > * Description: Tests the mode by cloning the single crtc by iterating through all > * invalid crtc/connector combinations > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid-clone-single-crtc-stealing > * Description: Tests the stealing mode by cloning the single crtc by iterating > * through all invalid crtc/connector combinations > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > #define MAX_CONNECTORS 10 > diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c > index a094f4df3..3ffd6a9a4 100644 > --- a/tests/kms_tiled_display.c > +++ b/tests/kms_tiled_display.c > @@ -40,6 +40,9 @@ > * TEST: kms tiled display > * Category: Display > * Description: Test for Transcoder Port Sync for Display Port Tiled Displays > + * Driver requirement: i915, xe > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -52,18 +55,12 @@ > * SUBTEST: basic-test-pattern > * Description: Make sure the Tiled CRTCs are synchronized and we get page flips > * for all tiled CRTCs in one vblank (executes on real panel). > - * Driver requirement: i915, xe > * Functionality: tiled_display > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: basic-test-pattern-with-chamelium > * Description: Make sure the Tiled CRTCs are synchronized and we get page flips > * for all tiled CRTCs in one vblank (executes on chamelium). > - * Driver requirement: i915, xe > * Functionality: chamelium, tiled_display > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION("Test for genlocked CRTCs with tiled displays"); > diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c > index b79b3d3e3..6a39f93cc 100644 > --- a/tests/kms_universal_plane.c > +++ b/tests/kms_universal_plane.c > @@ -25,6 +25,10 @@ > * TEST: kms universal plane > * Category: Display > * Description: Check pageflip & modeset on universal plane > + * Driver requirement: i915, xe > + * Functionality: plane > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -37,32 +41,17 @@ > /** > * SUBTEST: cursor-fb-leak > * Description: Check for cursor leaks after performing cursor operations > - * Driver requirement: i915, xe > * Functionality: cursor, plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: disable-primary-vs-flip > * Description: Check pageflips while primary plane is disabled before IOCTL or > * between IOCTL and pageflip execution > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: universal-plane-pageflip-windowed > * Description: Check if pageflip succeeds in windowed setting > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: universal-plane-%s > * Description: Check %arg[1] > - * Driver requirement: i915, xe > - * Functionality: plane > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c > index 5994e682c..956ba483a 100644 > --- a/tests/kms_vblank.c > +++ b/tests/kms_vblank.c > @@ -25,6 +25,9 @@ > * TEST: kms vblank > * Category: Display > * Description: Test speed of WaitVblank. > + * Driver requirement: i915, xe > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include "igt.h" > @@ -45,71 +48,44 @@ > /** > * SUBTEST: crtc-id > * Description: Check the vblank and flip events works with given crtc id > - * Driver requirement: i915, xe > * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: invalid > * Description: Negative test for vblank request > - * Driver requirement: i915, xe > * Functionality: vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: ts-continuation-dpms-rpm > * Description: Test TS continuty with DPMS & RPM while hanging by introducing > * NOHANG flag > - * Driver requirement: i915, xe > * Functionality: dpms, hang, rpm, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: ts-continuation-dpms-suspend > * Description: Test TS continuty with DPMS & Suspend while hanging by introducing > * NOHANG flag > - * Driver requirement: i915, xe > * Functionality: dpms, hang, suspend, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: ts-continuation-suspend > * Description: Test TS continuty with Suspend while hanging by introducing NOHANG > * flag > - * Driver requirement: i915, xe > * Functionality: hang, suspend, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: ts-continuation-modeset-rpm > * Description: Test TS continuty during Modeset with Suspend while hanging by > * introducing NOHANG flag > - * Driver requirement: i915, xe > * Functionality: hang, rpm, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: accuracy-idle > * Description: Test Accuracy of vblank events while hanging by introducing NOHANG > * flag > - * Driver requirement: i915, xe > * Functionality: hang, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: %s > * Description: Test %arg[1] while hanging by introducing NOHANG flag > - * Driver requirement: i915, xe > * Functionality: hang, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: %s-hang > * Description: Test %arg[1] with injected hang is working properly > - * Driver requirement: i915, xe > * Functionality: hang, vblank > - * Mega feature: General Display Features > - * Test category: functionality test > * > * arg[1]: > * > diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c > index 23aebb0f2..13b347631 100644 > --- a/tests/kms_vrr.c > +++ b/tests/kms_vrr.c > @@ -24,6 +24,10 @@ > * TEST: kms vrr > * Category: Display > * Description: Test to validate diffent features of VRR > + * Driver requirement: i915, xe > + * Functionality: adaptive_sync > + * Mega feature: VRR > + * Test category: functionality test > */ > > #include "igt.h" > @@ -35,40 +39,22 @@ > * SUBTEST: flip-basic > * Description: Tests that VRR is enabled and that the difference between flip > * timestamps converges to the requested rate > - * Driver requirement: i915, xe > - * Functionality: adaptive_sync > - * Mega feature: VRR > - * Test category: functionality test > * > * SUBTEST: flip-dpms > * Description: Tests with DPMS that VRR is enabled and that the difference > * between flip timestamps converges to the requested rate. > - * Driver requirement: i915, xe > * Functionality: adaptive_sync, dpms > - * Mega feature: VRR > - * Test category: functionality test > * > * SUBTEST: flip-suspend > * Description: Tests that VRR is enabled and that the difference between flip > * timestamps converges to the requested rate in a suspend test > - * Driver requirement: i915, xe > * Functionality: adaptive_sync, suspend > - * Mega feature: VRR > - * Test category: functionality test > * > * SUBTEST: flipline > * Description: Make sure that flips happen at flipline decision boundary. > - * Driver requirement: i915, xe > - * Functionality: adaptive_sync > - * Mega feature: VRR > - * Test category: functionality test > * > * SUBTEST: negative-basic > * Description: Make sure that VRR should not be enabled on the Non-VRR panel. > - * Driver requirement: i915, xe > - * Functionality: adaptive_sync > - * Mega feature: VRR > - * Test category: functionality test > */ > > #define NSECS_PER_SEC (1000000000ull) > diff --git a/tests/kms_writeback.c b/tests/kms_writeback.c > index 6b436b7ab..f95d71166 100644 > --- a/tests/kms_writeback.c > +++ b/tests/kms_writeback.c > @@ -29,6 +29,10 @@ > * connectors feature by checking if the target device support > * writeback; it validates bad and good combination, check color > * format, and check the output result by using CRC. > + * Driver requirement: i915, xe > + * Functionality: kms_core > + * Mega feature: General Display Features > + * Test category: functionality test > */ > > #include <errno.h> > @@ -45,45 +49,23 @@ > /** > * SUBTEST: writeback-check-output-XRGB2101010 > * Description: Check XRGB2101010 writeback output with CRC validation > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: writeback-check-output > * Description: Check writeback output with CRC validation > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: writeback-fb-id-XRGB2101010 > * Description: Validate WRITEBACK_FB_ID with valid and invalid options > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: writeback-fb-id > * Description: Validate WRITEBACK_FB_ID with valid and invalid options > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: writeback-invalid-parameters > * Description: Writeback has a couple of parameters linked together(output > * framebuffer and fence); this test goes throughthe combination > * of possible bad options > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > * > * SUBTEST: writeback-pixel-formats > * Description: Check the writeback format > - * Driver requirement: i915, xe > - * Functionality: kms_core > - * Mega feature: General Display Features > - * Test category: functionality test > */ > > IGT_TEST_DESCRIPTION( ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [i-g-t 4/5] tests/kms/testplan: Fix Mega Feature in testplan documentation 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem ` (2 preceding siblings ...) 2023-11-24 9:36 ` [igt-dev] [i-g-t 3/5] tests/kms/testplan: Optimize KMS " Bhanuprakash Modem @ 2023-11-24 9:36 ` Bhanuprakash Modem 2023-11-24 17:09 ` Sharma, Swati2 2023-11-24 9:36 ` [igt-dev] [i-g-t 5/5] tests/kms/testplan: Avoid duplicate names on Mega feature vs Functionality Bhanuprakash Modem ` (4 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Bhanuprakash Modem @ 2023-11-24 9:36 UTC (permalink / raw) To: igt-dev, swati2.sharma Adjust KMS testplan Mega Feature to allign with internal tools. - s/Bigjoiner/Pipe Joiner/ - s/Color mgmt/Color Management/ - s/General Display Features/E2E Compression/ (CCS tests) - s/Display Power/Display Power Management/ Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> --- tests/chamelium/kms_chamelium_color.c | 2 +- tests/intel/kms_big_joiner.c | 2 +- tests/intel/kms_ccs.c | 2 +- tests/intel/kms_pm_backlight.c | 2 +- tests/intel/kms_pm_dc.c | 2 +- tests/intel/kms_pm_lpsp.c | 2 +- tests/kms_color.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c index e94e13e40..4156023da 100644 --- a/tests/chamelium/kms_chamelium_color.c +++ b/tests/chamelium/kms_chamelium_color.c @@ -28,7 +28,7 @@ * Description: Test Color Features at Pipe level using Chamelium to verify instead of CRC * Driver requirement: i915, xe * Functionality: chamelium, colorspace - * Mega feature: Color mgmt + * Mega feature: Color Management * Test category: functionality test */ diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c index c5f9f8db7..aba2adfbe 100644 --- a/tests/intel/kms_big_joiner.c +++ b/tests/intel/kms_big_joiner.c @@ -30,7 +30,7 @@ * Description: Test big joiner * Driver requirement: i915, xe * Functionality: 2p1p - * Mega feature: Bigjoiner + * Mega feature: Pipe Joiner * Test category: functionality test */ diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c index 0a202d037..7a3fd7cf6 100644 --- a/tests/intel/kms_ccs.c +++ b/tests/intel/kms_ccs.c @@ -30,7 +30,7 @@ * uses to interpret the compressed data. * Driver requirement: i915, xe * Functionality: ccs, tiling - * Mega feature: General Display Features + * Mega feature: E2E Compression * Test category: functionality test */ diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c index 5b4c397bb..2e691dab0 100644 --- a/tests/intel/kms_pm_backlight.c +++ b/tests/intel/kms_pm_backlight.c @@ -31,7 +31,7 @@ * Description: Basic backlight sysfs test * Driver requirement: i915, xe * Functionality: backlight - * Mega feature: Display Power + * Mega feature: Display Power Management * Test category: functionality test */ diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c index f11d6d29a..739ed6112 100644 --- a/tests/intel/kms_pm_dc.c +++ b/tests/intel/kms_pm_dc.c @@ -28,7 +28,7 @@ * Description: Tests to validate display power DC states. * Driver requirement: i915, xe * Functionality: dpms, pm_dc - * Mega feature: Display Power + * Mega feature: Display Power Management * Test category: functionality test */ diff --git a/tests/intel/kms_pm_lpsp.c b/tests/intel/kms_pm_lpsp.c index 30158f673..005438d87 100644 --- a/tests/intel/kms_pm_lpsp.c +++ b/tests/intel/kms_pm_lpsp.c @@ -29,7 +29,7 @@ * Category: Display * Description: These tests validates display Low Power Single Pipe configurations * Functionality: pm_lpsp - * Mega feature: Display Power + * Mega feature: Display Power Management * Test category: functionality test */ diff --git a/tests/kms_color.c b/tests/kms_color.c index 39752de81..bdb80a4ad 100644 --- a/tests/kms_color.c +++ b/tests/kms_color.c @@ -28,7 +28,7 @@ * Description: Test Color Features at Pipe level * Driver requirement: i915, xe * Functionality: colorspace - * Mega feature: Color mgmt + * Mega feature: Color Management * Test category: functionality test */ -- 2.40.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [i-g-t 4/5] tests/kms/testplan: Fix Mega Feature in testplan documentation 2023-11-24 9:36 ` [igt-dev] [i-g-t 4/5] tests/kms/testplan: Fix Mega Feature in " Bhanuprakash Modem @ 2023-11-24 17:09 ` Sharma, Swati2 0 siblings, 0 replies; 15+ messages in thread From: Sharma, Swati2 @ 2023-11-24 17:09 UTC (permalink / raw) To: Bhanuprakash Modem, igt-dev LGTM Reviewed-by: Swati Sharma <swati2.sharma@intel.com> On 24-Nov-23 3:06 PM, Bhanuprakash Modem wrote: > Adjust KMS testplan Mega Feature to allign with internal tools. > > - s/Bigjoiner/Pipe Joiner/ > - s/Color mgmt/Color Management/ > - s/General Display Features/E2E Compression/ (CCS tests) > - s/Display Power/Display Power Management/ > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > --- > tests/chamelium/kms_chamelium_color.c | 2 +- > tests/intel/kms_big_joiner.c | 2 +- > tests/intel/kms_ccs.c | 2 +- > tests/intel/kms_pm_backlight.c | 2 +- > tests/intel/kms_pm_dc.c | 2 +- > tests/intel/kms_pm_lpsp.c | 2 +- > tests/kms_color.c | 2 +- > 7 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c > index e94e13e40..4156023da 100644 > --- a/tests/chamelium/kms_chamelium_color.c > +++ b/tests/chamelium/kms_chamelium_color.c > @@ -28,7 +28,7 @@ > * Description: Test Color Features at Pipe level using Chamelium to verify instead of CRC > * Driver requirement: i915, xe > * Functionality: chamelium, colorspace > - * Mega feature: Color mgmt > + * Mega feature: Color Management > * Test category: functionality test > */ > > diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c > index c5f9f8db7..aba2adfbe 100644 > --- a/tests/intel/kms_big_joiner.c > +++ b/tests/intel/kms_big_joiner.c > @@ -30,7 +30,7 @@ > * Description: Test big joiner > * Driver requirement: i915, xe > * Functionality: 2p1p > - * Mega feature: Bigjoiner > + * Mega feature: Pipe Joiner > * Test category: functionality test > */ > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c > index 0a202d037..7a3fd7cf6 100644 > --- a/tests/intel/kms_ccs.c > +++ b/tests/intel/kms_ccs.c > @@ -30,7 +30,7 @@ > * uses to interpret the compressed data. > * Driver requirement: i915, xe > * Functionality: ccs, tiling > - * Mega feature: General Display Features > + * Mega feature: E2E Compression > * Test category: functionality test > */ > > diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c > index 5b4c397bb..2e691dab0 100644 > --- a/tests/intel/kms_pm_backlight.c > +++ b/tests/intel/kms_pm_backlight.c > @@ -31,7 +31,7 @@ > * Description: Basic backlight sysfs test > * Driver requirement: i915, xe > * Functionality: backlight > - * Mega feature: Display Power > + * Mega feature: Display Power Management > * Test category: functionality test > */ > > diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c > index f11d6d29a..739ed6112 100644 > --- a/tests/intel/kms_pm_dc.c > +++ b/tests/intel/kms_pm_dc.c > @@ -28,7 +28,7 @@ > * Description: Tests to validate display power DC states. > * Driver requirement: i915, xe > * Functionality: dpms, pm_dc > - * Mega feature: Display Power > + * Mega feature: Display Power Management > * Test category: functionality test > */ > > diff --git a/tests/intel/kms_pm_lpsp.c b/tests/intel/kms_pm_lpsp.c > index 30158f673..005438d87 100644 > --- a/tests/intel/kms_pm_lpsp.c > +++ b/tests/intel/kms_pm_lpsp.c > @@ -29,7 +29,7 @@ > * Category: Display > * Description: These tests validates display Low Power Single Pipe configurations > * Functionality: pm_lpsp > - * Mega feature: Display Power > + * Mega feature: Display Power Management > * Test category: functionality test > */ > > diff --git a/tests/kms_color.c b/tests/kms_color.c > index 39752de81..bdb80a4ad 100644 > --- a/tests/kms_color.c > +++ b/tests/kms_color.c > @@ -28,7 +28,7 @@ > * Description: Test Color Features at Pipe level > * Driver requirement: i915, xe > * Functionality: colorspace > - * Mega feature: Color mgmt > + * Mega feature: Color Management > * Test category: functionality test > */ > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [i-g-t 5/5] tests/kms/testplan: Avoid duplicate names on Mega feature vs Functionality 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem ` (3 preceding siblings ...) 2023-11-24 9:36 ` [igt-dev] [i-g-t 4/5] tests/kms/testplan: Fix Mega Feature in " Bhanuprakash Modem @ 2023-11-24 9:36 ` Bhanuprakash Modem 2023-11-24 12:28 ` [igt-dev] ✓ Fi.CI.BAT: success for Optimize kms tesplan documentation (rev4) Patchwork ` (3 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Bhanuprakash Modem @ 2023-11-24 9:36 UTC (permalink / raw) To: igt-dev, swati2.sharma Avoid duplicate names on Mega feature vs Functionality in KMS testplan documentation. This patch will do below updates in Functionality: - eDP --> eDP_core - hdr --> static_hdr - psr --> psr1, psr2 (based on the requiremnet) Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com> --- tests/intel/kms_fbcon_fbt.c | 4 +- tests/intel/kms_frontbuffer_tracking.c | 228 ++++++++++++------------- tests/intel/kms_pm_dc.c | 4 +- tests/intel/kms_psr.c | 38 ++--- tests/intel/kms_psr_stress_test.c | 2 +- tests/kms_feature_discovery.c | 4 +- tests/kms_hdmi_inject.c | 2 +- tests/kms_hdr.c | 13 +- tests/kms_panel_fitting.c | 2 +- tests/kms_scaling_modes.c | 2 +- 10 files changed, 151 insertions(+), 148 deletions(-) diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c index e2617a79a..90484dccf 100644 --- a/tests/intel/kms_fbcon_fbt.c +++ b/tests/intel/kms_fbcon_fbt.c @@ -57,13 +57,13 @@ * SUBTEST: psr * Description: Test the relationship between fbcon and the frontbuffer tracking * infrastructure with psr enabled. - * Functionality: fbcon, fbt, psr + * Functionality: fbcon, fbt, psr1 * Mega feature: PSR * * SUBTEST: psr-suspend * Description: Suspend test to validate the relationship between fbcon and the * frontbuffer tracking infrastructure with psr enabled. - * Functionality: fbcon, fbt, psr, suspend + * Functionality: fbcon, fbt, psr1, suspend * Mega feature: PSR */ diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c index abc44bf39..259dfd136 100644 --- a/tests/intel/kms_frontbuffer_tracking.c +++ b/tests/intel/kms_frontbuffer_tracking.c @@ -67,7 +67,7 @@ * * SUBTEST: psr-%dp-rte * Description: Sanity test to enable PSR with %arg[1] panels. - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-rte * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. @@ -75,15 +75,15 @@ * * SUBTEST: fbcpsr-%dp-rte * Description: Sanity test to enable FBC & PSR with %arg[1] panels. - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-rte * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. - * Functionality: fbt, drrs, psr + * Functionality: fbt, drrs, psr1 * * SUBTEST: fbcpsrdrrs-%dp-rte * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. - * Functionality: fbc, fbt, drrs, psr + * Functionality: fbc, fbt, drrs, psr1 * * arg[1].values: 1, 2 */ @@ -99,7 +99,7 @@ * * SUBTEST: psr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -107,15 +107,15 @@ * * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -143,7 +143,7 @@ * SUBTEST: psr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -153,17 +153,17 @@ * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -191,7 +191,7 @@ * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -201,17 +201,17 @@ * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -239,7 +239,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -247,15 +247,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -283,7 +283,7 @@ * * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -291,15 +291,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -324,7 +324,7 @@ * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -334,17 +334,17 @@ * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -366,7 +366,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -374,15 +374,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -411,7 +411,7 @@ * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -421,17 +421,17 @@ * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -457,7 +457,7 @@ * * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -465,15 +465,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -496,7 +496,7 @@ * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -506,17 +506,17 @@ * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -536,7 +536,7 @@ * * SUBTEST: psr-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods @@ -544,15 +544,15 @@ * * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 */ @@ -568,7 +568,7 @@ * * SUBTEST: psr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT @@ -576,15 +576,15 @@ * * SUBTEST: fbcpsr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -612,7 +612,7 @@ * SUBTEST: psr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT @@ -622,17 +622,17 @@ * SUBTEST: fbcpsr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -653,7 +653,7 @@ * * SUBTEST: psr-slowdraw * Description: Sleep a little bit between drawing operations with PSR - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-slowdraw * Description: Sleep a little bit between drawing operations with FBC & DRRS @@ -661,15 +661,15 @@ * * SUBTEST: fbcpsr-slowdraw * Description: Sleep a little bit between drawing operations with FBC & PSR - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-slowdraw * Description: Sleep a little bit between drawing operations with PSR & DRRS - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-slowdraw * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 */ /** @@ -683,7 +683,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have @@ -691,15 +691,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -726,7 +726,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have @@ -734,15 +734,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -767,11 +767,11 @@ * * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -792,7 +792,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around @@ -800,15 +800,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1].values: 1, 2 * @@ -829,7 +829,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around @@ -837,15 +837,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1]: * @@ -864,7 +864,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times @@ -872,15 +872,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1].values: 1, 2 * @@ -901,7 +901,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times @@ -909,15 +909,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1]: * @@ -936,7 +936,7 @@ * * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen @@ -944,15 +944,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen @@ -964,7 +964,7 @@ * * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen @@ -972,15 +972,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1].values: 1, 2 */ @@ -996,7 +996,7 @@ * * SUBTEST: psr-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: fbt, psr, scaling + * Functionality: fbt, psr1, scaling * * SUBTEST: fbcdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies @@ -1004,15 +1004,15 @@ * * SUBTEST: fbcpsr-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: fbc, fbt, psr, scaling + * Functionality: fbc, fbt, psr1, scaling * * SUBTEST: psrdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: drrs, fbt, psr, scaling + * Functionality: drrs, fbt, psr1, scaling * * SUBTEST: fbcpsrdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: drrs, fbc, fbt, psr, scaling + * Functionality: drrs, fbc, fbt, psr1, scaling * * arg[1]: * @@ -1031,7 +1031,7 @@ * * SUBTEST: psr-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with PSR - * Functionality: fbt, psr, scaling + * Functionality: fbt, psr1, scaling * * SUBTEST: fbcdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS @@ -1039,15 +1039,15 @@ * * SUBTEST: fbcpsr-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR - * Functionality: fbc, fbt, psr, scaling + * Functionality: fbc, fbt, psr1, scaling * * SUBTEST: psrdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS - * Functionality: drrs, fbt, psr, scaling + * Functionality: drrs, fbt, psr1, scaling * * SUBTEST: fbcpsrdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS - * Functionality: drrs, fbc, fbt, psr, scaling + * Functionality: drrs, fbc, fbt, psr1, scaling */ /** @@ -1061,7 +1061,7 @@ * * SUBTEST: psr-suspend * Description: Make sure suspend/resume keeps us on the same state of PSR - * Functionality: fbt, psr, suspend + * Functionality: fbt, psr1, suspend * * SUBTEST: fbcdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS @@ -1069,15 +1069,15 @@ * * SUBTEST: fbcpsr-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR - * Functionality: fbc, fbt, psr, suspend + * Functionality: fbc, fbt, psr1, suspend * * SUBTEST: psrdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS - * Functionality: drrs, fbt, psr, suspend + * Functionality: drrs, fbt, psr1, suspend * * SUBTEST: fbcpsrdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS - * Functionality: drrs, fbc, fbt, psr, suspend + * Functionality: drrs, fbc, fbt, psr1, suspend */ /** @@ -1094,7 +1094,7 @@ * SUBTEST: psr-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible @@ -1104,17 +1104,17 @@ * SUBTEST: fbcpsr-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 */ /** @@ -1128,11 +1128,11 @@ * * SUBTEST: fbcpsr-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: fbcpsrdrrs-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 */ /** @@ -1149,12 +1149,12 @@ * SUBTEST: fbcpsr-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Functionality: fbc, fbt, psr, tiling + * Functionality: fbc, fbt, psr1, tiling * * SUBTEST: fbcpsrdrrs-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Functionality: drrs, fbc, fbt, psr, tiling + * Functionality: drrs, fbc, fbt, psr1, tiling * * arg[1]: * diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c index 739ed6112..8006e54de 100644 --- a/tests/intel/kms_pm_dc.c +++ b/tests/intel/kms_pm_dc.c @@ -64,7 +64,7 @@ * * SUBTEST: dc5-psr * Description: This test validates display engine entry to DC5 state while PSR is active - * Functionality: pm_dc, psr + * Functionality: pm_dc, psr1 * * SUBTEST: dc6-dpms * Description: Validate display engine entry to DC6 state while all connectors's @@ -72,7 +72,7 @@ * * SUBTEST: dc6-psr * Description: This test validates display engine entry to DC6 state while PSR is active - * Functionality: pm_dc, psr + * Functionality: pm_dc, psr1 * * SUBTEST: dc9-dpms * Description: This test validates display engine entry to DC9 state diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c index b9e95fdfe..7fe6a2c30 100644 --- a/tests/intel/kms_psr.c +++ b/tests/intel/kms_psr.c @@ -44,13 +44,13 @@ /** * SUBTEST: psr_basic * Description: Basic check for psr if it is detecting changes made in planes - * Functionality: psr + * Functionality: psr1 * * SUBTEST: psr_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] * Driver requirement: i915 - * Functionality: kms_core, plane, psr + * Functionality: kms_core, plane, psr1 * * arg[1]: * @@ -68,12 +68,12 @@ * SUBTEST: psr_sprite_plane_move * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on sprite planes - * Functionality: plane, psr + * Functionality: plane, psr1 * * SUBTEST: psr_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Functionality: kms_core, plane, psr + * Functionality: kms_core, plane, psr1 * * arg[1]: * @@ -91,7 +91,7 @@ * SUBTEST: psr_primary_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Functionality: kms_core, psr + * Functionality: kms_core, psr1 * * arg[1]: * @@ -103,40 +103,40 @@ * SUBTEST: psr_dpms * Description: Check if psr is detecting changes when rendering operation is * performed with dpms enabled or disabled - * Functionality: dpms, psr + * Functionality: dpms, psr1 * * SUBTEST: psr_no_drrs * Description: Check if psr is detecting changes when drrs is disabled - * Functionality: drrs, psr + * Functionality: drrs, psr1 * * SUBTEST: psr_suspend * Description: Check if psr is detecting changes when plane operation * is performed with suspend resume cycles - * Functionality: psr, suspend + * Functionality: psr1, suspend * * SUBTEST: psr2_dpms * Description: Check if psr is detecting changes when rendering operation * is performed with dpms enabled or disabled - * Functionality: dpms, psr, psr2 + * Functionality: dpms, psr2 * * SUBTEST: psr2_no_drrs * Description: Check if psr is detecting changes when drrs is disabled - * Functionality: drrs, psr, psr2 + * Functionality: drrs, psr2 * * SUBTEST: psr2_suspend * Description: Check if psr is detecting changes when plane operation is * performed with suspend resume cycles - * Functionality: psr, psr2, suspend + * Functionality: psr2, suspend * * SUBTEST: psr2_basic * Description: Basic check for psr if it is detecting changes made in planes - * Functionality: psr, psr2 + * Functionality: psr2 * * SUBTEST: psr2_%s_%s * Description: Check if psr2 is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes * Driver requirement: i915 - * Functionality: kms_core, plane, psr, psr2 + * Functionality: kms_core, plane, psr2 * * arg[1]: * @@ -154,12 +154,12 @@ * SUBTEST: psr2_primary_page_flip * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Functionality: plane, psr, psr2 + * Functionality: plane, psr2 * * SUBTEST: psr2_primary_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Functionality: kms_core, plane, psr, psr2 + * Functionality: kms_core, plane, psr2 * * arg[1]: * @@ -171,7 +171,7 @@ * SUBTEST: psr2_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Functionality: kms_core, plane, psr, psr2 + * Functionality: kms_core, plane, psr2 * * arg[1]: * @@ -273,17 +273,17 @@ * SUBTEST: psr_cursor_plane_move * Description: Check if psr is detecting the plane operations performed on * cursor planes - * Functionality: psr + * Functionality: psr1 * * SUBTEST: psr_primary_page_flip * Description: Check if psr is detecting page-flipping operations performed * on primary planes - * Functionality: psr + * Functionality: psr1 * * SUBTEST: psr_sprite_plane_onoff * Description: Check if psr is detecting the plane operations performed on * sprite planes - * Functionality: psr + * Functionality: psr1 */ enum operations { diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c index 28529b1f1..7aea8e8a5 100644 --- a/tests/intel/kms_psr_stress_test.c +++ b/tests/intel/kms_psr_stress_test.c @@ -3,7 +3,7 @@ * TEST: kms psr stress test * Category: Display * Driver requirement: i915, xe - * Functionality: plane, psr + * Functionality: plane, psr1 * Mega feature: PSR * Test category: functionality test */ diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c index 24c71ed22..dff667c73 100644 --- a/tests/kms_feature_discovery.c +++ b/tests/kms_feature_discovery.c @@ -57,12 +57,12 @@ * * SUBTEST: psr1 * Description: Make sure that we have eDP panel with PSR1 support. - * Functionality: feature_discovery, psr1, eDP + * Functionality: feature_discovery, psr1, eDP_core * Mega feature: PSR * * SUBTEST: psr2 * Description: Make sure that we have eDP panel with PSR2 support. - * Functionality: feature_discovery, psr2, eDP + * Functionality: feature_discovery, psr2, eDP_core * Mega feature: PSR * * SUBTEST: dp-mst diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c index 9691f2818..a554ca2b1 100644 --- a/tests/kms_hdmi_inject.c +++ b/tests/kms_hdmi_inject.c @@ -51,7 +51,7 @@ * SUBTEST: inject-audio * Description: Make sure that audio information exposed by ALSA match the forced * EDID. - * Functionality: audio, force_connector + * Functionality: hdmi_audio, force_connector */ #define HDISPLAY_4K 3840 diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c index 4dd2eda37..99b78f7ef 100644 --- a/tests/kms_hdr.c +++ b/tests/kms_hdr.c @@ -25,7 +25,6 @@ * Category: Display * Description: Test HDR metadata interfaces and bpc switch * Driver requirement: i915, xe - * Functionality: colorspace, hdr * Mega feature: HDR * Test category: functionality test */ @@ -39,31 +38,35 @@ /** * SUBTEST: bpc-switch * Description: Tests switching between different display output bpc modes + * Functionality: colorspace * * SUBTEST: bpc-switch-dpms * Description: Tests switching between different display output bpc modes with dpms - * Functionality: colorspace, dpms, hdr + * Functionality: colorspace, dpms * * SUBTEST: bpc-switch-suspend * Description: Tests switching between different display output bpc modes with suspend - * Functionality: colorspace, hdr, suspend + * Functionality: colorspace, suspend * * SUBTEST: invalid-hdr * Description: Test to ensure HDR is not enabled on non-HDR panel + * Functionality: colorspace, static_hdr * * SUBTEST: invalid-metadata-sizes * Description: Tests invalid HDR metadata sizes + * Functionality: colorspace, static_hdr * * SUBTEST: static-toggle-dpms * Description: Tests static toggle with dpms - * Functionality: colorspace, dpms, hdr + * Functionality: colorspace, dpms, static_hdr * * SUBTEST: static-toggle-suspend * Description: Tests static toggle with suspend - * Functionality: colorspace, hdr, suspend + * Functionality: colorspace, static_hdr, suspend * * SUBTEST: static-%s * Description: Tests %arg[1]. + * Functionality: colorspace, static_hdr * * arg[1]: * diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c index 4b5d9d5ab..f714ab474 100644 --- a/tests/kms_panel_fitting.c +++ b/tests/kms_panel_fitting.c @@ -27,7 +27,7 @@ * Category: Display * Description: Test display panel fitting * Driver requirement: i915, xe - * Functionality: eDP, panel_fitting, scaling + * Functionality: eDP_core, panel_fitting, scaling * Mega feature: General Display Features * Test category: functionality test */ diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c index add6e77c9..fae5755a8 100644 --- a/tests/kms_scaling_modes.c +++ b/tests/kms_scaling_modes.c @@ -29,7 +29,7 @@ * Category: Display * Description: Test display scaling modes * Driver requirement: i915, xe - * Functionality: eDP, plane, scaling + * Functionality: eDP_core, plane, scaling * Mega feature: General Display Features * Test category: functionality test */ -- 2.40.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Optimize kms tesplan documentation (rev4) 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem ` (4 preceding siblings ...) 2023-11-24 9:36 ` [igt-dev] [i-g-t 5/5] tests/kms/testplan: Avoid duplicate names on Mega feature vs Functionality Bhanuprakash Modem @ 2023-11-24 12:28 ` Patchwork 2023-11-24 13:24 ` [igt-dev] ✗ CI.xeBAT: failure " Patchwork ` (2 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2023-11-24 12:28 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 12478 bytes --] == Series Details == Series: Optimize kms tesplan documentation (rev4) URL : https://patchwork.freedesktop.org/series/123697/ State : success == Summary == CI Bug Log - changes from CI_DRM_13920 -> IGTPW_10264 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/index.html Participating hosts (38 -> 38) ------------------------------ Additional (2): bat-dg2-8 fi-bsw-n3050 Missing (2): fi-snb-2520m bat-dg1-5 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_10264: ### IGT changes ### #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@kms_psr@psr_cursor_plane_move}: - bat-dg2-8: NOTRUN -> [SKIP][1] +3 other tests skip [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_psr@psr_cursor_plane_move.html * {igt@kms_psr@psr_primary_mmap_gtt}: - bat-rpls-1: [SKIP][2] ([i915#9673]) -> [SKIP][3] +3 other tests skip [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-rpls-1/igt@kms_psr@psr_primary_mmap_gtt.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-rpls-1/igt@kms_psr@psr_primary_mmap_gtt.html - fi-rkl-11600: [SKIP][4] ([i915#9673]) -> [SKIP][5] +3 other tests skip [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/fi-rkl-11600/igt@kms_psr@psr_primary_mmap_gtt.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/fi-rkl-11600/igt@kms_psr@psr_primary_mmap_gtt.html - bat-dg1-7: [SKIP][6] ([i915#9673]) -> [SKIP][7] +3 other tests skip [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-dg1-7/igt@kms_psr@psr_primary_mmap_gtt.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg1-7/igt@kms_psr@psr_primary_mmap_gtt.html - bat-adlp-9: [SKIP][8] ([i915#9673]) -> [SKIP][9] +3 other tests skip [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-adlp-9/igt@kms_psr@psr_primary_mmap_gtt.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-adlp-9/igt@kms_psr@psr_primary_mmap_gtt.html - bat-dg2-11: [SKIP][10] ([i915#9673]) -> [SKIP][11] +3 other tests skip [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-dg2-11/igt@kms_psr@psr_primary_mmap_gtt.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-11/igt@kms_psr@psr_primary_mmap_gtt.html - bat-adlm-1: [SKIP][12] ([i915#9673]) -> [SKIP][13] +3 other tests skip [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-adlm-1/igt@kms_psr@psr_primary_mmap_gtt.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-adlm-1/igt@kms_psr@psr_primary_mmap_gtt.html - fi-tgl-1115g4: [SKIP][14] ([i915#9673]) -> [SKIP][15] +3 other tests skip [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/fi-tgl-1115g4/igt@kms_psr@psr_primary_mmap_gtt.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/fi-tgl-1115g4/igt@kms_psr@psr_primary_mmap_gtt.html - bat-mtlp-6: [SKIP][16] ([i915#9673]) -> [SKIP][17] +3 other tests skip [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-mtlp-6/igt@kms_psr@psr_primary_mmap_gtt.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-mtlp-6/igt@kms_psr@psr_primary_mmap_gtt.html * {igt@kms_psr@psr_sprite_plane_onoff}: - bat-dg2-9: [SKIP][18] ([i915#9673]) -> [SKIP][19] +3 other tests skip [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-dg2-9/igt@kms_psr@psr_sprite_plane_onoff.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-9/igt@kms_psr@psr_sprite_plane_onoff.html Known issues ------------ Here are the changes found in IGTPW_10264 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_lmem_swapping@random-engines: - fi-bsw-n3050: NOTRUN -> [SKIP][20] ([fdo#109271]) +14 other tests skip [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/fi-bsw-n3050/igt@gem_lmem_swapping@random-engines.html * igt@gem_mmap@basic: - bat-dg2-8: NOTRUN -> [SKIP][21] ([i915#4083]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@gem_mmap@basic.html * igt@gem_mmap_gtt@basic: - bat-dg2-8: NOTRUN -> [SKIP][22] ([i915#4077]) +2 other tests skip [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@gem_mmap_gtt@basic.html * igt@gem_tiled_pread_basic: - bat-dg2-8: NOTRUN -> [SKIP][23] ([i915#4079]) +1 other test skip [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@gem_tiled_pread_basic.html * igt@i915_pm_rps@basic-api: - bat-dg2-8: NOTRUN -> [SKIP][24] ([i915#6621]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@hangcheck: - bat-adls-5: [PASS][25] -> [DMESG-WARN][26] ([i915#5591]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-adls-5/igt@i915_selftest@live@hangcheck.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-adls-5/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@requests: - bat-mtlp-6: [PASS][27] -> [DMESG-FAIL][28] ([i915#9694]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-mtlp-6/igt@i915_selftest@live@requests.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-mtlp-6/igt@i915_selftest@live@requests.html * igt@i915_suspend@basic-s3-without-i915: - bat-dg2-8: NOTRUN -> [SKIP][29] ([i915#6645]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy: - bat-dg2-8: NOTRUN -> [SKIP][30] ([i915#5190]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-dg2-8: NOTRUN -> [SKIP][31] ([i915#4215] / [i915#5190]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_addfb_basic@framebuffer-vs-set-tiling: - bat-dg2-8: NOTRUN -> [SKIP][32] ([i915#4212]) +6 other tests skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html * igt@kms_addfb_basic@tile-pitch-mismatch: - bat-dg2-8: NOTRUN -> [SKIP][33] ([i915#4212] / [i915#5608]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-dg2-8: NOTRUN -> [SKIP][34] ([i915#4103] / [i915#4213] / [i915#5608]) +1 other test skip [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_force_connector_basic@force-load-detect: - bat-dg2-8: NOTRUN -> [SKIP][35] ([fdo#109285]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_force_connector_basic@prune-stale-modes: - bat-dg2-8: NOTRUN -> [SKIP][36] ([i915#5274]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html * igt@kms_hdmi_inject@inject-audio: - fi-bsw-n3050: NOTRUN -> [FAIL][37] ([IGT#152]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/fi-bsw-n3050/igt@kms_hdmi_inject@inject-audio.html * igt@kms_setmode@basic-clone-single-crtc: - bat-dg2-8: NOTRUN -> [SKIP][38] ([i915#3555] / [i915#4098]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-flip: - bat-dg2-8: NOTRUN -> [SKIP][39] ([i915#3708]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@prime_vgem@basic-fence-flip.html * igt@prime_vgem@basic-fence-mmap: - bat-dg2-8: NOTRUN -> [SKIP][40] ([i915#3708] / [i915#4077]) +1 other test skip [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-write: - bat-dg2-8: NOTRUN -> [SKIP][41] ([i915#3291] / [i915#3708]) +2 other tests skip [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-dg2-8/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@i915_selftest@live@gem_contexts: - bat-mtlp-6: [DMESG-FAIL][42] ([i915#9579]) -> [PASS][43] [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-mtlp-6/igt@i915_selftest@live@gem_contexts.html [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-mtlp-6/igt@i915_selftest@live@gem_contexts.html * igt@kms_hdmi_inject@inject-audio: - fi-kbl-guc: [FAIL][44] ([IGT#3]) -> [PASS][45] [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1: - bat-rplp-1: [ABORT][46] ([i915#8668]) -> [PASS][47] [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [IGT#152]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/152 [IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591 [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645 [i915#6868]: https://gitlab.freedesktop.org/drm/intel/issues/6868 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 [i915#9579]: https://gitlab.freedesktop.org/drm/intel/issues/9579 [i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673 [i915#9694]: https://gitlab.freedesktop.org/drm/intel/issues/9694 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7601 -> IGTPW_10264 CI-20190529: 20190529 CI_DRM_13920: 278e4673d0a5f5cd5d0b585df88cbcb6d3afd0d8 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_10264: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/index.html IGT_7601: 9c6e7f255724e327627be7c8ed30e23742e97386 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/index.html [-- Attachment #2: Type: text/html, Size: 14643 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✗ CI.xeBAT: failure for Optimize kms tesplan documentation (rev4) 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem ` (5 preceding siblings ...) 2023-11-24 12:28 ` [igt-dev] ✓ Fi.CI.BAT: success for Optimize kms tesplan documentation (rev4) Patchwork @ 2023-11-24 13:24 ` Patchwork 2023-11-24 14:37 ` [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Sharma, Swati2 2023-11-25 14:33 ` [igt-dev] ✗ Fi.CI.IGT: failure for Optimize kms tesplan documentation (rev4) Patchwork 8 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2023-11-24 13:24 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 7146 bytes --] == Series Details == Series: Optimize kms tesplan documentation (rev4) URL : https://patchwork.freedesktop.org/series/123697/ State : failure == Summary == CI Bug Log - changes from XEIGT_7601_BAT -> XEIGTPW_10264_BAT ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_10264_BAT absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_10264_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (4 -> 4) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in XEIGTPW_10264_BAT: ### IGT changes ### #### Possible regressions #### * igt@kms_flip@basic-flip-vs-wf_vblank@c-dp3: - bat-dg2-oem2: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@c-dp3.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@c-dp3.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@kms_psr@psr_cursor_plane_move}: - bat-dg2-oem2: NOTRUN -> [SKIP][3] +2 other tests skip [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_psr@psr_cursor_plane_move.html Known issues ------------ Here are the changes found in XEIGTPW_10264_BAT that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic: - bat-adlp-7: [PASS][4] -> [FAIL][5] ([i915#2346]) [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-adlp-7/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-adlp-7/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html * igt@kms_flip@basic-flip-vs-wf_vblank@d-dp3: - bat-dg2-oem2: [PASS][6] -> [FAIL][7] ([Intel XE#906]) +1 other test fail [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@d-dp3.html [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@d-dp3.html * igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1: - bat-adlp-7: [PASS][8] -> [FAIL][9] ([Intel XE#480]) +1 other test fail [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-dp-3: - bat-dg2-oem2: NOTRUN -> [FAIL][10] ([Intel XE#400] / [Intel XE#616]) [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-dp-3.html * igt@xe_exec_fault_mode@many-basic: - bat-dg2-oem2: NOTRUN -> [SKIP][11] ([Intel XE#288]) +17 other tests skip [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@xe_exec_fault_mode@many-basic.html #### Possible fixes #### * igt@kms_pipe_crc_basic@hang-read-crc: - bat-dg2-oem2: [INCOMPLETE][12] ([Intel XE#282] / [Intel XE#749]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-dg2-oem2/igt@kms_pipe_crc_basic@hang-read-crc.html [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_pipe_crc_basic@hang-read-crc.html * igt@kms_pipe_crc_basic@hang-read-crc@pipe-a-dp-3: - bat-dg2-oem2: [INCOMPLETE][14] ([Intel XE#282] / [Intel XE#545]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-dg2-oem2/igt@kms_pipe_crc_basic@hang-read-crc@pipe-a-dp-3.html [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_pipe_crc_basic@hang-read-crc@pipe-a-dp-3.html #### Warnings #### * igt@kms_frontbuffer_tracking@basic: - bat-adlp-7: [DMESG-FAIL][16] ([Intel XE#282] / [i915#2017]) -> [FAIL][17] ([Intel XE#616] / [Intel XE#750]) [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12: - bat-dg2-oem2: [TIMEOUT][18] ([Intel XE#430] / [Intel XE#530]) -> [FAIL][19] ([Intel XE#400] / [Intel XE#616]) [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-b-dp-3: - bat-dg2-oem2: [TIMEOUT][20] ([Intel XE#530]) -> [FAIL][21] ([Intel XE#400] / [Intel XE#616]) [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7601/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-b-dp-3.html [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-b-dp-3.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282 [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288 [Intel XE#400]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/400 [Intel XE#430]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/430 [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480 [Intel XE#530]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/530 [Intel XE#545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/545 [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616 [Intel XE#749]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/749 [Intel XE#750]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/750 [Intel XE#906]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/906 [i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 Build changes ------------- * IGT: IGT_7601 -> IGTPW_10264 IGTPW_10264: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/index.html IGT_7601: 9c6e7f255724e327627be7c8ed30e23742e97386 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-518-1832821c7e4c5bd24353183f060f1435b2eb7992: 1832821c7e4c5bd24353183f060f1435b2eb7992 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10264/index.html [-- Attachment #2: Type: text/html, Size: 8559 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem ` (6 preceding siblings ...) 2023-11-24 13:24 ` [igt-dev] ✗ CI.xeBAT: failure " Patchwork @ 2023-11-24 14:37 ` Sharma, Swati2 2023-11-25 14:33 ` [igt-dev] ✗ Fi.CI.IGT: failure for Optimize kms tesplan documentation (rev4) Patchwork 8 siblings, 0 replies; 15+ messages in thread From: Sharma, Swati2 @ 2023-11-24 14:37 UTC (permalink / raw) To: Bhanuprakash Modem, igt-dev The whole series LGTM Signed-off-by: Swati Sharma <swati2.sharma@intel.com> On 24-Nov-23 3:05 PM, Bhanuprakash Modem wrote: > Optimizations: > - Move common stuff to TEST level > - Move documentation to beginning of the file > - Align Mega features to internal tools > - Avoid duplicate names on Mega feature vs Functionality > > V2: Rebase > > Bhanuprakash Modem (5): > tests/kms/testplan: Move testplan documentation to beginning of the > file > tests/kms/testplan: Regroup testplan documentation > tests/kms/testplan: Optimize KMS testplan documentation > tests/kms/testplan: Fix Mega Feature in testplan documentation > tests/kms/testplan: Avoid duplicate names on Mega feature vs > Functionality > > tests/chamelium/kms_chamelium_audio.c | 68 +- > tests/chamelium/kms_chamelium_color.c | 59 +- > tests/chamelium/kms_chamelium_edid.c | 181 +- > tests/chamelium/kms_chamelium_frames.c | 181 +- > tests/chamelium/kms_chamelium_hpd.c | 362 +- > tests/intel/kms_big_fb.c | 275 +- > tests/intel/kms_big_joiner.c | 42 +- > tests/intel/kms_busy.c | 90 +- > tests/intel/kms_ccs.c | 16 +- > tests/intel/kms_cdclk.c | 41 +- > tests/intel/kms_dirtyfb.c | 24 +- > tests/intel/kms_draw_crc.c | 72 +- > tests/intel/kms_dsc.c | 9 +- > tests/intel/kms_fb_coherency.c | 21 +- > tests/intel/kms_fbcon_fbt.c | 26 +- > tests/intel/kms_fence_pin_leak.c | 11 +- > tests/intel/kms_flip_scaled_crc.c | 71 +- > tests/intel/kms_flip_tiling.c | 11 +- > tests/intel/kms_frontbuffer_tracking.c | 5746 +++++++++++------------- > tests/intel/kms_legacy_colorkey.c | 18 +- > tests/intel/kms_mmap_write_crc.c | 13 +- > tests/intel/kms_pipe_b_c_ivb.c | 29 +- > tests/intel/kms_pm_backlight.c | 33 +- > tests/intel/kms_pm_dc.c | 43 +- > tests/intel/kms_pm_lpsp.c | 20 +- > tests/intel/kms_pm_rpm.c | 4 + > tests/intel/kms_psr.c | 155 +- > tests/intel/kms_psr2_sf.c | 49 +- > tests/intel/kms_psr2_su.c | 20 +- > tests/intel/kms_psr_stress_test.c | 22 +- > tests/intel/kms_pwrite_crc.c | 10 +- > tests/kms_3d.c | 9 +- > tests/kms_addfb_basic.c | 356 +- > tests/kms_async_flips.c | 82 +- > tests/kms_atomic.c | 141 +- > tests/kms_atomic_interruptible.c | 88 +- > tests/kms_atomic_transition.c | 157 +- > tests/kms_bw.c | 19 +- > tests/kms_color.c | 124 +- > tests/kms_concurrent.c | 9 +- > tests/kms_content_protection.c | 120 +- > tests/kms_cursor_crc.c | 131 +- > tests/kms_cursor_edge_walk.c | 20 +- > tests/kms_cursor_legacy.c | 426 +- > tests/kms_display_modes.c | 34 +- > tests/kms_dither.c | 28 +- > tests/kms_dp_aux_dev.c | 11 +- > tests/kms_feature_discovery.c | 43 +- > tests/kms_flip.c | 229 +- > tests/kms_flip_event_leak.c | 10 +- > tests/kms_force_connector_basic.c | 52 +- > tests/kms_getfb.c | 139 +- > tests/kms_hdmi_inject.c | 25 +- > tests/kms_hdr.c | 106 +- > tests/kms_invalid_mode.c | 9 +- > tests/kms_lease.c | 88 +- > tests/kms_multipipe_modeset.c | 7 +- > tests/kms_panel_fitting.c | 23 +- > tests/kms_pipe_crc_basic.c | 120 +- > tests/kms_plane.c | 114 +- > tests/kms_plane_alpha_blend.c | 82 +- > tests/kms_plane_cursor.c | 20 +- > tests/kms_plane_lowres.c | 47 +- > tests/kms_plane_multiple.c | 51 +- > tests/kms_plane_scaling.c | 400 +- > tests/kms_prime.c | 26 +- > tests/kms_prop_blob.c | 84 +- > tests/kms_properties.c | 43 +- > tests/kms_rmfb.c | 25 +- > tests/kms_rotation_crc.c | 202 +- > tests/kms_scaling_modes.c | 13 +- > tests/kms_selftest.c | 13 +- > tests/kms_sequence.c | 56 +- > tests/kms_setmode.c | 40 +- > tests/kms_sysfs_edid_timing.c | 12 +- > tests/kms_tiled_display.c | 10 +- > tests/kms_tv_load_detect.c | 7 +- > tests/kms_universal_plane.c | 33 +- > tests/kms_vblank.c | 61 +- > tests/kms_vrr.c | 33 +- > tests/kms_writeback.c | 43 +- > tests/testdisplay.c | 12 +- > 82 files changed, 5026 insertions(+), 6729 deletions(-) > > -- > 2.40.0 > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for Optimize kms tesplan documentation (rev4) 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem ` (7 preceding siblings ...) 2023-11-24 14:37 ` [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Sharma, Swati2 @ 2023-11-25 14:33 ` Patchwork 8 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2023-11-25 14:33 UTC (permalink / raw) To: Bhanuprakash Modem; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 59157 bytes --] == Series Details == Series: Optimize kms tesplan documentation (rev4) URL : https://patchwork.freedesktop.org/series/123697/ State : failure == Summary == CI Bug Log - changes from CI_DRM_13920_full -> IGTPW_10264_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_10264_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_10264_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/index.html Participating hosts (10 -> 11) ------------------------------ Additional (1): shard-tglu0 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_10264_full: ### IGT changes ### #### Possible regressions #### * igt@kms_psr@psr2_primary_blt: - shard-dg2: NOTRUN -> [SKIP][1] +1 other test skip [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_psr@psr2_primary_blt.html * igt@perf_pmu@most-busy-idle-check-all@rcs0: - shard-dg1: [PASS][2] -> [FAIL][3] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg1-14/igt@perf_pmu@most-busy-idle-check-all@rcs0.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg1-15/igt@perf_pmu@most-busy-idle-check-all@rcs0.html #### Warnings #### * igt@kms_psr@psr2_dpms: - shard-dg2: [SKIP][4] ([i915#9681]) -> [SKIP][5] +12 other tests skip [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-10/igt@kms_psr@psr2_dpms.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@kms_psr@psr2_dpms.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0}: - shard-tglu: [FAIL][6] ([i915#3591]) -> [WARN][7] [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-tglu-6/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-9/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html * {igt@kms_psr@pr_basic}: - shard-dg2: [SKIP][8] ([i915#9681]) -> [SKIP][9] +16 other tests skip [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-5/igt@kms_psr@pr_basic.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@kms_psr@pr_basic.html * {igt@kms_psr@psr_cursor_plane_move}: - shard-dg2: [SKIP][10] ([i915#9673]) -> [SKIP][11] +2 other tests skip [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-5/igt@kms_psr@psr_cursor_plane_move.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_psr@psr_cursor_plane_move.html * {igt@kms_psr@psr_cursor_render}: - shard-dg2: NOTRUN -> [SKIP][12] +10 other tests skip [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_psr@psr_cursor_render.html * {igt@kms_psr@psr_primary_mmap_gtt}: - shard-dg1: [SKIP][13] ([i915#9673]) -> [SKIP][14] +3 other tests skip [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg1-18/igt@kms_psr@psr_primary_mmap_gtt.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg1-18/igt@kms_psr@psr_primary_mmap_gtt.html - shard-tglu: [SKIP][15] ([i915#9673]) -> [SKIP][16] +3 other tests skip [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-tglu-3/igt@kms_psr@psr_primary_mmap_gtt.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-9/igt@kms_psr@psr_primary_mmap_gtt.html Known issues ------------ Here are the changes found in IGTPW_10264_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@blit-reloc-keep-cache: - shard-mtlp: NOTRUN -> [SKIP][17] ([i915#8411]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-8/igt@api_intel_bb@blit-reloc-keep-cache.html * igt@device_reset@cold-reset-bound: - shard-dg2: NOTRUN -> [SKIP][18] ([i915#7701]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@device_reset@cold-reset-bound.html * igt@drm_fdinfo@busy-idle@bcs0: - shard-dg2: NOTRUN -> [SKIP][19] ([i915#8414]) +11 other tests skip [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@drm_fdinfo@busy-idle@bcs0.html * igt@drm_fdinfo@most-busy-idle-check-all@ccs0: - shard-mtlp: NOTRUN -> [SKIP][20] ([i915#8414]) +11 other tests skip [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@drm_fdinfo@most-busy-idle-check-all@ccs0.html * igt@gem_basic@multigpu-create-close: - shard-dg2: NOTRUN -> [SKIP][21] ([i915#7697]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_basic@multigpu-create-close.html * igt@gem_busy@semaphore: - shard-mtlp: NOTRUN -> [SKIP][22] ([i915#3936]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-6/igt@gem_busy@semaphore.html * igt@gem_close_race@multigpu-basic-process: - shard-snb: NOTRUN -> [SKIP][23] ([fdo#109271]) +70 other tests skip [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-snb7/igt@gem_close_race@multigpu-basic-process.html * igt@gem_create@create-ext-set-pat: - shard-dg2: NOTRUN -> [SKIP][24] ([i915#8562]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_create@create-ext-set-pat.html * igt@gem_ctx_exec@basic-nohangcheck: - shard-tglu: [PASS][25] -> [FAIL][26] ([i915#6268]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-tglu-6/igt@gem_ctx_exec@basic-nohangcheck.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-7/igt@gem_ctx_exec@basic-nohangcheck.html * igt@gem_ctx_param@set-priority-not-supported: - shard-dg2: NOTRUN -> [SKIP][27] ([fdo#109314]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_ctx_param@set-priority-not-supported.html * igt@gem_ctx_persistence@heartbeat-hang: - shard-mtlp: NOTRUN -> [SKIP][28] ([i915#8555]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@gem_ctx_persistence@heartbeat-hang.html * igt@gem_ctx_persistence@legacy-engines-cleanup: - shard-snb: NOTRUN -> [SKIP][29] ([fdo#109271] / [i915#1099]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-snb4/igt@gem_ctx_persistence@legacy-engines-cleanup.html * igt@gem_ctx_sseu@invalid-sseu: - shard-dg2: NOTRUN -> [SKIP][30] ([i915#280]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@gem_ctx_sseu@invalid-sseu.html * igt@gem_eio@kms: - shard-dg2: [PASS][31] -> [FAIL][32] ([i915#5784]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-11/igt@gem_eio@kms.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-7/igt@gem_eio@kms.html * igt@gem_exec_balancer@invalid-bonds: - shard-dg2: NOTRUN -> [SKIP][33] ([i915#4036]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@gem_exec_balancer@invalid-bonds.html * igt@gem_exec_capture@many-4k-incremental: - shard-dg2: NOTRUN -> [FAIL][34] ([i915#9606]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_exec_capture@many-4k-incremental.html * igt@gem_exec_fair@basic-deadline: - shard-glk: NOTRUN -> [FAIL][35] ([i915#2846]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk4/igt@gem_exec_fair@basic-deadline.html * igt@gem_exec_fair@basic-none-rrul: - shard-mtlp: NOTRUN -> [SKIP][36] ([i915#4473] / [i915#4771]) +2 other tests skip [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-6/igt@gem_exec_fair@basic-none-rrul.html * igt@gem_exec_fair@basic-pace: - shard-dg2: NOTRUN -> [SKIP][37] ([i915#3539]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_exec_fair@basic-pace.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-tglu: [PASS][38] -> [FAIL][39] ([i915#2842]) +1 other test fail [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-tglu-3/igt@gem_exec_fair@basic-pace-share@rcs0.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-3/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fence@concurrent: - shard-mtlp: NOTRUN -> [SKIP][40] ([i915#4812]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-8/igt@gem_exec_fence@concurrent.html * igt@gem_exec_fence@submit: - shard-dg2: NOTRUN -> [SKIP][41] ([i915#4812]) +1 other test skip [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@gem_exec_fence@submit.html * igt@gem_exec_flush@basic-batch-kernel-default-cmd: - shard-dg2: NOTRUN -> [SKIP][42] ([i915#3539] / [i915#4852]) +5 other tests skip [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html * igt@gem_exec_reloc@basic-gtt-read: - shard-dg2: NOTRUN -> [SKIP][43] ([i915#3281]) +11 other tests skip [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@gem_exec_reloc@basic-gtt-read.html * igt@gem_exec_reloc@basic-write-cpu-noreloc: - shard-mtlp: NOTRUN -> [SKIP][44] ([i915#3281]) +5 other tests skip [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@gem_exec_reloc@basic-write-cpu-noreloc.html * igt@gem_exec_schedule@preempt-queue-chain: - shard-mtlp: NOTRUN -> [SKIP][45] ([i915#4537] / [i915#4812]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@gem_exec_schedule@preempt-queue-chain.html * igt@gem_exec_schedule@preempt-queue-contexts-chain: - shard-dg2: NOTRUN -> [SKIP][46] ([i915#4537] / [i915#4812]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@gem_exec_schedule@preempt-queue-contexts-chain.html * igt@gem_exec_suspend@basic-s0@lmem0: - shard-dg2: NOTRUN -> [INCOMPLETE][47] ([i915#9275]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@gem_exec_suspend@basic-s0@lmem0.html * igt@gem_fence_thrash@bo-copy: - shard-dg2: NOTRUN -> [SKIP][48] ([i915#4860]) +4 other tests skip [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@gem_fence_thrash@bo-copy.html * igt@gem_lmem_swapping@heavy-random: - shard-glk: NOTRUN -> [SKIP][49] ([fdo#109271] / [i915#4613]) +1 other test skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk3/igt@gem_lmem_swapping@heavy-random.html * igt@gem_lmem_swapping@parallel-random-verify-ccs: - shard-mtlp: NOTRUN -> [SKIP][50] ([i915#4613]) +1 other test skip [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@gem_lmem_swapping@parallel-random-verify-ccs.html * igt@gem_mmap_gtt@basic-write-read: - shard-mtlp: NOTRUN -> [SKIP][51] ([i915#4077]) +8 other tests skip [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@gem_mmap_gtt@basic-write-read.html * igt@gem_mmap_gtt@cpuset-big-copy-odd: - shard-dg2: NOTRUN -> [SKIP][52] ([i915#4077]) +7 other tests skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@gem_mmap_gtt@cpuset-big-copy-odd.html * igt@gem_mmap_wc@bad-offset: - shard-mtlp: NOTRUN -> [SKIP][53] ([i915#4083]) +5 other tests skip [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-8/igt@gem_mmap_wc@bad-offset.html * igt@gem_mmap_wc@write-prefaulted: - shard-dg2: NOTRUN -> [SKIP][54] ([i915#4083]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_mmap_wc@write-prefaulted.html * igt@gem_pread@exhaustion: - shard-glk: NOTRUN -> [WARN][55] ([i915#2658]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk8/igt@gem_pread@exhaustion.html * igt@gem_pread@snoop: - shard-dg2: NOTRUN -> [SKIP][56] ([i915#3282]) +6 other tests skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@gem_pread@snoop.html * igt@gem_pxp@create-regular-buffer: - shard-mtlp: NOTRUN -> [SKIP][57] ([i915#4270]) +2 other tests skip [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-2/igt@gem_pxp@create-regular-buffer.html * igt@gem_pxp@verify-pxp-stale-ctx-execution: - shard-dg2: NOTRUN -> [SKIP][58] ([i915#4270]) +4 other tests skip [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@gem_pxp@verify-pxp-stale-ctx-execution.html * igt@gem_readwrite@beyond-eob: - shard-mtlp: NOTRUN -> [SKIP][59] ([i915#3282]) +2 other tests skip [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@gem_readwrite@beyond-eob.html * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs: - shard-mtlp: NOTRUN -> [SKIP][60] ([i915#8428]) +1 other test skip [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html * igt@gem_render_tiled_blits@basic: - shard-dg2: NOTRUN -> [SKIP][61] ([i915#4079]) +1 other test skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@gem_render_tiled_blits@basic.html * igt@gem_set_tiling_vs_blt@tiled-to-tiled: - shard-mtlp: NOTRUN -> [SKIP][62] ([i915#4079]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-7/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html * igt@gem_unfence_active_buffers: - shard-dg2: NOTRUN -> [SKIP][63] ([i915#4879]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_unfence_active_buffers.html * igt@gem_userptr_blits@coherency-sync: - shard-dg2: NOTRUN -> [SKIP][64] ([i915#3297]) +3 other tests skip [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@gem_userptr_blits@coherency-sync.html * igt@gem_userptr_blits@dmabuf-sync: - shard-glk: NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#3323]) [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk9/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@dmabuf-unsync: - shard-tglu: NOTRUN -> [SKIP][66] ([i915#3297]) +1 other test skip [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-7/igt@gem_userptr_blits@dmabuf-unsync.html * igt@gem_userptr_blits@sd-probe: - shard-dg2: NOTRUN -> [SKIP][67] ([i915#3297] / [i915#4958]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@gem_userptr_blits@sd-probe.html * igt@gen7_exec_parse@basic-allocation: - shard-mtlp: NOTRUN -> [SKIP][68] ([fdo#109289]) +3 other tests skip [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@gen7_exec_parse@basic-allocation.html * igt@gen7_exec_parse@batch-without-end: - shard-dg2: NOTRUN -> [SKIP][69] ([fdo#109289]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@gen7_exec_parse@batch-without-end.html * igt@gen9_exec_parse@batch-invalid-length: - shard-mtlp: NOTRUN -> [SKIP][70] ([i915#2856]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@gen9_exec_parse@batch-invalid-length.html * igt@gen9_exec_parse@batch-zero-length: - shard-tglu: NOTRUN -> [SKIP][71] ([i915#2527] / [i915#2856]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-2/igt@gen9_exec_parse@batch-zero-length.html * igt@gen9_exec_parse@shadow-peek: - shard-dg2: NOTRUN -> [SKIP][72] ([i915#2856]) +4 other tests skip [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@gen9_exec_parse@shadow-peek.html * igt@i915_fb_tiling: - shard-dg2: NOTRUN -> [SKIP][73] ([i915#4881]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@i915_fb_tiling.html * igt@i915_module_load@resize-bar: - shard-mtlp: NOTRUN -> [SKIP][74] ([i915#6412]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@i915_module_load@resize-bar.html * igt@i915_pipe_stress@stress-xrgb8888-ytiled: - shard-dg2: NOTRUN -> [SKIP][75] ([i915#7091]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html * igt@i915_pm_rps@min-max-config-idle: - shard-dg2: NOTRUN -> [SKIP][76] ([i915#6621]) +2 other tests skip [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@i915_pm_rps@min-max-config-idle.html * igt@i915_pm_rps@thresholds-idle@gt0: - shard-dg2: NOTRUN -> [SKIP][77] ([i915#8925]) +1 other test skip [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@i915_pm_rps@thresholds-idle@gt0.html * igt@i915_query@query-topology-coherent-slice-mask: - shard-dg2: NOTRUN -> [SKIP][78] ([i915#6188]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@i915_query@query-topology-coherent-slice-mask.html * igt@i915_query@query-topology-unsupported: - shard-mtlp: NOTRUN -> [SKIP][79] ([fdo#109302]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-6/igt@i915_query@query-topology-unsupported.html * igt@i915_selftest@mock@memory_region: - shard-snb: NOTRUN -> [DMESG-WARN][80] ([i915#9311]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-snb2/igt@i915_selftest@mock@memory_region.html * igt@kms_addfb_basic@basic-x-tiled-legacy: - shard-dg2: NOTRUN -> [SKIP][81] ([i915#4212]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@kms_addfb_basic@basic-x-tiled-legacy.html * igt@kms_async_flips@crc@pipe-a-hdmi-a-3: - shard-dg2: NOTRUN -> [FAIL][82] ([i915#8247]) +3 other tests fail [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@kms_async_flips@crc@pipe-a-hdmi-a-3.html * igt@kms_async_flips@crc@pipe-d-hdmi-a-4: - shard-dg1: NOTRUN -> [FAIL][83] ([i915#8247]) +3 other tests fail [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg1-18/igt@kms_async_flips@crc@pipe-d-hdmi-a-4.html * igt@kms_atomic@plane-primary-overlay-mutable-zpos: - shard-dg2: NOTRUN -> [SKIP][84] ([i915#4098] / [i915#9531]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels: - shard-dg2: NOTRUN -> [SKIP][85] ([i915#1769] / [i915#3555]) +1 other test skip [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip: - shard-mtlp: [PASS][86] -> [FAIL][87] ([i915#5138]) +1 other test fail [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html * igt@kms_big_fb@x-tiled-32bpp-rotate-270: - shard-dg2: NOTRUN -> [SKIP][88] ([fdo#111614]) +6 other tests skip [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow: - shard-dg2: NOTRUN -> [SKIP][89] ([i915#5190]) +14 other tests skip [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow: - shard-tglu: NOTRUN -> [SKIP][90] ([fdo#111615]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-10/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html * igt@kms_big_fb@yf-tiled-addfb-size-overflow: - shard-mtlp: NOTRUN -> [SKIP][91] ([i915#6187]) +1 other test skip [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip: - shard-dg2: NOTRUN -> [SKIP][92] ([i915#4538] / [i915#5190]) +5 other tests skip [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip: - shard-mtlp: NOTRUN -> [SKIP][93] ([fdo#111615]) +6 other tests skip [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html * igt@kms_big_joiner@2x-modeset: - shard-dg2: NOTRUN -> [SKIP][94] ([i915#2705]) [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_big_joiner@2x-modeset.html * igt@kms_cdclk@plane-scaling@pipe-c-edp-1: - shard-mtlp: NOTRUN -> [SKIP][95] ([i915#4087]) +3 other tests skip [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_cdclk@plane-scaling@pipe-c-edp-1.html * igt@kms_chamelium_audio@hdmi-audio-edid: - shard-mtlp: NOTRUN -> [SKIP][96] ([i915#7828]) +4 other tests skip [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@kms_chamelium_audio@hdmi-audio-edid.html * igt@kms_chamelium_color@ctm-green-to-red: - shard-mtlp: NOTRUN -> [SKIP][97] ([fdo#111827]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@kms_chamelium_color@ctm-green-to-red.html * igt@kms_chamelium_color@ctm-max: - shard-dg2: NOTRUN -> [SKIP][98] ([fdo#111827]) +2 other tests skip [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_chamelium_color@ctm-max.html * igt@kms_chamelium_color@ctm-negative: - shard-glk: NOTRUN -> [SKIP][99] ([fdo#109271]) +108 other tests skip [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk7/igt@kms_chamelium_color@ctm-negative.html * igt@kms_chamelium_frames@dp-crc-fast: - shard-dg2: NOTRUN -> [SKIP][100] ([i915#7828]) +11 other tests skip [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@kms_chamelium_frames@dp-crc-fast.html * igt@kms_chamelium_frames@dp-frame-dump: - shard-tglu: NOTRUN -> [SKIP][101] ([i915#7828]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-3/igt@kms_chamelium_frames@dp-frame-dump.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-dg2: NOTRUN -> [SKIP][102] ([i915#3299]) [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_content_protection@legacy@pipe-a-dp-4: - shard-dg2: NOTRUN -> [TIMEOUT][103] ([i915#7173]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_content_protection@legacy@pipe-a-dp-4.html * igt@kms_content_protection@srm: - shard-dg2: NOTRUN -> [SKIP][104] ([i915#7118]) +3 other tests skip [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_content_protection@srm.html - shard-mtlp: NOTRUN -> [SKIP][105] ([i915#6944]) [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@kms_content_protection@srm.html * igt@kms_cursor_crc@cursor-offscreen-512x512: - shard-dg2: NOTRUN -> [SKIP][106] ([i915#3359]) +1 other test skip [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@kms_cursor_crc@cursor-offscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-32x10: - shard-mtlp: NOTRUN -> [SKIP][107] ([i915#3555] / [i915#8814]) +1 other test skip [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_cursor_crc@cursor-onscreen-32x10.html * igt@kms_cursor_crc@cursor-sliding-32x10: - shard-dg2: NOTRUN -> [SKIP][108] ([i915#3555]) +8 other tests skip [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@kms_cursor_crc@cursor-sliding-32x10.html * igt@kms_cursor_crc@cursor-sliding-512x170: - shard-mtlp: NOTRUN -> [SKIP][109] ([i915#3359]) [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@kms_cursor_crc@cursor-sliding-512x170.html * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic: - shard-dg2: NOTRUN -> [SKIP][110] ([fdo#109274] / [fdo#111767] / [i915#5354]) [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic: - shard-mtlp: NOTRUN -> [SKIP][111] ([i915#3546]) [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - shard-dg2: NOTRUN -> [SKIP][112] ([i915#4103] / [i915#4213] / [i915#5608]) +1 other test skip [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size: - shard-dg2: NOTRUN -> [SKIP][113] ([i915#4103] / [i915#4213]) [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions: - shard-tglu: NOTRUN -> [SKIP][114] ([fdo#109274]) [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-9/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html * igt@kms_cursor_legacy@cursorb-vs-flipb-legacy: - shard-dg2: NOTRUN -> [SKIP][115] ([fdo#109274] / [i915#5354]) +7 other tests skip [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html * igt@kms_display_modes@mst-extended-mode-negative: - shard-dg2: NOTRUN -> [SKIP][116] ([i915#8588]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_display_modes@mst-extended-mode-negative.html * igt@kms_dsc@dsc-basic: - shard-mtlp: NOTRUN -> [SKIP][117] ([i915#3555] / [i915#3840] / [i915#4098] / [i915#9159]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_dsc@dsc-basic.html * igt@kms_dsc@dsc-with-output-formats: - shard-mtlp: NOTRUN -> [SKIP][118] ([i915#3555] / [i915#3840]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-2/igt@kms_dsc@dsc-with-output-formats.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-tglu: [PASS][119] -> [INCOMPLETE][120] ([i915#8797]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-tglu-2/igt@kms_fbcon_fbt@fbc-suspend.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-2/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: - shard-snb: NOTRUN -> [SKIP][121] ([fdo#109271] / [fdo#111767]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-snb2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html * igt@kms_flip@2x-flip-vs-fences-interruptible: - shard-dg2: NOTRUN -> [SKIP][122] ([i915#8381]) +1 other test skip [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@kms_flip@2x-flip-vs-fences-interruptible.html * igt@kms_flip@2x-modeset-vs-vblank-race: - shard-dg2: NOTRUN -> [SKIP][123] ([fdo#109274]) +5 other tests skip [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_flip@2x-modeset-vs-vblank-race.html * igt@kms_flip@2x-wf_vblank-ts-check: - shard-mtlp: NOTRUN -> [SKIP][124] ([i915#3637]) +3 other tests skip [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-2/igt@kms_flip@2x-wf_vblank-ts-check.html * igt@kms_flip@2x-wf_vblank-ts-check-interruptible: - shard-tglu: NOTRUN -> [SKIP][125] ([fdo#109274] / [i915#3637]) [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-2/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-default-mode: - shard-mtlp: NOTRUN -> [SKIP][126] ([i915#2672]) +1 other test skip [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode: - shard-dg2: NOTRUN -> [SKIP][127] ([i915#2672]) +3 other tests skip [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-default-mode: - shard-mtlp: NOTRUN -> [SKIP][128] ([i915#8810]) [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode: - shard-mtlp: NOTRUN -> [SKIP][129] ([i915#3555] / [i915#8810]) [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode: - shard-dg2: NOTRUN -> [SKIP][130] ([i915#2672] / [i915#3555]) [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite: - shard-dg2: [PASS][131] -> [FAIL][132] ([i915#6880]) +1 other test fail [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite.html [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt: - shard-dg2: NOTRUN -> [FAIL][133] ([i915#6880]) [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt: - shard-mtlp: NOTRUN -> [SKIP][134] ([i915#8708]) +3 other tests skip [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc: - shard-dg2: NOTRUN -> [SKIP][135] ([i915#8708]) +13 other tests skip [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt: - shard-dg2: NOTRUN -> [SKIP][136] ([i915#5354]) +26 other tests skip [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc: - shard-tglu: NOTRUN -> [SKIP][137] ([fdo#109280]) +2 other tests skip [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-gtt: - shard-tglu: NOTRUN -> [SKIP][138] ([fdo#110189]) +2 other tests skip [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-y: - shard-mtlp: NOTRUN -> [SKIP][139] ([i915#5460]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt: - shard-dg2: NOTRUN -> [SKIP][140] ([i915#3458]) +22 other tests skip [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render: - shard-mtlp: NOTRUN -> [SKIP][141] ([i915#1825]) +18 other tests skip [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-render.html * igt@kms_hdr@static-swap: - shard-dg2: NOTRUN -> [SKIP][142] ([i915#3555] / [i915#8228]) +3 other tests skip [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-7/igt@kms_hdr@static-swap.html * igt@kms_invalid_mode@clock-too-high@pipe-c-edp-1: - shard-mtlp: NOTRUN -> [SKIP][143] ([i915#9457]) +2 other tests skip [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@kms_invalid_mode@clock-too-high@pipe-c-edp-1.html * igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [FAIL][144] ([i915#7862]) +1 other test fail [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk4/igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1.html * igt@kms_plane_lowres@tiling-none@pipe-b-edp-1: - shard-mtlp: NOTRUN -> [SKIP][145] ([i915#3582]) +3 other tests skip [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_plane_lowres@tiling-none@pipe-b-edp-1.html * igt@kms_plane_multiple@tiling-y: - shard-mtlp: NOTRUN -> [SKIP][146] ([i915#3555] / [i915#8806]) [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_plane_multiple@tiling-y.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-d-edp-1: - shard-mtlp: NOTRUN -> [SKIP][147] ([i915#3555] / [i915#5235]) +1 other test skip [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-d-edp-1.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-dp-4: - shard-dg2: NOTRUN -> [SKIP][148] ([i915#5235]) +15 other tests skip [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-dp-4.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-edp-1: - shard-mtlp: NOTRUN -> [SKIP][149] ([i915#5235]) +5 other tests skip [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-8/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-a-edp-1.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-dg2: NOTRUN -> [SKIP][150] ([i915#9683]) +3 other tests skip [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_rotation_crc@bad-pixel-format: - shard-dg2: NOTRUN -> [SKIP][151] ([i915#4235]) [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-7/igt@kms_rotation_crc@bad-pixel-format.html * igt@kms_rotation_crc@primary-rotation-90: - shard-tglu: [PASS][152] -> [DMESG-WARN][153] ([i915#1982]) [152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-tglu-3/igt@kms_rotation_crc@primary-rotation-90.html [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-9/igt@kms_rotation_crc@primary-rotation-90.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270: - shard-mtlp: NOTRUN -> [SKIP][154] ([i915#4235]) [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90: - shard-dg2: NOTRUN -> [SKIP][155] ([i915#4235] / [i915#5190]) [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html * igt@kms_tiled_display@basic-test-pattern: - shard-dg2: NOTRUN -> [SKIP][156] ([i915#8623]) +1 other test skip [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_tiled_display@basic-test-pattern.html * igt@kms_tv_load_detect@load-detect: - shard-dg2: NOTRUN -> [SKIP][157] ([fdo#109309]) [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_tv_load_detect@load-detect.html * igt@kms_universal_plane@cursor-fb-leak@pipe-d-edp-1: - shard-mtlp: [PASS][158] -> [FAIL][159] ([i915#9196]) +1 other test fail [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-5/igt@kms_universal_plane@cursor-fb-leak@pipe-d-edp-1.html [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-7/igt@kms_universal_plane@cursor-fb-leak@pipe-d-edp-1.html * igt@kms_writeback@writeback-fb-id: - shard-dg2: NOTRUN -> [SKIP][160] ([i915#2437]) +1 other test skip [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@kms_writeback@writeback-fb-id.html * igt@perf_pmu@busy-double-start@bcs0: - shard-mtlp: [PASS][161] -> [FAIL][162] ([i915#4349]) +4 other tests fail [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-8/igt@perf_pmu@busy-double-start@bcs0.html [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@perf_pmu@busy-double-start@bcs0.html * igt@perf_pmu@cpu-hotplug: - shard-mtlp: NOTRUN -> [SKIP][163] ([i915#8850]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-5/igt@perf_pmu@cpu-hotplug.html * igt@perf_pmu@event-wait@rcs0: - shard-mtlp: NOTRUN -> [SKIP][164] ([i915#3555] / [i915#8807]) [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@perf_pmu@event-wait@rcs0.html * igt@prime_udl: - shard-mtlp: NOTRUN -> [SKIP][165] ([fdo#109291]) [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-7/igt@prime_udl.html * igt@prime_vgem@basic-fence-flip: - shard-dg2: NOTRUN -> [SKIP][166] ([i915#3708]) [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-7/igt@prime_vgem@basic-fence-flip.html * igt@prime_vgem@basic-fence-mmap: - shard-mtlp: NOTRUN -> [SKIP][167] ([i915#3708] / [i915#4077]) [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-8/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-gtt: - shard-dg2: NOTRUN -> [SKIP][168] ([i915#3708] / [i915#4077]) [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@prime_vgem@basic-gtt.html * igt@prime_vgem@basic-read: - shard-dg2: NOTRUN -> [SKIP][169] ([i915#3291] / [i915#3708]) [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-5/igt@prime_vgem@basic-read.html * igt@v3d/v3d_job_submission@array-job-submission: - shard-mtlp: NOTRUN -> [SKIP][170] ([i915#2575]) +4 other tests skip [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-7/igt@v3d/v3d_job_submission@array-job-submission.html * igt@v3d/v3d_submit_cl@multi-and-single-sync: - shard-tglu: NOTRUN -> [SKIP][171] ([fdo#109315] / [i915#2575]) [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-3/igt@v3d/v3d_submit_cl@multi-and-single-sync.html * igt@v3d/v3d_submit_csd@job-perfmon: - shard-dg2: NOTRUN -> [SKIP][172] ([i915#2575]) +10 other tests skip [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-2/igt@v3d/v3d_submit_csd@job-perfmon.html * igt@vc4/vc4_tiling@get-after-free: - shard-mtlp: NOTRUN -> [SKIP][173] ([i915#7711]) +3 other tests skip [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-6/igt@vc4/vc4_tiling@get-after-free.html * igt@vc4/vc4_wait_seqno@bad-seqno-1ns: - shard-dg2: NOTRUN -> [SKIP][174] ([i915#7711]) +9 other tests skip [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@vc4/vc4_wait_seqno@bad-seqno-1ns.html #### Possible fixes #### * igt@gem_eio@reset-stress: - shard-dg1: [FAIL][175] ([i915#5784]) -> [PASS][176] [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg1-16/igt@gem_eio@reset-stress.html [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg1-15/igt@gem_eio@reset-stress.html * igt@gem_exec_suspend@basic-s0@smem: - shard-dg2: [INCOMPLETE][177] ([i915#9275]) -> [PASS][178] [177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-2/igt@gem_exec_suspend@basic-s0@smem.html [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@gem_exec_suspend@basic-s0@smem.html * igt@gem_lmem_swapping@smem-oom@lmem0: - shard-dg2: [TIMEOUT][179] ([i915#5493]) -> [PASS][180] [179]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-10/igt@gem_lmem_swapping@smem-oom@lmem0.html [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@gem_lmem_swapping@smem-oom@lmem0.html - shard-dg1: [DMESG-WARN][181] ([i915#4936] / [i915#5493]) -> [PASS][182] [181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg1-14/igt@gem_lmem_swapping@smem-oom@lmem0.html [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg1-18/igt@gem_lmem_swapping@smem-oom@lmem0.html * igt@gem_workarounds@reset-fd: - shard-mtlp: [ABORT][183] ([i915#9414]) -> [PASS][184] [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-8/igt@gem_workarounds@reset-fd.html [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@gem_workarounds@reset-fd.html * igt@gen9_exec_parse@allowed-single: - shard-glk: [INCOMPLETE][185] ([i915#5566]) -> [PASS][186] [185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-glk6/igt@gen9_exec_parse@allowed-single.html [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk7/igt@gen9_exec_parse@allowed-single.html * igt@i915_power@sanity: - shard-mtlp: [SKIP][187] ([i915#7984]) -> [PASS][188] [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-4/igt@i915_power@sanity.html [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@i915_power@sanity.html * igt@i915_selftest@live@gem_contexts: - shard-mtlp: [DMESG-FAIL][189] ([i915#9579]) -> [PASS][190] [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-6/igt@i915_selftest@live@gem_contexts.html [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-2/igt@i915_selftest@live@gem_contexts.html * igt@kms_atomic@crtc-invalid-params-fence@pipe-a-edp-1: - shard-mtlp: [DMESG-WARN][191] ([i915#2017]) -> [PASS][192] [191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-6/igt@kms_atomic@crtc-invalid-params-fence@pipe-a-edp-1.html [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-4/igt@kms_atomic@crtc-invalid-params-fence@pipe-a-edp-1.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-mtlp: [FAIL][193] ([i915#5138]) -> [PASS][194] +1 other test pass [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [FAIL][195] ([i915#2346]) -> [PASS][196] +1 other test pass [195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * {igt@kms_pm_dc@dc9-dpms}: - shard-tglu: [SKIP][197] ([i915#4281]) -> [PASS][198] [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-tglu-10/igt@kms_pm_dc@dc9-dpms.html [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-tglu-9/igt@kms_pm_dc@dc9-dpms.html * {igt@kms_pm_rpm@modeset-lpsp-stress}: - shard-dg2: [SKIP][199] ([i915#9519]) -> [PASS][200] [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-11/igt@kms_pm_rpm@modeset-lpsp-stress.html [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-10/igt@kms_pm_rpm@modeset-lpsp-stress.html * igt@kms_sysfs_edid_timing: - shard-dg2: [FAIL][201] ([IGT#2]) -> [PASS][202] [201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-5/igt@kms_sysfs_edid_timing.html [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@kms_sysfs_edid_timing.html * igt@perf@non-zero-reason@0-rcs0: - shard-dg2: [FAIL][203] ([i915#7484]) -> [PASS][204] [203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-5/igt@perf@non-zero-reason@0-rcs0.html [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-6/igt@perf@non-zero-reason@0-rcs0.html * igt@sysfs_timeslice_duration@timeout@vcs0: - shard-dg2: [ABORT][205] -> [PASS][206] [205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-dg2-11/igt@sysfs_timeslice_duration@timeout@vcs0.html [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-dg2-11/igt@sysfs_timeslice_duration@timeout@vcs0.html #### Warnings #### * igt@kms_async_flips@crc@pipe-d-edp-1: - shard-mtlp: [FAIL][207] ([i915#8247]) -> [DMESG-FAIL][208] ([i915#8561]) +3 other tests dmesg-fail [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13920/shard-mtlp-7/igt@kms_async_flips@crc@pipe-d-edp-1.html [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/shard-mtlp-1/igt@kms_async_flips@crc@pipe-d-edp-1.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293 [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302 [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309 [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099 [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017 [i915#2065]: https://gitlab.freedesktop.org/drm/intel/issues/2065 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3582]: https://gitlab.freedesktop.org/drm/intel/issues/3582 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936 [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4473]: https://gitlab.freedesktop.org/drm/intel/issues/4473 [i915#4537]: https://gitlab.freedesktop.org/drm/intel/issues/4537 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771 [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879 [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881 [i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936 [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958 [i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5460]: https://gitlab.freedesktop.org/drm/intel/issues/5460 [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#5978]: https://gitlab.freedesktop.org/drm/intel/issues/5978 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6187]: https://gitlab.freedesktop.org/drm/intel/issues/6187 [i915#6188]: https://gitlab.freedesktop.org/drm/intel/issues/6188 [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268 [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880 [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944 [i915#7091]: https://gitlab.freedesktop.org/drm/intel/issues/7091 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173 [i915#7484]: https://gitlab.freedesktop.org/drm/intel/issues/7484 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701 [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7862]: https://gitlab.freedesktop.org/drm/intel/issues/7862 [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984 [i915#8063]: https://gitlab.freedesktop.org/drm/intel/issues/8063 [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228 [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247 [i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381 [i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411 [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414 [i915#8428]: https://gitlab.freedesktop.org/drm/intel/issues/8428 [i915#8430]: https://gitlab.freedesktop.org/drm/intel/issues/8430 [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555 [i915#8561]: https://gitlab.freedesktop.org/drm/intel/issues/8561 [i915#8562]: https://gitlab.freedesktop.org/drm/intel/issues/8562 [i915#8588]: https://gitlab.freedesktop.org/drm/intel/issues/8588 [i915#8623]: https://gitlab.freedesktop.org/drm/intel/issues/8623 [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708 [i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709 [i915#8797]: https://gitlab.freedesktop.org/drm/intel/issues/8797 [i915#8806]: https://gitlab.freedesktop.org/drm/intel/issues/8806 [i915#8807]: https://gitlab.freedesktop.org/drm/intel/issues/8807 [i915#8810]: https://gitlab.freedesktop.org/drm/intel/issues/8810 [i915#8814]: https://gitlab.freedesktop.org/drm/intel/issues/8814 [i915#8850]: https://gitlab.freedesktop.org/drm/intel/issues/8850 [i915#8925]: https://gitlab.freedesktop.org/drm/intel/issues/8925 [i915#9159]: https://gitlab.freedesktop.org/drm/intel/issues/9159 [i915#9196]: https://gitlab.freedesktop.org/drm/intel/issues/9196 [i915#9275]: https://gitlab.freedesktop.org/drm/intel/issues/9275 [i915#9311]: https://gitlab.freedesktop.org/drm/intel/issues/9311 [i915#9412]: https://gitlab.freedesktop.org/drm/intel/issues/9412 [i915#9414]: https://gitlab.freedesktop.org/drm/intel/issues/9414 [i915#9423]: https://gitlab.freedesktop.org/drm/intel/issues/9423 [i915#9424]: https://gitlab.freedesktop.org/drm/intel/issues/9424 [i915#9433]: https://gitlab.freedesktop.org/drm/intel/issues/9433 [i915#9457]: https://gitlab.freedesktop.org/drm/intel/issues/9457 [i915#9519]: https://gitlab.freedesktop.org/drm/intel/issues/9519 [i915#9531]: https://gitlab.freedesktop.org/drm/intel/issues/9531 [i915#9579]: https://gitlab.freedesktop.org/drm/intel/issues/9579 [i915#9606]: https://gitlab.freedesktop.org/drm/intel/issues/9606 [i915#9653]: https://gitlab.freedesktop.org/drm/intel/issues/9653 [i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673 [i915#9681]: https://gitlab.freedesktop.org/drm/intel/issues/9681 [i915#9683]: https://gitlab.freedesktop.org/drm/intel/issues/9683 [i915#9685]: https://gitlab.freedesktop.org/drm/intel/issues/9685 [i915#9688]: https://gitlab.freedesktop.org/drm/intel/issues/9688 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7601 -> IGTPW_10264 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_13920: 278e4673d0a5f5cd5d0b585df88cbcb6d3afd0d8 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_10264: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/index.html IGT_7601: 9c6e7f255724e327627be7c8ed30e23742e97386 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10264/index.html [-- Attachment #2: Type: text/html, Size: 68039 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation
@ 2023-11-25 16:20 Bhanuprakash Modem
2023-11-25 16:20 ` [igt-dev] [i-g-t 5/5] tests/kms/testplan: Avoid duplicate names on Mega feature vs Functionality Bhanuprakash Modem
0 siblings, 1 reply; 15+ messages in thread
From: Bhanuprakash Modem @ 2023-11-25 16:20 UTC (permalink / raw)
To: igt-dev, swati2.sharma
Optimizations:
- Move common stuff to TEST level
- Move documentation to beginning of the file
- Align Mega features to internal tools
- Avoid duplicate names on Mega feature vs Functionality
V2, V3: Rebase
Bhanuprakash Modem (5):
tests/kms/testplan: Move testplan documentation to beginning of the
file
tests/kms/testplan: Regroup testplan documentation
tests/kms/testplan: Optimize KMS testplan documentation
tests/kms/testplan: Fix Mega Feature in testplan documentation
tests/kms/testplan: Avoid duplicate names on Mega feature vs
Functionality
tests/chamelium/kms_chamelium_audio.c | 68 +-
tests/chamelium/kms_chamelium_color.c | 59 +-
tests/chamelium/kms_chamelium_edid.c | 181 +-
tests/chamelium/kms_chamelium_frames.c | 181 +-
tests/chamelium/kms_chamelium_hpd.c | 362 +-
tests/intel/kms_big_fb.c | 275 +-
tests/intel/kms_big_joiner.c | 42 +-
tests/intel/kms_busy.c | 90 +-
tests/intel/kms_ccs.c | 16 +-
tests/intel/kms_cdclk.c | 41 +-
tests/intel/kms_dirtyfb.c | 24 +-
tests/intel/kms_draw_crc.c | 72 +-
tests/intel/kms_dsc.c | 9 +-
tests/intel/kms_fb_coherency.c | 21 +-
tests/intel/kms_fbcon_fbt.c | 26 +-
tests/intel/kms_fence_pin_leak.c | 11 +-
tests/intel/kms_flip_scaled_crc.c | 71 +-
tests/intel/kms_flip_tiling.c | 11 +-
tests/intel/kms_frontbuffer_tracking.c | 5746 +++++++++++-------------
tests/intel/kms_legacy_colorkey.c | 18 +-
tests/intel/kms_mmap_write_crc.c | 13 +-
tests/intel/kms_pipe_b_c_ivb.c | 29 +-
tests/intel/kms_pm_backlight.c | 33 +-
tests/intel/kms_pm_dc.c | 43 +-
tests/intel/kms_pm_lpsp.c | 20 +-
tests/intel/kms_pm_rpm.c | 4 +
tests/intel/kms_psr.c | 155 +-
tests/intel/kms_psr2_sf.c | 49 +-
tests/intel/kms_psr2_su.c | 20 +-
tests/intel/kms_psr_stress_test.c | 22 +-
tests/intel/kms_pwrite_crc.c | 10 +-
tests/kms_3d.c | 9 +-
tests/kms_addfb_basic.c | 359 +-
tests/kms_async_flips.c | 82 +-
tests/kms_atomic.c | 141 +-
tests/kms_atomic_interruptible.c | 88 +-
tests/kms_atomic_transition.c | 157 +-
tests/kms_bw.c | 19 +-
tests/kms_color.c | 124 +-
tests/kms_concurrent.c | 9 +-
tests/kms_content_protection.c | 120 +-
tests/kms_cursor_crc.c | 131 +-
tests/kms_cursor_edge_walk.c | 20 +-
tests/kms_cursor_legacy.c | 426 +-
tests/kms_display_modes.c | 34 +-
tests/kms_dither.c | 28 +-
tests/kms_dp_aux_dev.c | 11 +-
tests/kms_feature_discovery.c | 43 +-
tests/kms_flip.c | 229 +-
tests/kms_flip_event_leak.c | 10 +-
tests/kms_force_connector_basic.c | 52 +-
tests/kms_getfb.c | 139 +-
tests/kms_hdmi_inject.c | 25 +-
tests/kms_hdr.c | 106 +-
tests/kms_invalid_mode.c | 9 +-
tests/kms_lease.c | 88 +-
tests/kms_multipipe_modeset.c | 7 +-
tests/kms_panel_fitting.c | 23 +-
tests/kms_pipe_crc_basic.c | 120 +-
tests/kms_plane.c | 114 +-
tests/kms_plane_alpha_blend.c | 82 +-
tests/kms_plane_cursor.c | 20 +-
tests/kms_plane_lowres.c | 47 +-
tests/kms_plane_multiple.c | 51 +-
tests/kms_plane_scaling.c | 400 +-
tests/kms_prime.c | 26 +-
tests/kms_prop_blob.c | 84 +-
tests/kms_properties.c | 43 +-
tests/kms_rmfb.c | 25 +-
tests/kms_rotation_crc.c | 202 +-
tests/kms_scaling_modes.c | 13 +-
tests/kms_selftest.c | 13 +-
tests/kms_sequence.c | 56 +-
tests/kms_setmode.c | 40 +-
tests/kms_sysfs_edid_timing.c | 12 +-
tests/kms_tiled_display.c | 10 +-
tests/kms_tv_load_detect.c | 7 +-
tests/kms_universal_plane.c | 33 +-
tests/kms_vblank.c | 61 +-
tests/kms_vrr.c | 33 +-
tests/kms_writeback.c | 43 +-
tests/testdisplay.c | 12 +-
82 files changed, 5029 insertions(+), 6729 deletions(-)
--
2.40.0
^ permalink raw reply [flat|nested] 15+ messages in thread* [igt-dev] [i-g-t 5/5] tests/kms/testplan: Avoid duplicate names on Mega feature vs Functionality 2023-11-25 16:20 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem @ 2023-11-25 16:20 ` Bhanuprakash Modem 0 siblings, 0 replies; 15+ messages in thread From: Bhanuprakash Modem @ 2023-11-25 16:20 UTC (permalink / raw) To: igt-dev, swati2.sharma Avoid duplicate names on Mega feature vs Functionality in KMS testplan documentation. This patch will do below updates in Functionality: - eDP --> eDP_core - hdr --> static_hdr - psr --> psr1, psr2 (based on the requiremnet) Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com> --- tests/intel/kms_fbcon_fbt.c | 4 +- tests/intel/kms_frontbuffer_tracking.c | 228 ++++++++++++------------- tests/intel/kms_pm_dc.c | 4 +- tests/intel/kms_psr.c | 38 ++--- tests/intel/kms_psr_stress_test.c | 2 +- tests/kms_feature_discovery.c | 4 +- tests/kms_hdmi_inject.c | 2 +- tests/kms_hdr.c | 13 +- tests/kms_panel_fitting.c | 2 +- tests/kms_scaling_modes.c | 2 +- 10 files changed, 151 insertions(+), 148 deletions(-) diff --git a/tests/intel/kms_fbcon_fbt.c b/tests/intel/kms_fbcon_fbt.c index e2617a79a..90484dccf 100644 --- a/tests/intel/kms_fbcon_fbt.c +++ b/tests/intel/kms_fbcon_fbt.c @@ -57,13 +57,13 @@ * SUBTEST: psr * Description: Test the relationship between fbcon and the frontbuffer tracking * infrastructure with psr enabled. - * Functionality: fbcon, fbt, psr + * Functionality: fbcon, fbt, psr1 * Mega feature: PSR * * SUBTEST: psr-suspend * Description: Suspend test to validate the relationship between fbcon and the * frontbuffer tracking infrastructure with psr enabled. - * Functionality: fbcon, fbt, psr, suspend + * Functionality: fbcon, fbt, psr1, suspend * Mega feature: PSR */ diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c index abc44bf39..259dfd136 100644 --- a/tests/intel/kms_frontbuffer_tracking.c +++ b/tests/intel/kms_frontbuffer_tracking.c @@ -67,7 +67,7 @@ * * SUBTEST: psr-%dp-rte * Description: Sanity test to enable PSR with %arg[1] panels. - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-rte * Description: Sanity test to enable FBC & DRRS with %arg[1] panels. @@ -75,15 +75,15 @@ * * SUBTEST: fbcpsr-%dp-rte * Description: Sanity test to enable FBC & PSR with %arg[1] panels. - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-rte * Description: Sanity test to enable PSR & DRRS with %arg[1] panels. - * Functionality: fbt, drrs, psr + * Functionality: fbt, drrs, psr1 * * SUBTEST: fbcpsrdrrs-%dp-rte * Description: Sanity test to enable FBC, PSR & DRRS with %arg[1] panels. - * Functionality: fbc, fbt, drrs, psr + * Functionality: fbc, fbt, drrs, psr1 * * arg[1].values: 1, 2 */ @@ -99,7 +99,7 @@ * * SUBTEST: psr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -107,15 +107,15 @@ * * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -143,7 +143,7 @@ * SUBTEST: psr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -153,17 +153,17 @@ * SUBTEST: fbcpsr-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-1p-offscren-pri-%s-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -191,7 +191,7 @@ * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -201,17 +201,17 @@ * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -239,7 +239,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -247,15 +247,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -283,7 +283,7 @@ * * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -291,15 +291,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -324,7 +324,7 @@ * SUBTEST: psr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -334,17 +334,17 @@ * SUBTEST: fbcpsr-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -366,7 +366,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -374,15 +374,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -411,7 +411,7 @@ * SUBTEST: psr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -421,17 +421,17 @@ * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -457,7 +457,7 @@ * * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -465,15 +465,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -496,7 +496,7 @@ * SUBTEST: psr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method @@ -506,17 +506,17 @@ * SUBTEST: fbcpsr-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-pri-shrfb-draw-%s * Description: Draw a set of rectangles on the screen using the provided method * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -536,7 +536,7 @@ * * SUBTEST: psr-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods @@ -544,15 +544,15 @@ * * SUBTEST: fbcpsr-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-pri-indfb-multidraw * Description: Draw a set of rectangles on the screen using alternated drawing methods - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 */ @@ -568,7 +568,7 @@ * * SUBTEST: psr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT @@ -576,15 +576,15 @@ * * SUBTEST: fbcpsr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -612,7 +612,7 @@ * SUBTEST: psr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT @@ -622,17 +622,17 @@ * SUBTEST: fbcpsr-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%s-draw-%s * Description: Test pixel formats (%arg[1]) that are not FORMAT_DEFAULT * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -653,7 +653,7 @@ * * SUBTEST: psr-slowdraw * Description: Sleep a little bit between drawing operations with PSR - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-slowdraw * Description: Sleep a little bit between drawing operations with FBC & DRRS @@ -661,15 +661,15 @@ * * SUBTEST: fbcpsr-slowdraw * Description: Sleep a little bit between drawing operations with FBC & PSR - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-slowdraw * Description: Sleep a little bit between drawing operations with PSR & DRRS - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-slowdraw * Description: Sleep a little bit between drawing operations with FBC, PSR & DRRS - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 */ /** @@ -683,7 +683,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have @@ -691,15 +691,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -726,7 +726,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have @@ -734,15 +734,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-%sflip-blt * Description: Just exercise page flips with the patterns we have - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1]: * @@ -767,11 +767,11 @@ * * SUBTEST: fbcpsr-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-%dp-%s-fliptrack-mmap-gtt * Description: Check if the hardware tracking works after page flips - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 * * arg[1].values: 1, 2 * @@ -792,7 +792,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around @@ -800,15 +800,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-move * Description: Just move the %arg[2] around - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1].values: 1, 2 * @@ -829,7 +829,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around @@ -837,15 +837,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-move * Description: Just move the %arg[1] around - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1]: * @@ -864,7 +864,7 @@ * * SUBTEST: psr-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times @@ -872,15 +872,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[2] a few times - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1].values: 1, 2 * @@ -901,7 +901,7 @@ * * SUBTEST: psr-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times @@ -909,15 +909,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-%s-indfb-onoff * Description: Just enable and disable the %arg[1] a few times - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1]: * @@ -936,7 +936,7 @@ * * SUBTEST: psr-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen @@ -944,15 +944,15 @@ * * SUBTEST: fbcpsr-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-%dp-primscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * SUBTEST: drrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen @@ -964,7 +964,7 @@ * * SUBTEST: psr-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbt, psr + * Functionality: fbt, psr1 * * SUBTEST: fbcdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen @@ -972,15 +972,15 @@ * * SUBTEST: fbcpsr-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: psrdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbt, psr + * Functionality: drrs, fbt, psr1 * * SUBTEST: fbcpsrdrrs-2p-scndscrn-spr-indfb-fullscreen * Description: Put a fullscreen plane covering the whole screen - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 * * arg[1].values: 1, 2 */ @@ -996,7 +996,7 @@ * * SUBTEST: psr-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: fbt, psr, scaling + * Functionality: fbt, psr1, scaling * * SUBTEST: fbcdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies @@ -1004,15 +1004,15 @@ * * SUBTEST: fbcpsr-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: fbc, fbt, psr, scaling + * Functionality: fbc, fbt, psr1, scaling * * SUBTEST: psrdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: drrs, fbt, psr, scaling + * Functionality: drrs, fbt, psr1, scaling * * SUBTEST: fbcpsrdrrs-%s-scaledprimary * Description: Try different primary plane scaling strategies - * Functionality: drrs, fbc, fbt, psr, scaling + * Functionality: drrs, fbc, fbt, psr1, scaling * * arg[1]: * @@ -1031,7 +1031,7 @@ * * SUBTEST: psr-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with PSR - * Functionality: fbt, psr, scaling + * Functionality: fbt, psr1, scaling * * SUBTEST: fbcdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC & DRRS @@ -1039,15 +1039,15 @@ * * SUBTEST: fbcpsr-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC & PSR - * Functionality: fbc, fbt, psr, scaling + * Functionality: fbc, fbt, psr1, scaling * * SUBTEST: psrdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with PSR & DRRS - * Functionality: drrs, fbt, psr, scaling + * Functionality: drrs, fbt, psr1, scaling * * SUBTEST: fbcpsrdrrs-modesetfrombusy * Description: Modeset from a busy buffer to a non-busy buffer with FBC, PSR & DRRS - * Functionality: drrs, fbc, fbt, psr, scaling + * Functionality: drrs, fbc, fbt, psr1, scaling */ /** @@ -1061,7 +1061,7 @@ * * SUBTEST: psr-suspend * Description: Make sure suspend/resume keeps us on the same state of PSR - * Functionality: fbt, psr, suspend + * Functionality: fbt, psr1, suspend * * SUBTEST: fbcdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC & DRRS @@ -1069,15 +1069,15 @@ * * SUBTEST: fbcpsr-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC & PSR - * Functionality: fbc, fbt, psr, suspend + * Functionality: fbc, fbt, psr1, suspend * * SUBTEST: psrdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of PSR & DRRS - * Functionality: drrs, fbt, psr, suspend + * Functionality: drrs, fbt, psr1, suspend * * SUBTEST: fbcpsrdrrs-suspend * Description: Make sure suspend/resume keeps us on the same state of FBC, PSR & DRRS - * Functionality: drrs, fbc, fbt, psr, suspend + * Functionality: drrs, fbc, fbt, psr1, suspend */ /** @@ -1094,7 +1094,7 @@ * SUBTEST: psr-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: fbt, kms_core, psr + * Functionality: fbt, kms_core, psr1 * * SUBTEST: fbcdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible @@ -1104,17 +1104,17 @@ * SUBTEST: fbcpsr-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: fbc, fbt, kms_core, psr + * Functionality: fbc, fbt, kms_core, psr1 * * SUBTEST: psrdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: drrs, fbt, kms_core, psr + * Functionality: drrs, fbt, kms_core, psr1 * * SUBTEST: fbcpsrdrrs-farfromfence-mmap-gtt * Description: Test drawing as far from the fence start as possible * Driver requirement: i915 - * Functionality: drrs, fbc, fbt, kms_core, psr + * Functionality: drrs, fbc, fbt, kms_core, psr1 */ /** @@ -1128,11 +1128,11 @@ * * SUBTEST: fbcpsr-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Functionality: fbc, fbt, psr + * Functionality: fbc, fbt, psr1 * * SUBTEST: fbcpsrdrrs-stridechange * Description: Change the frontbuffer stride by doing a modeset - * Functionality: drrs, fbc, fbt, psr + * Functionality: drrs, fbc, fbt, psr1 */ /** @@ -1149,12 +1149,12 @@ * SUBTEST: fbcpsr-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Functionality: fbc, fbt, psr, tiling + * Functionality: fbc, fbt, psr1, tiling * * SUBTEST: fbcpsrdrrs-tiling-%s * Description: Test %arg[1] formats, if the tiling format supports FBC do the * basic drawing test, else set the mode & test if FBC is disabled - * Functionality: drrs, fbc, fbt, psr, tiling + * Functionality: drrs, fbc, fbt, psr1, tiling * * arg[1]: * diff --git a/tests/intel/kms_pm_dc.c b/tests/intel/kms_pm_dc.c index 739ed6112..8006e54de 100644 --- a/tests/intel/kms_pm_dc.c +++ b/tests/intel/kms_pm_dc.c @@ -64,7 +64,7 @@ * * SUBTEST: dc5-psr * Description: This test validates display engine entry to DC5 state while PSR is active - * Functionality: pm_dc, psr + * Functionality: pm_dc, psr1 * * SUBTEST: dc6-dpms * Description: Validate display engine entry to DC6 state while all connectors's @@ -72,7 +72,7 @@ * * SUBTEST: dc6-psr * Description: This test validates display engine entry to DC6 state while PSR is active - * Functionality: pm_dc, psr + * Functionality: pm_dc, psr1 * * SUBTEST: dc9-dpms * Description: This test validates display engine entry to DC9 state diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c index b9e95fdfe..7fe6a2c30 100644 --- a/tests/intel/kms_psr.c +++ b/tests/intel/kms_psr.c @@ -44,13 +44,13 @@ /** * SUBTEST: psr_basic * Description: Basic check for psr if it is detecting changes made in planes - * Functionality: psr + * Functionality: psr1 * * SUBTEST: psr_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] * Driver requirement: i915 - * Functionality: kms_core, plane, psr + * Functionality: kms_core, plane, psr1 * * arg[1]: * @@ -68,12 +68,12 @@ * SUBTEST: psr_sprite_plane_move * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on sprite planes - * Functionality: plane, psr + * Functionality: plane, psr1 * * SUBTEST: psr_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Functionality: kms_core, plane, psr + * Functionality: kms_core, plane, psr1 * * arg[1]: * @@ -91,7 +91,7 @@ * SUBTEST: psr_primary_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Functionality: kms_core, psr + * Functionality: kms_core, psr1 * * arg[1]: * @@ -103,40 +103,40 @@ * SUBTEST: psr_dpms * Description: Check if psr is detecting changes when rendering operation is * performed with dpms enabled or disabled - * Functionality: dpms, psr + * Functionality: dpms, psr1 * * SUBTEST: psr_no_drrs * Description: Check if psr is detecting changes when drrs is disabled - * Functionality: drrs, psr + * Functionality: drrs, psr1 * * SUBTEST: psr_suspend * Description: Check if psr is detecting changes when plane operation * is performed with suspend resume cycles - * Functionality: psr, suspend + * Functionality: psr1, suspend * * SUBTEST: psr2_dpms * Description: Check if psr is detecting changes when rendering operation * is performed with dpms enabled or disabled - * Functionality: dpms, psr, psr2 + * Functionality: dpms, psr2 * * SUBTEST: psr2_no_drrs * Description: Check if psr is detecting changes when drrs is disabled - * Functionality: drrs, psr, psr2 + * Functionality: drrs, psr2 * * SUBTEST: psr2_suspend * Description: Check if psr is detecting changes when plane operation is * performed with suspend resume cycles - * Functionality: psr, psr2, suspend + * Functionality: psr2, suspend * * SUBTEST: psr2_basic * Description: Basic check for psr if it is detecting changes made in planes - * Functionality: psr, psr2 + * Functionality: psr2 * * SUBTEST: psr2_%s_%s * Description: Check if psr2 is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes * Driver requirement: i915 - * Functionality: kms_core, plane, psr, psr2 + * Functionality: kms_core, plane, psr2 * * arg[1]: * @@ -154,12 +154,12 @@ * SUBTEST: psr2_primary_page_flip * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Functionality: plane, psr, psr2 + * Functionality: plane, psr2 * * SUBTEST: psr2_primary_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on primary planes - * Functionality: kms_core, plane, psr, psr2 + * Functionality: kms_core, plane, psr2 * * arg[1]: * @@ -171,7 +171,7 @@ * SUBTEST: psr2_%s_%s * Description: Check if psr is detecting memory mapping, rendering and plane * operations performed on %arg[1] planes - * Functionality: kms_core, plane, psr, psr2 + * Functionality: kms_core, plane, psr2 * * arg[1]: * @@ -273,17 +273,17 @@ * SUBTEST: psr_cursor_plane_move * Description: Check if psr is detecting the plane operations performed on * cursor planes - * Functionality: psr + * Functionality: psr1 * * SUBTEST: psr_primary_page_flip * Description: Check if psr is detecting page-flipping operations performed * on primary planes - * Functionality: psr + * Functionality: psr1 * * SUBTEST: psr_sprite_plane_onoff * Description: Check if psr is detecting the plane operations performed on * sprite planes - * Functionality: psr + * Functionality: psr1 */ enum operations { diff --git a/tests/intel/kms_psr_stress_test.c b/tests/intel/kms_psr_stress_test.c index 28529b1f1..7aea8e8a5 100644 --- a/tests/intel/kms_psr_stress_test.c +++ b/tests/intel/kms_psr_stress_test.c @@ -3,7 +3,7 @@ * TEST: kms psr stress test * Category: Display * Driver requirement: i915, xe - * Functionality: plane, psr + * Functionality: plane, psr1 * Mega feature: PSR * Test category: functionality test */ diff --git a/tests/kms_feature_discovery.c b/tests/kms_feature_discovery.c index 24c71ed22..dff667c73 100644 --- a/tests/kms_feature_discovery.c +++ b/tests/kms_feature_discovery.c @@ -57,12 +57,12 @@ * * SUBTEST: psr1 * Description: Make sure that we have eDP panel with PSR1 support. - * Functionality: feature_discovery, psr1, eDP + * Functionality: feature_discovery, psr1, eDP_core * Mega feature: PSR * * SUBTEST: psr2 * Description: Make sure that we have eDP panel with PSR2 support. - * Functionality: feature_discovery, psr2, eDP + * Functionality: feature_discovery, psr2, eDP_core * Mega feature: PSR * * SUBTEST: dp-mst diff --git a/tests/kms_hdmi_inject.c b/tests/kms_hdmi_inject.c index 9691f2818..a554ca2b1 100644 --- a/tests/kms_hdmi_inject.c +++ b/tests/kms_hdmi_inject.c @@ -51,7 +51,7 @@ * SUBTEST: inject-audio * Description: Make sure that audio information exposed by ALSA match the forced * EDID. - * Functionality: audio, force_connector + * Functionality: hdmi_audio, force_connector */ #define HDISPLAY_4K 3840 diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c index 4dd2eda37..99b78f7ef 100644 --- a/tests/kms_hdr.c +++ b/tests/kms_hdr.c @@ -25,7 +25,6 @@ * Category: Display * Description: Test HDR metadata interfaces and bpc switch * Driver requirement: i915, xe - * Functionality: colorspace, hdr * Mega feature: HDR * Test category: functionality test */ @@ -39,31 +38,35 @@ /** * SUBTEST: bpc-switch * Description: Tests switching between different display output bpc modes + * Functionality: colorspace * * SUBTEST: bpc-switch-dpms * Description: Tests switching between different display output bpc modes with dpms - * Functionality: colorspace, dpms, hdr + * Functionality: colorspace, dpms * * SUBTEST: bpc-switch-suspend * Description: Tests switching between different display output bpc modes with suspend - * Functionality: colorspace, hdr, suspend + * Functionality: colorspace, suspend * * SUBTEST: invalid-hdr * Description: Test to ensure HDR is not enabled on non-HDR panel + * Functionality: colorspace, static_hdr * * SUBTEST: invalid-metadata-sizes * Description: Tests invalid HDR metadata sizes + * Functionality: colorspace, static_hdr * * SUBTEST: static-toggle-dpms * Description: Tests static toggle with dpms - * Functionality: colorspace, dpms, hdr + * Functionality: colorspace, dpms, static_hdr * * SUBTEST: static-toggle-suspend * Description: Tests static toggle with suspend - * Functionality: colorspace, hdr, suspend + * Functionality: colorspace, static_hdr, suspend * * SUBTEST: static-%s * Description: Tests %arg[1]. + * Functionality: colorspace, static_hdr * * arg[1]: * diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c index 4b5d9d5ab..f714ab474 100644 --- a/tests/kms_panel_fitting.c +++ b/tests/kms_panel_fitting.c @@ -27,7 +27,7 @@ * Category: Display * Description: Test display panel fitting * Driver requirement: i915, xe - * Functionality: eDP, panel_fitting, scaling + * Functionality: eDP_core, panel_fitting, scaling * Mega feature: General Display Features * Test category: functionality test */ diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c index add6e77c9..fae5755a8 100644 --- a/tests/kms_scaling_modes.c +++ b/tests/kms_scaling_modes.c @@ -29,7 +29,7 @@ * Category: Display * Description: Test display scaling modes * Driver requirement: i915, xe - * Functionality: eDP, plane, scaling + * Functionality: eDP_core, plane, scaling * Mega feature: General Display Features * Test category: functionality test */ -- 2.40.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2023-11-25 16:30 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-24 9:35 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem 2023-11-24 9:35 ` [igt-dev] [i-g-t 1/5] tests/kms/testplan: Move testplan documentation to beginning of the file Bhanuprakash Modem 2023-11-24 17:07 ` Sharma, Swati2 2023-11-24 9:35 ` [igt-dev] [i-g-t 2/5] tests/kms/testplan: Regroup testplan documentation Bhanuprakash Modem 2023-11-24 17:08 ` Sharma, Swati2 2023-11-24 9:36 ` [igt-dev] [i-g-t 3/5] tests/kms/testplan: Optimize KMS " Bhanuprakash Modem 2023-11-24 17:08 ` Sharma, Swati2 2023-11-24 9:36 ` [igt-dev] [i-g-t 4/5] tests/kms/testplan: Fix Mega Feature in " Bhanuprakash Modem 2023-11-24 17:09 ` Sharma, Swati2 2023-11-24 9:36 ` [igt-dev] [i-g-t 5/5] tests/kms/testplan: Avoid duplicate names on Mega feature vs Functionality Bhanuprakash Modem 2023-11-24 12:28 ` [igt-dev] ✓ Fi.CI.BAT: success for Optimize kms tesplan documentation (rev4) Patchwork 2023-11-24 13:24 ` [igt-dev] ✗ CI.xeBAT: failure " Patchwork 2023-11-24 14:37 ` [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Sharma, Swati2 2023-11-25 14:33 ` [igt-dev] ✗ Fi.CI.IGT: failure for Optimize kms tesplan documentation (rev4) Patchwork -- strict thread matches above, loose matches on Subject: below -- 2023-11-25 16:20 [igt-dev] [i-g-t 0/5] Optimize kms tesplan documentation Bhanuprakash Modem 2023-11-25 16:20 ` [igt-dev] [i-g-t 5/5] tests/kms/testplan: Avoid duplicate names on Mega feature vs Functionality Bhanuprakash Modem
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox