WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
24941
Accelerated compositing can sometimes flash when changing layers
https://bugs.webkit.org/show_bug.cgi?id=24941
Summary
Accelerated compositing can sometimes flash when changing layers
Chris Marrin
Reported
2009-03-30 13:50:47 PDT
Today layout is usually deferred by using a timer which fires after style change is done. This reduces the number of layouts needed. But if the style change results in accelerated compositing layers to be created, they will get created with 0 size because they haven't been laid out yet. This will sometimes cause a compositing to occur with the 0 size layers. When the timer fires, the contents of the layers is laid out and rendered. Then the compositor renders the result and all is well. It is possible to see a visible flash when this occurs. You can see it on
http://mycommute.apple.com
. You need a build with ACCELERATED_COMPOSITING turned on. Select a Route of "Van Ness/Mission", a Stop of "Colma Park & Ride" and a Campus of "IL1". Then click done and ht the back and forward arrows button a few times. You may be able to see the flash. This is hard to see on fast hardware, but easy on slower platforms.
Attachments
Patch
(12.21 KB, patch)
2009-03-30 18:12 PDT
,
Chris Marrin
simon.fraser
: review-
Details
Formatted Diff
Diff
Replacement patch
(10.20 KB, patch)
2009-04-03 10:46 PDT
,
Chris Marrin
hyatt
: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Chris Marrin
Comment 1
2009-03-30 18:12:32 PDT
Created
attachment 29104
[details]
Patch
Simon Fraser (smfr)
Comment 2
2009-03-31 11:32:56 PDT
Comment on
attachment 29104
[details]
Patch r- based on discussion with Darin. We need to just fix the deferred layout timer to fire at the right time.
Chris Marrin
Comment 3
2009-04-03 10:46:29 PDT
Created
attachment 29231
[details]
Replacement patch
Dave Hyatt
Comment 4
2009-04-03 11:21:18 PDT
Comment on
attachment 29231
[details]
Replacement patch r=me
Timothy Hatcher
Comment 5
2009-04-03 12:51:47 PDT
Comment on
attachment 29231
[details]
Replacement patch
> + if (!_private->useDocumentViews) > + [self _viewWillDrawInternal];
This needs an #if USE(ACCELERATED_COMPOSITING) around it, or it will throw an exception since that method wont exist.
Timothy Hatcher
Comment 6
2009-04-03 12:54:29 PDT
Never mind, I see the caller has the correct #ifndef around it.
Chris Marrin
Comment 7
2009-04-03 14:51:59 PDT
Sending WebCore/ChangeLog Sending WebCore/page/ChromeClient.h Sending WebCore/rendering/RenderLayerCompositor.cpp Sending WebCore/rendering/RenderLayerCompositor.h Sending WebKit/mac/ChangeLog Sending WebKit/mac/WebCoreSupport/WebChromeClient.h Sending WebKit/mac/WebCoreSupport/WebChromeClient.mm Sending WebKit/mac/WebView/WebView.mm Sending WebKit/mac/WebView/WebViewInternal.h Transmitting file data ......... Committed revision 42208.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug