A bo psyś inaczej nazwał zmienne poprostu
GML
varying vec2 v_vTexcoord;
varying vec4 v_vColour;
void main()
{
vec4 v_vColour = texture2D( gm_BaseTexture, v_vTexcoord );
float gray = dot( v_vColour.xyz, vec3( 0.299, 0.587, 0.144 ) );
gl_FragColor = mix( vec4( 0.0, 0.0, 1.0, 1.0 ), vec4( 1.0, 1.0, 1.0, 1.0 ), gray );
}