From: Michel Dänzer <[email protected]> This should be just as good on average but is less expensive.
Signed-off-by: Michel Dänzer <[email protected]> --- exa/exa_glyphs.c | 4 ++-- exa/exa_priv.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/exa/exa_glyphs.c b/exa/exa_glyphs.c index 5c46ec9..28aa01f 100644 --- a/exa/exa_glyphs.c +++ b/exa/exa_glyphs.c @@ -219,7 +219,7 @@ exaRealizeGlyphCaches(ScreenPtr pScreen, for (j = 0; j < cache->hashSize; j++) cache->hashEntries[j] = -1; - cache->evictionPosition = rand() % cache->size; + cache->evictionPosition = 0; } /* Each cache references the picture individually */ @@ -500,7 +500,7 @@ exaGlyphCacheBufferGlyph(ScreenPtr pScreen, exaGlyphCacheHashInsert(cache, pGlyph, pos); /* And pick a new eviction position */ - cache->evictionPosition = rand() % cache->size; + cache->evictionPosition = (pos + 1) % cache->size; } exaGlyphCacheUploadGlyph(pScreen, cache, x, y, pGlyph); diff --git a/exa/exa_priv.h b/exa/exa_priv.h index 70de4bd..8c5ea15 100644 --- a/exa/exa_priv.h +++ b/exa/exa_priv.h @@ -132,7 +132,7 @@ typedef struct { PicturePtr picture; /* Where the glyphs of the cache are stored */ int yOffset; /* y location within the picture where the cache starts */ int columns; /* Number of columns the glyphs are layed out in */ - int evictionPosition; /* Next random position to evict a glyph */ + int evictionPosition; /* Next position to evict a glyph */ } ExaGlyphCacheRec, *ExaGlyphCachePtr; #define EXA_NUM_GLYPH_CACHES 4 -- 1.7.5.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
