+layout (location=0) in vec3 a_co;
+layout (location=1) in vec4 a_norm;
+layout (location=2) in vec2 a_uv;
+layout (location=3) in ivec4 a_lights;
+
+#include "motion_vectors_vs.glsl"
+
+uniform mat4x3 uMdl;
+uniform mat4 uPv;
+uniform mat4 uPvmPrev;
+
+out vec2 aUv;
+out vec4 aNorm;
+out vec3 aCo;
+out vec3 aWorldCo;
+flat out ivec4 aLights;
+
+void main()
+{
+ vec3 world_pos0 = uMdl * vec4( a_co, 1.0 );
+ vec4 vproj0 = uPv * vec4( world_pos0, 1.0 );
+ vec4 vproj1 = uPvmPrev * vec4( a_co, 1.0 );
+
+ vs_motion_out( vproj0, vproj1 );
+
+ gl_Position = vproj0;
+
+ aUv = a_uv;
+ aNorm = vec4( mat3(uMdl) * a_norm.xyz, a_norm.w );
+ aCo = a_co;
+ aWorldCo = world_pos0;
+ aLights = a_lights;
+}