Unreference pixmap's FB with EXA as well in radeon_set_pixmap_bo

Submitted by Michel Dänzer on Oct. 19, 2017, 4:58 p.m.

Details

Message ID 20171019165835.11966-1-michel@daenzer.net
State Accepted
Commit b93ae9b159790e8a979e9d5d567a0e6fccd7d08a
Headers show
Series "Unreference pixmap's FB with EXA as well in radeon_set_pixmap_bo" ( rev: 1 ) in AMD X.Org drivers

Not browsing as part of any series.

Commit Message

Michel Dänzer Oct. 19, 2017, 4:58 p.m.
From: Michel Dänzer <michel.daenzer@amd.com>

Not doing so resulted in DRI2 page flips not actually changing the FB
being scanned out, showing intermittent flicker of the "back" buffer
rendering.

Bugzilla: https://bugs.freedesktop.org/102643
Fixes: 55e513b978b2 "Use reference counting for tracking KMS framebuffer
                     lifetimes"
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
---
 src/radeon.h | 2 ++
 1 file changed, 2 insertions(+)

Patch hide | download patch | download mbox

diff --git a/src/radeon.h b/src/radeon.h
index 81b04ae24..d54e4990c 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -769,6 +769,8 @@  static inline Bool radeon_set_pixmap_bo(PixmapPtr pPix, struct radeon_bo *bo)
 	    if (driver_priv->bo)
 		radeon_bo_unref(driver_priv->bo);
 
+	    drmmode_fb_reference(pRADEONEnt->fd, &driver_priv->fb, NULL);
+
 	    radeon_bo_ref(bo);
 	    driver_priv->bo = bo;
 

Comments

> -----Original Message-----

> From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf

> Of Michel Dänzer

> Sent: Thursday, October 19, 2017 12:59 PM

> To: amd-gfx@lists.freedesktop.org

> Subject: [PATCH xf86-video-ati] Unreference pixmap's FB with EXA as well in

> radeon_set_pixmap_bo

> 

> From: Michel Dänzer <michel.daenzer@amd.com>

> 

> Not doing so resulted in DRI2 page flips not actually changing the FB

> being scanned out, showing intermittent flicker of the "back" buffer

> rendering.

> 

> Bugzilla: https://bugs.freedesktop.org/102643

> Fixes: 55e513b978b2 "Use reference counting for tracking KMS framebuffer

>                      lifetimes"

> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>


Reviewed-by: Alex Deucher <alexander.deucher@amd.com>


> ---

>  src/radeon.h | 2 ++

>  1 file changed, 2 insertions(+)

> 

> diff --git a/src/radeon.h b/src/radeon.h

> index 81b04ae24..d54e4990c 100644

> --- a/src/radeon.h

> +++ b/src/radeon.h

> @@ -769,6 +769,8 @@ static inline Bool radeon_set_pixmap_bo(PixmapPtr

> pPix, struct radeon_bo *bo)

>  	    if (driver_priv->bo)

>  		radeon_bo_unref(driver_priv->bo);

> 

> +	    drmmode_fb_reference(pRADEONEnt->fd, &driver_priv->fb,

> NULL);

> +

>  	    radeon_bo_ref(bo);

>  	    driver_priv->bo = bo;

> 

> --

> 2.14.2

> 

> _______________________________________________

> amd-gfx mailing list

> amd-gfx@lists.freedesktop.org

> https://lists.freedesktop.org/mailman/listinfo/amd-gfx