new_mask = (statt_mask & ~drawable->texture_mask);
/*
- * dPriv->pStamp is the server stamp. It should be accessed with a lock, at
- * least for DRI1. dPriv->lastStamp is the client stamp. It has the value
- * of the server stamp when last checked.
+ * dPriv->dri2.stamp is the server stamp. dPriv->lastStamp is the
+ * client stamp. It has the value of the server stamp when last
+ * checked.
*/
new_stamp = (drawable->texture_stamp != drawable->dPriv->lastStamp);
struct dri_drawable *drawable = dri_drawable(dPriv);
dri2InvalidateDrawable(dPriv);
- drawable->dPriv->lastStamp = *drawable->dPriv->pStamp;
+ drawable->dPriv->lastStamp = drawable->dPriv->dri2.stamp;
p_atomic_inc(&drawable->base.stamp);
}
+++ /dev/null
-../common/dri_drawable.c
\ No newline at end of file
pdraw->driContextPriv = NULL;
pdraw->loaderPrivate = loaderPrivate;
pdraw->refcount = 1;
- pdraw->pStamp = NULL;
pdraw->lastStamp = 0;
pdraw->w = 0;
pdraw->h = 0;
return NULL;
}
- pdraw->pStamp = &pdraw->dri2.stamp;
- *pdraw->pStamp = pdraw->lastStamp + 1;
+ pdraw->dri2.stamp = pdraw->lastStamp + 1;
return pdraw;
}
*/
int refcount;
- /**
- * Pointer to the "drawable has changed ID" stamp in the SAREA (or
- * to dri2.stamp if DRI2 is being used).
- */
- unsigned int *pStamp;
-
/**
* Last value of the stamp.
*
- * If this differs from the value stored at __DRIdrawable::pStamp,
+ * If this differs from the value stored at __DRIdrawable::dri2.stamp,
* then the drawable information has been modified by the X server, and the
* drawable information (below) should be retrieved from the X server.
*/
*/
__DRIscreen *driScreenPriv;
+ /**
+ * Drawable timestamp. Increased when the loader calls invalidate.
+ */
struct {
unsigned int stamp;
} dri2;
__DRIbuffer *buffers = NULL;
int i = 0, count, ret;
- if (draw->lastStamp == *draw->pStamp)
+ if (draw->lastStamp == draw->dri2.stamp)
return;
- draw->lastStamp = *draw->pStamp;
+ draw->lastStamp = draw->dri2.stamp;
if (nfb->need_front)
attachments[i++] = __DRI_BUFFER_FRONT_LEFT;
struct gl_context *ctx = dri_ctx->driverPrivate;
struct gl_framebuffer *fb = draw->driverPrivate;
- *stamp = *draw->pStamp;
+ *stamp = draw->dri2.stamp;
nouveau_update_renderbuffers(dri_ctx, draw);
_mesa_resize_framebuffer(ctx, fb, draw->w, draw->h);
dri2InvalidateDrawable(draw);
}
- if (*draw->pStamp != *stamp)
+ if (draw->dri2.stamp != *stamp)
update_framebuffer(dri_ctx, draw, stamp);
}