summaryrefslogtreecommitdiffstats
path: root/src
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
parente8ed01f6930bd4e11ee453164597403a7284a1f8 (diff)
dri: Remove unnecessary timestamp pointer indirection
Diffstat (limited to 'src')
-rw-r--r--src/gallium/state_trackers/dri/common/dri_drawable.c6
-rw-r--r--src/gallium/state_trackers/dri/drm/dri2.c2
l---------src/gallium/state_trackers/dri/sw/dri_drawable.c1
-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
6 files changed, 13 insertions, 19 deletions
diff --git a/src/gallium/state_trackers/dri/common/dri_drawable.c b/src/gallium/state_trackers/dri/common/dri_drawable.c
index 485616fde6c..d8db69e7f04 100644
--- a/src/gallium/state_trackers/dri/common/dri_drawable.c
+++ b/src/gallium/state_trackers/dri/common/dri_drawable.c
@@ -62,9 +62,9 @@ dri_st_framebuffer_validate(struct st_framebuffer_iface *stfbi,
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);
diff --git a/src/gallium/state_trackers/dri/drm/dri2.c b/src/gallium/state_trackers/dri/drm/dri2.c
index d3db0ccda51..a62a084c13f 100644
--- a/src/gallium/state_trackers/dri/drm/dri2.c
+++ b/src/gallium/state_trackers/dri/drm/dri2.c
@@ -65,7 +65,7 @@ dri2_invalidate_drawable(__DRIdrawable *dPriv)
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);
}
diff --git a/src/gallium/state_trackers/dri/sw/dri_drawable.c b/src/gallium/state_trackers/dri/sw/dri_drawable.c
deleted file mode 120000
index 0fc19be6ea6..00000000000
--- a/src/gallium/state_trackers/dri/sw/dri_drawable.c
+++ /dev/null
@@ -1 +0,0 @@
-../common/dri_drawable.c \ No newline at end of file
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);
}