Add an additional meaning to the "dirty" flag. Now, if !dirty && !area, the

pixmaps's contents are undefined, so we won't need to upload the
    undefined contents in MoveIn. Use the ExaCheck* for async ops as well,
    so that dirty is always tracked. While the performance impact for my ls
    -lR test was not significant (though the avoiding-upload path was being
    hit), it's likely to be important for the upcoming Get/PutImage
    acceleration from ajax.
This commit is contained in:
Eric Anholt
2005-10-15 02:19:09 +00:00
parent 21e7339c1e
commit 744aa34ca5
12 changed files with 144 additions and 48 deletions

View File

@@ -119,8 +119,12 @@ typedef struct {
int devKind;
DevUnion devPrivate;
/* True if the in-screen copy has been modified compared to the
* system-memory copy.
/* If area is NULL, then dirty == TRUE means that the pixmap has been
* modified, so the contents are defined. Used to avoid uploads of
* undefined data.
* If area is non-NULL, then dirty == TRUE means that the in-framebuffer
* copy has been changed from the system-memory copy. Used to avoid
* downloads of unmodified data.
*/
Bool dirty;
unsigned int size;