Vulkan: Apply driver uniforms descriptor set.

Also modifies the ProgramVk to initialize the Pipeline and Desriptor
Set layouts with driver uniforms enabled.

Bug: angleproject:2717
Change-Id: I24f7bf6f89b450d1dcb62dcfa7411555ebe3a937
Reviewed-on: https://chromium-review.googlesource.com/1131568
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index f1c1ffe..38ca3f7 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -236,11 +236,10 @@
     // TODO(jmadill): Handle multiple command buffers.
     const auto &descriptorSets   = programVk->getDescriptorSets();
     const gl::RangeUI &usedRange = programVk->getUsedDescriptorSetRange();
+    const vk::PipelineLayout &pipelineLayout = programVk->getPipelineLayout();
     if (!usedRange.empty())
     {
         ASSERT(!descriptorSets.empty());
-        const vk::PipelineLayout &pipelineLayout = programVk->getPipelineLayout();
-
         (*commandBufferOut)
             ->bindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, usedRange.low(),
                                  usedRange.length(), &descriptorSets[usedRange.low()],
@@ -248,6 +247,11 @@
                                  programVk->getDynamicOffsets());
     }
 
+    (*commandBufferOut)
+        ->bindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout,
+                             kDriverUniformsDescriptorSetIndex, 1, &mDriverUniformsDescriptorSet, 0,
+                             nullptr);
+
     return gl::NoError();
 }