Last Comment Bug 749634 - graphical glitches with CSS transition and transform
: graphical glitches with CSS transition and transform
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Layout: View Rendering (show other bugs)
: Trunk
: x86 Windows 7
: -- normal (vote)
: ---
Assigned To: Matt Woodrow (:mattwoodrow)
:
Mentors:
http://bartaz.github.com/impress.js/#...
Depends on:
Blocks: 701528
  Show dependency treegraph
 
Reported: 2012-04-27 08:36 PDT by Alice0775 White
Modified: 2012-12-05 18:44 PST (History)
5 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Don't pass the cache overflow values since FinishAndStoreOverflow modifies them (5.62 KB, patch)
2012-04-29 18:50 PDT, Matt Woodrow (:mattwoodrow)
no flags Details | Diff | Review
Don't pass the cache overflow values since FinishAndStoreOverflow modifies them v2 (5.99 KB, patch)
2012-06-20 18:23 PDT, Matt Woodrow (:mattwoodrow)
roc: review+
Details | Diff | Review

Description Alice0775 White 2012-04-27 08:36:50 PDT
This is spin off from Bug 730166
See https://bugzilla.mozilla.org/show_bug.cgi?id=730166#c8

text flickers when resize window
and  click 3D then flickers

#1 Regression window(m-c)
Works:
http://hg.mozilla.org/mozilla-central/rev/c3a50afc2243
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0a1) Gecko/20111007 Firefox/10.0a1 ID:20111007031227
Not render text:
http://hg.mozilla.org/mozilla-central/rev/bd1411e362fb
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0a1) Gecko/20111007 Firefox/10.0a1 ID:20111007034151
Pushlog:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=c3a50afc2243&tochange=bd1411e362fb


#1 Regression window(m-i)
Works:
http://hg.mozilla.org/integration/mozilla-inbound/rev/baa28d3f6296
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0a1) Gecko/20111006 Firefox/10.0a1 ID:20111006135449
Not render text:
http://hg.mozilla.org/integration/mozilla-inbound/rev/94f2fa9f97b8
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0a1) Gecko/20111006 Firefox/10.0a1 ID:20111006153652
Pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=baa28d3f6296&tochange=94f2fa9f97b8



#2 Regression window(m-c)
Not render text:
http://hg.mozilla.org/mozilla-central/rev/eb84780783ed
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111114 Firefox/11.0a1 ID:20111114081649
Render text but flickers:
http://hg.mozilla.org/mozilla-central/rev/f694183357ec
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111114 Firefox/11.0a1 ID:20111114190451
Pushlog:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=eb84780783ed&tochange=f694183357ec


#2 Regression window(m-i)
Not render text:
http://hg.mozilla.org/integration/mozilla-inbound/rev/6ae6d3beeaf4
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111113 Firefox/11.0a1 ID:20111113203057
Render text but flickers:
http://hg.mozilla.org/integration/mozilla-inbound/rev/33547cc48103
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0a1) Gecko/20111113 Firefox/11.0a1 ID:20111113204348
Pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=6ae6d3beeaf4&tochange=33547cc48103
Comment 1 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-04-27 14:29:36 PDT
It's all Matt I guess :-)
Comment 2 Matt Woodrow (:mattwoodrow) 2012-04-29 18:50:06 PDT
Created attachment 619465 [details] [diff] [review]
Don't pass the cache overflow values since FinishAndStoreOverflow modifies them

This fixes assertion spam with the testcase, and improves the flickering slightly.

Some of the words still flicker, looks to be invalid overflow rect calculation (no display items exist for them).
Comment 3 Matt Woodrow (:mattwoodrow) 2012-04-29 21:07:34 PDT
Remainder of the flicker is fixed by the patch in bug 722603.
Comment 4 Bobby Richter [:secretrobotron] 2012-05-14 15:58:38 PDT
Just spent a bunch of time with CSS 3D stuff on the weekend to create this: http://secretrobotron.github.com/crunch/

On nightly (OSX 10.7.3), flickering is still very present. Same issue?
Comment 5 Matt Woodrow (:mattwoodrow) 2012-05-14 16:07:39 PDT
Yes, that's fixed by this patch.
Comment 6 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-05-14 16:28:03 PDT
Comment on attachment 619465 [details] [diff] [review]
Don't pass the cache overflow values since FinishAndStoreOverflow modifies them

Review of attachment 619465 [details] [diff] [review]:
-----------------------------------------------------------------

Add an assert to FinishAndStoreOverflow that its overflow areas parameter is not aliased to the property.

::: layout/generic/nsFrame.cpp
@@ +6693,5 @@
> +      Properties().Set(nsIFrame::InitialOverflowProperty(), initial);
> +    }
> +    *initial = aOverflowAreas;
> +  } else {
> +    Properties().Delete(nsIFrame::InitialOverflowProperty());

doing this Delete all the time is unfortunate overhead.

Can we make InitialOverflowProperty only applicable if Preserves3D() || HasPerspective(), and ensure a reframe if those change?

@@ +6962,3 @@
>      } else {
> +      overflow.SetAllTo(bounds);
> +    }

A helper function that gets InitialOverflowProperty and returns either that or the result of UnionAllWidth would be nice here.
Comment 7 Matt Woodrow (:mattwoodrow) 2012-05-30 20:19:21 PDT
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #6)

> doing this Delete all the time is unfortunate overhead.
> 
> Can we make InitialOverflowProperty only applicable if Preserves3D() ||
> HasPerspective(), and ensure a reframe if those change?

I'm not sure how to do this, since both of these properties are checking something on the style context parent. I *think* we can get away with just leaving the property there if it's not needed and wait until the frame is destroyed.
Comment 8 Robert O'Callahan (:roc) (Exited; email my personal email if necessary) 2012-05-30 20:50:01 PDT
OK.
Comment 9 Matt Woodrow (:mattwoodrow) 2012-06-20 18:23:07 PDT
Created attachment 635159 [details] [diff] [review]
Don't pass the cache overflow values since FinishAndStoreOverflow modifies them v2
Comment 10 Matt Woodrow (:mattwoodrow) 2012-12-05 18:44:37 PST
Looks like I forgot to land this, and fixed the same issue in bug 806256.

Note You need to log in before you can comment on or make changes to this bug.