static void
iris_update_compiled_vs(struct iris_context *ice)
{
- struct brw_vs_prog_key key;
+ struct iris_uncompiled_shader *ish =
+ ice->shaders.uncompiled[MESA_SHADER_VERTEX];
+
+ struct brw_vs_prog_key key = { .program_string_id = ish->program_id };
ice->vtbl.populate_vs_key(ice, &key);
if (iris_bind_cached_shader(ice, IRIS_CACHE_VS, &key))
return;
- UNUSED bool success =
- iris_compile_vs(ice, ice->shaders.uncompiled[MESA_SHADER_VERTEX], &key);
+ UNUSED bool success = iris_compile_vs(ice, ish, &key);
}
static void
if (!ish)
return;
- struct brw_tes_prog_key key;
+ struct brw_tes_prog_key key = { .program_string_id = ish->program_id };
ice->vtbl.populate_tes_key(ice, &key);
if (iris_bind_cached_shader(ice, IRIS_CACHE_TES, &key))
if (!ish)
return;
- struct brw_gs_prog_key key;
+ struct brw_gs_prog_key key = { .program_string_id = ish->program_id };
ice->vtbl.populate_gs_key(ice, &key);
if (iris_bind_cached_shader(ice, IRIS_CACHE_GS, &key))
static void
iris_update_compiled_fs(struct iris_context *ice)
{
- struct brw_wm_prog_key key;
+ struct iris_uncompiled_shader *ish =
+ ice->shaders.uncompiled[MESA_SHADER_FRAGMENT];
+ struct brw_wm_prog_key key = { .program_string_id = ish->program_id };
ice->vtbl.populate_fs_key(ice, &key);
if (iris_bind_cached_shader(ice, IRIS_CACHE_FS, &key))
return;
UNUSED bool success =
- iris_compile_fs(ice, ice->shaders.uncompiled[MESA_SHADER_FRAGMENT], &key,
- ice->shaders.last_vue_map);
+ iris_compile_fs(ice, ish, &key, ice->shaders.last_vue_map);
}
static struct iris_compiled_shader *
iris_populate_vs_key(const struct iris_context *ice,
struct brw_vs_prog_key *key)
{
- memset(key, 0, sizeof(*key));
iris_populate_sampler_key(ice, &key->tex);
}
iris_populate_tcs_key(const struct iris_context *ice,
struct brw_tcs_prog_key *key)
{
- memset(key, 0, sizeof(*key));
iris_populate_sampler_key(ice, &key->tex);
}
iris_populate_tes_key(const struct iris_context *ice,
struct brw_tes_prog_key *key)
{
- memset(key, 0, sizeof(*key));
iris_populate_sampler_key(ice, &key->tex);
}
iris_populate_gs_key(const struct iris_context *ice,
struct brw_gs_prog_key *key)
{
- memset(key, 0, sizeof(*key));
iris_populate_sampler_key(ice, &key->tex);
}
iris_populate_fs_key(const struct iris_context *ice,
struct brw_wm_prog_key *key)
{
- memset(key, 0, sizeof(*key));
iris_populate_sampler_key(ice, &key->tex);
/* XXX: dirty flags? */