[Mesa-dev] [PATCH] vl/dri3: remove the wait before getting back buffer
Ernst Sjöstrand
ernstp at gmail.com
Thu Mar 21 08:15:30 UTC 2019
What's the expected change in behavior? Does it fix any bugs?
Regards
//Ernst
Den ons 20 mars 2019 kl 16:42 skrev Liu, Leo <Leo.Liu at amd.com>:
>
> The wait here is unnecessary since we got a pool of back buffers,
> and the wait for swap buffer will happen before the present pixmap,
> at the same time the previous back buffer will be put back to pool
> for reuse after the check for PresentIdleNotify event
>
> Signed-off-by: Leo Liu <leo.liu at amd.com>
> ---
> src/gallium/auxiliary/vl/vl_winsys_dri3.c | 18 +++---------------
> 1 file changed, 3 insertions(+), 15 deletions(-)
>
> diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri3.c b/src/gallium/auxiliary/vl/vl_winsys_dri3.c
> index 152d28e59fc..1558d832555 100644
> --- a/src/gallium/auxiliary/vl/vl_winsys_dri3.c
> +++ b/src/gallium/auxiliary/vl/vl_winsys_dri3.c
> @@ -88,7 +88,6 @@ struct vl_dri3_screen
> uint64_t send_sbc, recv_sbc;
> int64_t last_ust, ns_frame, last_msc, next_msc;
>
> - bool flushed;
> bool is_different_gpu;
> };
>
> @@ -570,11 +569,9 @@ vl_dri3_flush_frontbuffer(struct pipe_screen *screen,
> if (!back)
> return;
>
> - if (scrn->flushed) {
> - while (scrn->special_event && scrn->recv_sbc < scrn->send_sbc)
> - if (!dri3_wait_present_events(scrn))
> - return;
> - }
> + while (scrn->special_event && scrn->recv_sbc < scrn->send_sbc)
> + if (!dri3_wait_present_events(scrn))
> + return;
>
> rectangle.x = 0;
> rectangle.y = 0;
> @@ -610,8 +607,6 @@ vl_dri3_flush_frontbuffer(struct pipe_screen *screen,
>
> xcb_flush(scrn->conn);
>
> - scrn->flushed = true;
> -
> return;
> }
>
> @@ -626,13 +621,6 @@ vl_dri3_screen_texture_from_drawable(struct vl_screen *vscreen, void *drawable)
> if (!dri3_set_drawable(scrn, (Drawable)drawable))
> return NULL;
>
> - if (scrn->flushed) {
> - while (scrn->special_event && scrn->recv_sbc < scrn->send_sbc)
> - if (!dri3_wait_present_events(scrn))
> - return NULL;
> - }
> - scrn->flushed = false;
> -
> buffer = (scrn->is_pixmap) ?
> dri3_get_front_buffer(scrn) :
> dri3_get_back_buffer(scrn);
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list