Vulkan: Fix matrix uniforms

A piece of code shared with d3d was used to implement this feature.
However, we store the uniform data transposed and row-major in d3d to
accomodate the fact that matrix indexing in HLSL is the opposite of GLSL
(mat[row][col] in HLSL as opposed to mat[col][row] in GLSL).

There were two functions that copied the source matrix fields either as
column-major or source-major (corresponding to `transpose` false or true
respectively in glUniformMatrix*) into a row-major destination.  These
functions are refactored into one, which copies from any-major source to
any-major destination.  The HLSL backend uses the "to row-major" variant
and the Vulkan backend uses the "to column-major" variant.

Bug: angleproject:3198
Change-Id: I7254da4fbe6916af78c5906abcb82ca01674ab9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1607541
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.cpp b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
index e5b6e2e..0cdb05f 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
@@ -663,7 +663,7 @@
             continue;
         }
 
-        bool updated = SetFloatUniformMatrix<cols, rows>(
+        bool updated = SetFloatUniformMatrixGLSL<cols, rows>(
             locationInfo.arrayIndex, linkedUniform.getArraySizeProduct(), count, transpose, value,
             uniformBlock.uniformData.data() + layoutInfo.offset);