Vulkan: Use angle::Result error handling.

Introduces a vk::Context class to contain an error handler and Renderer
pointer. This abtracts the common code path for ContextVk + DisplayVk.

Removes vk::Error in favor of the POD angle::Result class. There are a
few remaining usages of gl::Error that will have to be cleaned up when
we can change the front-end APIs.

Bug: angleproject:2713

Change-Id: I5e68f223d595c6c561b59d6a85759e5738ed43c6
Reviewed-on: https://chromium-review.googlesource.com/1128924
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.h b/src/libANGLE/renderer/vulkan/ProgramVk.h
index c961cdd..3cf3b9b 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.h
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.h
@@ -104,7 +104,7 @@
     const vk::ShaderModule &getLinkedFragmentModule() const;
     Serial getFragmentModuleSerial() const;
 
-    vk::Error updateUniforms(ContextVk *contextVk);
+    angle::Result updateUniforms(ContextVk *contextVk);
 
     const std::vector<VkDescriptorSet> &getDescriptorSets() const;
     const uint32_t *getDynamicOffsets();
@@ -133,10 +133,10 @@
                             GLboolean transpose,
                             const GLfloat *value);
 
-    vk::Error reset(ContextVk *contextVk);
-    vk::Error allocateDescriptorSet(ContextVk *contextVk, uint32_t descriptorSetIndex);
+    angle::Result reset(ContextVk *contextVk);
+    angle::Result allocateDescriptorSet(ContextVk *contextVk, uint32_t descriptorSetIndex);
     gl::Error initDefaultUniformBlocks(const gl::Context *glContext);
-    vk::Error updateDefaultUniformsDescriptorSet(ContextVk *contextVk);
+    angle::Result updateDefaultUniformsDescriptorSet(ContextVk *contextVk);
 
     template <class T>
     void getUniformImpl(GLint location, T *v, GLenum entryPointType) const;