Posição shader vec4 ou vec3

Eu li alguns tutoriais sobre o GLSL. Em certo atributo de posição é um vec4 em algum vec3. Eu sei que as operações de matriz precisam de um vec4, mas vale a pena enviar um elemento adicional? Não é melhor enviar vec3 e depois converter o shader vec4 (posição, 1.0)? Menos dados na memória - será mais rápido? Ou devemos empacotar um elemento extra para evitar o vazamento?

Alguma dica que deveria ser melhor?

layout(location = 0) in vec4 position;
MVP*position;

ou

layout(location = 0) in vec3 position;
MVP*vec4(position,1.0);

questionAnswers(1)

yourAnswerToTheQuestion