Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|