• Home
  • Raw
  • Download

Lines Matching full:cache

84 rehash(struct gl_program_cache *cache)  in rehash()  argument
90 cache->last = NULL; in rehash()
92 size = cache->size * 3; in rehash()
96 for (i = 0; i < cache->size; i++) in rehash()
97 for (c = cache->items[i]; c; c = next) { in rehash()
103 free(cache->items); in rehash()
104 cache->items = items; in rehash()
105 cache->size = size; in rehash()
110 clear_cache(struct gl_context *ctx, struct gl_program_cache *cache, in clear_cache() argument
116 cache->last = NULL; in clear_cache()
118 for (i = 0; i < cache->size; i++) { in clear_cache()
119 for (c = cache->items[i]; c; c = next) { in clear_cache()
131 cache->items[i] = NULL; in clear_cache()
135 cache->n_items = 0; in clear_cache()
143 struct gl_program_cache *cache = CALLOC_STRUCT(gl_program_cache); in _mesa_new_program_cache() local
144 if (cache) { in _mesa_new_program_cache()
145 cache->size = 17; in _mesa_new_program_cache()
146 cache->items = in _mesa_new_program_cache()
147 calloc(cache->size, sizeof(struct cache_item *)); in _mesa_new_program_cache()
148 if (!cache->items) { in _mesa_new_program_cache()
149 FREE(cache); in _mesa_new_program_cache()
153 return cache; in _mesa_new_program_cache()
158 _mesa_delete_program_cache(struct gl_context *ctx, struct gl_program_cache *cache) in _mesa_delete_program_cache() argument
160 clear_cache(ctx, cache, GL_FALSE); in _mesa_delete_program_cache()
161 free(cache->items); in _mesa_delete_program_cache()
162 FREE(cache); in _mesa_delete_program_cache()
167 _mesa_search_program_cache(struct gl_program_cache *cache, in _mesa_search_program_cache() argument
170 if (cache->last && in _mesa_search_program_cache()
171 cache->last->keysize == keysize && in _mesa_search_program_cache()
172 memcmp(cache->last->key, key, keysize) == 0) { in _mesa_search_program_cache()
173 return cache->last->program; in _mesa_search_program_cache()
179 for (c = cache->items[hash % cache->size]; c; c = c->next) { in _mesa_search_program_cache()
184 cache->last = c; in _mesa_search_program_cache()
196 struct gl_program_cache *cache, in _mesa_program_cache_insert() argument
211 if (cache->n_items > cache->size * 1.5) { in _mesa_program_cache_insert()
212 if (cache->size < 1000) in _mesa_program_cache_insert()
213 rehash(cache); in _mesa_program_cache_insert()
215 clear_cache(ctx, cache, GL_FALSE); in _mesa_program_cache_insert()
218 cache->n_items++; in _mesa_program_cache_insert()
219 c->next = cache->items[hash % cache->size]; in _mesa_program_cache_insert()
220 cache->items[hash % cache->size] = c; in _mesa_program_cache_insert()