Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5f7b3cb authored by Mathias Agopian's avatar Mathias Agopian
Browse files

work around a problem where fp registers get corrupted (DO NOT MERGE)

Bug: 5331198
Change-Id: I1f9b4a79d34d63f8adb0555909998664ea2ea9ca
parent 3d5759b5
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -31,16 +31,20 @@ namespace uirenderer {
// 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();