我们将其称为一个program。pipeline来搭配shader。会在第2行打个warning,不影响使用。shader绑定到pipeline的各个stage上,在渲染时,调用glBindProgramPipeline​来启用某个pipeline。program和pipeline,建议在之前先调用glUseProgram(0),防止生效的是program而不是pipeline。shader中进行,我申请了16个vec2的varying。在传统program的编译链接中,这样写是没问题的,因为16个vec2没有超过32个components(一个x\y\z分量即一个component)。shader之间出现了mismatch,不会产生错误,但是shader的某些输入会出现undefined的情况。想着这样能省一些varying,却弄巧成拙。将zw拆成单独的vec2。time减少了3ms,demo渲染帧率从25fps提高到了29fps到30fps(满)。