Ответ 1
Вы можете пометить атрибут как inout
в сигнатуре функции, и это сделает атрибут эффективно "передается по ссылке",
Например,
void doSomething( vec3 trans, inout mat4 mat )
Здесь mat
"передается по ссылке", trans
передается по значению.
mat
должен быть записан (т.е. не равномерный атрибут)