summaryrefslogtreecommitdiff
path: root/tests/kms_plane_multiple.c
AgeCommit message (Collapse)Author
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>