[PATCH xserver v2] present: Only call present_flip_notify if vblank->queued == FALSE

Michel Dänzer michel at daenzer.net
Sat Jan 7 08:36:25 UTC 2017


Any takers?

In the absence of a negative review, I'll push this next week, since
more people are running into this.


On 28/11/16 10:54 AM, Michel Dänzer wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
> 
> We are no longer using the present_flip_queue list only for presents
> which have already been submitted to the driver for page flipping, but
> also for those which we are queueing up to be flipped later, marked
> with vblank->queued == TRUE. We were incorrectly calling
> present_flip_notify for such entries, failing the assertion in
> present_flip_notify (or presumably resulting in other undesirable
> behaviour with assertions disabled).
> 
> Reproduction recipe: Run the JavaFX test case referenced by
> https://bugs.freedesktop.org/show_bug.cgi?id=98831#c6 and alt-tab out
> of it while it's fullscreen. May take a few attempts to hit the
> assertion failure.
> 
> Fixes: bab0f450a719 ("present: Fix presentation of flips out of order")
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98854
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> ---
> 
> v2: Add bugzilla reference
> 
>  present/present.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/present/present.c b/present/present.c
> index a7ca06e..ef89045 100644
> --- a/present/present.c
> +++ b/present/present.c
> @@ -536,7 +536,10 @@ present_event_notify(uint64_t event_id, uint64_t ust, uint64_t msc)
>      }
>      xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) {
>          if (vblank->event_id == event_id) {
> -            present_flip_notify(vblank, ust, msc);
> +            if (vblank->queued)
> +                present_execute(vblank, ust, msc);
> +            else
> +                present_flip_notify(vblank, ust, msc);
>              return;
>          }
>      }
> 


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the xorg-devel mailing list