Vulkan: Make Buffer/Image be CommandGraphResources.
Don't make TextureVk/RenderbufferVk/SurfaceVk/BufferVk own the
manipulation of the command graph. Instead put the operations close to
the buffers and images used to render.
This will lead towards implementing implicit barriers on the command
graph resources.
Bug: angleproject:2828
Change-Id: I07b742b6792c60285b280d6454f90e963d667e0e
Reviewed-on: https://chromium-review.googlesource.com/1246983
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index 26f088f..90d9ff2 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -251,8 +251,9 @@
if (bufferGL)
{
BufferVk *bufferVk = vk::GetImpl(bufferGL);
- mCurrentElementArrayBufferResource = bufferVk;
- mCurrentElementArrayBufferHandle = bufferVk->getVkBuffer().getHandle();
+ mCurrentElementArrayBufferResource = &bufferVk->getBuffer();
+ mCurrentElementArrayBufferHandle =
+ bufferVk->getBuffer().getBuffer().getHandle();
}
else
{
@@ -327,8 +328,9 @@
}
else
{
- mCurrentArrayBufferResources[attribIndex] = bufferVk;
- mCurrentArrayBufferHandles[attribIndex] = bufferVk->getVkBuffer().getHandle();
+ mCurrentArrayBufferResources[attribIndex] = &bufferVk->getBuffer();
+ mCurrentArrayBufferHandles[attribIndex] =
+ bufferVk->getBuffer().getBuffer().getHandle();
mCurrentArrayBufferOffsets[attribIndex] = binding.getOffset();
mCurrentArrayBufferStrides[attribIndex] = binding.getStride();
}