Return an Error from Framebuffer::syncState.
This pipes errors up from the Impl to the top level. There are
still a few places were error swallowing is needed, because the
Framebuffer API doesn't support returning an error.
Bug: angleproject:2372
Change-Id: Idc06bda1817fd28075940f69874d8b6ba69194f9
Reviewed-on: https://chromium-review.googlesource.com/954290
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
index 2bd6920..b65d3f7 100644
--- a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
@@ -319,15 +319,14 @@
return true;
}
-void FramebufferVk::syncState(const gl::Context *context,
- const gl::Framebuffer::DirtyBits &dirtyBits)
+gl::Error FramebufferVk::syncState(const gl::Context *context,
+ const gl::Framebuffer::DirtyBits &dirtyBits)
{
ContextVk *contextVk = vk::GetImpl(context);
RendererVk *renderer = contextVk->getRenderer();
ASSERT(dirtyBits.any());
-
- mRenderTargetCache.update(context, mState, dirtyBits);
+ ANGLE_TRY(mRenderTargetCache.update(context, mState, dirtyBits));
mRenderPassDesc.reset();
renderer->releaseResource(*this, &mFramebuffer);
@@ -336,6 +335,8 @@
mLastRenderNodeSerial = Serial();
contextVk->invalidateCurrentPipeline();
+
+ return gl::NoError();
}
const vk::RenderPassDesc &FramebufferVk::getRenderPassDesc(const gl::Context *context)