Vulkan: Make free part of DescriptorPool.

This also fixes a missed VkResult error. In order to do this
we also return an error from ProgramImpl::destroy.

Bug: angleproject:2396
Change-Id: I649b19e64732785bb33eebadea7f361245137d0f
Reviewed-on: https://chromium-review.googlesource.com/958406
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.h b/src/libANGLE/renderer/vulkan/ProgramVk.h
index 44959c2..fd0b31d 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.h
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.h
@@ -24,7 +24,7 @@
   public:
     ProgramVk(const gl::ProgramState &state);
     ~ProgramVk() override;
-    void destroy(const gl::Context *context) override;
+    gl::Error destroy(const gl::Context *context) override;
 
     gl::LinkResult load(const gl::Context *context,
                         gl::InfoLog &infoLog,
@@ -120,7 +120,7 @@
     void invalidateTextures();
 
   private:
-    void reset(ContextVk *contextVk);
+    vk::Error reset(ContextVk *contextVk);
     vk::Error initDescriptorSets(ContextVk *contextVk);
     gl::Error initDefaultUniformBlocks(const gl::Context *glContext);
     vk::Error updateDefaultUniformsDescriptorSet(ContextVk *contextVk);