summaryrefslogtreecommitdiffstats
path: root/cc
Commit message (Collapse)AuthorAgeFilesLines
* cc: Let skia veto gpu rasterization.alokp@chromium.org2014-04-1010-129/+184
| | | | | | | | | | Once gpu rasterization is disabled on a layer, it will stay disabled. BUG=329722 Review URL: https://codereview.chromium.org/222903005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262994 0039d316-1c4b-4281-b951-d872f2087c98
* Remove old texture path in TextureLayerpiman@chromium.org2014-04-1023-1465/+96
| | | | | | | | | | | This lets us also remove LayerTreeHost::AcquireLayerTextures and related scheduler things. BUG=337922 Review URL: https://codereview.chromium.org/227413011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262878 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Fix TilePriority::IsHigherPriorityThan to be correct.vmpstr@chromium.org2014-04-094-3/+49
| | | | | | | | | | | This patch fixes IsHigherPriorityThan to return correct values. It also adds a unittest. R=enne Review URL: https://codereview.chromium.org/230983004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262809 0039d316-1c4b-4281-b951-d872f2087c98
* Always set using_map_image when using software renderer.jbauman@chromium.org2014-04-092-2/+2
| | | | | | | | | | This saves an extra memory copy, so we'll always want this enabled when using software. BUG= Review URL: https://codereview.chromium.org/195733010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262784 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Fix invalid tiling state after lost contextenne@chromium.org2014-04-092-4/+31
| | | | | | | | | | | | | | | | | | | After a lost context, it used to be the case that a tree wouldn't need update draw properties (implying no ManageTilings prior to AppendQuads or MarkVisibleResourcesAsRequired). This meant that if one layer added a tiling and synced it to its twin, that the tiling state would not be valid. This synced tiling would be the first tiling, but the resolution wouldn't be set, causing the tiling state to be bogus. The way to fix this is to simply set_needs_update_draw_properties when a PictureLayerImpl loses its resources. This will force tilings to be created and resolutions set correctly. BUG=358350 Review URL: https://codereview.chromium.org/229283004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262756 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use read lock for source texture in ApplyImageFilter().dongseong.hwang@intel.com2014-04-091-2/+2
| | | | | | | | BUG=N/A Review URL: https://codereview.chromium.org/230543002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262745 0039d316-1c4b-4281-b951-d872f2087c98
* Rasterize at maximum scale for scale animations on CPU-rasterized layersajuma@chromium.org2014-04-0923-152/+742
| | | | | | | | | | | | This re-rasterizes CPU-rasterized layers animating scale at the maximum scale that will be applied during the animation, if this maximum scale can be computed. BUG=224913 Review URL: https://codereview.chromium.org/226283004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262737 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add landmines to find invalid tiling bugenne@chromium.org2014-04-092-2/+8
| | | | | | | | | | | | This code has a bunch of DCHECKs, but that's not enough to understand why a bug is happening in the wild. Add some temporary CHECKs to get more information. BUG=358350 Review URL: https://codereview.chromium.org/230983002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262719 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Invalidate newly recycled tilings upon swapping.vmpstr@chromium.org2014-04-096-15/+70
| | | | | | | | | | | | | | | | | | This patch changes the way we invalidate recycled tiles. Previously, we would keep unshared tiles on the recycle tree until we create a new pending tree. When we do that, we invalidate two frames worth of invalidation. However, this relies on the tile manager to release memory from these tiles and doesn't yield itself to changes. The new approach invalidates the current invalidation on the recycle tree as soon as the tilings are swapped, which ensures that in that frame the tiles that are not shared are already released. R=enne Review URL: https://codereview.chromium.org/227673013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262670 0039d316-1c4b-4281-b951-d872f2087c98
* Flush after LTHI::ReclaimResources when hidden.piman@chromium.org2014-04-091-0/+5
| | | | | | | | | | | | | | In ReclaimResources we return resources from the parent, which usually end up deleted when we're invisible (since our allocation is supposed to be 0). In that case we want to make sure that we flush the context so that the textures are actually deleted in the GPU process (and free up memory for the rest of the system). BUG=349553 Review URL: https://codereview.chromium.org/229893003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262668 0039d316-1c4b-4281-b951-d872f2087c98
* Use SharedBitmapManager to allocate software frames.jbauman@chromium.org2014-04-093-6/+3
| | | | | | | | | | This reduces the number of ways to allocate cross-process bitmaps. BUG= Review URL: https://codereview.chromium.org/227703009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262620 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Make RasterWorkerPool an abstract class.reveman@chromium.org2014-04-0916-432/+495
| | | | | | | | | | | | | | | | | This makes ownership more clear and avoids the need to have the base class call virtual functions that need to be implemented by derived classes. Also removes the need for the base class to implement the WorkerPoolTaskClient interface. No changes in behavior. Might have a small positive impact on performance as it removes an unnecessary level of callback redirection from the "raster finished" tasks. BUG=269841 Review URL: https://codereview.chromium.org/221953003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262584 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Respect specified animation start timesdstockwell@chromium.org2014-04-094-14/+60
| | | | | | | | | | | | | | | | Although setting of start time was exposed via the WebAnimation interface it was clobbered when starting impl side animations. This patch removes the unused Animation::Clone method and makes Animation::CloneAndInitialize always copy the specified start time, if any. Start times are not currently specified outside tests but will soon be used by blink for animations started through the Web Animations API. BUG=360471 Review URL: https://codereview.chromium.org/228203004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262582 0039d316-1c4b-4281-b951-d872f2087c98
* cc: CalculateDrawProperties use device transform scaleboliu@chromium.org2014-04-092-69/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, any scaling in LTHI::external_transform_ is ignored by PictureLayerImpl when deciding to create tilings at different scales. If the scaling in external transform is not 1, then the scaling will just be done at draw time without creating new tilings at the new scale. This CL takes out the scale from external transform and apply it to the device scale. This way PictureLayerImpl will notice the scale change and create new tilings as necessary. This does mean device scale can change each frame and lead to creating a lot of unnecessary tilings. However there is no good signal to know whether a the transform is part of an animation. So there is no good point like "animation end" to update tiling. BUG=357441 Review URL: https://codereview.chromium.org/227153011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262571 0039d316-1c4b-4281-b951-d872f2087c98
* cc: cleanup: remove unused member variable in cc::Layersimonhong@chromium.org2014-04-081-1/+0
| | | | | | | | | | R=enne@chromium.org BUG=NONE TEST=NONE(trivial change) Review URL: https://codereview.chromium.org/227373009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262434 0039d316-1c4b-4281-b951-d872f2087c98
* use builder for layerrasterizerreed@google.com2014-04-081-2/+4
| | | | | | | | | | this change allows us to remove the deprecated code in SK_SUPPORT_LEGACY_LAYERRASTERIZER_API BUG= Review URL: https://codereview.chromium.org/227463005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262428 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add layer eviction tile iterator.vmpstr@chromium.org2014-04-084-0/+299
| | | | | | | | | | | | | | | | | | | | | This patch adds an eviction tile iterator to the layer. The iterator returns tiles as provided by the tiling eviction tile iterator. It returns all tiles in the following order: 1. Prepaint tiles from higher than high-res non-ideal tilings. 2. Prepaint tiles from lower than high-res non-ideal tilings. 3. Prepaint tiles from low res tiling. 4. Prepaint tiles from high res tiling. 5. Visible tiles from higher than high-res non-ideal tilings. 6. Visible tiles from lower than high-res non-ideal tilings. 7. Visible tiles from low res tiling. 8. Visible tiles from high res tiling. R=enne Review URL: https://codereview.chromium.org/221413005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262310 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Change damage tracking from floats to integers.danakj@chromium.org2014-04-0716-330/+366
| | | | | | | | | | | | | | | | | | | | | | | | | | Damage rects can become huge when layers clip the viewport, and in some cases become so large that we reach inaccurate floating point representation of the whole-number portion, which we fail to handle correctly when doing gfx::ToEnclosingRect. Int/float conversions are also slow, and the GL_SCISSOR wants integers eventually anyway, so keeping track of partial-pixel damage is not buying us much here. So convert the DamageTracker to use integer rects. Also change cc::RenderSurfaceImpl to export a damage_rect that is contained inside the output_rect for the RenderPass, and add DCHECKs to cc::RenderPass to ensure we don't send pointlessly large damage_rects to the cc::Renderer. Tests: DamageTrackerTest.HugeDamageRect R=enne@chromium.org, piman@chromium.org BUG=355514 Review URL: https://codereview.chromium.org/226183007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262160 0039d316-1c4b-4281-b951-d872f2087c98
* Fix skia ganesh resources leak.dongseong.hwang@intel.com2014-04-072-3/+1
| | | | | | | | | | | | | | | | | | | | Currently, ~GrContextForWebGraphicsContext3D() calls GrContext::contextDestroyed() before destructing a context provider. It causes gpu resource leak because contextDestroyed() abandons all gpu resources, so GrContext destructor cannot have a chance to clean gpu resources. chromium doesn't need to use GrContext::contextDestroyed() because chromium controls the lifecycle of a context provider. However, when a context provider is lost, chromium must call GrContext::contextLost(). In addition, TestInProcessContextProvider must destruct GrContext before destructing gpu::GLInProcessContext. BUG=360107 Review URL: https://codereview.chromium.org/226203004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262153 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 261972 "Revert 261817 "cc: Remove all usage of GetArea() ..."scottmg@chromium.org2014-04-058-52/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r261817 falsely accused! Reverting the revert, sorry for the noise. > Revert 261817 "cc: Remove all usage of GetArea() from production..." > > Suspected of causing failures on Linux CrOS ASan LSan: > > http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%2BLSan%20Tests%20%283%29/builds/702 > > http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%2BLSan%20Tests%20%282%29/builds/664 > > http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%2BLSan%20Tests%20%281%29/builds/702 > > > > cc: Remove all usage of GetArea() from production code in cc > > > > Consolidate the calls to turn gfx::Size into a number of bytes onto > > the cc::SharedBitmap class. The class offers the following methods: > > 1. Get a size_t bytes and bool saying if you overflowed or not. > > 2. Get a size_t bytes and crash if you overflow. > > 3. Get a size_t bytes and don't check for overflow. > > 4. Tell me if the gfx::Size would overflow to create the size_t bytes. > > > > These were the use cases I found in the existing code, plus the > > addition of case 2. A few places that were finding the size_t bytes > > without looking for overflow (case 3), from a previously-unchecked > > gfx::Size, were changed to crash on overflow instead (case 2). > > > > R=jbauman@chromium.org, piman@chromium.org > > BUG=348332 > > > > Review URL: https://codereview.chromium.org/221523003 > > TBR=danakj@chromium.org > > Review URL: https://codereview.chromium.org/226693005 TBR=scottmg@chromium.org, danakj@chromium.org Review URL: https://codereview.chromium.org/226693007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262022 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 261817 "cc: Remove all usage of GetArea() from production..."scottmg@chromium.org2014-04-058-63/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suspected of causing failures on Linux CrOS ASan LSan: http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%2BLSan%20Tests%20%283%29/builds/702 http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%2BLSan%20Tests%20%282%29/builds/664 http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%2BLSan%20Tests%20%281%29/builds/702 > cc: Remove all usage of GetArea() from production code in cc > > Consolidate the calls to turn gfx::Size into a number of bytes onto > the cc::SharedBitmap class. The class offers the following methods: > 1. Get a size_t bytes and bool saying if you overflowed or not. > 2. Get a size_t bytes and crash if you overflow. > 3. Get a size_t bytes and don't check for overflow. > 4. Tell me if the gfx::Size would overflow to create the size_t bytes. > > These were the use cases I found in the existing code, plus the > addition of case 2. A few places that were finding the size_t bytes > without looking for overflow (case 3), from a previously-unchecked > gfx::Size, were changed to crash on overflow instead (case 2). > > R=jbauman@chromium.org, piman@chromium.org > BUG=348332 > > Review URL: https://codereview.chromium.org/221523003 TBR=danakj@chromium.org Review URL: https://codereview.chromium.org/226693005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261972 0039d316-1c4b-4281-b951-d872f2087c98
* CC: Test for completely filled contents.epenner@chromium.org2014-04-052-2/+17
| | | | | | | | | | | | Follow up to: https://codereview.chromium.org/222823004/ BUG=357117 TBR=enne@chromium.org Review URL: https://codereview.chromium.org/224883003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261968 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Release more resources when invisible.vmpstr@chromium.org2014-04-052-0/+12
| | | | | | | | | | | | | This patch ensures that when resources are released by the parent compositor, we actually clean them up if needed to meet the memory requirements. R=reveman, BUG=349553 Review URL: https://codereview.chromium.org/224483002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261939 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 261914 "Revert 261906 "cc: Add picture recording modes fo..."scottmg@chromium.org2014-04-0414-61/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shouldn't have been reverted, apologies for the noise. > Revert 261906 "cc: Add picture recording modes for benchmarking" > > Suspected of causing gcm_unit_tests failures > > http://build.chromium.org/p/chromium.mac/buildstatus?builder=Mac10.7%20Tests%20%282%29&number=25118 > > Will file a bug that gcm_unit_tests isn't in default tryjob set if this is actually the cause. > > > cc: Add picture recording modes for benchmarking > > > > This patch adds three different picture recording modes for benchmarking > > purposes: > > > > 1. RECORD_NORMALLY. This is the default and produces a normal recording > > as before. > > > > 2. RECORD_WITH_NULL_CANVAS. This mode uses SkNullCanvas to avoid (most > > of) the Skia processing that happen during recording. Can be used to > > estimate the recording workload inside Blink. > > > > 3. RECORD_WITH_PAINTING_DISABLED. Passes a NULL canvas to Blink, which > > causes the GraphicsContext object to disable painting. This mode > > gives an estimate of the recording workload of Blink excluding the > > processing inside GraphicsContext. > > > > This patch also modifies the rasterize_and_record_micro benchmark to > > report the recording time for each mode (record_time_ms, > > record_time_null_canvas_ms and record_time_painting_disabled_ms > > respectively). > > > > Anecdotally on a z600 and the key_silk_cases page set, SkNullCanvas cuts > > recording time to 50% and disabling painting down to 19%. > > > > BUG=357572 > > TEST=PictureTest.RecordingModes > > TEST=tools/perf/run_benchmark rasterize_and_record_micro.key_silk_cases --browser=release > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=261543 > > > > Review URL: https://codereview.chromium.org/216933002 > > TBR=skyostil@chromium.org > > Review URL: https://codereview.chromium.org/226083007 TBR=skyostil@chromium.org Review URL: https://codereview.chromium.org/226293003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261915 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 261906 "cc: Add picture recording modes for benchmarking"scottmg@chromium.org2014-04-0414-194/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suspected of causing gcm_unit_tests failures http://build.chromium.org/p/chromium.mac/buildstatus?builder=Mac10.7%20Tests%20%282%29&number=25118 Will file a bug that gcm_unit_tests isn't in default tryjob set if this is actually the cause. > cc: Add picture recording modes for benchmarking > > This patch adds three different picture recording modes for benchmarking > purposes: > > 1. RECORD_NORMALLY. This is the default and produces a normal recording > as before. > > 2. RECORD_WITH_NULL_CANVAS. This mode uses SkNullCanvas to avoid (most > of) the Skia processing that happen during recording. Can be used to > estimate the recording workload inside Blink. > > 3. RECORD_WITH_PAINTING_DISABLED. Passes a NULL canvas to Blink, which > causes the GraphicsContext object to disable painting. This mode > gives an estimate of the recording workload of Blink excluding the > processing inside GraphicsContext. > > This patch also modifies the rasterize_and_record_micro benchmark to > report the recording time for each mode (record_time_ms, > record_time_null_canvas_ms and record_time_painting_disabled_ms > respectively). > > Anecdotally on a z600 and the key_silk_cases page set, SkNullCanvas cuts > recording time to 50% and disabling painting down to 19%. > > BUG=357572 > TEST=PictureTest.RecordingModes > TEST=tools/perf/run_benchmark rasterize_and_record_micro.key_silk_cases --browser=release > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=261543 > > Review URL: https://codereview.chromium.org/216933002 TBR=skyostil@chromium.org Review URL: https://codereview.chromium.org/226083007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261914 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add picture recording modes for benchmarkingskyostil@chromium.org2014-04-0414-61/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds three different picture recording modes for benchmarking purposes: 1. RECORD_NORMALLY. This is the default and produces a normal recording as before. 2. RECORD_WITH_NULL_CANVAS. This mode uses SkNullCanvas to avoid (most of) the Skia processing that happen during recording. Can be used to estimate the recording workload inside Blink. 3. RECORD_WITH_PAINTING_DISABLED. Passes a NULL canvas to Blink, which causes the GraphicsContext object to disable painting. This mode gives an estimate of the recording workload of Blink excluding the processing inside GraphicsContext. This patch also modifies the rasterize_and_record_micro benchmark to report the recording time for each mode (record_time_ms, record_time_null_canvas_ms and record_time_painting_disabled_ms respectively). Anecdotally on a z600 and the key_silk_cases page set, SkNullCanvas cuts recording time to 50% and disabling painting down to 19%. BUG=357572 TEST=PictureTest.RecordingModes TEST=tools/perf/run_benchmark rasterize_and_record_micro.key_silk_cases --browser=release Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=261543 Review URL: https://codereview.chromium.org/216933002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261906 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove all usage of GetArea() from production code in ccdanakj@chromium.org2014-04-048-52/+63
| | | | | | | | | | | | | | | | | | | | | Consolidate the calls to turn gfx::Size into a number of bytes onto the cc::SharedBitmap class. The class offers the following methods: 1. Get a size_t bytes and bool saying if you overflowed or not. 2. Get a size_t bytes and crash if you overflow. 3. Get a size_t bytes and don't check for overflow. 4. Tell me if the gfx::Size would overflow to create the size_t bytes. These were the use cases I found in the existing code, plus the addition of case 2. A few places that were finding the size_t bytes without looking for overflow (case 3), from a previously-unchecked gfx::Size, were changed to crash on overflow instead (case 2). R=jbauman@chromium.org, piman@chromium.org BUG=348332 Review URL: https://codereview.chromium.org/221523003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261817 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Skip analysis for narrow layers.vmpstr@chromium.org2014-04-042-5/+20
| | | | | | | | | | | | | | | | This patch ensures that we skip analysis for narrow layers. These layers are unlikely to have solid color, and we shouldn't spend time analyzing them. Additionally, we need to be cautious and set has_text to be true by default, since for tiles that skipped analysis, we have to assume that they have text. (original CL: https://codereview.chromium.org/213093003/) R=reveman, alokp@chromium.org Review URL: https://codereview.chromium.org/224333002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261794 0039d316-1c4b-4281-b951-d872f2087c98
* BUG=359530sataya.m@samsung.com2014-04-042-6/+13
| | | | | | | | We are showing unnecessary glow effect during the max scroll. As updated in the bug (https://code.google.com/p/chromium/issues/detail?id=359530) unused_root_delta most of the time it is 0.01 or 0.02 becuase of which glow effect is shown. Review URL: https://codereview.chromium.org/223723002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261699 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Avoid dynamic calls to base::Bind in schedulerbrianderson@chromium.org2014-04-042-32/+37
| | | | | | | | BUG=359245 Review URL: https://codereview.chromium.org/222743004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261668 0039d316-1c4b-4281-b951-d872f2087c98
* CC: Pad borders with background for both filled and opaque contents.epenner@chromium.org2014-04-041-3/+3
| | | | | | | | | | | | | | An optimization was made for completely filled contents in: https://codereview.chromium.org/191453002 However we need to apply the same border filling logic on content that touches the edges of the layer. BUG=357117 Review URL: https://codereview.chromium.org/222823004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261650 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Clean up TileManager::InitializeTilesWithResourcesForTesting.vmpstr@chromium.org2014-04-044-9/+4
| | | | | | | | | | | This function takes an extra argument that is being ignored. In order for the API to be less confusing, this patch removes the argument. R=reveman Review URL: https://codereview.chromium.org/221413003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261648 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Compute the maximum scale of animationsajuma@chromium.org2014-04-0312-0/+565
| | | | | | | | | | | This adds MaximumScale and HasOnlyTranslationTransforms methods to LayerAnimationController. BUG=224913 Review URL: https://codereview.chromium.org/214003004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261583 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Advance commit state with a CancelableClosurebrianderson@chromium.org2014-04-033-59/+96
| | | | | | | | | | | | This also makes testing more straightforward since we can use a TestTaskRunner to query and run posted tasks directly. BUG=359245 Review URL: https://codereview.chromium.org/222003007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261582 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Allow CompositeAndReadback when replacement commit is activatingsimonhong@chromium.org2014-04-033-13/+219
| | | | | | | | | | | | | This CL allows forced commit request when readback state is in READBACK_STATE_WAITING_FOR_REPLACEMENT_ACTIVATION. R=brianderson@chromium.org BUG=340514 TEST=SchedulerStateMachineTest_ForceCommitWhenReplacementActivationInProgress* Review URL: https://codereview.chromium.org/195833002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261574 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use DefaultInterval for uninitialized intervalboliu@chromium.org2014-04-031-3/+4
| | | | | | | | | | | | | Previously this uninitialized value was -1us. Using a totally invalid interval lead to a busy loop when -1us is used as the delay to a post task. Instead use DefaultInterval() in this case so there is always a somewhat sane value for interval. BUG=359171 Review URL: https://codereview.chromium.org/222653002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261569 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 261543 "cc: Add picture recording modes for benchmarking"nick@chromium.org2014-04-0314-193/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > cc: Add picture recording modes for benchmarking > > This patch adds three different picture recording modes for benchmarking > purposes: > > 1. RECORD_NORMALLY. This is the default and produces a normal recording > as before. > > 2. RECORD_WITH_NULL_CANVAS. This mode uses SkNullCanvas to avoid (most > of) the Skia processing that happen during recording. Can be used to > estimate the recording workload inside Blink. > > 3. RECORD_WITH_PAINTING_DISABLED. Passes a NULL canvas to Blink, which > causes the GraphicsContext object to disable painting. This mode > gives an estimate of the recording workload of Blink excluding the > processing inside GraphicsContext. > > This patch also modifies the rasterize_and_record_micro benchmark to > report the recording time for each mode (record_time_ms, > record_time_null_canvas_ms and record_time_painting_disabled_ms > respectively). > > Anecdotally on a z600 and the key_silk_cases page set, SkNullCanvas cuts > recording time to 50% and disabling painting down to 19%. > > BUG=357572 > TEST=PictureTest.RecordingModes > TEST=tools/perf/run_benchmark rasterize_and_record_micro.key_silk_cases --browser=release > > Review URL: https://codereview.chromium.org/216933002 TBR=skyostil@chromium.org Review URL: https://codereview.chromium.org/224683002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261556 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add picture recording modes for benchmarkingskyostil@chromium.org2014-04-0314-60/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds three different picture recording modes for benchmarking purposes: 1. RECORD_NORMALLY. This is the default and produces a normal recording as before. 2. RECORD_WITH_NULL_CANVAS. This mode uses SkNullCanvas to avoid (most of) the Skia processing that happen during recording. Can be used to estimate the recording workload inside Blink. 3. RECORD_WITH_PAINTING_DISABLED. Passes a NULL canvas to Blink, which causes the GraphicsContext object to disable painting. This mode gives an estimate of the recording workload of Blink excluding the processing inside GraphicsContext. This patch also modifies the rasterize_and_record_micro benchmark to report the recording time for each mode (record_time_ms, record_time_null_canvas_ms and record_time_painting_disabled_ms respectively). Anecdotally on a z600 and the key_silk_cases page set, SkNullCanvas cuts recording time to 50% and disabling painting down to 19%. BUG=357572 TEST=PictureTest.RecordingModes TEST=tools/perf/run_benchmark rasterize_and_record_micro.key_silk_cases --browser=release Review URL: https://codereview.chromium.org/216933002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261543 0039d316-1c4b-4281-b951-d872f2087c98
* Add @skyostil to cc OWNERSnduca@chromium.org2014-04-031-0/+1
| | | | | | | | | R=enne CC=skyostil Review URL: https://codereview.chromium.org/224153004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261533 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add CHECKs that the backing size reported by canvas matches.danakj@chromium.org2014-04-034-9/+16
| | | | | | | | | | | | | | After making the canvas, ensure the size it reports is correct. Also pass the full content_rect to ContentLayerUpdater::PaintContents instead of deriving the size from the canvas, and double-check the size matches the canvas there. R=reveman@chromium.org BUG=358470 Review URL: https://codereview.chromium.org/222573002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261526 0039d316-1c4b-4281-b951-d872f2087c98
* Remove redundant I420-to-YV12 conversion in MediaStreamVideoTrack.hshi@chromium.org2014-04-032-58/+92
| | | | | | | | | | | | | | | The I420 and YV12 formats both are almost identical except for the order of U and V planes in memory. They are effectively the same for renderers that access U and V plane data via MediaFrame::data(size_t plane). BUG=341452 BUG=355763 TEST=trybot R=danakj@chromium.org, dmichael@chromium.org, fischman@chromium.org, perkj@chromium.org, piman@chromium.org Review URL: https://codereview.chromium.org/222563002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261497 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land "cc: Remove TextureLayer::SetTextureId and ↵nick@chromium.org2014-04-033-155/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TextureLayer::WillModifyTexture" Reason for re-land: Change was found not guilty; charges were dropped. > Revert 261380 "cc: Remove TextureLayer::SetTextureId and Texture..." > > [Reason for revert: failure in WindowUtilTest.RecreateLayers > in test suite wm_core_unittests > on bot Linux ChromiumOS Tests (dbg)(1) Build] > > > cc: Remove TextureLayer::SetTextureId and TextureLayer::WillModifyTexture > > > > These are not used anymore except for clearing the client-provided texture, so > > this removes 1 of 4 TextureLayer paths, and simplifies externally-exposed state. > > > > BUG=337922 > > > > Review URL: https://codereview.chromium.org/213743005 > > TBR=piman@chromium.org > > Review URL: https://codereview.chromium.org/224153003 TBR=nick@chromium.org Review URL: https://codereview.chromium.org/224363003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261490 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 261380 "cc: Remove TextureLayer::SetTextureId and Texture..."nick@chromium.org2014-04-033-234/+155
| | | | | | | | | | | | | | | | | | | | | [Reason for revert: failure in WindowUtilTest.RecreateLayers in test suite wm_core_unittests on bot Linux ChromiumOS Tests (dbg)(1) Build] > cc: Remove TextureLayer::SetTextureId and TextureLayer::WillModifyTexture > > These are not used anymore except for clearing the client-provided texture, so > this removes 1 of 4 TextureLayer paths, and simplifies externally-exposed state. > > BUG=337922 > > Review URL: https://codereview.chromium.org/213743005 TBR=piman@chromium.org Review URL: https://codereview.chromium.org/224153003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261460 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove TextureLayer::SetTextureId and TextureLayer::WillModifyTexturepiman@chromium.org2014-04-033-155/+234
| | | | | | | | | | | These are not used anymore except for clearing the client-provided texture, so this removes 1 of 4 TextureLayer paths, and simplifies externally-exposed state. BUG=337922 Review URL: https://codereview.chromium.org/213743005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261380 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add more values to Scheduler::StateAsValuebrianderson@chromium.org2014-04-031-1/+13
| | | | | | | | BUG=358409 Review URL: https://codereview.chromium.org/222413004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261346 0039d316-1c4b-4281-b951-d872f2087c98
* cc: fix continuous paint modecaseq@chromium.org2014-04-0311-3/+120
| | | | | | | | | | Request another commit after drawing layers if we're in continuous paint mode. BUG=346886 Review URL: https://codereview.chromium.org/181393002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261340 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add performance tests for PicutrePileImpl class.reveman@chromium.org2014-04-032-0/+90
| | | | | | | | | | | | | | These tests exercise the PicturePile code that is used to analyze or raster a tile. This includes all the clippingoperations but none of the actual work to raster or analyze real contents as all pictures used are empty. BUG=358896 TEST=cc_perftests --gtest_filter=PicturePileImplPerfTest.* Review URL: https://codereview.chromium.org/221903005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261302 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize overlay validator in GpuBrowserCompositorOutputSurface.alexst@chromium.org2014-04-036-27/+20
| | | | | | | | | | Plus refactor overlay transform into separate file to use the same type in cc, ozone and context_support. BUG= Review URL: https://codereview.chromium.org/220723006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261301 0039d316-1c4b-4281-b951-d872f2087c98
* Fix another inappropriate overscroll glow.sataya.m@samsung.com2014-04-032-13/+27
| | | | | | | | | | | | | r259729 fixed one bad overscroll glow, but introduced a regression in another case. When a scroll amount fell between 0.01 and 0.1, the early break caused the amount to fail to be subtracted from unused_scroll_delta at all, so all such scrolls resulted in a glow. BUG=358093 Review URL: https://codereview.chromium.org/218883005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261241 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Revert of Early terminate flings when scrolling impossible ↵jdduke@chromium.org2014-04-025-45/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/213743004/) Reason for revert: The broken fling layout test has been fixed in: https://codereview.chromium.org/219243010/ Original issue's description: > Revert of Early terminate flings when scrolling impossible (https://codereview.chromium.org/136173004/) > > Reason for revert: > Broke a layout test, fast/events/touch/gesture/pad-gesture-fling.html > > http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Blink&tests=fast%2Fevents%2Ftouch%2Fgesture%2Fpad-gesture-fling.html > > > Original issue's description: > > Early terminate flings when scrolling impossible > > > > Previously, flings were terminated early only if the root layer overscrolled. > > Now, flings will terminate if the fling target's |scrollBy()| method returns > > false, providing consistency between layer types and saving battery on > > sites with scrolling sublayers. > > > > Also move |DidOverscrollParams| into content/ in anticipation of using it > > directly in the overscroll IPC message. > > > > Corresponding Blink patch: > > https://codereview.chromium.org/139493003/ > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=260631 > > TBR=aelias@chromium.org,jochen@chromium.org,jdduke@chromium.org > NOTREECHECKS=true > NOTRY=true > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=260773 TBR=aelias@chromium.org,jochen@chromium.org,tkent@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/222353002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261187 0039d316-1c4b-4281-b951-d872f2087c98