fix [2211532] improves sholes graphics performance
Instead of using glTex{Sub}Image2D() to refresh the textures, we're using an EGLImageKHR object
backed up by a gralloc buffer. The data is updated using memcpy(). This is faster than
glTex{Sub}Image2D() because the texture is not swizzled. It also uses less memory because
EGLImageKHW is not limited to power-of-two dimensions.
diff --git a/libs/surfaceflinger/Layer.h b/libs/surfaceflinger/Layer.h
index 702c51a..57b3dfa 100644
--- a/libs/surfaceflinger/Layer.h
+++ b/libs/surfaceflinger/Layer.h
@@ -85,6 +85,8 @@
}
void reloadTexture(const Region& dirty);
+ status_t initializeEglImageLocked(
+ const sp<GraphicBuffer>& buffer, Texture* texture);
uint32_t getEffectiveUsage(uint32_t usage) const;
@@ -118,6 +120,7 @@
// protected by mLock
sp<GraphicBuffer> mBuffers[NUM_BUFFERS];
Texture mTextures[NUM_BUFFERS];
+ sp<GraphicBuffer> mHybridBuffer;
uint32_t mWidth;
uint32_t mHeight;