Commit bd6ae4aa by Geoff Lang Committed by Commit Bot

Vulkan: Don't create zero-sized textures.

Make sure the old resources are deleted but do not create new resources. BUG=angleproject:2161 Change-Id: Ia6685e5c67b160d9bcd503983aee9607b2bd402c Reviewed-on: https://chromium-review.googlesource.com/891644 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 513bc77d
...@@ -13,13 +13,18 @@ namespace rx ...@@ -13,13 +13,18 @@ namespace rx
{ {
RenderTargetVk::RenderTargetVk() RenderTargetVk::RenderTargetVk()
: format(nullptr),
image(nullptr),
imageView(nullptr),
extents(),
samples(VK_SAMPLE_COUNT_1_BIT),
resource(nullptr)
{ {
reset();
}
void RenderTargetVk::reset()
{
format = nullptr;
image = nullptr;
imageView = nullptr;
extents = gl::Extents();
samples = VK_SAMPLE_COUNT_1_BIT;
resource = nullptr;
} }
} // namespace rx } // namespace rx
...@@ -33,6 +33,8 @@ class RenderTargetVk final : public FramebufferAttachmentRenderTarget ...@@ -33,6 +33,8 @@ class RenderTargetVk final : public FramebufferAttachmentRenderTarget
public: public:
RenderTargetVk(); RenderTargetVk();
void reset();
const vk::Format *format; const vk::Format *format;
vk::Image *image; vk::Image *image;
vk::ImageView *imageView; vk::ImageView *imageView;
......
...@@ -70,6 +70,14 @@ gl::Error TextureVk::setImage(const gl::Context *context, ...@@ -70,6 +70,14 @@ gl::Error TextureVk::setImage(const gl::Context *context,
} }
} }
mRenderTarget.reset();
// Early-out on empty textures, don't create a zero-sized storage.
if (size.width == 0 || size.height == 0 || size.depth == 0)
{
return gl::NoError();
}
// TODO(jmadill): support other types of textures. // TODO(jmadill): support other types of textures.
ASSERT(target == GL_TEXTURE_2D); ASSERT(target == GL_TEXTURE_2D);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment