Changeset 138956 in webkit


Ignore:
Timestamp:
Jan 7, 2013 10:28:14 AM (11 years ago)
Author:
jpetsovits@rim.com
Message:

[BlackBerry] Never avoid blitting when one-shot drawing sync is involved.
https://bugs.webkit.org/show_bug.cgi?id=106225
RIM PR 274948

Reviewed by George Staikos.
Based on a patch by Chris Guan.

didRenderContent() has a mechanism to avoid double blits;
when scrolling or zooming is enabled then we don't issue
blitContents() as the client would (continually) do that
already.

However, since r138024, didRenderContents() also deals
with one-shot drawing synchronization and commits.
When these are required, we can't just skip out or the
backingstore and overlaying composited layers are likely
to get out of sync. The condition also doesn't make much
sense for direct rendering as no blit calls are issued
at all when it is enabled.

Fix the issue by limiting the impact of the scroll/zoom
early return to only regular blit operations.

  • Api/BackingStore.cpp:

(BlackBerry::WebKit::BackingStorePrivate::didRenderContent):

Location:
trunk/Source/WebKit/blackberry
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/blackberry/Api/BackingStore.cpp

    r138539 r138956  
    23562356void BackingStorePrivate::didRenderContent(const Platform::IntRectRegion& renderedRegion)
    23572357{
    2358     if (isScrollingOrZooming())
    2359         return;
    2360 
    23612358    if (!shouldDirectRenderingToWindow()) {
    23622359#if USE(ACCELERATED_COMPOSITING)
     
    23652362        else
    23662363#endif
     2364        {
     2365            if (isScrollingOrZooming())
     2366                return; // don't drag down framerates by double-blitting.
     2367
    23672368            blitVisibleContents();
     2369        }
    23682370    } else
    23692371        invalidateWindow();
  • trunk/Source/WebKit/blackberry/ChangeLog

    r138905 r138956  
     12013-01-07  Jakob Petsovits  <jpetsovits@rim.com>
     2
     3        [BlackBerry] Never avoid blitting when one-shot drawing sync is involved.
     4        https://bugs.webkit.org/show_bug.cgi?id=106225
     5        RIM PR 274948
     6
     7        Reviewed by George Staikos.
     8        Based on a patch by Chris Guan.
     9
     10        didRenderContent() has a mechanism to avoid double blits;
     11        when scrolling or zooming is enabled then we don't issue
     12        blitContents() as the client would (continually) do that
     13        already.
     14
     15        However, since r138024, didRenderContents() also deals
     16        with one-shot drawing synchronization and commits.
     17        When these are required, we can't just skip out or the
     18        backingstore and overlaying composited layers are likely
     19        to get out of sync. The condition also doesn't make much
     20        sense for direct rendering as no blit calls are issued
     21        at all when it is enabled.
     22
     23        Fix the issue by limiting the impact of the scroll/zoom
     24        early return to only regular blit operations.
     25
     26        * Api/BackingStore.cpp:
     27        (BlackBerry::WebKit::BackingStorePrivate::didRenderContent):
     28
    1292013-01-05  Andy Chen  <andchen@rim.com>
    230
Note: See TracChangeset for help on using the changeset viewer.