Vulkan: Make RenderTargetVk use ImageHelper.

Bug: angleproject:2318
Change-Id: I9bc4bb7f5bcd3029a31c8570809f253cf5e4b12a
Reviewed-on: https://chromium-review.googlesource.com/980773
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/TextureVk.cpp b/src/libANGLE/renderer/vulkan/TextureVk.cpp
index 471a957..d8f5168 100644
--- a/src/libANGLE/renderer/vulkan/TextureVk.cpp
+++ b/src/libANGLE/renderer/vulkan/TextureVk.cpp
@@ -52,6 +52,9 @@
 
 TextureVk::TextureVk(const gl::TextureState &state) : TextureImpl(state)
 {
+    mRenderTarget.image     = &mImage;
+    mRenderTarget.imageView = &mImageView;
+    mRenderTarget.resource  = this;
 }
 
 TextureVk::~TextureVk()
@@ -105,8 +108,6 @@
         }
     }
 
-    mRenderTarget.reset();
-
     // Early-out on empty textures, don't create a zero-sized storage.
     if (size.width == 0 || size.height == 0 || size.depth == 0)
     {
@@ -173,13 +174,6 @@
         ANGLE_TRY(mSampler.init(device, samplerInfo));
     }
 
-    mRenderTarget.image     = &mImage.getImage();
-    mRenderTarget.imageView = &mImageView;
-    mRenderTarget.format    = &vkFormat;
-    mRenderTarget.extents   = size;
-    mRenderTarget.samples   = VK_SAMPLE_COUNT_1_BIT;
-    mRenderTarget.resource  = this;
-
     // Handle initial data.
     if (pixels)
     {
@@ -212,8 +206,8 @@
 {
     RendererVk *renderer       = contextVk->getRenderer();
     VkDevice device            = renderer->getDevice();
-    const gl::Extents &size    = mRenderTarget.extents;
-    const vk::Format &vkFormat = *mRenderTarget.format;
+    const gl::Extents &size    = mImage.getExtents();
+    const vk::Format &vkFormat = mImage.getFormat();
 
     vk::ImageHelper stagingImage;
     ANGLE_TRY(stagingImage.init2DStaging(device, renderer->getMemoryProperties(), vkFormat, size,