diff --git a/glamor/glamor.c b/glamor/glamor.c index 9b1d425ea..d438b9c1e 100644 --- a/glamor/glamor.c +++ b/glamor/glamor.c @@ -67,7 +67,8 @@ glamor_set_pixmap_type(PixmapPtr pixmap, glamor_pixmap_type_t type) glamor_screen_private *glamor_priv = glamor_get_screen_private(pixmap->drawable.pScreen); - pixmap_priv = glamor_get_pixmap_private(pixmap); + pixmap_priv = dixLookupPrivate(&pixmap->devPrivates, + glamor_pixmap_private_key); if (pixmap_priv == NULL) { pixmap_priv = calloc(sizeof(*pixmap_priv), 1); glamor_set_pixmap_private(pixmap, pixmap_priv); diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h index 961af472e..9a153099d 100644 --- a/glamor/glamor_priv.h +++ b/glamor/glamor_priv.h @@ -370,8 +370,15 @@ glamor_set_screen_private(ScreenPtr screen, glamor_screen_private *priv) static inline glamor_pixmap_private * glamor_get_pixmap_private(PixmapPtr pixmap) { - return dixLookupPrivate(&pixmap->devPrivates, + glamor_pixmap_private *priv; + priv = dixLookupPrivate(&pixmap->devPrivates, glamor_pixmap_private_key); + if (!priv) { + glamor_set_pixmap_type(pixmap, GLAMOR_MEMORY); + priv = dixLookupPrivate(&pixmap->devPrivates, + glamor_pixmap_private_key); + } + return priv; } void glamor_set_pixmap_private(PixmapPtr pixmap, glamor_pixmap_private *priv); diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h index da05143cf..d2dc6e4eb 100644 --- a/glamor/glamor_utils.h +++ b/glamor/glamor_utils.h @@ -757,7 +757,6 @@ static inline void _glamor_dump_pixmap_byte(PixmapPtr pixmap, int x, int y, int int stride = pixmap->devKind; p = p + y * stride + x; - ErrorF("devKind %d, x %d y %d w %d h %d width %d height %d\n", stride, x, y, w, h, pixmap->drawable.width, pixmap->drawable.height); for (i = 0; i < h; i++) {