summaryrefslogtreecommitdiff
path: root/tests/kms_plane_multiple.c
AgeCommit message (Collapse)Author
2022-03-09igt/tests: Add support for Tile4(TileF) format to tests/kms_plane_multipleJeevan B
Adding subtest to test new tiling format. Signed-off-by: Jeevan B <jeevan.b@intel.com> Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
2021-12-23tests/kms_plane_multiple: Use same modifier for reference crc as for test crcJuha-Pekka Heikkila
Create reference crc with same modifier as is used for testing. This will reduce non test related anomalies. Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2021-11-11tests: Remove restrictions on tests running only DRIVER_INTEL and DRIVER_AMDGPUMark Yacoub
[Why] Drivers such as MSM are able to run tests that are made generic through supporting another driver that's not i915. Removing the restriction that enables the test on a 2 drivers only allow the tests to run on other drivers. [How] 1. Replace DRIVER_INTEL | DRIVER_AMDGPU by DRIVER_ANY 2. Make the checks more broad to allow intel generic implementation to work on all drivers while keeping special amdgpu's quirks. Tested on Trogdor (MSM) Signed-off-by: Mark Yacoub <markyacoub@chromium.org> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2021-10-14tests/kms_plane_multiple: Fix regression test_plane_position_with_outputVidya Srinivas
Starting commit 4d4a76729b328b65122 "Start continuous CRC capture after commit" few variants of Intel TGL and JSL devices are failing with CRC mismatch due to time sensitivity. Patch switches to older way of obtaining CRC, but keeps in-tact continuous CRC collection within the iteration and includes checking of i915 to not cause regression on non-intel devices. v2: Fixed review comments from Karthik. v3: Rebase (Conflicts resolved) Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-by: Karthik B S <karthik.b.s@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
2021-10-11igt: s/tiling/modifier/ all overVille Syrjälä
Use a more reasonable variable name for modifiers. Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.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-08-16tests/kms_plane_multiple: Limit plane testing to 3 planes by defaultMika Kahola
To speed up test execution, let's limit planes to be tested to 3 by default. This reduces the test execution time especially in case of platforms that offer higher number of overlay planes. For example, the subtest atomic-pipe-A-tiling-x the execution times on ADL-P With 6 planes: Testing connector eDP-1 using pipe A with 6 planes for 1 iteration with seed 1 Subtest atomic-pipe-A-tiling-x: SUCCESS (2,168s) With 3 planes: Testing connector eDP-1 using pipe A with 3 planes for 1 iteration with seed 1 Subtest atomic-pipe-A-tiling-x: SUCCESS (1,878s) The downside of this is of course the reduced test coverage as all available planes are not tested by default simultaneusly. Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Karthik B S <karthik.b.s@intel.com>
2021-07-15Nuke local versions of DRM_FORMAT and DRM_MODELucas De Marchi
Use the definition from kernel headers. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-07-15Remove local copies of I915 macrosLucas De Marchi
Just use the one from the kernel headers. Updated with: git grep -l LOCAL_I915 | \ xargs sed -i -e '/^#define LOCAL_I915/d' -e 's/LOCAL_\(I915[[:alnum:]_]*\)/\1/g' Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-07-13tests/kms_plane_multiple: Start continuous CRC capture after commitVictor Lu
atomic-pipe-a-tiling-none fails on amdgpu(Raven) because it fails to read the CRC when there is no CRC generated (zeroed framebuffer). Move igt_pipe_crc_start to be called after the first nonzero FB commit. Signed-off-by: Victor Lu <victorchengchi.lu@amd.com> Acked-by: Anson Jacob <Anson.Jacob@amd.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Mark Yacoub <markyacoub@chromium.org> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
2021-02-24tests: Make .seed unsignedVille Syrjälä
srand() takes an unsigned int, so let's make our seed such. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
2021-02-24tests: Remove pointless struct member initializationVille Syrjälä
Initializing the seed and user_seed is pointless; .user_seed already defaults to false, and .seed will get overwritten anyway. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
2020-07-21tests/kms: Skip kms test cases for disabled pipesMohammed Khajapasha
Skip the kms test cases for disabled pipes with non-contiguous pipe display. Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-07lib/igt_fb: remove extra parameters from igt_put_cairo_ctxMelissa Wen
The function igt_put_cairo_ctx currently requires three parameters, but only one of them is used in it. This patch removes the useless parameters, making the code more readable and cohesive. It also applies the change to all occurrences of the function in the code. Signed-off-by: Melissa Wen <melissa.srw@gmail.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-03-23tests/kms_plane_multiple: Avoid CRC buffer overflowsJuha-Pekka Heikkila
Change test initialization so CRC buffer will not become full on slower machines. v2: don't waste time by draining crcs unnecessarily. Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2019-12-03tests/i915/kms: remove igt_skip_on_simulation()Swati Sharma
Removing igt_skip_on_simulation() from all the kms tests since this feature is not supported anymore. v2: Rebase Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Signed-off-by: Karthik B S <karthik.b.s@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
2019-08-19tests/kms_plane_multiple: Commit state before remove_fb callsNicholas Kazlauskas
The kms_plane_multiple@* tests fail on amdgpu with a dmesg-warn due to "atomic remove_fb failed with -22" "WARNING: CPU: 6 PID: 183 at drivers/gpu/drm/drm_framebuffer.c:986" The call to drmModeRmFB essentially creates an atomic commit internally when we drop the last reference to the FB in IGT. This commit disables the plane associated with framebuffer. Since the planes are iterated by increasing index in IGT the last plane to have its framebuffer removed is the cursor plane on AMDGPU. On AMDGPU we can't enable the cursor plane without any active hardware planes (primary, overlay) since there is no dedicated cursor plane. The commits to release the overlay plane fail since it's the last remaining plane and the cursor plane is still active. The fix to the test is to just perform a commit that disables all 3 planes at the same time before calling remove_fb. This improves performance enables support for drivers that don't support cursor planes being enabled without a primary or overlay. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Leo Li <sunpeng.li@amd.com>
2019-07-08tests/kms_plane_multiple: Describe the testArkadiusz Hiler
In this test all the subtest are doing the same exact thing but with different tiling / on a different pipe. Tiling/pipe is in the test name so no need to elaborate on them. We can have just one igt_describe() on top of the group to describe all the subtests in one go, no copy-and-paste necessary. The description is short and explains the spirit of the test (verifying atomicity of plane updates) without delving into the implementation details (holes, colors, etc.) Other changes: * The function used for grabbing reference CRC is now under a more descriptive name. * Comment explaining test implementation in more detail is moved to the top of the function actually implementing those steps. * Minor formatting touch ups. Cc: Mika Kahola <mika.kahola@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2019-06-04tests/kms_plane_multiple: before going testing check how many planes are allowedJuha-Pekka Heikkila
before start testing try out how many planes kernel will allow simultaneously to be used. v2 (Jose Souza, Daniel Vetter): Fix resource leaks. Randomize used planes. Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
2019-05-27kms_plane_multiple: Nuke custom main functionPetri Latvala
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-04-10tests/kms_plane_multiple: Run only on the first valid outputArkadiusz Hiler
There is no real need for testing on each output, as they do not affect CRC coming out from the pipe. Let's use first viable one. Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Martin Peres <martin.peres@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-12tests/kms_plane_multiple: Do not iterate over output twiceArkadiusz Hiler
test_plane_position already iterates over outputs using for_each_valid_output_on_pipe so there is no need to do that twice, especially with unused *output. Cc: Mika Kahola <mika.kahola@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Martin Peres <martin.peres@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-01-21tests: Use correct type for callocPetri Latvala
No actual difference, size of a pointer is the same as pointer-to-pointer. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Mika Kahola <mika.kahola@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2019-01-08tests: Enable plane tests for AMDGPUNicholas Kazlauskas
The i915 specific feature requirements that would have failed subtests from kms_plane, kms_plane_multiple and kms_plane_scaling have been conditionally guarded against. These tests can now be run on AMDGPU with the i915 specific tests skipped appropriately. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
2019-01-08tests/kms_plane_multiple: Add tiled-none plane position subtestsNicholas Kazlauskas
The per-pipe plane position subtests are capable of running on AMDGPU as long as they're not using i915 specific tiling formats. The test setup already supports being invoked with different tiling modes so this patch introduces the new 'tiled-none' subtest that runs without any tiling. The tiled-none tests are skipped on i915 to retain existing test coverage and behavior on i915. v2: Use igt_display_has_format_mod helpers (Ville) Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-10-01igt: Require a display (KMS enabled) for KMS testsChris Wilson
Simple rule of thumb, if a kms_* test calls igt_display_init() in its global fixture, skip the entire test if the driver has disabled KMS. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
2018-08-14tests: Replace calls to igt_pipe_crc_drain + get_single with ↵Maarten Lankhorst
igt_pipe_crc_get_current() This is a more race free of accomplishing the same. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-03-13tests/kms_plane_multiple: Drain pipe before reading CRCMika Kahola
In CI runs we every now and then fail to read correct CRC yielding an error when comparing reference and grabbed CRC's. Let's first fix the test so that we drain the pipe first and then read the correct CRC. While at it, let's simplify the test by combining legacy and atomic tests into a one common function. v2: We don't need to drain pipe when we grab first CRC v3: Nuke legacy commits References: https://bugs.freedesktop.org/show_bug.cgi?id=103166 Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-02-01lib/igt_fb: Add igt_put_cairo_ctx as counter to igt_get_cairo_ctxMaarten Lankhorst
This will allow support for NV12 in the future, where igt_get_cairo_ctx will return a RGB image to draw with, which will be converted in igt_put_cairo_ctx so tests don't have to add special support for NV12. This is the same as cairo_destroy + checking for errors, but not all tests use this correctly so it's better to have a single handler for it. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2017-08-14lib/kms: Add for_each_pipe_staticDaniel Vetter
for_each_pipe cannot be used for enumerating testcases, so provide something that can. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-08-03tests/kms_plane_multiple: Fix reference CRCMika Kahola
kms_plane_multiple wrongly expected that igt lib function would modify the passed igt_crc_t* object. You should use igt_crc_t** instead. This patch fixes this anomaly in the test. While at it, remove unnecesary struct for test data as we only need reference CRC here. The problem was caught by CI system and at least affects on HSW platform. V2: Don't change function that collects CRC for reference CRC Fix CRC pointers Remove unnecessary struct for holding test data Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101907 Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2017-06-16tests: Rename I915_MAX_PIPES to IGT_MAX_PIPESLeo (Sunpeng) Li
Name should not be driver-specific. Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-03-21Restore "lib: Open debugfs files for the given DRM device"Chris Wilson
This reverts commit 25fbae15262cf570e207e62f50e7c5233e06bc67, restoring commit 301ad44cdf1b868b1ab89096721da91fa8541fdc Author: Tomeu Vizoso <tomeu.vizoso@collabora.com> Date: Thu Mar 2 10:37:11 2017 +0100 lib: Open debugfs files for the given DRM device with fixes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-03-21Revert "lib: Open debugfs files for the given DRM device"Tomeu Vizoso
This reverts commit 301ad44cdf1b868b1ab89096721da91fa8541fdc. When a render-only device is opened and gem_quiescent_gpu is called, we need to use the debugfs dir for the master device instead. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
2017-03-21lib: Open debugfs files for the given DRM deviceTomeu Vizoso
When opening a DRM debugfs file, locate the right path based on the given DRM device FD. This is needed so, in setups with more than one DRM device, any operations on debugfs files affect the expected DRM device. v2: - rebased and fixed new API additions v3: - updated chamelium test, which was missed previously - use the minor of the device for the debugfs path, not the major - have a proper exit handler for calling igt_hpd_storm_reset with the right device fd. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Robert Foss <robert.foss@collabora.com> Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-02-03tests/kms_plane_multiple: Test only with maximum number of planesMika Kahola
To be more suitable for BAT testing, let's modify the test such a way that it only uses the maximum number of available planes. This reduces the total number of subtests. v2: Fix broken kms_plane_multiple --list-subtests (Petri) Cc: Petri Latvala <petri.latvala@intel.com> Cc: Robert Foss <robert.foss@collabora.com> Reviewed-by: Robert Foss <robert.foss@collabora.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-02-02Revert "tests/kms_plane_multiple: Test only with maximum number of planes"Petri Latvala
This commit breaks kms_plane_multiple --list-subtests. This reverts commit 5da674ce4d597bba312cf423939de405d0cafed1. Signed-off-by: Petri Latvala <petri.latvala@intel.com>
2017-02-02tests/kms_plane_multiple: Test only with maximum number of planesMika Kahola
To be more suitable for BAT testing, let's modify the test such a way that it only uses the maximum number of available planes. This reduces the total number of subtests. Cc: Robert Foss <robert.foss@collabora.com> Reviewed-by: Robert Foss <robert.foss@collabora.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-31tests/kms_plane_multiple: Add support for dynamic number of planesRobert Foss
Add changes reflecting the new support for dynamic number of planes per pipe. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-01-19tests/kms_plane_multiple: Cleanup in favor of library functionsMika Kahola
Cleaunup by replacing get_vblank() function with library function kmstest_get_vblank(). Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-19tests/kms_plane_multiple: Relax atomic commit time requirementMika Kahola
Relax required time to atomic commits from 1 vblank to 2 vblanks. v2: Increase MAX_CRCS to 2 (Maarten) Reference: Issues seen on BYT CI tests Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-12kms_plane_multiple: Use for_each_valid_output_on_pipeMaarten Lankhorst
Not all outputs are valid on all pipes. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-12tests/kms_plane_multiple: Change number of iterationsMika Kahola
In CI system, the default 64 iterations of this test may cause CRC overflow warnings in dmesg when debugfs is enabled in kernel config. To keep dmesg warning noise in minimum, let's run this test only once by default. Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2016-12-07tests/kms_plane_multiple: Fix CRC based atomic correctness testMika Kahola
Fixes issues on kms_plane_multiple i-g-t test found when running CI tests v1: - don't use tiling for cursor plane (Ville) - for y/yf tiling check that the platform is at least GEN9 (Ville) Cc: Ville Syrjala <ville.syrjala@linux.intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2016-11-28tests/kms_plane_multiple: CRC based atomic correctness testMika Kahola
This is a testcase with multiple planes. The idea here is the following - draw a uniform frame with blue color - grab crc for reference - put planes randomly on top with the same blue color - punch holes with black color into the primary framebuffer - ideally the planes should cover these holes so that the output is the identical to reference crc - composite all with one ioctl call - grab crc and verify that the reference crc is equal - repeat this for several iterations to maximize coverage v7: Unify reference crc grabbing for atomic and legacy tests (Maarten) v6: Rename test_planes() to prepare_planes() (Maarten) When grabbing reference crc, keep framebuffer and crc enabled for atomic mode setting. (Maarten) Fix crc collection for legacy modesetting (Maarten) v5: Remove limit for max number of iterations and add possibility to loop forever (Daniel) Remove IN_RANGE() macro (Maarten) Remove log file and show random number seed on screen instead (Maarten) Split legacy and atomic plane tests on own functions (Maarten) remove test_atomic() function and pass test mode info as parameter (Maarten) Use bigger rectangle size (256x256) for non-cursor planes and smaller (128x128) size for cursor plane (Maarten) v4: For atomic test enable crc capturing before entering into a iteration loop. After each iteration, check that page flip didn't take no more than 1 vblank, fetch all crc's and check the values. Introduce new command line parameter for the number of iterations. The test run from 1 to 256 iterations. v3: Cleanup by removing separate plane array For atomic, pass DRM_MODE_PAGE_FLIP_EVENT Grab crc by using igt_pipe_crc_get_crc instead of igt_pipe_crc_collect_crc Rename nplanes variable to max_planes To optimize test execution, run iterations after the modeset v2: Keep a logfile on random number seeds per subtest that are not skipped due to unmet test requirements Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>