Vulkan: Encapsulate RenderTargetVk.

This makes the members private and adds more functionality. This moves
more responsibility out of vk::CommandGraphNode and also makes the
RenderPass init in the CommandGraphNode class better encapsulated.

Bug: angleproject:2539
Change-Id: Ia16f3f39cf011548c6473805b8b28e284808e856
Reviewed-on: https://chromium-review.googlesource.com/1040279
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/CommandGraph.cpp b/src/libANGLE/renderer/vulkan/CommandGraph.cpp
index 106e21b..54d0a0d 100644
--- a/src/libANGLE/renderer/vulkan/CommandGraph.cpp
+++ b/src/libANGLE/renderer/vulkan/CommandGraph.cpp
@@ -236,47 +236,15 @@
 
 void CommandGraphNode::storeRenderPassInfo(const Framebuffer &framebuffer,
                                            const gl::Rectangle renderArea,
+                                           const vk::RenderPassDesc &renderPassDesc,
                                            const std::vector<VkClearValue> &clearValues)
 {
+    mRenderPassDesc = renderPassDesc;
     mRenderPassFramebuffer.setHandle(framebuffer.getHandle());
     mRenderPassRenderArea = renderArea;
     std::copy(clearValues.begin(), clearValues.end(), mRenderPassClearValues.begin());
 }
 
-void CommandGraphNode::appendColorRenderTarget(Serial serial, RenderTargetVk *colorRenderTarget)
-{
-    ASSERT(mOutsideRenderPassCommands.valid());
-
-    // TODO(jmadill): Use automatic layout transition. http://anglebug.com/2361
-    colorRenderTarget->image->changeLayoutWithStages(
-        VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
-        VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
-        &mOutsideRenderPassCommands);
-
-    mRenderPassDesc.packColorAttachment(*colorRenderTarget->image);
-    colorRenderTarget->resource->onWriteResource(this, serial);
-}
-
-void CommandGraphNode::appendDepthStencilRenderTarget(Serial serial,
-                                                      RenderTargetVk *depthStencilRenderTarget)
-{
-    ASSERT(mOutsideRenderPassCommands.valid());
-    ASSERT(depthStencilRenderTarget->image->getFormat().textureFormat().hasDepthOrStencilBits());
-
-    // TODO(jmadill): Use automatic layout transition. http://anglebug.com/2361
-    const angle::Format &format    = depthStencilRenderTarget->image->getFormat().textureFormat();
-    VkImageAspectFlags aspectFlags = (format.depthBits > 0 ? VK_IMAGE_ASPECT_DEPTH_BIT : 0) |
-                                     (format.stencilBits > 0 ? VK_IMAGE_ASPECT_STENCIL_BIT : 0);
-
-    depthStencilRenderTarget->image->changeLayoutWithStages(
-        aspectFlags, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
-        VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
-        &mOutsideRenderPassCommands);
-
-    mRenderPassDesc.packDepthStencilAttachment(*depthStencilRenderTarget->image);
-    depthStencilRenderTarget->resource->onWriteResource(this, serial);
-}
-
 // static
 void CommandGraphNode::SetHappensBeforeDependency(CommandGraphNode *beforeNode,
                                                   CommandGraphNode *afterNode)