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/ProgramVk.cpp b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
index 71594ae..d180b4a 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.cpp
@@ -302,9 +302,16 @@
ANGLE_TRY(renderer->getDescriptorSetLayout(texturesSetDesc,
&mDescriptorSetLayouts[kTextureDescriptorSetIndex]));
+ vk::DescriptorSetLayoutDesc driverUniformsSetDesc;
+ driverUniformsSetDesc.update(0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1);
+ ANGLE_TRY(renderer->getDescriptorSetLayout(
+ driverUniformsSetDesc, &mDescriptorSetLayouts[kDriverUniformsDescriptorSetIndex]));
+
vk::PipelineLayoutDesc pipelineLayoutDesc;
pipelineLayoutDesc.updateDescriptorSetLayout(kUniformsDescriptorSetIndex, uniformsSetDesc);
pipelineLayoutDesc.updateDescriptorSetLayout(kTextureDescriptorSetIndex, texturesSetDesc);
+ pipelineLayoutDesc.updateDescriptorSetLayout(kDriverUniformsDescriptorSetIndex,
+ driverUniformsSetDesc);
ANGLE_TRY(
renderer->getPipelineLayout(pipelineLayoutDesc, mDescriptorSetLayouts, &mPipelineLayout));