aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2019-06-05 13:15:35 -0700
committerKenneth Graunke <[email protected]>2019-11-22 09:50:59 -0800
commitacd36e488d359f26ebdc678bd16a98682dfd590f (patch)
tree51307f9e69b1f5c672b298b3ad0e73b3ace136f4
parentca353285cb07c36bec0b7aa2f96df6d4c6827ff0 (diff)
iris: Change keybox parenting
For temporary lookups, just allocate out of the NULL ralloc context, so we don't have to edit the linked list of ralloc children to add it and then immediately remove it again. When uploading a new shader, allocate the keybox off the shader, so if we delete the shader the keybox also goes away. Less manual cleanup.
-rw-r--r--src/gallium/drivers/iris/iris_program_cache.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/gallium/drivers/iris/iris_program_cache.c b/src/gallium/drivers/iris/iris_program_cache.c
index 4ec2a52c2de..2c1224482c2 100644
--- a/src/gallium/drivers/iris/iris_program_cache.c
+++ b/src/gallium/drivers/iris/iris_program_cache.c
@@ -89,8 +89,7 @@ iris_find_cached_shader(struct iris_context *ice,
uint32_t key_size,
const void *key)
{
- struct keybox *keybox =
- make_keybox(ice->shaders.cache, cache_id, key, key_size);
+ struct keybox *keybox = make_keybox(NULL, cache_id, key, key_size);
struct hash_entry *entry =
_mesa_hash_table_search(ice->shaders.cache, keybox);
@@ -191,7 +190,7 @@ iris_upload_shader(struct iris_context *ice,
/* Store the 3DSTATE shader packets and other derived state. */
ice->vtbl.store_derived_program_state(ice, cache_id, shader);
- struct keybox *keybox = make_keybox(cache, cache_id, key, key_size);
+ struct keybox *keybox = make_keybox(shader, cache_id, key, key_size);
_mesa_hash_table_insert(ice->shaders.cache, keybox, shader);
return shader;