- string source = create_program_source();
- string name = format("_material_%016x.glsl", hash64(source));
+ string module_name;
+ map<string, int> spec_values;
+ fill_program_info(module_name, spec_values);
+
+ string info = module_name;
+ for(map<string, int>::const_iterator i=spec_values.begin(); i!=spec_values.end(); ++i)
+ info += format(",%s:%d", i->first, i->second);
+
+ string name = format("_material_%016x.shader", hash64(info));