[Mesa-dev] [PATCH] loader/dri3: Use dri3_find_back in loader_dri3_swap_buffers_msc
Thomas Hellstrom
thellstrom at vmware.com
Thu Aug 3 14:25:25 UTC 2017
Hi, Michel.
Thanks for doing this. Was there a follow-up st/mesa fix to this. I
remember someone posting about a problem about the new backbuffer always
being NULL?
/Thomas
On 07/07/2017 05:29 AM, Michel Dänzer wrote:
> From: Thomas Hellstrom <thellstrom at 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-stable at 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.daenzer at 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,
More information about the mesa-dev
mailing list