summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKristian Høgsberg <[email protected]>2011-10-28 16:22:03 -0400
committerKristian Høgsberg <[email protected]>2011-11-02 11:16:02 -0400
commite9beaf65fdaf82a7845cbe176f353ddb6b8466c7 (patch)
tree7f970e545f8140bcf7efedfff550d647eab5b92d /src/mesa
parente8ed01f6930bd4e11ee453164597403a7284a1f8 (diff)
dri: Remove unnecessary timestamp pointer indirection
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/common/dri_util.c4
-rw-r--r--src/mesa/drivers/dri/common/dri_util.h11
-rw-r--r--src/mesa/drivers/dri/nouveau/nouveau_context.c8
3 files changed, 9 insertions, 14 deletions
diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
index aa095d8f282..9deb9972714 100644
--- a/src/mesa/drivers/dri/common/dri_util.c
+++ b/src/mesa/drivers/dri/common/dri_util.c
@@ -171,7 +171,6 @@ dri2CreateNewDrawable(__DRIscreen *screen,
pdraw->driContextPriv = NULL;
pdraw->loaderPrivate = loaderPrivate;
pdraw->refcount = 1;
- pdraw->pStamp = NULL;
pdraw->lastStamp = 0;
pdraw->w = 0;
pdraw->h = 0;
@@ -182,8 +181,7 @@ dri2CreateNewDrawable(__DRIscreen *screen,
return NULL;
}
- pdraw->pStamp = &pdraw->dri2.stamp;
- *pdraw->pStamp = pdraw->lastStamp + 1;
+ pdraw->dri2.stamp = pdraw->lastStamp + 1;
return pdraw;
}
diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h
index ab11d45dbd9..38394a7fefa 100644
--- a/src/mesa/drivers/dri/common/dri_util.h
+++ b/src/mesa/drivers/dri/common/dri_util.h
@@ -160,15 +160,9 @@ struct __DRIdrawableRec {
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.
*/
@@ -186,6 +180,9 @@ struct __DRIdrawableRec {
*/
__DRIscreen *driScreenPriv;
+ /**
+ * Drawable timestamp. Increased when the loader calls invalidate.
+ */
struct {
unsigned int stamp;
} dri2;
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c
index 65cbc4168e1..2b9507c6a81 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c
@@ -177,9 +177,9 @@ nouveau_update_renderbuffers(__DRIcontext *dri_ctx, __DRIdrawable *draw)
__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;
@@ -257,7 +257,7 @@ update_framebuffer(__DRIcontext *dri_ctx, __DRIdrawable *draw,
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);
@@ -337,7 +337,7 @@ validate_framebuffer(__DRIcontext *dri_ctx, __DRIdrawable *draw,
dri2InvalidateDrawable(draw);
}
- if (*draw->pStamp != *stamp)
+ if (draw->dri2.stamp != *stamp)
update_framebuffer(dri_ctx, draw, stamp);
}