[igt-dev] [PATCH i-g-t v2] lib/igt_kms: Don't reset VRR_ENABLED on every commit

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Thu Jan 31 15:57:10 UTC 2019


Op 31-01-2019 om 16:09 schreef Kazlauskas, Nicholas:
> On 1/31/19 9:53 AM, Maarten Lankhorst wrote:
>> Op 31-01-2019 om 15:48 schreef Nicholas Kazlauskas:
>>> If the VRR tests failed then there was a chance that VRR could be
>>> left enabled when exiting the test so the VRR_ENABLED property was
>>> reset to 0 whenever the pipe was reset.
>>>
>>> However, in doing so the pipe's state was considered changed even
>>> if VRR_ENABLED was already 0. This causes the pipe to be added to
>>> commits where it previously wasn't.
>>>
>>> Other tests with properties that can persist for failures (like color
>>> management) don't bother resetting the properties - so this patch
>>> changes VRR_ENABLED to work the same.
>>>
>>> Cc: Harry Wentland <harry.wentland at amd.com>
>>> Cc: Petri Latvala <petri.latvala at intel.com>
>>> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109490
>>> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
>>> ---
>>>   lib/igt_kms.c | 3 ---
>>>   1 file changed, 3 deletions(-)
>>>
>>> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
>>> index 71df98d2..0bec3734 100644
>>> --- a/lib/igt_kms.c
>>> +++ b/lib/igt_kms.c
>>> @@ -1791,9 +1791,6 @@ static void igt_pipe_reset(igt_pipe_t *pipe)
>>>   	igt_pipe_obj_set_prop_value(pipe, IGT_CRTC_ACTIVE, 0);
>>>   	igt_pipe_obj_clear_prop_changed(pipe, IGT_CRTC_OUT_FENCE_PTR);
>>>   
>>> -	if (igt_pipe_obj_has_prop(pipe, IGT_CRTC_VRR_ENABLED))
>>> -		igt_pipe_obj_set_prop_value(pipe, IGT_CRTC_VRR_ENABLED, 0);
>>> -
>>>   	pipe->out_fence_fd = -1;
>>>   }
>>>    
>> It's ok to force it disabled if any test could start failing because of it? Most tests are probably not aware of VRR.
>>
> A lot of atomic state can persist outside of an intended test. I 
> couldn't really find anywhere that explicitly resets CRTC properties 
> like gamma/background color/etc.
>
> So I currently disable vrr before I check the main pass/fail threshold 
> in the test. There are a few cases where the test can still fail while 
> it's enabled, but those are mostly system failures. This bit in igt_kms 
> is kind of redundant in that sense.
>
> This patch aims to keep things they were before, where one test failure 
> can cascade and cause many other tests to fail. I personally favor full 
> test isolation when possible so I can tell what specifically went wrong 
> when something happens but when everything breaks I guess it gives more 
> incentive to address the breakage itself.

Hmm, I guess there's precedence to this with the other properties. Maybe we should clear out gamma/etc as well for a saner experience, but it 's harmless for now.

You're free to choose tif you want to keep resetting this or not. I'm a bit indifferent, but some tests may not handle VRR enabled correctly.

I think cascading tests should be avoided personally, igt_display_reset() should recover from a not too weird state, but then again it should also clear csc/gamma/etc then. Oh well..


Reviewed-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>



More information about the igt-dev mailing list