summaryrefslogtreecommitdiff
path: root/tests/amdgpu
AgeCommit message (Collapse)Author
2022-06-01tests/amdgpu: refactoring and update amd_basic testsVitaly Prosyak
1. Create auxiliary directory amdgpu into igt-gpu-tools/lib Put all helpers and reusable functions into this directory using the following assumptions: - group memory alloc/free functions into separate file amd_memory.c and h. - group command submissions helper functions for GFX, COMPUTE and SDMA into separate file amd_command_submission.c and h. - for compute put nop command submission into separate file amd_compute.c and h. - for graphics put command submission into separate file amd_gfx.c and h. - for fence put command submission into separate file amd_fence.c and h. 2. Simplify implementation and reduce the number of local variables and allocations. 3. The file igt-gpu-tools/tests/amdgpu/amd_basic.c has only functions responsible for single sub test: - amdgpu_memory_alloc - amdgpu_userptr_test - amdgpu_command_submission_gfx - amdgpu_command_submission_compute - amdgpu_command_submission_multi_fence - amdgpu_command_submission_sdma - amdgpu_semaphore_test 4. No helper functions into amd_basic.c file. 5. Updated command submissions for secure buffer. Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com> Reviewed-by: Christian Koenig <christian.koenig@amd.com> Reviewed-by: Alexander Deucher <alexander.deucher@amd.com>
2022-05-17tests/amdgpu: Adopt to use updated debugfs functionsBhanuprakash Modem
Instead of writing our own wrappers of debugfs read, use updated functions from lib. Cc: Harry Wentland <harry.wentland@amd.com> Cc: Mark Yacoub <markyacoub@chromium.org> Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
2022-05-10tests/amdgpu/amd_psr: add PSR-SU scaling test casesDavid Zhang
[why] We need test cases to validate PSR-SU disabled when a specific plane scaling occurs by visual confirm. From driver's perspective, any plane's height/width change detected, it would cause PSR-SU be disabled. [how] - based on the existed MPO test case, we'd add two more input arguments to the test function, i.e. one as flag indicating if to test scaling, another as scaling ratio for the primary plane - start from 1/3 iteration in test run, scaling the primary plane w/ the given ratio and update the overlay as well, and observe if PSR-SU is disabled as expected by allowing some delay to check - add two sub-test cases, one w/ scaling ratio 1.5, another 0.75 Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2022-05-10tests/amdgpu/amd_psr: use double framebuffers to emulate MPO caseDavid Zhang
[why] Current implementation to emulate the MPO video playback is via creating 20 framebuffers (FB) and each FB has a colorful strip pattern in a different position. From usrmode's view, in general it would not create so many FBs for primary plane. Instead, it only creates double or tripple buffers. [how] - drop the 20 framebuffers in current implementation - use the double primary plane framebuffers defined in data struct and update the strip pattern alternatively on the double FBs and do page flip for each iteration Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2022-05-10tests/amdgpu/amd_psr: clean-up the codeDavid Zhang
[why] We'd clean-up the code to avoid repeated variable declarations in different psr-su test cases. [how] - add primary/overlay framebuffer width/height to generic data structure - add cursor framebuffer instance to data structure - clean-up the code for mpo/ffu/cusor test cases by using above re-useable variables Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2022-05-10tests/amdgpu/amd_psr: some fix for PSR-SU MPO test caseDavid Zhang
[why] Analogous to usermode behavior, when there are primary plane and overlay plane committed, alpha region of overlay corresponding to the primary plane position/size should be set to zero to explicitly display the content of primary plane (emulated as video playback in this test case) in general. The input arguments of width/height of the helper to paint the framebuffer should not exceed the size of the created framebuffer. [how] - set the alpha region of overlay plane framebuffer to zero aligned to the position/size of the primary plane - paint the primary plane framebuffer background/foreground w/ the valid width/height. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> changes in v2: ------------------ - correct the word "toplay" and replace w/ "overlay" to make it more clear and accurate Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2022-05-05tests/amdgpu/amd_bypass: skip if DSC is enabled on the connectorDavid Zhang
[why & how] Since the DSC is visually lossless but loss still exists after compression/decompression at source/destination sides. So for any bypass mode validation, which requires what received at sink is consistent to what is transmitted at source, DSC is required to be turned off. skip the test run if the DSC is enabled on the connector (output). Signed-off-by: David Zhang <dingchen.zhang@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
2022-05-03tests/amdgpu/amd_psr: trigger full modeset if visual confirm enabledDavid Zhang
[why] In amdgpu kernel, to enable PSR visual confirm debug option, it needs a full modeset to call the DM PSR setup helper which in turn to set the visual confirm debug option. Currently before test run there is such full modeset, and after test run ends the visual confirm option is restored to be disabled. Although the IGT clean up after test run ends will do DPMS transition and trigger a full modeset, but at the moment the visual confirm is already disabled. This means that even from command line, visual confirm option is set, the DC visual confirm debug is never enabled actually during any PSR-SU test run. [how] If visual confirm option is set from command line parameter, before any PSR-SU test run, we manually trigger a DPMS off->ON transition which in turn to trigger a full modeset in kernel from test_init(), to enable the visual confirm. changes in v2: - drop the scaling test patch and rebase w/ latest cod base Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2022-04-27tests/amdgpu/amd_psr: add PSR-SU test case for cursor move + MPO scenarioDavid Zhang
[why & how] Besides the static background + cursor movement, a more generic use case from usermode is MPO + cursor movement, e.g. a video stream is playing on screen and user moves the cursor randomly. We'd have a test case to validate PSR-SU enablement and SU region updates by visual confirm for MPO + cursor movement scenario. Refactoring the function for static background + cursor movement test case by adding a flag indicating to test MPO or not. Adding primary FBs as member of data structure used in PSR-SU test cases. For MPO + cursormovement test case, create two primary FBs w/ diff color and fix the position, and during iteration, flip the primary FB together w/ cursor positon update. By enabling visual confirm debug option, the equivalent dirty rectangle region fo SU update is the combination of the old cursor position, new cursor position, and the dirty rectangle for MPO plane. It is expected to observe a green bar on the right side of the screen with height of the combinated dirty rectangle. changes in v2: ----------------- - use multi-level comment to replace "//" Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2022-04-27tests/amdgpu/amd_psr: add PSR-SU cursor movement test caseDavid Zhang
[why] We'd have a test case to validate PSR-SU enablement and selective region update when cursor movement occurs by visual confirm. This is to emulate the scenario of usermode behavior that only the cursor is moving on top of the static screen. [how] create overlay plane w/ screen size and primary plane w/ quarter of screen size and positioned at the top-left of screen. create a cursor plane w/ size of (currently set to) 128 pixels. move the cursor plane along horizonal/vertical/diagonal three directions w/ the incremental step of 16 pixels for a couple of seconds to allow visual confirm of PSR-SU update. changes in v2: ------------------- - use multi-level comment to replace the '//' as per the Linux coding rule Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2022-04-27tests/amdgpu/amd_psr: set visual-confirm default to disabledDavid Zhang
[why & how] For CI machine, by default it would directly run test case w/o any manual confirmation. And visual confirm option is to validate the PSR-SU feature as manual approach, which is for debugging purpose and not for CI automated scheme. Pre-set the "visual_confirm" to disable and only to enable the visual confirm by manual. changes in v2: ---------------------- - pre-set visual confirm option from enabled to disabled, and set it as required argument. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2022-04-27tests/amdgpu/amd_psr: add helper to draw cursor patternDavid Zhang
[why & how] For amdgpu PSR-SU validation, we'd create and test cursor update use case as well. To emulate a mouse-like cursor movement, we'd define a helper to draw a cursor pattern. - helper draw the cursor pattern as an 45-degrees rotated arrow - for the region of arrow, set alpha to 1 to make cursor foreground and always on the top - for rest of the non-arrow region, set alpha to 0 to make it as background Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2022-04-20tests/amdgpu/amd_psr: define reusable wrapper for PSR support checkDavid Zhang
[why & how] For amdgpu PSR-SU test cases, we'd first check if the sink device and amdgpu driver support the PSR-SU feature at the beginning. We define a local helper to wrap the check for PSR-SU support from sink and driver as well and called by both MPO and FFU test case, to avoid the code repetition. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Changes in v2: ----------------- - use igt_warn() for any PSR SU cap/support check before FALSE returned Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2022-04-20tests/amdgpu/amd_psr: add PSR-SU full frame update sub test caseDavid Zhang
[why] We need a full-frame update (FFU) test case to validate PSR-SU feature enablement by visual confirm. [how] 1. create two overlay FBs with full screen size and one primary FB w/ 1/4 screen size 2. panning the primary plane to top-left and flip for couple of frames 3. wait for couple of seconds to allow visual confirm 4. panning the primary plane from top-left to middle of screen 5. repeat step 3 6. panning the primary plane from middle to bottom-right of screen 7. repeat step 3 If the PSR-SU is enabled as expected, for FFU we'd observe the visual confirm by seeing the blue border at the bottom of screen and the bottom of primary plane (megenta rectangle) as well. Changes in v2: ---------------- - drop the unnecessary helper panning_pfb_and_psrsu_check() and collapse the operations into run_check_psr_su_ffu() - initial the two overlay FBs w/ global alpha and different color not to update the specific alpha region for each panning of the primary plane. Changes in v3: ---------------- - before each panning of primary plane, update alpha region in overlay at position/size of primary plane, set alpha to 0.0 to make it transparent. In addition, set the rest of overlay region to 1.0 to make it opaque. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2022-04-20tests/amdgpu/amd_psr: add interactive option of PSR visual confirmDavid Zhang
[why & how] AMDGPU DM debugfs provides a debug option of PSR visual confirm, we'd make it an interactive option that provides capability to usermode to choose if or not to enable the PSR visual confirm. - add interactive option "visual-confirm" and by-default we select it as TRUE to enable visual confirm for PSR-SU test cases. - set PSR visual confirm debugfs if interactive debug option of visual confirm set before any test run begins, and reset after any test run ends. changes in v2: ------------------ - drop the "_dm_" from helpers of visual confirm debugfs set/get - drop the non-necessary visual confirm option check after set and reset, before and after the test run, respectively - align the 2nd line code w/ previous line's opening brace Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2022-04-06tests/amdgpu/amd_psr: drop the PSR state check for PSR-SU MPO testDavid Zhang
[why & how] Currently the enablement of PSR-SU for Linux kernel is still WIP and the PSR state to check for PSR-SU MPO is not upstreamed yet. In addition, all the PSR-SU test case currently by default is validated with visual confirm. Drop the PSR state check in MPO PSR-SU sub-test case in the loop. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com>
2022-04-06tests/amdgpu/amd_psr: use PSR state enum replace the integerDavid Zhang
[why & how] The enum of AMDGPU PSR STATE may update along the time and should be aligned to the code base of upstream. Instead of using hard-coded integer, replace them with enum PSR_STATE would be preferred and we only need to update the PSR_STATE enum if needed in the future. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Jay Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com>
2022-04-06lib/igt_amd: return negative if PSR state debugfs open failsDavid Zhang
[why & how] The PSR state read helper should return an integer which is not the same as PSR state enumeration item for the case of debugfs interface opening fail. Currently it return false which is casted to 0 that is the same as PSR_STATE0, this is incorrect. Instead of returning 0, a negative (e.g. -1) value is returned when debugfs interface of PSR state opening fails. And adding the check of such negative value in amd_psr test case as well. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Aurabindo Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
2022-03-16tests/amdgpu/amd_psr: add PSR-SU MPO subtest caseDavid Zhang
[why] We need a test case to imitate the multiplane overlay (MPO) video playback use case and check PSR-SU enablement during test run. [how] The test run only works for PSR-SU capable sink device and skip for any non-eDP or non-PSR-SU connector or kernel driver not supporting PSR-SU feature. To emulate the video playback and MPO scenario, we use overlay plane w/ size of addressable and primary plane w/ size of quater of overlay acting as video playback region. Create couple of framebuffers w/ size of primary plane and with the pattern of vertical color strip on different position on the FB. During test run, we flip the primary framebuffer and expect the visual effect of moving strip within the region of primary plane acting as video playback. The primary plane during test run is not moving position or resizing. changes in v3 ---------------- * make the indentation consistent to use tabs * newline after for loop for readability Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Aurabindo Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2022-03-16lib/igt_amd: refactor checker of debugfs interface existenceDavid Zhang
[why] The existed amdgpu debugfs helpers to check existance/support of connector's debugfs entry have a bunch of code redundant. Since the generic debugfs interface checker is defined, we'd refactor to avoid code redundancy. [how] - call generic helper igt_amd_output_has_debugfs() for debugfs interface existence check for DSC, HPD, LINK SETTING, PSR CAP etc. - call psr state check helper for existed basic PSR test case. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Aurabindo Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2022-03-16lib/igt_amd: add helpers to check PSR stateDavid Zhang
[why] For AMDGPU devices, we'd check the PSR state via reading from the debugfs interface for a given eDP connector, where the debugfs interface path locates at <debugfs_root>/dri/0/eDP-X/psr_state where 'X' is the eDP connector index. [how] define and add the helper to check if PSR state debugfs interface is supported in driver, and the helper to read PSR state from the debugfs interface. Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Aurabindo Pillai <aurabindo.pillai@amd.com> Cc: Wayne Lin <wayne.lin@amd.com> Signed-off-by: David Zhang <dingchen.zhang@amd.com> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2022-03-11tests/amdgpu/amd_link_settings: Change the flow when exit testWayne Lin
[Why] No need to capture original lane count and link rate for setting back when exit the test. What we actually need to do is clean up the preferred link_setting of driver. [How] Clean up unnecessary steps. Signed-off-by: Wayne Lin <Wayne.Lin@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
2022-03-11tests/amdgpu/amd_link_settings: Ignore CRC checkingWayne Lin
[Why & How] 1. There is no need to check crc since what we're testing is link training. Not test about driver selected BW is sufficient or not. 2. Current crc is created by "auto" which is the crc of crtc. This crc should be constant when change link training setting which is meaningless to this test. Signed-off-by: Wayne Lin <Wayne.Lin@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
2022-03-08tests/amdgpu: new test for Freesync-Video ModeSolomon Chiu
This tests transition between normal and FreeSync-Video modes and measures the FPS to ensure vblank events are happening at the expected rate. A SMPTE test pattern is displayed in the first mode, and then a simple animation is displayed in the second mode, in order to help the user to check if there are blanking with mode transition. v4: Rebase and refine commit message v3: Remove conditional debugging calls and some comments. v2: Rebase Reviewed-by: Wayne Lin <Wayne.Lin@amd.com> Signed-off-by: Solomon Chiu <solomon.chiu@amd.com>
2022-02-15test/amdgpu: Add ilr testWayne Lin
[Why & How] Add new igt test amd_ilr for ilr fature. ILR (Intermediate Link Rate) is the feature introduced in eDP1.4. For saving power purpose, it provides finer granularity of link rates to optimize the allocated bandwidth needed for resolutions of eDP panels. This new igt test "amd_ilr" validates ILR feature from two perspective: * Test if we can sucessfully train link rate at all supported ILRs * Iterate over all modes to see if we do use ILR to optimize the link rate to light up the mode. Signed-off-by: Wayne Lin <Wayne.Lin@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-12-21tests/amdgpu: Introduces DP DSC testEryk Brol
This commit adds a DP DSC test that checks: * Forces DSC on/off and ensures it is reset properly * Check DSC slice height property * Verify various DSC slice dimensions * Tests various combinations of link_rate + lane_count and logs if DSC enabled/disabled Tests different bpc settings and logs if DSC is enabled/disabled Change since V3: - Drop useless test Change since V2: - Remove IGT_CRTC_DSC_SLICE_HEIGHT crtc property from this commit Change since V1: - Rebase Cc: Harry Wentland <harry.wentland@amd.com> Cc: Nicholas Choi <Nicholas.Choi@amd.com> Cc: Mark Yacoub <markyacoub@chromium.org> Cc: Hayden Goodfellow <hayden.goodfellow@amd.com> Cc: Hersen Wu <hersenxs.wu@amd.com> Cc: Roman Li <roman.li@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Mikita Lipski <mikita.lipski@amd.com> Signed-off-by: Eryk Brol <eryk.brol@amd.com>
2021-12-07tests/amdgpu: Add P010 format to MPO tests and add test descriptionsStylon Wang
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Stylon Wang <stylon.wang@amd.com>
2021-12-07tests/amdgpu: Ensure pipes are enabled before accessingAnson Jacob
Couple of tests were accessing pipe's without ensuring if they are enabled or not. Using for_each_pipe macro to do so. Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Anson Jacob <Anson.Jacob@amd.com>
2021-12-07tests/amdgpu: Add full screen scaling test caseBhawanpreet Lakha
[Why] Full screen scaling is a common usecase [How] Rework the scaling tests to add a 'fullscreen' test case. Change the test_plane function to use "dst_w/h" instead of a scale multiplier. This way we can easily add a full screen scale multiplier. Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
2021-12-07tests/amdgpu: Add MPO scale and pan subtest single display optionVictor Lu
[Why] The MPO scale and pan subtests is valid with one display and our current CI setup only has one display. [How] Change the MPO scale and pan subtests to be single display and add "-multihead" subtests for the two for the original dual display config Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Victor Lu <victorchengchi.lu@amd.com>
2021-12-07tests/amdgpu: Create mpo scaling testsBhawanpreet Lakha
[Why] Resizing MPO window is a common usecase (video in windowed mode) Our MPO feature has scaling limitations (0.25x -> 16x). So this test creates a window of various reolutions and scales them between 0.25x -> 16x [How] The test creates common video sizes and scales them from (0.30x->16x). The lower limit is 0.25 but some combination of configs fail at 0.25x so 0.30 is used as the starting point. CRTC#1 CRTC#1 +--------------------+ +---------------------+ | +-------+ | | +------------+ | | |Primary| | | |Primary | | | +-------+ | --> | | | | | | scale | | | | | | | +------------+ | |overlay | |Overlay | +--------------------+ +---------------------+ Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
2021-12-07tests/amdgpu: Create mpo swap between 2 displays testBhawanpreet Lakha
[Why] In a multi display MPO config the MPO window is dragged from one display to the other. In this usecase there is an instance when the overlay is moved from one display to the next. This test recreates the scenario (MPO swap) [How] Overlay should switch to the display that has >50% of the video. This test was created with this asumption. The test creates common video sizes and swaps a window of size (w/2,h) between 2 displays bezzels at the top,middle and bottom of the display. CRTC#1 CRTC#2 CRTC#1 CRTC#2 +-------------+------------+ +-------------+------------+ | | | | | | | +--------+ | | +--------+ | | |Primary | Primary | <=> | Primary |Primary | | | | | | Swap | | | | | +--------+ | | +--------+ | |overlay | | | |Overlay | +-------------+------------+ +-------------+------------+ Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
2021-12-07tests/amdgpu: Create mpo panning testBhawanpreet Lakha
[Why] Moving the MPO window is a common usecase (video window being moved). This test creates a MPO window and moves it horizontally, vertically and diagonally [How] Create common video resolution windows and move them across the displays. Test pass is determined by getting a crc of window location using a single plane, then recreating this scenario using overlay. Test panes from Start->End1, Start->End2 and Start->End3 CRTC#1 Start +--------+--------+--------+ |Primary | --> |Primary | End1 +--------+ +--------+ | | \ Overlay | | v * | +--------+ \ +--------+ |Primary | |Primary | End2 +--------+--------+--------+ End3 Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
2021-12-07tests/amdgpu: Switch mpo-swizzle-toggle to single-headVictor Lu
[why] Older ASIC does not support multi-head MPO [how] Rename current mpo-swizzle-toggle subtest to mpo-swizzle-toggle-multihead. Change mpo-swizzle-toggle to only use one output. Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Victor Lu <victorchengchi.lu@amd.com>
2021-12-07tests/amdgpu: fixes for test-4k-mpoAhmad Othman
[Why] The test wasn't working on some setups and needs fixing [How] Added output pipe initialization Added checks for both 4k and 2160p Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Ahmad Othman <ahmad.othman@amd.com>
2021-12-07tests/amdgpu: Add MPO swizzle mode toggle testNicholas Kazlauskas
Sequence captured on ChromeOS - we experience underflow when toggling between swizzle modes on the primary plane with MPO enabled. Add a new subtest replicating that sequence, "mpo-swizzle-toggle". Converts the existing framework over to the new multi-display framework since that's the configuration where this was found. Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
2021-12-07tests/amdgpu: Introduced 4K MPO testVictor Lu
Tests MPO using a primary plane and an overlay plane with a transparent cutout. Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Victor Lu <victorchengchi.lu@amd.com>
2021-12-01tests/amdgpu: add test for panel self refreshAurabindo Pillai
[Why&How] Test for PSR functionality. With an eDP connected, it tests whether PSR is enabled by commiting a static framebuffer hardware requirements: 1. eDP panel that supports PSR (multiple panel can be connected at the same time) 2. Optional DP display for testing a regression condition (setting crtc to null) Acked-by: Mikita Lipski <Mikita.Lipski@amd.com> Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2021-11-26amdgpu/amd_mode_switch: Introduce mode switch testAurabindo Pillai
Switching between different modes could potentially create pstate warnings if clocks are not being set correctly. The subtest gets the highest and lowest mode supported on the connector and switch between them. Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
2021-11-24tests/amdgpu: Add multi-eDP support to ABM testMikita Lipski
[why] Since driver can now support multiple eDPs and Debugfs structure for backlight changed per connector - the test should then iterate through all eDP connectors. [how] 1. Execute each subtest on all eDP outputs connected. 2. Change helper functions to be used per connector. 3. Since debugfs current/target backlight entries are per connector now, change the sanity test to checking if eDP connectors present. The individual test should fail if entries are not found. 4. Update abm_gradual test per new ABM behavior: - convergence time is reduced; - transition can be observed within 1 sec. Signed-off-by: Mikita Lipski <mikita.lipski@amd.com> Reviewed-by: Roman Li <romli@amd.com>
2021-10-14test/amdgpu: Test max-bpc fallback for 4K modes on HDMIStylon Wang
[Why] There was a driver regression with which too high max-bpc setting causes 4K video modes failing stream validation and dropped from mode list. [How] Add this test to catch the regression. v2: - Fix typo - Skip instead of fail if no HDMI display connected Signed-off-by: Stylon Wang <stylon.wang@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-10-11igt: s/DRM_FORMAT_MOD_NONE/DRM_FORMAT_MOD_LINEAR/Ville Syrjälä
DRM_FORMAT_MOD_LINEAR is the more sensible name for DRM_FORMAT_MOD_NONE. Use the better name. Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2021-09-28tests/amdgpu: Add amd_link_settings testEryk Brol
[Why] Having a test that iterates through different link settings and performs link training with them is useful and currently missing from IGT. [How] Add a link settings test and its required helper functions. Signed-off-by: Stylon Wang <stylon.wang@amd.com> Signed-off-by: Eryk Brol <eryk.brol@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Tested-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-09-13tests/amdgpu: Add tests for Freesync capability with suspend-resumeStylon Wang
Add tests to check Freesync capability reporting after system resume from suspend. Signed-off-by: Stylon Wang <stylon.wang@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-09-13tests/amdgpu: Add tests for relaxed reporting of Freesync capabilityStylon Wang
These new tests only check if frame rate range is within legal range. Signed-off-by: Stylon Wang <stylon.wang@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-09-13tests/amdgpu: Add tests for Freesync capability reporting on HDMI & DP displaysStylon Wang
Freesync capability is parsed from EDID and reported to debugfs. The new tests check if the parsing is correct by overriding EDID with golden sample. Signed-off-by: Stylon Wang <stylon.wang@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-09-13tests/amdgpu: Add tests that check for memory leaksStylon Wang
Check for memory leaks in these two cases: - Connector EDID parsing after suspend-resume - Triggerring of connector hotplugs Depends on CONFIG_HAVE_DEBUG_KMEMLEAK=y in kernel config. Signed-off-by: Stylon Wang <stylon.wang@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-08-29tests/amdgpu: Add suspend and DPMS subtests to ASSR testStylon Wang
Test if ASSR is correctly enabled/disabled after suspend and DPMS. Signed-off-by: Stylon Wang <stylon.wang@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-08-29tests/amdgpu: New ASSR test on DP/eDP linksStylon Wang
Check if ASSR is correctly disabled or enabled on DP/eDP links. Currrently the tests are verified to work on AMD hardware but failing on some others, so they are AMD-specific for the time being. Signed-off-by: Stylon Wang <stylon.wang@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
2021-08-29tests/amdgpu: Introduce amd_hotplug testsVictor Lu
[Why] There is a debugfs entry to trigger software hotplugs. We can use this for IGT tests. [How] Add hotplug test for all connectors, hotplug after suspend. Signed-off-by: Victor Lu <victorchengchi.lu@amd.com> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>