| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than recreating new tilings every frame, use the tilings and old tiles
from the recycle tree in order to prevent excessive amounts of tile allocations
(1 per tile) during the first update. In order to reuse a tiling from two
frames ago, the tilings must be resized, invalidated, have their pile updated,
and also any missing tiles that can now be rastered need to be filled in.
This brings back a bunch of functions that were removed in
https://codereview.chromium.org/14600003/ to enable tilings to be resized and
updated at times other than SetLiveTilesRect.
This patch makes SetLiveTilesRect on the pending tree go from 2.2ms to 0.16ms
on average on an N4 for the heavy page linked in the bug with ~700 tiles. On a
page with about 300 tiles and fewer commits, this patch is a slight win but is
mostly in the noise.
This is an updated reland of https://codereview.chromium.org/16888016,
which got rolled out previously.
R=danakj@chromium.org
BUG=248954
Review URL: https://chromiumcodereview.appspot.com/18326013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209525 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This change switches all uses of LayerTreeHostCommon::CallFunctionForSubtree()
to the base::Callback version and removes the functor implementation.
BUG=
Review URL: https://chromiumcodereview.appspot.com/18089014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209478 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
R=enne@chromium.org
Review URL: https://codereview.chromium.org/18328012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209467 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TBR=jamesr,zmo
Review URL: https://codereview.chromium.org/18083020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209456 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vertex instead of per pixel.
In particular for tile AA fragment shaders:
before:
vs: 26 cycles
fs: 12 cycles
after:
vs: 47 cycles
fs: 6 cycles
which is a good performance win given there are only 4 vertices but ~64k pixels per tile.
BUG=233101
R=epenner@chromium.org, reveman@chromium.org
Review URL: https://codereview.chromium.org/17770004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209445 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
We exclude HUD from normal damage tracking logic, so request full
redraw when HUD settings change.
BUG=252664
R=enne@chromium.org
Review URL: https://codereview.chromium.org/17321004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209417 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having cc/ talk directly to the WebKit::WebLayerScrollClient, we
define a callback in cc/ that it can talk to.
In the compositor_bindings, we pass this callback down to cc, so it can call us back later.
BUG=None
TEST=cc_unittests, webkit_compositor_bindings_unittests
R=jamesr@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18139004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209386 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=
Review URL: https://chromiumcodereview.appspot.com/18176010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209341 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the nasty 'middle ground' case. If we don't force
uploads we will get smoother animations, but it will be at
the expense of very bad main-thread performance.
BUG=251990
Review URL: https://chromiumcodereview.appspot.com/17157014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209296 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GPU process makes memory allocation decisions based on the visibility of
surface. In the DelegatingRenderer case we don't use the surface directly, but
we still have it - just like composite-to-mailbox. So we can use
setVisibilityCHROMIUM to signal the GPU process, and listen to the memory
allocation callback.
This CL refactors a bunch of the logic that was hardcoded in GLRenderer into
OutputSurface which is shared. That also opens the door to implementing a memory
manager for the software renderer.
BUG=123444
Review URL: https://chromiumcodereview.appspot.com/18121005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209287 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure names are unique in different renderers, and add
one for offscreen renderer context (used for filters).
The offscreen context is created lazily, so the label is also
applied lazily.
BUG=242999,233101
Review URL: https://chromiumcodereview.appspot.com/17350003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209284 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scrolling areas
This change adds new debug rect types to show regions with touch or
wheel event handlers as well as areas that scroll slowly. Each rect type
also displays a label in the top left corner to make them easier to
identify.
BUG=253552
Review URL: https://chromiumcodereview.appspot.com/17599002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209252 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
depends on: https://codereview.chromium.org/13245007/
and: https://codereview.chromium.org/13132005/
BUG=181319
Review URL: https://chromiumcodereview.appspot.com/13258003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209251 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of using different blending equations we can perform
the pre-multiplication in the shader itself.
I am working on improving the performance of compositing canvas
elements with opaque background. This requires blending the
canvas texture with the background color in the shader. The
implementation of this blending equation becomes much easier if
we can assume that textures are always premultiplied.
BUG=236982
TEST=compositing/webgl/webgl-nonpremultiplied-blend.html
Review URL: https://chromiumcodereview.appspot.com/16943021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209246 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's possible that if there has never been an activation (implying no root
layer on the active tree), then the trees will not be cleared during
LayerTreeHostImpl's destructor. Given the comment in the destructor about
animation, this seems to be problematic enough.
Issue 251722 is about a case where the tile manager tries to activate the tree
during its destruction but because the trees haven't been cleared yet, it
thinks this is a supported operation. This is fixed by always destroying the
trees in the destructor.
Related cleanup is to remove the CleanupRenderSurfaces() call which isn't
needed there. When you destroy a tree, you destroy its render surfaces. And,
it looked like none of the other CleanupRenderSurfaces() calls were really
needed either except for losing the output surface, so one call got moved there
and all the rest of the functions got removed.
R=danakj@chromium.org
BUG=251722
Review URL: https://chromiumcodereview.appspot.com/16831016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209242 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The alpha value from the video's alpha plane should be
pre-multiplied in the YUVA Fragment Shader. This fixes videos not
rendering properly when the alpha plane is completely transparent
(i.e.) alpha value is zero. Also, adding a pixel test to test the
correct behavior.
BUG=147355
Review URL: https://chromiumcodereview.appspot.com/18122007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209234 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After an async texture copy is returned to the embedder on the main
thread, it will call the TextureMailbox's ReleaseCallback from the
main thread, which was bound to a function that will delete the texture
id since it is no longer needed.
This function needs to run on the impl thread though, since it makes
use of the compositor context. So, add a PostTask over to the impl
thread in the call stack to get the deleteTexture on the right thread.
R=piman@chromium.org
BUG=254451
Review URL: https://codereview.chromium.org/17918003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209218 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r204650 switched EnsureBackbuffer to occur after Reshape as an
unintended side effect of other refactoring. Arguably this isn't
correct and has been causing checkfailures on the server side, so
reorder them back.
NOTRY=true
BUG=254687
Review URL: https://chromiumcodereview.appspot.com/17984002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209202 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
The flip can be easily done using the texture transform
in VertexShaderPosTexTransform. There is no need for a
different shader just to do the flip.
Review URL: https://chromiumcodereview.appspot.com/18084004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209066 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=147355
Review URL: https://codereview.chromium.org/18166004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209053 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
R=danakj@chromium.org
BUG=none
Review URL: https://chromiumcodereview.appspot.com/18050012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209050 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=147355
TBR=vignesh,enne
Review URL: https://codereview.chromium.org/18160003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209028 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=254986
TEST=none
TBR=ben@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18120002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209027 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
depends on: https://codereview.chromium.org/13265003/
BUG=181319
Review URL: https://chromiumcodereview.appspot.com/13245007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208980 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
depends on: https://codereview.chromium.org/13266002/
BUG=181319
Review URL: https://chromiumcodereview.appspot.com/13132005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208976 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes it impossible to refer to a TODO in a comment. It seems like
cpplint.py properly warns about this, so this check is redundant anyway.
R=danakj@chromium.org
BUG=none
Review URL: https://chromiumcodereview.appspot.com/17968002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208908 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a number of cases either not caught by the automated tool or that have
recently regressed.
BUG=206189
TBR=darin
Review URL: https://chromiumcodereview.appspot.com/17948002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208882 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=251938
Review URL: https://chromiumcodereview.appspot.com/17891002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208880 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
- fixed root cause of failing interactive_ui_test
(dangling pointer in ContentLayerUpdater)
BUG=181319, 223693
Review URL: https://chromiumcodereview.appspot.com/17762002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208828 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compositor_bindings.
Instead of having cc/ talk directly to the WebKit::WebAnimationDelegate, we
create an abstract interface in cc/ that it can talk to.
In the compositor_bindings, we implement this class, and forward the
function calls made into it over to the WebKit implementation.
BUG=None
TEST=cc_unittests, webkit_compositor_bindings_unittests
R=jamesr@chromium.org
Review URL: https://codereview.chromium.org/17755003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208800 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
R=danakj@chromium.org
BUG=none
Review URL: https://chromiumcodereview.appspot.com/17904003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208772 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we destroy and recreate tiles with text if the LCD
status changes. With tile manager now supporting multiple
versions of tiles, we can use this to update a tile version with
new LCD status in place.
BUG=249048
Review URL: https://chromiumcodereview.appspot.com/17167003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208769 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressed as a single color matrix, apply it directly in the compositor and skip the intermediate FBO. This is similar to an optimization that has already been applied for the SkImageFilter DAG path.
R=epenner,jamesr
BUG=233101
Review URL: https://chromiumcodereview.appspot.com/17693002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208751 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
REGRESSION(r206955): Remove the chance to disable SetNeedsBeginFrame.
r206955 made SetNeedsBeginFrame be called proactively, but the proactive condition mostly was true.
This issue makes proactive_begin_frame_wanted condition more restrict.
There are two changes.
1. Do not be proactive when invisible.
2. Do not be proactive when throttling frame production.
This patch is mostly based on what Brian Anderson consults.
BUG=253543
Review URL: https://chromiumcodereview.appspot.com/17587014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208662 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of using a deque, this patch uses a vector for
completed tasks.
BUG=253971
Review URL: https://chromiumcodereview.appspot.com/17587019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208624 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
It's always false, and we're not planning on using the feature at this point.
BUG=None
Review URL: https://chromiumcodereview.appspot.com/16972012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208614 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change media::VideoFrame from holding a raw texture id to
instead hold a gpu::Mailbox. The hardware video decoders
produce a mailbox on their context from the texture id
before putting it in the VideoFrame, and consume the
mailbox again when they receive the texture id back.
In the compositor, we hold onto the VideoFrame::MailboxHolder
as long as the mailboxed texture is in use in the compositor
(or its parent). This keeps the video decoders from writing
to the texture id, as they register a callback in the
VideoFrame to be called when it is destroyed.
BUG=179729
Review URL: https://chromiumcodereview.appspot.com/14199002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208568 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
This changes std::map to be a priority queue with an underlying vector.
BUG=253968
Review URL: https://chromiumcodereview.appspot.com/17605004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208549 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the implementation of WebFilterOperations into cc, and
(behind an #ifdef) defines a WebFilterOperationsImpl class that
implements the WebFilterOperations interface by wrapping a
cc::FilterOperations.
With this change, cc and ui/compositor no longer need to include
WebFilterOperations.h.
BUG=181613
Review URL: https://chromiumcodereview.appspot.com/16968002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208531 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
For performance downstream, we would rather wait
once than multiple times.
Review URL: https://chromiumcodereview.appspot.com/17639002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208420 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
available.
BUG=249925
Review URL: https://chromiumcodereview.appspot.com/16983007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208376 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Landing this fix for enne@. Original description by enne@:
It's possible that if there has never been an activation (implying no root
layer on the active tree), then the trees will not be cleared during
LayerTreeHostImpl's destructor. Given the comment in the destructor about
animation, this seems to be problematic enough.
Issue 251722 is about a case where the tile manager tries to activate the tree
during its destruction but because the trees haven't been cleared yet, it
thinks this is a supported operation. This is fixed by always destroying the
trees in the destructor.
BUG=251722
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/16983013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208251 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This flag does what it says. We can use this flag to simplify ui::Layer
as it was recursively calling SetIsDrawable() instead, and now can just
SetHideLayerAndSubtree() on a single layer.
This flag is needed to allow readbacks of layers that are have hidden
visibility (possibly due to an ancestor).
Tests:
LayerTest.CheckPropertyChangeCausesCorrectBehavior
LayerImplTest.VerifyLayerChangesAreTrackedProperly
LayerTreeHostCommonTest.SubtreeHidden_SingleLayer
LayerTreeHostCommonTest.SubtreeHidden_SingleLayerImpl
LayerTreeHostCommonTest.SubtreeHidden_TwoLayers
LayerTreeHostCommonTest.SubtreeHidden_TwoLayersImpl
R=enne, piman
BUG=242572
Review URL: https://chromiumcodereview.appspot.com/16896017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208241 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently if we have allow anything mode, we never have a tile
in the NEVER_BIN, even if both active and pending trees don't
own the tile anymore (ie it's being kept alive by the raster
callback). This cleans it up.
BUG=251938
Review URL: https://chromiumcodereview.appspot.com/16959022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208047 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
This makes sync and net compile with no "using *Value".
BUG=
Review URL: https://codereview.chromium.org/17034006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207907 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts r207892 - build failure on Linux x64.
TBR=kbr@chromium.org
BUG=238755
Review URL: https://codereview.chromium.org/16915005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207896 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Try again w/ gyp fix.
TBR=kbr@chromium.org, mymax@amazon.com
BUG=238755
Review URL: https://codereview.chromium.org/17115014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207892 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the need to construct a temporary graph by
RasterWorkerPool classes. It reduces the number of tasks
created and eliminates the need for a dependencies vector
as part of the internal::WorkerPoolTask class.
This is also a prerequisite to implementing a "ready to activate"
signal as that requires as task graph structure that is not a tree.
BUG=247677
Review URL: https://chromiumcodereview.appspot.com/17244003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207864 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
TBR=sky@chromium.org for ui/aura/bench/bench_main.cc
Review URL: https://chromiumcodereview.appspot.com/17447007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207782 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the software video decode path, instead of generating a new mailbox
for every frame, include the mailbox in the recycled data and reuse it
along with the resource/texture.
Also, we were reusing an old sync point which was problematic. Instead,
don't create a sync point at all, as the ResourceProvider will do so if
and when it needs to, to send it to the parent. This will resolve the
bug 252053.
And, while we're here, drop the wasted extra consume when a resource is
recycled back to the VideoResourceUpdater.
R=piman
BUG=252053
Review URL: https://chromiumcodereview.appspot.com/17094014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207692 0039d316-1c4b-4281-b951-d872f2087c98
|