[igt-dev] [PATCH i-g-t] lib/igt_kms: Don't reset VRR_ENABLED on every commit
Petri Latvala
petri.latvala at intel.com
Thu Jan 31 10:33:04 UTC 2019
On Wed, Jan 30, 2019 at 10:14:08AM -0500, Nicholas Kazlauskas wrote:
> 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.
>
> The VRR_ENABLED property was also never cleared after being set and
> commit - leading to similar issues as the one described above. This
> patch now clears it after being commit.
>
> Cc: Harry Wentland <harry.wentland at amd.com>
> Cc: Petri Latvala <petri.latvala at intel.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> ---
Thanks for taking a look. This change with VRR_ENABLED uncovered a
rabbit hole that now looks sufficiently taken care of. Maarten's more
aggressive change to display_commit_changed makes this one require a
(trivial) rebase.
> lib/igt_kms.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 71df98d2..1c6aa754 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;
> }
>
> @@ -3227,6 +3224,7 @@ display_commit_changed(igt_display_t *display, enum igt_commit_style s)
> igt_pipe_obj_clear_prop_changed(pipe_obj, IGT_CRTC_CTM);
> igt_pipe_obj_clear_prop_changed(pipe_obj, IGT_CRTC_DEGAMMA_LUT);
> igt_pipe_obj_clear_prop_changed(pipe_obj, IGT_CRTC_GAMMA_LUT);
> + igt_pipe_obj_clear_prop_changed(pipe_obj, IGT_CRTC_VRR_ENABLED);
>
> if (s != COMMIT_UNIVERSAL) {
> igt_pipe_obj_clear_prop_changed(pipe_obj, IGT_CRTC_MODE_ID);
With Maarten's patch, this last chunk needs to be dropped. With that,
Reviewed-by: Petri Latvala <petri.latvala at intel.com>
I'll merge when Maarten's patch lands, which is just waiting for CI to
churn through it.
More information about the igt-dev
mailing list