summaryrefslogtreecommitdiff
path: root/tests/kms_color.c
AgeCommit message (Collapse)Author
2022-06-01tests/kms_color: Skip if current & requested BPC doesn't matchBhanuprakash Modem
The "max bpc" property only ensures that the bpc will not go beyond the value set through this property. It does not guarantee that the same bpc will be used for the given mode. If clock/bandwidth constraints permit, the max bpc will be used to show the mode, otherwise the bpc will be reduced. So, if we really want a particular bpc set, we can try reducing the resolution, till we get the bpc that we set in max bpc property. This patch will skip the test, if there is no valid resolution to get the same bpc as set by max_bpc property. V2: * Refactor the logic V3: * Minor changes V4: * Set output to pipe (igt_output_set_pipe) Cc: Swati Sharma <swati2.sharma@intel.com> CC: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
2022-05-17tests/kms_color: Use debugfs apis for deep-colorBhanuprakash Modem
Instead of parsing the EDID, read from the debugfs to make sure the connected monitor supports deep-color. V2: * Update max_bpc prop before exit Cc: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
2022-03-16tests/kms_color: Add support for Deep-ColorBhanuprakash Modem
Add new subtests to validate deep color. V2: * i915 needs atleast gen 11 to support deep-color * Add connector name to dynamic subtest V3: * Fix the usage of "output" V4: * Set max_bpc prop to default before exiting the subtest * Minor cleanups Cc: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com>
2021-12-23tests/kms_color: Optimize ctm test executionBhanuprakash Modem
Instead of iterating through all the delta, break the execution when we found a match. This will optimize the time required to execute ctm-0-* tests. Cc: Karthik B S <karthik.b.s@intel.com> Cc: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Karthik B S <karthik.b.s@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-09-16tests/kms_color: Run each subtest only for a single connectorVille Syrjälä
For most of the subtests the used connector should not matter, so run each subtest just for a single connector. Suggested-by: Bhanuprakash Modem <Bhanuprakash.modem@intel.com> Reviewed-by: Bhanuprakash Modem <Bhanuprakash.modem@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2021-09-16tests/kms_color: Pass pipe to invalid LUT size testsVille Syrjälä
Each pipe can have a different LUT sizes, so run the invalid LUT size tests once for each pipe. This also makes sure data->(de)gamma_lut_size are properly initialized prior to running these subtests. Reviewed-by: Bhanuprakash Modem <Bhanuprakash.modem@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.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-06-08tests/kms_color: Disable gamma in degamma testsVidya Srinivas
This patch disables gamma in degamma subtest which is missing. It compares CRC between (linear degamma + solid colors) and (max degamma + gradient colors). Patch also cleans up degamma before exiting degamma test and cleans up gamma before exiting gamma test. v2 - Addressed review comments from Bhanuprakash Modem Changed full degamma for reference CRC to linear degamma Added clean up of degamma end of degamma test. v3 - Addressed review comments from Bhanuprakash Modem Fixed comments Change-Id: Ibdb91b603e2e4024d170727d24c6a5425441e2e1 Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
2021-04-23Added tests descriptionArundhati Hagaragi
Added description for following kms tests: tests/kms_color.c tests/kms_dp_dsc.c tests/kms_flip.c tests/kms_flip_tiling.c tests/kms_psr.c Signed-off-by: Arundhati Hagaragi <arundhati.hagaragi@intel.com> Cc: Gupta, Nidhi1 <nidhi1.gupta@intel.com> Reviewed-by: Gupta, Nidhi1 <nidhi1.gupta@intel.com>
2021-03-18tests/kms_color: Stop leaking fbsLyude Paul
While I was testing this out with nouveau, I noticed that this test leaks quite a lot of framebuffers. Didn't cause any issues, but we should fix this while we're at it. Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Martin Peres <martin.peres@mupuf.org> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Jeremy Cline <jcline@redhat.com>
2021-03-18tests/kms_color: Allow tests to run on any driverLyude Paul
There's no reason I can see for this being Intel/AMD only Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Martin Peres <martin.peres@mupuf.org> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Jeremy Cline <jcline@redhat.com>
2021-03-18tests/kms_color: Don't opencode igt_check_crc_equal()Lyude Paul
Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Martin Peres <martin.peres@mupuf.org> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Jeremy Cline <jcline@redhat.com>
2020-07-21tests/kms: Use crtc offset to read vblank event for a pipeMohammed Khajapasha
Pass crtc_offset parameter to read a vblank event for a pipe to vblank helper functions. Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.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-01-27Moved common function in kms_color and kms_color_chamelium to kms_color_helper.cKunal Joshi
kms_color and kms_color_chamelium shared common functions. Moved them to tests/kms_color_helper.c to avoid code duplication. (v4) Made a library kms_color_helper.c which is specific to kms_color and kms_color_chamelium. Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> Signed-off-by: Swati Sharma <swati2.sharma@intel.com> Suggested-by: Uma Shankar <uma.shankar@intel.com> Reviewed-by: Petri Latvala <petri.latvala@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-04-10tests/kms_color: Fix CRC mismatch issues with ctm testUma Shankar
Due to Gamma/Degamma limitation wrt representation of intermediate values between 0 and 1.0 causing rounding issues and inaccuracies, applying linear gamma affects crc. This patch fixes the same by making ctm max test independent of gamma/degamma. v2: Disable degamma/gamma programming for ctm max test as it leads to crc mimsmatch. Limiting it to this test case alone as other tests need it to be enabled, hence not touching those scenarios. v3: Fixed a fumble with compilation. v4: Disabling degamma and gamma for ctm max tests, after the logic in kernel has been updated by Ville's series. v5: Disabled gamma/degamma for all ctm tests as suggested by Ville. v6: Restricting disabling of linear gamma luts for ctm max test. Updated the commit message and comment as suggested by Daniel. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108147 Signed-off-by: Uma Shankar <uma.shankar@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-04-03tests/kms_color: Make legacy-gamma-reset work with a partial color pipelineVille Syrjälä
No reason why we shouldn't be able to execute the legacy-gamma-reset test with a partial color pipeline. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-04-03tests/kms_color: Split invalid_lut_sizes() into gamma vs. degamma versionsVille Syrjälä
Split the invalid-lut-sizes test into separate gamma and degamma tests. This way we can report SKIP for the thing we don't have. Also make the CTM invalid sizes test report a skip too. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-04-03tests/kms_color: Allow most subtests to run with a partial color pipelineVille Syrjälä
Requiring a full color pipeline when we're just testing eg. the gamma LUT is silly. Make the requirements more sensible. Also include an igt_require() for the CTM, which was totally missing before. v2: Note the added igt_require(CTM) (Daniel) Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-04-03tests/kms_color: Reuse some already compute valuesVille Syrjälä
We already compute the lut_size*entry_size so let's reuse those when allocating the LUTs. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-04-03tests/kms_color: Wrap LUTs in a gamma_lut_t structVille Syrjälä
To make life easier let's wrap the LUTs in a small struct. v2: igt_assert(gamma) (Daniel) Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-04-03tests/kms_color: Nuke local struct definitionsVille Syrjälä
I think we can assume fresh enough headers by now, so remove the local _drm_color_ctm and _drm_color_lut structs definitions. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-01-28tests/kms_color: Assert gamma look up table sizesPetri Latvala
If the properties for gamma tables exist, their sizes must be non-zero. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@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-04-14tests/kms_color: Enable color tests for AMDGPULeo (Sunpeng) Li
Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-04-14tests/kms_color: Do not mask LUT for non i915 drivers.Leo (Sunpeng) Li
Masking assumes a direct relationship between the software LUT structure, and hardware LUT. This is not always the case. On AMD hardware for example, the hardware LUT is composed of piecewise-linear segments, with end-point spaced exponentially along the X axis, while software LUT is spaced linearly. Masking the LUT for the purpose of truncating the resulting colors won't work here. v2: Add commit message and sign off. Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-04-14tests/kms_color: Fill entire frame when painting rectanglesLeo (Sunpeng) Li
Fill entire frame to avoid garbage data from being included in CRC calculations. Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Acked-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-12-19tests/kms_color: Rename pipe tests to standard notationMaarten Lankhorst
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> #irc Acked-by: Acked-by: Marta Lofstedt <marta.lofstedt@intel.com> #irc
2017-10-20tests/kms_color: Rework tests slightly to work better with new atomic apiMaarten Lankhorst
igt_pipe_get_property is about to be removed, so use igt_pipe_obj_get_prop instead. This requires adding 2 more properties to the crtc property list. Also get rid of the Broadcast RGB call, this is already handled in igt_kms. Change order for DEGAMMA_LUT and GAMMA_LUT around, else this test will fail if legacy gamma is set. In the legacy path, this will update GAMMA_LUT to the new size before DEGAMMA_LUT is set. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-10-20lib/igt_kms: Export property blob functions for output/pipe/plane, v2.Maarten Lankhorst
With the replace_prop_blob functions we can safely replace the blob for any property, without having to care about error handling ourselves. This will for example allow overriding color management blobs, or for kms_atomic set invalid mode blobs. The color management blob functions are removed, they can now be replaced by direct calls to replace the properties. Changes since v1: - Fix chamelium tests. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-10-04tests/kms_color: Unset plane fb on teardown, v2.Maarten Lankhorst
Valgrind is slightly unhappy when we leave the fb set: ==1804== Invalid read of size 4 ==1804== at 0x122F83: igt_plane_get_fb_id (igt_kms.c:2074) ==1804== by 0x122F83: igt_primary_plane_commit_legacy (igt_kms.c:2339) ==1804== by 0x122F83: igt_plane_commit (igt_kms.c:2394) ==1804== by 0x122F83: igt_pipe_commit (igt_kms.c:2435) ==1804== by 0x122F83: do_display_commit (igt_kms.c:2667) ==1804== by 0x12338D: igt_display_commit2 (igt_kms.c:2777) ==1804== by 0x112F83: run_tests_for_pipe (kms_color.c:1053) ==1804== by 0x11360F: __real_main1189 (kms_color.c:1206) ==1804== by 0x110BC6: main (kms_color.c:1189) ==1804== Address 0x1ffeffeb20 is on thread 1's stack ==1804== 160 bytes below stack pointer Add the missing calls to igt_plane_set_fb, and fix the crash. Changes since v1: - Fix compilation! Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-10-02tests: Rename kms_pipe_color to kms_colorMaarten Lankhorst
Rename kms_pipe_color to kms_color, and rename the invalid tests to pipe-invalid. To prepare for adding support for plane color management. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>