From: Michel Dänzer <[email protected]>

(cherry picked from radeon commit 051d46382656ffc3e6cac1aab3aee7efdf5b623a)

Reviewed-by: Michel Dänzer <[email protected]>
Signed-off-by: Darren Powell <[email protected]>
Signed-off-by: Michel Dänzer <[email protected]>
---
 src/amdgpu_glamor.c   | 20 +++++++-------------
 src/amdgpu_glamor.h   |  5 ++++-
 src/drmmode_display.c |  3 ++-
 3 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/src/amdgpu_glamor.c b/src/amdgpu_glamor.c
index 36241ce..79b3d01 100644
--- a/src/amdgpu_glamor.c
+++ b/src/amdgpu_glamor.c
@@ -126,28 +126,22 @@ Bool amdgpu_glamor_pre_init(ScrnInfoPtr scrn)
        return TRUE;
 }
 
-Bool amdgpu_glamor_create_textured_pixmap(PixmapPtr pixmap)
+Bool
+amdgpu_glamor_create_textured_pixmap(PixmapPtr pixmap, struct amdgpu_pixmap 
*priv)
 {
        ScrnInfoPtr scrn = xf86ScreenToScrn(pixmap->drawable.pScreen);
        AMDGPUInfoPtr info = AMDGPUPTR(scrn);
-       struct amdgpu_pixmap *priv;
        union gbm_bo_handle bo_handle;
 
        if ((info->use_glamor) == 0)
                return TRUE;
 
-       priv = amdgpu_get_pixmap_private(pixmap);
-       if (!priv->stride) {
+       if (!priv->stride)
                priv->stride = pixmap->devKind;
-       }
 
        bo_handle = gbm_bo_get_handle(priv->bo->bo.gbm);
-       if (glamor_egl_create_textured_pixmap(pixmap, bo_handle.u32,
-                                             priv->stride)) {
-               return TRUE;
-       } else {
-               return FALSE;
-       }
+       return glamor_egl_create_textured_pixmap(pixmap, bo_handle.u32,
+                                                priv->stride);
 }
 
 Bool amdgpu_glamor_pixmap_is_offscreen(PixmapPtr pixmap)
@@ -206,7 +200,7 @@ amdgpu_glamor_create_pixmap(ScreenPtr screen, int w, int h, 
int depth,
                screen->ModifyPixmapHeader(pixmap, w, h, 0, 0, priv->stride,
                                           NULL);
 
-               if (!amdgpu_glamor_create_textured_pixmap(pixmap))
+               if (!amdgpu_glamor_create_textured_pixmap(pixmap, priv))
                        goto fallback_glamor;
        }
 
@@ -280,7 +274,7 @@ amdgpu_glamor_set_shared_pixmap_backing(PixmapPtr pixmap, 
void *handle)
        priv = amdgpu_get_pixmap_private(pixmap);
        priv->stride = pixmap->devKind;
 
-       if (!amdgpu_glamor_create_textured_pixmap(pixmap)) {
+       if (!amdgpu_glamor_create_textured_pixmap(pixmap, priv)) {
                xf86DrvMsg(scrn->scrnIndex, X_ERROR,
                           "Failed to get PRIME drawable for glamor pixmap.\n");
                return FALSE;
diff --git a/src/amdgpu_glamor.h b/src/amdgpu_glamor.h
index 01b5ce1..f2414da 100644
--- a/src/amdgpu_glamor.h
+++ b/src/amdgpu_glamor.h
@@ -48,6 +48,8 @@
 #define GLAMOR_USE_PICTURE_SCREEN 0
 #endif
 
+struct amdgpu_pixmap;
+
 Bool amdgpu_glamor_pre_init(ScrnInfoPtr scrn);
 Bool amdgpu_glamor_init(ScreenPtr screen);
 Bool amdgpu_glamor_create_screen_resources(ScreenPtr screen);
@@ -55,7 +57,8 @@ void amdgpu_glamor_free_screen(int scrnIndex, int flags);
 
 void amdgpu_glamor_flush(ScrnInfoPtr pScrn);
 
-Bool amdgpu_glamor_create_textured_pixmap(PixmapPtr pixmap);
+Bool
+amdgpu_glamor_create_textured_pixmap(PixmapPtr pixmap, struct amdgpu_pixmap 
*priv);
 void amdgpu_glamor_exchange_buffers(PixmapPtr src, PixmapPtr dst);
 
 Bool amdgpu_glamor_pixmap_is_offscreen(PixmapPtr pixmap);
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 01fe860..870ced6 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -108,7 +108,8 @@ static PixmapPtr drmmode_create_bo_pixmap(ScrnInfoPtr pScrn,
 
        amdgpu_set_pixmap_bo(pixmap, bo);
 
-       if (!amdgpu_glamor_create_textured_pixmap(pixmap)) {
+       if (!amdgpu_glamor_create_textured_pixmap(pixmap,
+                                                 
amdgpu_get_pixmap_private(pixmap))) {
                pScreen->DestroyPixmap(pixmap);
                return NULL;
        }
-- 
2.1.4

_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati

Reply via email to