| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support to cc/ for delegated rendering with a software compositor. A new SharedBitmapManager is added, which will create SharedBitmaps with unique IDs in shared memory. These can be filled in the child, and their IDs can be sent to the browser so it can map them and draw from them.
No implementations of the SharedBitmapManager are added in this patch, so delegated rendering support won't work in practice yet, and it will fall back to not allocating anything in shared memory.
BUG=
Review URL: https://codereview.chromium.org/24632004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230245 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Plumbs the scroll parent information into the cc layer trees. These relationships are not yet used. (That task is accomplished here https://codereview.chromium.org/18191009/).
R=shawnsingh@chromium.org
BUG=254435
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=219026
Review URL: https://chromiumcodereview.appspot.com/18133004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219167 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Failed cc_unittests on Win7 Tests (dbg)(1).
> Add plumbing for scroll parent.
>
> Plumbs the scroll parent information into the cc layer trees. These relationships are not yet used. (That task is accomplished here https://codereview.chromium.org/18191009/).
>
> R=shawnsingh@chromium.org
> BUG=254435
>
> Review URL: https://chromiumcodereview.appspot.com/18133004
TBR=vollick@chromium.org
Review URL: https://codereview.chromium.org/22914030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219033 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Plumbs the scroll parent information into the cc layer trees. These relationships are not yet used. (That task is accomplished here https://codereview.chromium.org/18191009/).
R=shawnsingh@chromium.org
BUG=254435
Review URL: https://chromiumcodereview.appspot.com/18133004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219026 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a subtree is not dirty, don't walk it doing PushPropertiesTo for all
its layers.
We know a layer needs PushPropertiesTo called on it when it requests
SetNeedsCommit() for itself, as this implies it has some value to push
across to the impl tree. If this has been called, it has nothing to push.
There are exceptions to this rule for some layers:
1) tiled layer
- Occlusion can be affected by changes anywhere in the tree, and this
changes what the layer chooses to push.
2) scrollbar layer crbug.com/259095
- Resources for the impl thread are chosen by the main thread, and this
must be done every commit in order to deal with situations like lost
context.
3) picture layer crbug.com/259402
- SyncFromActiveTree needs to be done every commit. This could potentially
be resolved.
4) delegated renderer layer crbug.com/259090
- Resources returned from the parent compositor must be returned to the
main thread currently, and this is done during push properties.
5) any layer with an animation crbug.com/259088
- Animations that complete on the impl thread are cleaned up on the main
thread by the next push properties on the animating layer. This could
be avoided by doing this cleanup in another place during commit.
Tested by:
LayerTreeHostTestLayersPushProperties
LayerTreeHostTestPushPropertiesAddingToTreeRequiresPush
LayerTreeHostTestPushPropertiesRemovingChildStopsRecursion
LayerTreeHostTestPushPropertiesRemovingChildStopsRecursionWithPersistence
LayerTreeHostTestPushPropertiesSetPropertiesWhileOutsideTree
LayerTreeHostTestPushPropertiesSetPropertyInParentThenChild
LayerTreeHostTestPropertyChangesDuringUpdateArePushed
This adds a new perftest:
LayerTreeHostPerfTestLeafInvalidates.TenTenSingleThread
The test is basically the original TenTenSingleThread test, but it
toggles a property on a leaf node in the layer tree (the first node
in a pre-order walk) every commit to cause some push properties
to still happen.
Perf test results are as follows.
BEFORE:
LayerTreeHostPerfTestJsonReader.TenTenSingleThread
*RESULT 10_10_layer_tree: frames: 5725, 0.35 ms/frame
LayerTreeHostPerfTestJsonReader.TenTenSingleThread_FullDamageEachFrame
*RESULT 10_10_layer_tree: frames: 4505, 0.44 ms/frame
crollingLayerTreePerfTest.LongScrollablePage
*RESULT long_scrollable_page: frames: 22045, 0.09 ms/frame
ImplSidePaintingPerfTest.HeavyPage
*RESULT heavy_layer_tree: frames: 405, 5.00 ms/frame
*RESULT heavy_layer_tree: commits: 406, 0.58 ms/commit
PageScaleImplSidePaintingPerfTest.HeavyPage
*RESULT heavy_layer_tree: frames: 405, 5.00 ms/frame
*RESULT heavy_layer_tree: commits: 406, 0.74 ms/commit
LayerTreeHostPerfTestLeafInvalidates.TenTenSingleThread
*RESULT 10_10_layer_tree: frames: 4095, 0.49 ms/frame
AFTER:
LayerTreeHostPerfTestJsonReader.TenTenSingleThread
*RESULT 10_10_layer_tree: frames: 6635, 0.30 ms/frame
LayerTreeHostPerfTestJsonReader.TenTenSingleThread_FullDamageEachFrame
*RESULT 10_10_layer_tree: frames: 5035, 0.40 ms/frame
ScrollingLayerTreePerfTest.LongScrollablePage
*RESULT long_scrollable_page: frames: 22225, 0.09 ms/frame
ImplSidePaintingPerfTest.HeavyPage
*RESULT heavy_layer_tree: frames: 405, 5.00 ms/frame
*RESULT heavy_layer_tree: commits: 406, 0.57 ms/commit
PageScaleImplSidePaintingPerfTest.HeavyPage
*RESULT heavy_layer_tree: frames: 405, 5.00 ms/frame
*RESULT heavy_layer_tree: commits: 406, 0.75 ms/commit
LayerTreeHostPerfTestLeafInvalidates.TenTenSingleThread
*RESULT 10_10_layer_tree: frames: 4505, 0.44 ms/frame
This is a perf change only, there should be no change in behaviour.
BUG=177756
Review URL: https://chromiumcodereview.appspot.com/12340033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211576 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These classes are replaced by using base::SingleThreadTaskRunner
directly.
R=piman,jamesr
BUG=251134
Depends on: https://codereview.chromium.org/17362002/
Review URL: https://chromiumcodereview.appspot.com/17114008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207491 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This is the result of running the rewrite_scoped_ptr_ctor_null tool
across all files built on Linux in the cc/ directory.
BUG=173286
Review URL: https://chromiumcodereview.appspot.com/16355009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205810 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
during paint.
This fixes a problem where paint would cause layer bounds to change
and Layer::PushProperties to push an non-empty picture layer without
a recording to the impl side.
This also adds a new command line switch that make layer property
changes during paint cause a CHECK() to fail. This can be used
to diagnose situations where paint is incorrectly causing layer
properties to change.
BUG=229179
TEST=cc_unittests --gtest_filter=LayerTreeHostTestChangeLayerPropertiesInPaintContents.RunSingleThread
Review URL: https://codereview.chromium.org/13939005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194269 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes LayerTreeHost::SetAnimationEvents iterate over all active
animation controllers registered with its AnimationRegistrar instead
of iterating over the layer tree. This allows us to properly deliver
animation events to a layer that has been temporarily removed from
the layer tree when SetAnimationEvents is called.
BUG=196284
Review URL: https://chromiumcodereview.appspot.com/13465014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192835 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently have Layer::LayerList, LayerImpl::LayerList,
LayerTreeHost::LayerList and LayerTreeHostImpl::LayerList,
as well as LayerTreeImpl::LayerList, LayerSorter::LayerList,
and I think some more.
This patch consolidates the list typedefs into three types:
LayerList, LayerImplList, and OwnedLayerImplList.
LayerList and LayerImplList are the output of
CalculateDrawProperties. While OwnedLayerImplList is a list
that owns the layer pointers in it, ie ScopedPtrVector.
R=jamesr
Review URL: https://codereview.chromium.org/13285002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191442 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes lint errors in everything except for the few stragglers (occlusion unit test, etc) that haven't been chromified.
BUG=144577
Review URL: https://chromiumcodereview.appspot.com/12965007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190767 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds the class RenderingStatsInstrumentation that manages conditional
saving and thread-specific access to a private RenderingStats instance.
An instance of RenderingStatsRecorder is created on LayerTreeHost, which
passes references to LayerTreeHostImpl and TileManager. Access to reading
and writing on the internal RenderingStats instance is guarded by a lock.
All rendering stats saving in LayerTreeHost, Single-/ThreadProxy,
LayerTreeHostImpl and TileManager has been switched to use the
RenderingStatsInstrumentation. Stats collection within Layer::update() still
follows the original structure to keep this change small.
BUG=181319
NOTRY=true
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=189475
Review URL: https://chromiumcodereview.appspot.com/12519006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189621 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
semi-speculative revert for cc_unittests failures - see bug.
> cc:: Add RenderingStatsInstrumentation to manage collection of RenderingStats
>
> This change adds the class RenderingStatsInstrumentation that manages conditional
> saving and thread-specific access to a private RenderingStats instance.
> An instance of RenderingStatsRecorder is created on LayerTreeHost, which
> passes references to LayerTreeHostImpl and TileManager. Access to reading
> and writing on the internal RenderingStats instance is guarded by a lock.
>
> All rendering stats saving in LayerTreeHost, Single-/ThreadProxy,
> LayerTreeHostImpl and TileManager has been switched to use the
> RenderingStatsInstrumentation. Stats collection within Layer::update() still
> follows the original structure to keep this change small.
>
> BUG=181319
> NOTRY=true
>
> Review URL: https://chromiumcodereview.appspot.com/12519006
TBR=egraether@chromium.org
Review URL: https://codereview.chromium.org/12544031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189497 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds the class RenderingStatsInstrumentation that manages conditional
saving and thread-specific access to a private RenderingStats instance.
An instance of RenderingStatsRecorder is created on LayerTreeHost, which
passes references to LayerTreeHostImpl and TileManager. Access to reading
and writing on the internal RenderingStats instance is guarded by a lock.
All rendering stats saving in LayerTreeHost, Single-/ThreadProxy,
LayerTreeHostImpl and TileManager has been switched to use the
RenderingStatsInstrumentation. Stats collection within Layer::update() still
follows the original structure to keep this change small.
BUG=181319
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/12519006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189475 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681
BUG=190824
TBR=enne@chromium.org, piman@chromium.org, jschuh@chromium.org, joth@chromium.org
Review URL: https://codereview.chromium.org/12916002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188703 0039d316-1c4b-4281-b951-d872f2087c98
|
|
Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681
BUG=190824
TBR=enne@chromium.org, piman@chromium.org
Review URL: https://codereview.chromium.org/12722007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188694 0039d316-1c4b-4281-b951-d872f2087c98
|