多个shader进行合并的时候,非mainshader的variable问题


描述一下

如果我们同时编译多个shader(同一类型的shader,只有一个还有main函数的shader)
那么就是还有main函数的shader:

#version ***
void testFunc();
out vec4 output;
void main(){ testFunc();}

其他定义了testFunc的shader为:

#version ***
float testArry[5] = float[](0,0,0,0,0);
void testFunc2(in int i);
void testFunc(){
	for(int i = 0;i < 4;i++){
	if(testArry[i] < 0){
		testFunc2(i);
		}
	}
}

void testFunc2(in int i){
	if(testArry[i] == 0){
		testArry[i]++;
	}
}

那么在编译的过程中mainshader会inline testFunc存在的shader部分的指令,但是变量(也就是testArry)该怎么考虑也复制过去呢?