I couldn’t find information on this topic… since I couldn’t find a way to unpack normal attributes in the shader so the w component would become 0 instead of 1, I reasoned that mat3(mat4) is the cleanest way to express the desire to transform a normal. But it begs the question, the naive implementation of mat3(mat4) would be wasteful compared to the naive implementation of vec4(normal,0).
What really happens? I guess I could test this with Direct3D but I don’t know if OpenGL has assembly. I thought since I couldn’t find an answer online maybe with any luck this question can be returned in people’s future search results. (I’m also wondering if there is a way to unpack that w component to 0.)