Skip to content

Presentation feedback events are delayed by 1 frame if VRR is enabled #8651

@mahkoh

Description

@mahkoh

Consider the following sequence of events with VRR enabled:

[3882782.418] {Default Queue}  -> wl_surface#9.frame(new id wl_callback#41)
[3882782.423] {Default Queue}  -> wp_presentation#18.feedback(wl_surface#9, new id wp_presentation_feedback#54)
[3882782.442] {Default Queue}  -> wl_surface#9.attach(wl_buffer#64, 0, 0)
[3882782.448] {Default Queue}  -> wl_surface#9.damage_buffer(0, 0, 1920, 1080)

[3882815.531] {Default Queue}  -> wl_surface#10.commit()
[3882815.546] {Default Queue}  -> wl_surface#9.commit()
[3882815.551] {Default Queue}  -> wl_surface#8.commit()
[3882815.566] {Display Queue} wl_display#1.delete_id(67)
[3882815.570] {Default Queue} wl_buffer#66.release()
[3882815.575] {Default Queue} wp_presentation_feedback#67.sync_output(wl_output#30)
[3882815.580] {Default Queue} wp_presentation_feedback#67.presented(0, 344085, 138497000, 8333333, 0, 1830556, 15)
[3882815.707] {Display Queue} wl_display#1.delete_id(41)
[3882815.717] {Default Queue} wl_callback#41.done(344085171)

You can see that the timestamp in the presented event is much older than the timestamp in the done event and that the id of presentation feedback event is different from the id used in the commit sequence.

VRR otherwise works as expected. I have not checked if presentation itself is delayed by 1 frame, which would be a different bug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugNot working as intended

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions