diff --git a/libs/hwui/Texture.cpp b/libs/hwui/Texture.cpp index 9fc0c199815db..c5000e4cadbc2 100644 --- a/libs/hwui/Texture.cpp +++ b/libs/hwui/Texture.cpp @@ -95,28 +95,21 @@ bool Texture::updateSize(uint32_t width, uint32_t height, GLint format) { void Texture::upload(GLint internalformat, uint32_t width, uint32_t height, GLenum format, GLenum type, const void* pixels) { GL_CHECKPOINT(); - bool needsAlloc = updateSize(width, height, internalformat); - if (!needsAlloc && !pixels) { - return; - } mCaches.textureState().activateTexture(0); - GL_CHECKPOINT(); + bool needsAlloc = updateSize(width, height, internalformat); if (!mId) { glGenTextures(1, &mId); needsAlloc = true; } - GL_CHECKPOINT(); mCaches.textureState().bindTexture(GL_TEXTURE_2D, mId); - GL_CHECKPOINT(); if (needsAlloc) { glTexImage2D(GL_TEXTURE_2D, 0, mFormat, mWidth, mHeight, 0, format, type, pixels); - GL_CHECKPOINT(); - } else { + } else if (pixels) { glTexSubImage2D(GL_TEXTURE_2D, 0, mFormat, mWidth, mHeight, 0, format, type, pixels); - GL_CHECKPOINT(); } + GL_CHECKPOINT(); } static void uploadToTexture(bool resize, GLenum format, GLenum type, GLsizei stride, GLsizei bpp,