• 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 struct gl_program_cache *cache) in _mesa_delete_shader_cache() argument
169 clear_cache(ctx, cache, GL_TRUE); in _mesa_delete_shader_cache()
170 free(cache->items); in _mesa_delete_shader_cache()
171 free(cache); in _mesa_delete_shader_cache()
176 _mesa_search_program_cache(struct gl_program_cache *cache, in _mesa_search_program_cache() argument
179 if (cache->last && in _mesa_search_program_cache()
180 cache->last->keysize == keysize && in _mesa_search_program_cache()
181 memcmp(cache->last->key, key, keysize) == 0) { in _mesa_search_program_cache()
182 return cache->last->program; in _mesa_search_program_cache()
188 for (c = cache->items[hash % cache->size]; c; c = c->next) { in _mesa_search_program_cache()
193 cache->last = c; in _mesa_search_program_cache()
205 struct gl_program_cache *cache, in _mesa_program_cache_insert() argument
220 if (cache->n_items > cache->size * 1.5) { in _mesa_program_cache_insert()
221 if (cache->size < 1000) in _mesa_program_cache_insert()
222 rehash(cache); in _mesa_program_cache_insert()
224 clear_cache(ctx, cache, GL_FALSE); in _mesa_program_cache_insert()
227 cache->n_items++; in _mesa_program_cache_insert()
228 c->next = cache->items[hash % cache->size]; in _mesa_program_cache_insert()
229 cache->items[hash % cache->size] = c; in _mesa_program_cache_insert()
234 struct gl_program_cache *cache, in _mesa_shader_cache_insert() argument
249 if (cache->n_items > cache->size * 1.5) { in _mesa_shader_cache_insert()
250 if (cache->size < 1000) in _mesa_shader_cache_insert()
251 rehash(cache); in _mesa_shader_cache_insert()
253 clear_cache(ctx, cache, GL_TRUE); in _mesa_shader_cache_insert()
256 cache->n_items++; in _mesa_shader_cache_insert()
257 c->next = cache->items[hash % cache->size]; in _mesa_shader_cache_insert()
258 cache->items[hash % cache->size] = c; in _mesa_shader_cache_insert()