Closed Bug 706023 Opened 13 years ago Closed 12 years ago

Horizontal tearing with canvas

Categories

(Firefox for Android Graveyard :: General, defect, P3)

ARM
Android
defect

Tracking

(blocking-fennec1.0 beta+, fennec11+)

RESOLVED WORKSFORME
Tracking Status
blocking-fennec1.0 --- beta+
fennec 11+ ---

People

(Reporter: mattwoodrow, Assigned: cwiiis)

References

()

Details

(Whiteboard: [gfx])

When running canvas demos on my phone (Galaxy S), I'm getting bad vertical tearing that looks like a race condition between uploading textures and compositing.

The asteroids demo is particularly bad: http://www.kevs3d.co.uk/dev/asteroidsbench/
Yes, I can reproduce. It actually locks up my LG Optimus Black phone too.
That bad vertical tearing, I've seen on more sites. But on this site it seems to happen really easily.
Assignee: nobody → chrislord.net
Priority: -- → P3
OS: Mac OS X → Android
Hardware: x86 → ARM
Hmm, I see this on my Flyer, though the tears are extremely infrequent. It looks like possibly we aren't guarding against Gecko drawing into the buffer while we upload it, but I'm pretty sure we are...

The infrequency of it makes it a bit hard to track down, so I'm not treating this as top priority for now. If I think of anything, I'll report back.
Oh, ok, actually, if you pan around horizontally a lot, you can see white blocks in the areas of the texture that aren't updated by the canvas once the bounce animation finishes. I think I may have an idea what causes that, looking into it.
My idea was wrong (I thought something about the way we force redraws after animations may be having a negative impact, but I can't see how it would). I would still consider this low priority anyway, hopefully we'll fix it when we fix other issues, or it'll go away when we switch to our more long-term drawing plan.
Ok, very sorry for the spam, but I've just noticed that we don't take the tile lock when we draw, so this is almost certainly a problem caused by updating in the middle of drawing... Cooking up a patch, as this may manifest in more serious/annoying ways.
Actually, I'm wrong - I forgot that texture updates are tied to drawing and only happen synchronously before a draw, with the LayerController lock held - invalidations are only called with the LayerController lock held too, so this shouldn't be a problem. Back to square one.
tracking-fennec: --- → 11+
Can we retest this now that maple has landed?
blocking-fennec1.0: --- → ?
Keywords: qawanted
This seems to be wfm in current trunk Fennec build on the HTC Desire HD and the Samsung Galaxy Nexus and the Samsung Galaxy SII.

Mat, could you also perhaps retest this?
Keywords: qawanted
Whiteboard: [gfx]
resolving based comment 8
Status: NEW → RESOLVED
blocking-fennec1.0: ? → beta+
Closed: 12 years ago
Resolution: --- → WORKSFORME
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.