work around a problem where fp registers get corrupted (DO NOT MERGE)
Bug: 5331198
Change-Id: I1f9b4a79d34d63f8adb0555909998664ea2ea9ca
diff --git a/libs/hwui/LayerRenderer.cpp b/libs/hwui/LayerRenderer.cpp
index 349b9e3..a398673 100644
--- a/libs/hwui/LayerRenderer.cpp
+++ b/libs/hwui/LayerRenderer.cpp
@@ -31,16 +31,20 @@
// Rendering
///////////////////////////////////////////////////////////////////////////////
+Rect* gHackDontCorruptRegisters;
+
void LayerRenderer::prepareDirty(float left, float top, float right, float bottom, bool opaque) {
LAYER_RENDERER_LOGD("Rendering into layer, fbo = %d", mLayer->getFbo());
+ Rect dirty(left, top, right, bottom);
+ gHackDontCorruptRegisters = &dirty;
+
glBindFramebuffer(GL_FRAMEBUFFER, mLayer->getFbo());
const float width = mLayer->layer.getWidth();
const float height = mLayer->layer.getHeight();
#if RENDER_LAYERS_AS_REGIONS
- Rect dirty(left, top, right, bottom);
if (dirty.isEmpty() || (dirty.left <= 0 && dirty.top <= 0 &&
dirty.right >= width && dirty.bottom >= height)) {
mLayer->region.clear();