[Webkit-unassigned] [Bug 45092] [chromium] Accelerated Compositing: screen garbage when scrolling
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Sep 7 18:16:23 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=45092
--- Comment #15 from Nat Duca <nduca at chromium.org> 2010-09-07 18:16:23 PST ---
> it seems like scrollRootLayer should also end with "Rect" to match the style of invalidateRootLayerRect.
Interesting thought. The one difference is that scrollLayer isn't actually sending a rectangle. I personally lean away from adding a rect suffix, but I'm ok either way. :)
> nit: elsewhere you enclose the isAcceleratedCompositingActive() call within #if USE(ACCELERATED_COMPOSITING). might be good to be consistent with that.
The rule I'm [trying] to follow is as follows...
If the code depends on accelerated compositing being ON, but does not itself use any code that is conditional on USE(ACCELERATED_COMPOSITING), I use isAcceleratedCompositingActive. E.g. render_widget.cc::DoDeferredUpdate's uses isAccelerated because the methods it dispatches to are always present.
In contrast, if the code uses functions or variables that are conditional on USE(ACCELERATED_COMPOSITING), I enclose the just the "dependent" part of the function in a USE(ACCELERERATED_COMPOSITING) test, leaving the isAccelerated test outside. E.g.:
if(isAcceleratedCompositing()) {
#if USE(ACCELERATED_COMPOSITING)
someCompositorOnlyFunction();
#endif
} else {
// software path
}
To me at least, this seemed better than:
#if USE(ACCELERATED_COMPOSITING)
if(isAcceleratedCompositing()) {
someCompositorOnlyFunction();
} else {
#endif
// software path
#if USE(ACCELERATED_COMPOSITING)
}
#endif
I can change approach if there are strong opinions. :)
> WebKit/chromium/src/WebViewImpl.cpp:956
> + invalidateRootLayerRect(rect);
> why do we need to invalidate here? it seems strange to invalidate during painting.
I have no clue! Deleted! :)
> in the case where this paint method is being called to capture a thumbnail
> for the new tab page in chromium, shouldn't we avoid the present step?
Good idea. I'll push the present() that is in the doComposite flow up to the ::paint function.
The placeholder for James' readback code will also move up to ::paint.
> WebViewImpl::themeChanged: you could also call FrameView::invalidate() on the main FrameView
I switched over to this code. Afaik, I can call this directly, and it will route back to the view if needed. Does this seem right?
>> WebKit/chromium/src/WebViewImpl.cpp:2356
>> + // FIXME: this is being called too early, we need to defer calling this
>isn't this what handling the finish flag will mean? is this FIXME redundant with that FIXME?
Yes it is. Deleted.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list