From: Thomas Hellstrom <thellst...@vmware.com> If the application hasn't done any drawing since the last call, we would reuse the same back buffer which was used for the previous swap, which may not have completed yet. This could result in various issues such as tearing or application hangs.
In the normal case, the behaviour is unchanged. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97957 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101683 Cc: mesa-sta...@lists.freedesktop.org [Michel Dänzer: Make Thomas' fix from bugzilla actually work as intended, write commit log] Signed-off-by: Michel Dänzer <michel.daen...@amd.com> --- src/loader/loader_dri3_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c index 493a7f5218..1c93e7a96d 100644 --- a/src/loader/loader_dri3_helper.c +++ b/src/loader/loader_dri3_helper.c @@ -640,7 +640,7 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw, draw->vtable->flush_drawable(draw, flush_flags); - back = draw->buffers[LOADER_DRI3_BACK_ID(draw->cur_back)]; + back = draw->buffers[dri3_find_back(draw)]; if (draw->is_different_gpu && back) { /* Update the linear buffer before presenting the pixmap */ draw->ext->image->blitImage(dri_context, -- 2.13.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev