[Webkit-unassigned] [Bug 45092] [chromium] Accelerated Compositing: screen garbage when scrolling
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Sep 9 09:42:20 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=45092
--- Comment #25 from Darin Fisher (:fishd, Google) <fishd at chromium.org> 2010-09-09 09:42:20 PST ---
(In reply to comment #15)
> > 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. :)
Well, there is the clipping rectangle. It is "scrolling the root layer within the given rectangle."
> > 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. :)
OK, that's fine. Thanks for the explanation.
> > 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.
OK
> > 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?
Yes.
--
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