[igt-dev] [PATCH i-g-t 1/2] tests/kms_rotation_crc: fix crc buffer overflow for slow platforms
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Tue Jan 12 17:59:48 UTC 2021
On 12.1.2021 15.26, Kahola, Mika wrote:
>
>
>> -----Original Message-----
>> From: igt-dev <igt-dev-bounces at lists.freedesktop.org> On Behalf Of Juha-
>> Pekka Heikkila
>> Sent: Saturday, January 9, 2021 9:10 PM
>> To: igt-dev at lists.freedesktop.org
>> Subject: [igt-dev] [PATCH i-g-t 1/2] tests/kms_rotation_crc: fix crc buffer
>> overflow for slow platforms
>>
>> on bad tiling tests there was nothing reading running crcs which could fill up
>> crc ringbuffer. Fix this by draining crc buffer per round. Also unify all
>> platforms execution path by taking reference crcs per pipe.
>>
> Looks ok to me.
>
> Reviewed-by: Mika Kahola <mika.kahola at intel.com>
>
Thanks for the R-b. pushed.
/Juha-Pekka
>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
>> ---
>> tests/kms_rotation_crc.c | 16 ++++++----------
>> 1 file changed, 6 insertions(+), 10 deletions(-)
>>
>> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index
>> be27103fa..33a97ccaa 100644
>> --- a/tests/kms_rotation_crc.c
>> +++ b/tests/kms_rotation_crc.c
>> @@ -272,11 +272,7 @@ static void prepare_fbs(data_t *data, igt_output_t
>> *output,
>> */
>> igt_require(igt_display_has_format_mod(display, pixel_format,
>> tiling));
>>
>> - /*
>> - * HSW will need to have those CRCs calculated each time, it
>> - * seems to behave different from other platforms.
>> - */
>> - if (!data->crc_rect[rect].valid || IS_HASWELL(data->devid)) {
>> + if (!data->crc_rect[rect].valid) {
>> /*
>> * Create a reference software rotated flip framebuffer.
>> */
>> @@ -345,6 +341,7 @@ static void test_single_case(data_t *data, enum pipe
>> pipe,
>>
>> ret = igt_display_try_commit2(display, COMMIT_ATOMIC);
>> if (test_bad_format) {
>> + igt_pipe_crc_drain(data->pipe_crc);
>> igt_assert_eq(ret, -EINVAL);
>> return;
>> }
>> @@ -408,10 +405,6 @@ static void test_plane_rotation(data_t *data, int
>> plane_type, bool test_bad_form
>> igt_display_t *display = &data->display;
>> igt_output_t *output;
>> enum pipe pipe;
>> - int c;
>> -
>> - for (c = 0; c < num_rectangle_types; c++)
>> - data->crc_rect[c].valid = false;
>>
>> if (plane_type == DRM_PLANE_TYPE_CURSOR)
>> igt_require(display->has_cursor_plane);
>> @@ -420,7 +413,10 @@ static void test_plane_rotation(data_t *data, int
>> plane_type, bool test_bad_form
>>
>> for_each_pipe_with_valid_output(display, pipe, output) {
>> igt_plane_t *plane;
>> - int i, j;
>> + int i, j, c;
>> +
>> + for (c = 0; c < num_rectangle_types; c++)
>> + data->crc_rect[c].valid = false;
>>
>> if (IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
>> continue;
>> --
>> 2.28.0
>>
>> _______________________________________________
>> igt-dev mailing list
>> igt-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/igt-dev
More information about the igt-dev
mailing list