Vulkan: Merge the PixelBuffer logic into ImageHelper.
To support EGL images efficiently, the pixel buffer needs to be tightly coupled
with the image it will upload data to allowing textures to upload data to EGL
images sourced from renderbuffers. The data will be uploaded to the image in
the correct order if it comes from multiple sources and the check for pending
uploads does not need to traverse EGL image siblings.
BUG=angleproject:2668
Change-Id: Iebf59ed1e358ddc76843b8bcfac39b0363f66a3f
Reviewed-on: https://chromium-review.googlesource.com/c/1405710
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp b/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
index c5ac794..9c63d44 100644
--- a/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
@@ -34,7 +34,9 @@
ContextVk *contextVk = vk::GetImpl(context);
RendererVk *renderer = contextVk->getRenderer();
- mImage.release(renderer);
+ mImage.releaseImage(renderer);
+ mImage.releaseStagingBuffer(renderer);
+
renderer->releaseObject(renderer->getCurrentQueueSerial(), &mImageView);
}
@@ -54,7 +56,7 @@
static_cast<GLsizei>(width) != mState.getWidth() ||
static_cast<GLsizei>(height) != mState.getHeight())
{
- mImage.release(renderer);
+ mImage.releaseImage(renderer);
renderer->releaseObject(renderer->getCurrentQueueSerial(), &mImageView);
}
}