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,