summaryrefslogtreecommitdiff
path: root/tests/kms_writeback.c
AgeCommit message (Collapse)Author
2022-06-28tests/kms_writeback: Use a garbage X value to create fill our test bufferMaxime Ripard
Since we use buffers in XRGB8888, whatever value we have in X should be ignored by the drivers and the hardware. However, since we always use 0xff in our test, whether that is the case or not cannot be determined. Let's use a garbage value (but consistent across test runs) to make sure it doesn't have any impact on the writeback output. Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
2022-06-28tests/kms_writeback: Use endianness accessor to fill pixelsMaxime Ripard
The fill_fb() function in the kms_writeback test suite will fill an XRGB8888 buffer using a pattern passed an an argument. However, the pattern is native endian, while XRGB8888 is little-endian. Add an accessor and use it to fill the framebuffer with our pattern. Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
2022-06-09tests/kms_writeback: Iterate over only non-null pipesRohith Iyer
Currently, kms_writeback_get_output iterates over all entries of display->pipes, regardless of if the pipe is valid. This could lead to a null dereference in igt_output_set_pipe() as the loop does not check for null pipes. To avoid this issue, use the for_each_pipe method to iterate over only non-null pipes. Signed-off-by: Rohith Iyer <quic_rohiiyer@quicinc.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2022-05-17tests/kms_writeback: Add helper method to detach pipe from output when test ↵Jessica Zhang
finishes Currently, after a writeback test is run, the writeback connecter doesn't release the pipe for other connecters to use. This can cause the device to crash if another connector tries to use the same pipe (for other IGT tests, for example). In addition, a slight change [1] to DRM's implementation of the rmfb ioctl means that calling igt_remove_fb() alone will not detach the CRTC -- instead, an explicit disable will be needed to do that. [1] https://gitlab.freedesktop.org/drm/msm/-/blob/msm-next/drivers/gpu/drm/drm_framebuffer.c#L997 Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2021-10-13tests/kms_writeback.c: Prevents test failure by the XR48/AR48 formatIgor Torrente
The test fails if the driver exposes the XR48/AR48 (XRGB16161616/ARGB16161616) formats, altough it doesn't test any format beyond XR24(XRGB88888). This failure happens because the format validation doesn't contain the number '8' in the list of valid char. This patch adds it to the list. Signed-off-by: Igor Torrente <igormtorrente@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@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-08tests/kms_writeback.c: fix the `fill_fb` functionIgor Matheus Andrade Torrente
Currently, the `fill_fb` function, instead of filling the framebuffer with the whole pixel, is only filling it with the rightmost byte. This is happening because, even though the memset accepts an int as a parameter, it's casting the value to unsigned char and will fill the memory with this 8 bits value. If we setup the pixel to 0xff0000|f0|, the buffer will filled with: | addr | = 0f | addr + 1 | = 0f | addr + 2 | = 0f | addr + 3 | = 0f ... | addr + N | = 0f This patch address this issue by manually copying the entire integer. Signed-off-by: Igor Torrente <igormtorrente@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-09-04kms_writeback: Add writeback-check-outputBrian Starkey
Add a test which makes commits using the writeback connector, and checks the output buffer hash to make sure it is/isn't written as appropriate. Changes since V8 (Arkadiusz Hiler): * Add short description Changes since V7 (Maxime Ripard): * Make fb_fill cross-platform Changes since v6 (Simon Ser): * Add a descriptive error message if sync_fence_wait fail * Drop color_idx variable * Compute expected CRC based on input framebuffer in writeback_sequence * Remove unnecessary parentheses * Replace int variable for unsigned int Signed-off-by: Brian Starkey <brian.starkey@arm.com> [rebased and updated] Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
2020-09-04kms_writeback: Add initial writeback testsBrian Starkey
Add tests for the WRITEBACK_PIXEL_FORMATS, WRITEBACK_OUT_FENCE_PTR and WRITEBACK_FB_ID properties on writeback connectors, ensuring their behaviour is correct. Changes since V8: * Remove unnecessary fence cleanup on prepare commit. Changes since V7 (Maxime Ripard and Petri Latvala): * Utilizes `to_user_pointer` to avoid cast compilation error on ARM 32 bits. Changes since V6 (Simon Ser): * Add igt_describe per sub-test * Remove kmstest_force_connector from kms_writeback_get_output, since userspace will not do this sort of operation * Add an igt_debug statement in case we don't use a specific writeback connector * Drop flag parameter from do_writeback_test * Rename invalid_out_fence to test_invalid_parameters * Drop invalid_fb from writeback_fb_id * Assert if plane is null on igt_fixture * Replace all occurrences of igt_fb_mod_to_tiling(0) by DRM_FORMAT_MOD_LINEAR * Rename invalid_fb to invalid_output_fb in the sub-test related to "writeback-invalid-out-fence" * Replace ret by fb_id in igt_main Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Signed-off-by: Brian Starkey <brian.starkey@arm.com> [rebased and updated do_writeback_test() function to address feedback] Signed-off-by: Liviu Dudau <liviu.dudau@arm.com> Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>