On Thu, May 9, 2019 at 6:38 AM Michel Dänzer <michel@xxxxxxxxxxx> wrote: > > From: Michel Dänzer <michel.daenzer@xxxxxxx> > > Even if glamor_gbm_bo_from_pixmap / glamor_fd_from_pixmap themselves > don't trigger any drawing, there could already be unflushed drawing to > the pixmap whose storage we share with a client. > > (Ported from amdgpu commit 4b17533fcb30842caf0035ba593b7d986520cc85) > > Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx> Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > src/radeon_dri3.c | 26 +++++--------------------- > 1 file changed, 5 insertions(+), 21 deletions(-) > > diff --git a/src/radeon_dri3.c b/src/radeon_dri3.c > index 73353bf51..f8f91c4b4 100644 > --- a/src/radeon_dri3.c > +++ b/src/radeon_dri3.c > @@ -220,29 +220,13 @@ static int radeon_dri3_fd_from_pixmap(ScreenPtr screen, > RADEONInfoPtr info = RADEONPTR(scrn); > > if (info->use_glamor) { > - Bool need_flush = TRUE; > - int ret = -1; > -#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,19,99,904,0) > - struct gbm_bo *gbm_bo = glamor_gbm_bo_from_pixmap(screen, pixmap); > + int ret = glamor_fd_from_pixmap(screen, pixmap, stride, size); > > - if (gbm_bo) { > - ret = gbm_bo_get_fd(gbm_bo); > - gbm_bo_destroy(gbm_bo); > - > - if (ret >= 0) > - need_flush = FALSE; > - } > -#endif > - > - if (ret < 0) > - ret = glamor_fd_from_pixmap(screen, pixmap, stride, size); > - > - /* glamor might have needed to reallocate the pixmap storage and > - * copy the pixmap contents to the new storage. The copy > - * operation needs to be flushed to the kernel driver before the > - * client starts using the pixmap storage for direct rendering. > + /* Any pending drawing operations need to be flushed to the > + * kernel driver before the client starts using the pixmap > + * storage for direct rendering. > */ > - if (ret >= 0 && need_flush) > + if (ret >= 0) > radeon_cs_flush_indirect(scrn); > > return ret; > -- > 2.20.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx