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

Commit 5fc1b60e authored by Mathias Agopian's avatar Mathias Agopian
Browse files

don't use a 1/4th of the screen size texture for the dim layer

we can't use a texture of 1/4th of the screen for the dim layer, because the mdp internal input resultion is alwyas integers and for very small blits of a couple pixels the scale factor can get way out of range, for instance for a 7 pixels source, the scale factor would be either 7 (7/1) or 3.5 (7/2) instead of 4 (7/1.75). This caused the mdp to fail in some cases and revert to software. we now always use a texture of the actual screen size, so the problem will never happen. This burns 300KB of pmem instead of 21KB. On devices with a larger screen we might want to use a smaller texture and tile it by hand.
parent 0f53af13
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -63,12 +63,6 @@ void LayerDim::initDimmer(SurfaceFlinger* flinger, uint32_t w, uint32_t h)
     * This burns a full-screen worth of graphic memory.
     */

    // copybit supports 4x scaling, so we only need to allocate 1/16 of the
    // buffer.
    // FIXME: we have to add 1px because the mdp fails
    w = w/4 + 1;
    h = h/4 + 1;

    const DisplayHardware& hw(flinger->graphicPlane(0).displayHardware());
    uint32_t flags = hw.getFlags();