Closed Bug 730515 Opened 12 years ago Closed 12 years ago

Draw coalescing only works if the events are next to each other

Categories

(Core Graveyard :: Widget: Android, defect)

All
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: jrmuizel, Assigned: kats)

References

(Blocks 1 open bug)

Details

We can easily have our draw events split up with other events (NATIVE_POKE from the timer thread). Not coalescing these causes us to do a bunch of extra work.
Blocks: 730504
Assignee: nobody → bugmail.mozilla
Blocks: 740883
OS: Linux → Android
Hardware: x86_64 → All
:jrmuizel, do you remember how this was happening? Looking at the current code for the DRAW event coalescing:

        while (nextType == AndroidGeckoEvent::DRAW && mLastDrawEvent &&
               mNumDraws > 1)
        {

it seems like we should be coalescing even across POKE events. If we have a sequence like

  POKE DRAW POKE DRAW

then when we are processing the first POKE, nextType will be DRAW and mNumDraws will be 2, with mLastDrawEvent pointing to the last DRAW. Therefore it should coalesce just fine. This is true regardless of what other events are in the queue.

This is the behaviour I'm observing as well with logging. I'm going to resolve this, but reopen if you disagree.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
No longer blocks: 740883
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.