浏览代码

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.
master
Kenneth Graunke 6 年前
父节点
当前提交
acd36e488d
共有 1 个文件被更改,包括 2 次插入3 次删除
  1. 2
    3
      src/gallium/drivers/iris/iris_program_cache.c

+ 2
- 3
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;

正在加载...
取消
保存