[igt-dev] [PATCH i-g-t] tests/i915/kms_big_fb: fix max stride async flip tests

Juha-Pekka Heikkila juhapekka.heikkila at gmail.com
Mon Oct 3 19:28:49 UTC 2022


On 3.10.2022 7.31, Karthik B S wrote:
> On 9/29/2022 7:10 PM, Juha-Pekka Heikkila wrote:
>> Change handling of inner loop so test will not fail on unrelated issues.
>>
>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> Reviewed-by: Karthik B S <karthik.b.s at intel.com>

Thanks. Pushed.

/Juha-Pekka

>> ---
>>   tests/i915/kms_big_fb.c | 25 ++++++++-----------------
>>   1 file changed, 8 insertions(+), 17 deletions(-)
>>
>> diff --git a/tests/i915/kms_big_fb.c b/tests/i915/kms_big_fb.c
>> index 0c4cd95e7..0b5e955de 100644
>> --- a/tests/i915/kms_big_fb.c
>> +++ b/tests/i915/kms_big_fb.c
>> @@ -465,7 +465,7 @@ static bool test_pipe(data_t *data)
>>   static bool
>>   max_hw_stride_async_flip_test(data_t *data)
>>   {
>> -    uint32_t ret, startframe;
>> +    uint32_t ret;
>>       const uint32_t w = data->output->config.default_mode.hdisplay,
>>                  h = data->output->config.default_mode.vdisplay;
>>       igt_plane_t *primary;
>> @@ -510,14 +510,14 @@ max_hw_stride_async_flip_test(data_t *data)
>>                         INTEL_PIPE_CRC_SOURCE_AUTO);
>>       igt_pipe_crc_start(data->pipe_crc);
>> +    igt_plane_set_fb(primary, &data->big_fb);
>> +    igt_fb_set_size(&data->big_fb, primary, w, h);
>> +    igt_plane_set_size(primary, w, h);
>> +    igt_display_commit_atomic(&data->display, 
>> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>> +    igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, 
>> &compare_crc);
>> +
>>       igt_set_timeout(5, "Async pageflipping loop got stuck!\n");
>>       for (int i = 0; i < 2; i++) {
>> -        igt_plane_set_fb(primary, &data->big_fb);
>> -        igt_fb_set_size(&data->big_fb, primary, w, h);
>> -        igt_plane_set_size(primary, w, h);
>> -        igt_display_commit_atomic(&data->display,
>> -                      DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>> -
>>           /* First async flip on Gen13+ will be treated as a sync flip*/
>>           if (intel_display_ver(data->devid) >= 13) {
>>               do {
>> @@ -528,9 +528,6 @@ max_hw_stride_async_flip_test(data_t *data)
>>               igt_assert(ret == 0);
>>           }
>> -        igt_wait_for_vblank(data->drm_fd, 
>> data->display.pipes[primary->pipe->pipe].crtc_offset);
>> -        startframe = kmstest_get_vblank(data->drm_fd, data->pipe, 0) 
>> + 1;
>> -
>>           for (int j = 0; j < 2; j++) {
>>               do {
>>                   ret = drmModePageFlip(data->drm_fd, 
>> data->output->config.crtc->crtc_id,
>> @@ -547,13 +544,7 @@ max_hw_stride_async_flip_test(data_t *data)
>>               igt_assert(ret == 0);
>>           }
>> -        igt_pipe_crc_get_for_frame(data->drm_fd, data->pipe_crc,
>> -                       startframe, &compare_crc);
>> -        igt_pipe_crc_get_for_frame(data->drm_fd, data->pipe_crc,
>> -                       startframe + 1, &async_crc);
>> -
>> -        igt_assert_f(kmstest_get_vblank(data->drm_fd, data->pipe, 0) -
>> -                 startframe == 1, "lost frames\n");
>> +        igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, 
>> &async_crc);
>>           igt_assert_f(igt_check_crc_equal(&compare_crc, 
>> &async_crc)^(i^1),
>>                    "CRC failure with async flip, crc %s match for 
>> checked round\n",
> 
> 



More information about the igt-dev mailing list