It seems that DirectX Matrix * Vector is interpreted as Vector * Matrix when using OpenGL game.
Same goes with mul() function.
Converting RGB - YUV - RGB works when:
in OpenGL games I use mul(Vector, Matrix)
in DirecX games I use mul(Matrix, Vector)
Here's little test:
EDIT*
Otherwise it gives green tint.
Games that I used, were Blender and Mirrors Edge.