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();
}