Lines Matching defs:key
71 const struct zink_shader_key *key, unsigned num_uniforms)
73 bool key_size_differs = ignore_size ? false : zm->key_size != key->size;
74 if (key_size_differs || zm->num_uniforms != num_uniforms || zm->has_nonseamless != !!key->base.nonseamless_cube_mask)
77 return !memcmp(zm->key, key, zm->key_size) &&
78 (!nonseamless_size || !memcmp(zm->key + zm->key_size, &key->base.nonseamless_cube_mask, nonseamless_size)) &&
79 (!num_uniforms || !memcmp(zm->key + zm->key_size + nonseamless_size,
80 key->base.inlined_uniform_values, zm->num_uniforms * sizeof(uint32_t)));
88 return _mesa_hash_data(zm->key, key_size);
101 struct zink_shader_key *key = &state->shader_keys.key[pstage];
104 /* non-generated tcs won't use the shader key */
112 key->inline_uniforms = false;
114 if (key->base.nonseamless_cube_mask)
119 if (!shader_key_matches(iter, ignore_key_size, key, inline_size))
127 zm = malloc(sizeof(struct zink_shader_module) + key->size + nonseamless_size + inline_size * sizeof(uint32_t));
131 unsigned patch_vertices = state->shader_keys.key[PIPE_SHADER_TESS_CTRL ].key.tcs.patch_vertices;
136 mod = zink_shader_compile(screen, zs, prog->nir[stage], key);
146 zm->key_size = key->size;
147 memcpy(zm->key, key, key->size);
150 memset(zm->key, 0, key->size);
153 /* nonseamless mask gets added to base key if it exists */
154 memcpy(zm->key + key->size, &key->base.nonseamless_cube_mask, nonseamless_size);
158 memcpy(zm->key + key->size + nonseamless_size, key->base.inlined_uniform_values, inline_size * sizeof(uint32_t));
228 hash_gfx_pipeline_state(const void *key)
230 const struct zink_gfx_pipeline_state *state = key;
231 uint32_t hash = _mesa_hash_data(key, offsetof(struct zink_gfx_pipeline_state, hash));
296 struct zink_shader_key *key = &ctx->compute_pipeline_state.key;
303 key->inline_uniforms = false;
305 if (key->base.nonseamless_cube_mask)
311 if (!shader_key_matches(iter, false, key, inline_size))
326 mod = zink_shader_compile(screen, zs, comp->shader->nir, key);
338 memcpy(zm->key, &key->base.nonseamless_cube_mask, nonseamless_size);
340 memcpy(zm->key + nonseamless_size, key->base.inlined_uniform_values, inline_size * sizeof(uint32_t));
502 hash_compute_pipeline_state(const void *key)
504 const struct zink_compute_pipeline_state *state = key;
959 if (ctx->compute_pipeline_state.key.base.nonseamless_cube_mask)
997 memset(&ctx->gfx_pipeline_state.shader_keys.key[old].key.vs_base, 0, sizeof(struct zink_vs_key_base));
1001 memset(&ctx->gfx_pipeline_state.shader_keys.key[PIPE_SHADER_VERTEX].key.vs_base, 0, sizeof(struct zink_vs_key_base));