+ return prog_begin;
+}
+
+void ProgramData::apply(const Program &prog, PipelineState &state) const
+{
+ auto prog_begin = prepare_program(prog);
+ Program::LayoutHash prog_hash = prog_begin->prog_hash;
+ for(auto i=prog_begin+1; (i!=programs.end() && i->prog_hash==prog_hash); ++i)