Vulkan: Flag uniforms as dirty when they are updated.

Currently changing uniform values will not always be seen.

Bug: angleproject:2392
Bug: angleproject:2403
Change-Id: Ie315a64ad6094f2c23e48e901de2e03e4d98516a
Reviewed-on: https://chromium-review.googlesource.com/963296
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.cpp b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
index 7130d39..e8e1cb9 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
@@ -81,12 +81,6 @@
                                const sh::BlockMemberInfo &layoutInfo,
                                angle::MemoryBuffer *uniformData)
 {
-    // Assume an offset of -1 means the block is unused.
-    if (layoutInfo.offset == -1)
-    {
-        return;
-    }
-
     int elementSize = sizeof(T) * componentCount;
     if (layoutInfo.arrayStride == 0 || layoutInfo.arrayStride == elementSize)
     {
@@ -436,8 +430,17 @@
         for (auto &uniformBlock : mDefaultUniformBlocks)
         {
             const sh::BlockMemberInfo &layoutInfo = uniformBlock.uniformLayout[location];
+
+            // Assume an offset of -1 means the block is unused.
+            if (layoutInfo.offset == -1)
+            {
+                continue;
+            }
+
             UpdateDefaultUniformBlock(count, linkedUniform.typeInfo->componentCount, v, layoutInfo,
                                       &uniformBlock.uniformData);
+
+            uniformBlock.uniformsDirty = true;
         }
     }
     else