summaryrefslogtreecommitdiffstats
path: root/cc/base
Commit message (Collapse)AuthorAgeFilesLines
* cc: Remove the --enable-partial-swap flag.danakj@chromium.org2014-02-192-2/+0
| | | | | | | | | R=piman BUG= Review URL: https://codereview.chromium.org/167953003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251898 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Remove --enable-per-tile-painting and ↵xiyuan@chromium.org2014-02-152-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --ui-enable-per-tile-painting. (https://codereview.chromium.org/164183012/) Reason for revert: Breaks compositor_unittests on ChromeOS. http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%281%29/builds/39630 LayerWithRealCompositorTest.Delegate (run #1): [ RUN ] LayerWithRealCompositorTest.Delegate ../../ui/compositor/layer_unittest.cc:527: Failure Value of: l1->bounds().size() Actual: 8-byte object \u003C90-01 00-00 90-01 00-00> Expected: delegate.paint_size() Which is: 8-byte object \u003C00-00 00-00 00-00 00-00> ... LayerWithRealCompositorTest.NoScaleCanvas (run #1): [ RUN ] LayerWithRealCompositorTest.NoScaleCanvas ../../ui/compositor/layer_unittest.cc:1311: Failure Value of: l1_delegate.paint_size().ToString() Actual: "0x0" Expected: "280x360" [ FAILED ] LayerWithRealCompositorTest.NoScaleCanvas (112 ms) ... I can repro the failures on my dev box and revert this CL fixes the problem. Original issue's description: > Remove --enable-per-tile-painting and --ui-enable-per-tile-painting. > > The ui flag is always true on ChromeOS and off elsewhere. The other is > never on and we're not planning to turn it on. > > R=piman > BUG= > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=251538 TBR=piman@chromium.org,danakj@chromium.org NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/168423002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251553 0039d316-1c4b-4281-b951-d872f2087c98
* Remove --enable-per-tile-painting and --ui-enable-per-tile-painting.danakj@chromium.org2014-02-152-5/+0
| | | | | | | | | | | | The ui flag is always true on ChromeOS and off elsewhere. The other is never on and we're not planning to turn it on. R=piman BUG= Review URL: https://codereview.chromium.org/164183012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251538 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid int->float->int conversion in OcclusionTracker for int translates.danakj@chromium.org2014-02-122-4/+26
| | | | | | | | | | | | | | | | | | | | | | | | | If the transform on a layer is an integer translation, we can easily avoid converting the query rectangle to floats just to convert them back to integers again. This is super costly. Added a perftest for this. On an N4 the results are Before: 20.553817749023438 us After: 13.440165519714355 us For about 35% reduction in time in this scnario. Also renames MapClippedRect(Rect) to MapEnclosingClippedRect(Rect) to describe what it does better, and audit callsides of MapClippedRect to change any others that then ToEnclosingRect to call the MapEnclosingClippedRect instead. Similar for Project. R=enne BUG=342848 Review URL: https://codereview.chromium.org/143293005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250739 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Enable rendering stats recording in browser compositor.ernstm@chromium.org2014-02-062-0/+4
| | | | | | | | | | | | | | | | | | This patch moves the kEnableGpuBenchmarking switch from content switches to cc switches for it to be accessible from ui/compositor/compositor.cc. If the flag is set, the browser compositor enalbes recording of rendering stats in its constructor. The recorded stats will be used by a follow-up patch that switches smoothness benchmark to use time stamps from the browser compositor when available. R=piman@chromium.org,nduca@chromium.org BUG=340747 Review URL: https://codereview.chromium.org/148983007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249307 0039d316-1c4b-4281-b951-d872f2087c98
* [cc] cleanup: re-arrange some file locations in cc/schedulersimonhong@chromium.org2014-02-043-0/+216
| | | | | | | | | | | | | * Move rolling_time_delta_history.[cc|h] to cc/base * Move texture_uploader.[cc|h] to cc/resources R=enne@chromium.org BUG=340190 TEST=cc_unittests Review URL: https://codereview.chromium.org/130173007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248685 0039d316-1c4b-4281-b951-d872f2087c98
* [#7] Pass gfx::Size by const ref.prashant.n@samsung.com2014-01-295-36/+36
| | | | | | | | | | | | | | | Any struct of size > 4 bytes should be passed by const ref. Passing by ref for these structs is faster than passing by value, especially when invoking function has multiple parameters and some other scenarios mentioned in the bug. BUG=159273 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247426 Review URL: https://codereview.chromium.org/145313006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247769 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of [#7] Pass gfx structs by const ref (gfx::Size) ↵mnissler@chromium.org2014-01-285-36/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/145313006/) Reason for revert: Suspected of breaking the Linux ASAN tests ( http://build.chromium.org/p/chromium.memory/builders/Linux%20ASAN%20Tests%20%283%29/builds/22104 ) Original issue's description: > [#7] Pass gfx::Size by const ref. > > Any struct of size > 4 bytes should be passed by const ref. > Passing by ref for these structs is faster than passing by value, > especially when invoking function has multiple parameters and some > other scenarios mentioned in the bug. > > BUG=159273 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247426 TBR=danakj@chromium.org,enne@chromium.org,bulach@chromium.org,piman@chromium.org,prashant.n@samsung.com NOTREECHECKS=true NOTRY=true BUG=159273 Review URL: https://codereview.chromium.org/142863008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247437 0039d316-1c4b-4281-b951-d872f2087c98
* [#7] Pass gfx::Size by const ref.prashant.n@samsung.com2014-01-285-36/+36
| | | | | | | | | | | | | Any struct of size > 4 bytes should be passed by const ref. Passing by ref for these structs is faster than passing by value, especially when invoking function has multiple parameters and some other scenarios mentioned in the bug. BUG=159273 Review URL: https://codereview.chromium.org/145313006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247426 0039d316-1c4b-4281-b951-d872f2087c98
* Pass gfx structs by const ref (gfx::Vector2dF)ajay.berwal@samsung.com2014-01-232-8/+8
| | | | | | | | | | | | | | | | | | Avoid unneccessary copy of structures gfx::Vector2dF by passing them by const ref rather than value. Any struct of size > 4 bytes should be passed by const ref. Passing by ref for these structs is faster than passing by value, especially when invoking function has multiple parameters. Pass gfx structs by const ref (gfx::Vector2dF) BUG=159273 Review URL: https://codereview.chromium.org/130443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246563 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land: cc: Remove WorkerPool class and instead use TaskGraphRunner directly.reveman@chromium.org2014-01-232-4/+0
| | | | | | | | | | | | | | | | | Removes the unnecessary WorkerPool layer. This makes the job of the TaskGraphRunner more clear and will allow us to remove some complexity and unnecessary heap allocations from the RasterWorkerPool code in follow up patches. Also moves the kNumRasterTasks switch to content/. Refactor only, no changes in behavior. BUG=331844 Review URL: https://codereview.chromium.org/141163019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246554 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of cc: Remove WorkerPool class and instead use TaskGraphRunner ↵mnissler@chromium.org2014-01-222-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directly. (https://codereview.chromium.org/141163019/) Reason for revert: Bad file mode for task_graph_runner.h: /b/build/slave/Linux_ChromiumOS/build/src/cc/resources/task_graph_runner.h: Must not have executable bit set http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Full/builds/31393/steps/check_perms/logs/stdio Original issue's description: > cc: Remove WorkerPool class and instead use TaskGraphRunner directly. > > Removes the unnecessary WorkerPool layer. This makes the job > of the TaskGraphRunner more clear and will allow us to remove > some complexity and unnecessary heap allocations from the > RasterWorkerPool code in follow up patches. > > Also moves the kNumRasterTasks switch to content/. > > Refactor only, no changes in behavior. > > BUG=331844 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=246284 TBR=vmpstr@chromium.org,alokp@chromium.org,sohan.jyoti@samsung.com,jamesr@chromium.org,piman@chromium.org,reveman@chromium.org NOTREECHECKS=true NOTRY=true BUG=331844 Review URL: https://codereview.chromium.org/143003012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246298 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove WorkerPool class and instead use TaskGraphRunner directly.reveman@chromium.org2014-01-222-4/+0
| | | | | | | | | | | | | | | | | Removes the unnecessary WorkerPool layer. This makes the job of the TaskGraphRunner more clear and will allow us to remove some complexity and unnecessary heap allocations from the RasterWorkerPool code in follow up patches. Also moves the kNumRasterTasks switch to content/. Refactor only, no changes in behavior. BUG=331844 Review URL: https://codereview.chromium.org/141163019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246284 0039d316-1c4b-4281-b951-d872f2087c98
* [#4] Pass gfx structs by const ref (gfx::PointF)r.kasibhatla@samsung.com2014-01-172-12/+13
| | | | | | | | | | | | | | | | | | | Avoid unneccessary copy of structures gfx::PointF by passing them by const ref rather than value. Any struct of size > 4 bytes should be passed by const ref. Passing by ref for these structs is faster than passing by value, especially when invoking function has multiple parameters. Pass by value creates unneccessary overhead which should be avoided. BUG=159273 R=danakj, enne, piman Review URL: https://codereview.chromium.org/139233002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245467 0039d316-1c4b-4281-b951-d872f2087c98
* telemetry: add smoothness.*.key_silk_cases benchmarksernstm@chromium.org2014-01-172-0/+17
| | | | | | | | | | | | | | | Add two benchmark variants of smoothness with key_silk_cases. smoothness.disable_gpu_rasterization.key_silk_cases: run with GPU rasterization explicitly diabled (but use impl-side painting) smoothness.enable_gpu_rasterization.key_silk_cases: run with GPU rasterization enabled (implies impl-side painting). R=nduca@chromium.org BUG= Review URL: https://codereview.chromium.org/135223002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245440 0039d316-1c4b-4281-b951-d872f2087c98
* [#3] Pass gfx structs by const ref (gfx::SizeF)r.kasibhatla@samsung.com2014-01-162-2/+2
| | | | | | | | | | | | | | | | | | | Avoid unneccessary copy of structures gfx::SizeF by passing them by const ref rather than value. Any struct of size > 4 bytes should be passed by const ref. Passing by ref for these structs is faster than passing by value, especially when invoking function has multiple parameters. Pass by value creates unneccessary overhead which should be avoided. BUG=159273 R=danakj, enne Review URL: https://codereview.chromium.org/139173004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245297 0039d316-1c4b-4281-b951-d872f2087c98
* Pass gfx::Rect and gfx::RectF by const ref.prashant.n@samsung.com2014-01-108-29/+33
| | | | | | | | | | | | | | | | | Avoid unneccessary copy of structures gfx::Rect & gfx::RectF by passing them by const ref rather than value. Any struct of size > 4 bytes should be passed by const ref. Passing by ref for these structs is faster than passing by value, especially when invoking function has multiple parameters. Pass by value creates unneccessary overhead which should be avoided. BUG=159273 Review URL: https://codereview.chromium.org/93663004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244224 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove racy initialization code in cc/base/switches.cc.reveman@chromium.org2014-01-072-20/+1
| | | | | | | | | | | | | | | | | | | | | | This moves all lazy initialization code out of cc/base/switches.cc. Code that needs the value of these switches in a critical path should not rely on lazy initialization in cc/switches.cc but instead handle this on its own. Thread-safe lazy initialization code of impl-side painting status has been added to WebLayerImpl. This also removes the cc::switches::IsGPURasterizationEnabled() function, which for consistency should not exist unless the logic to determine the value is more complicated than HasSwitch(kEnableGPURasterization). This function was never used in performance sensitive code so lazy initialization was never necessary. BUG=330937 TBR=jamesr Review URL: https://codereview.chromium.org/122063002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243432 0039d316-1c4b-4281-b951-d872f2087c98
* Remove some LatencyInfo merging code pathmiletus@chromium.org2014-01-021-3/+1
| | | | | | | | | | | | | | | | | | | This CL removes a few code paths that do LatencyInfo merging: 1. compositor -> output surface through CompositorFrameMetadata 2. gpu -> browser compositor through GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params and GpuHostMsg_AcceleratedSurfacePostSubBuffer_Param A follow up CL will remove GPU side LatencyInfo merging (mainly in image transport surface) so that we remove LatencyInfo merging entirely from the code path renderer cc -> gpu -> browser cc -> gpu. BUG=246034 TEST=unittests pass. Review URL: https://codereview.chromium.org/100443006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242825 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add PRESUBMIT rule to ban using cc:: inside of namespace cc {...}danakj@chromium.org2013-12-101-7/+7
| | | | | | | | | | | | | | | | | | | This also makes cc/ PRESUBMIT clean for the new check. The most invasive changes were: 1. Moving the cc/test/paths.h enum into a CCPaths class (named with CC prefix to clarify this path is for CC since the enum is extending an enum from base/. 2. Merge ResourcePool::Resource up into ScopedResource which was the same thing basically. R=enne BUG= Review URL: https://codereview.chromium.org/109263003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239904 0039d316-1c4b-4281-b951-d872f2087c98
* Support for drawing a debug border around animated layersavallee@chromium.org2013-12-102-0/+6
| | | | | | | | | | | | | | | | | | | | | | This is the groundwork for showing a border around the animation bounds of a layer. The animation bounds are the bounds of the layer transformed to screen space where layers that have an animation instead transform by an "inflate" step. To follow, compute the animation bounds of layers when needed. + Add debug rect code to show a lime green border around layers that have animation bounds. + Add --show-layer-animation-bounds that will enable the drawing of the green box. BUG= Review URL: https://codereview.chromium.org/92853002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239863 0039d316-1c4b-4281-b951-d872f2087c98
* For main thread event handling, if event causesmiletus@chromium.org2013-12-084-0/+154
| | | | | | | | | | | | | | | | | | | | SetNeedsCommit, SetNeedsUpdateLayer or SetNeedsAnimate during event processing, then it is considered to cause rendering and its LatencyInfo is pushed into LayerTreeHost through LatencyInfoSwapPromise. For impl thread event handling, if event causes SetNeedsRedraw or SetNeedsRedrawRect during event processing, then it is considered to cause rendering and its LatencyInfo is pushed into LayerTreeHostImpl through LatencyInfoSwapPromise. BUG=246034, 271583 TEST=Manually tested on Pixel. The LatencyInfo for events that causes impl/main thread scrolling are correctly passed to LTH/LTHI. Review URL: https://codereview.chromium.org/55273003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239375 0039d316-1c4b-4281-b951-d872f2087c98
* Remove direct-to-backbuffer Ganesh pathenne@chromium.org2013-12-062-6/+0
| | | | | | | | | | | | | | | | | The usage of the GrContext in GLRenderer is getting in the way of cleaning up the WebGraphicsContext3D usage in cc. This path was good for trying out the Ganesh path, but was never really used, available on all platforms, or compatible with ubercompositor. Ganesh-to-tile is almost landed and so it seems like this can be safely removed for the present. BUG=none TBR=sky Review URL: https://codereview.chromium.org/98463008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239261 0039d316-1c4b-4281-b951-d872f2087c98
* Added necessary Tile flags for GPU rasterization.skaslev@chromium.org2013-12-051-2/+8
| | | | | | | | BUG=316685 Review URL: https://codereview.chromium.org/98443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238846 0039d316-1c4b-4281-b951-d872f2087c98
* Remove obsolete --low-resolution-contents-scale-factor command line switchskyostil@chromium.org2013-11-292-5/+0
| | | | | | | | | | | | This switch was used to control the scale of low resolution tiles on specific Android devices, but since we do not do that anymore, we can remove this switch. BUG=177027 Review URL: https://codereview.chromium.org/95623002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237927 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 237857 "Revert 237848 "Use LatencyInfoSwapPromise to trac..."dbeam@chromium.org2013-11-293-5/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Guess win8_aura is just really flaky... > Revert 237848 "Use LatencyInfoSwapPromise to track LatencyInfo t..." > > Speculative revert to see if this broke views_unittests, event_unittests, and > aura_unittests to be crashed or hung. Example: > > E:\b\build\slave\Win8_Aura\build\src\out\Debug\events_unittests.exe --brave-new-test-launcher --test-launcher-bot-mode --gtest_print_time --gtest_output=xml:E:\b\build\slave\Win8_Aura\build\gtest-results\events_unittests\events_unittests.xml > IMPORTANT DEBUGGING NOTE: batches of tests are run inside their > own process. For debugging a test inside a debugger, use the > --gtest_filter=<your_test_name> flag along with > --single-process-tests. > Enabling defaults optimized for continuous integration bots. > Using sharding settings from environment. This is shard 0/1 > Using 8 parallel jobs. > [1128/165136:ERROR:launch_win.cc(166)] : Access is denied. > [1128/165136:ERROR:launch_win.cc(166)] : Access is denied. > Failed to get out-of-band test success data, dumping full stdio below: > > [1/29] EventDispatcherTest.EventDispatchOrder (UNKNOWN) > [2/29] EventDispatcherTest.EventDispatchPhase (UNKNOWN) > [3/29] EventDispatcherTest.EventDispatcherDestroyedDuringDispatch (UNKNOWN) > [4/29] EventDispatcherTest.EventDispatcherInvalidateTarget (UNKNOWN) > [5/29] EventDispatcherTest.EventHandlerDestroyedDuringDispatch (UNKNOWN) > [6/29] EventDispatcherTest.EventHandlerAndDispatcherDestroyedDuringDispatch (UNKNOWN) > [7/29] LatencyInfoTest.AddTwoSeparateEvent (UNKNOWN) > [8/29] LatencyInfoTest.AddTwoSameEvent (UNKNOWN) > [9/29] LatencyInfoTest.MergeTwoSeparateEvent (UNKNOWN) > [10/29] LatencyInfoTest.MergeTwoSameEvent (UNKNOWN) > Too many badly broken tests (10), exiting now. > [1128/165136:ERROR:launch_win.cc(166)] : Access is denied. > Error: no element found: line 1, column 0 > No data was available to update the JSON results > exit code (as seen by runtest.py): 1 > @@@STEP_FAILURE@@@ > @@@STEP_TEXT@events_unittests@@@ > @@@STEP_TEXT@crashed or hung@@@ > > > Use LatencyInfoSwapPromise to track LatencyInfo through compositor > > > > Originally we cache LatencyInfo directly in compositor. Now that > > with the support of SwapPromise, we can use LatencyInfoSwapPromise > > to track the LatencyInfo. > > > > BUG=246034 > > TEST=Input LatencyInfo are still correctly passed to output surface > > through LatencyInfoSwapPromise. > > > > Review URL: https://codereview.chromium.org/81533002 > > TBR=miletus@chromium.org > > Review URL: https://codereview.chromium.org/96073002 TBR=dbeam@chromium.org Review URL: https://codereview.chromium.org/96363002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237887 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 237848 "Use LatencyInfoSwapPromise to track LatencyInfo t..."dbeam@chromium.org2013-11-293-85/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Speculative revert to see if this broke views_unittests, event_unittests, and aura_unittests to be crashed or hung. Example: E:\b\build\slave\Win8_Aura\build\src\out\Debug\events_unittests.exe --brave-new-test-launcher --test-launcher-bot-mode --gtest_print_time --gtest_output=xml:E:\b\build\slave\Win8_Aura\build\gtest-results\events_unittests\events_unittests.xml IMPORTANT DEBUGGING NOTE: batches of tests are run inside their own process. For debugging a test inside a debugger, use the --gtest_filter=<your_test_name> flag along with --single-process-tests. Enabling defaults optimized for continuous integration bots. Using sharding settings from environment. This is shard 0/1 Using 8 parallel jobs. [1128/165136:ERROR:launch_win.cc(166)] : Access is denied. [1128/165136:ERROR:launch_win.cc(166)] : Access is denied. Failed to get out-of-band test success data, dumping full stdio below: [1/29] EventDispatcherTest.EventDispatchOrder (UNKNOWN) [2/29] EventDispatcherTest.EventDispatchPhase (UNKNOWN) [3/29] EventDispatcherTest.EventDispatcherDestroyedDuringDispatch (UNKNOWN) [4/29] EventDispatcherTest.EventDispatcherInvalidateTarget (UNKNOWN) [5/29] EventDispatcherTest.EventHandlerDestroyedDuringDispatch (UNKNOWN) [6/29] EventDispatcherTest.EventHandlerAndDispatcherDestroyedDuringDispatch (UNKNOWN) [7/29] LatencyInfoTest.AddTwoSeparateEvent (UNKNOWN) [8/29] LatencyInfoTest.AddTwoSameEvent (UNKNOWN) [9/29] LatencyInfoTest.MergeTwoSeparateEvent (UNKNOWN) [10/29] LatencyInfoTest.MergeTwoSameEvent (UNKNOWN) Too many badly broken tests (10), exiting now. [1128/165136:ERROR:launch_win.cc(166)] : Access is denied. Error: no element found: line 1, column 0 No data was available to update the JSON results exit code (as seen by runtest.py): 1 @@@STEP_FAILURE@@@ @@@STEP_TEXT@events_unittests@@@ @@@STEP_TEXT@crashed or hung@@@ > Use LatencyInfoSwapPromise to track LatencyInfo through compositor > > Originally we cache LatencyInfo directly in compositor. Now that > with the support of SwapPromise, we can use LatencyInfoSwapPromise > to track the LatencyInfo. > > BUG=246034 > TEST=Input LatencyInfo are still correctly passed to output surface > through LatencyInfoSwapPromise. > > Review URL: https://codereview.chromium.org/81533002 TBR=miletus@chromium.org Review URL: https://codereview.chromium.org/96073002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237857 0039d316-1c4b-4281-b951-d872f2087c98
* Use LatencyInfoSwapPromise to track LatencyInfo through compositormiletus@chromium.org2013-11-293-5/+85
| | | | | | | | | | | | | | Originally we cache LatencyInfo directly in compositor. Now that with the support of SwapPromise, we can use LatencyInfoSwapPromise to track the LatencyInfo. BUG=246034 TEST=Input LatencyInfo are still correctly passed to output surface through LatencyInfoSwapPromise. Review URL: https://codereview.chromium.org/81533002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237848 0039d316-1c4b-4281-b951-d872f2087c98
* --enable-gpu-rasterization flag for turning on hybrid ganesh modehumper@google.com2013-11-272-0/+12
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/85813003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237482 0039d316-1c4b-4281-b951-d872f2087c98
* Add SwapPromise support to LayerTreeHost and LayerTreeImplmiletus@chromium.org2013-11-271-0/+48
| | | | | | | | | | | | | | | | | | | | | When a change to the compositor's state/invalidation/whatever happens, a Swap Promise can be inserted into LayerTreeHost/LayerTreeImpl, to track whether the compositor's reply to the new state/invaliadtion/whatever is completed in the compositor, i.e. the compositor knows it has been sent to its output or not. If the new compositor state is sent to the output, SwapPromise::DidSwap() will be called, and if the compositor fails to send its new state to the output, e.g. commit fails on main thread, new frame data has no actual damage so LayerTreeHostImpl::SwapBuffers() bails out early, then Promise::DidNotSwap() will be called. BUG=246034, 271583 TEST=unittests pass. Review URL: https://codereview.chromium.org/60513007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237444 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Early out in PictureLayer::Update more oftenenne@chromium.org2013-11-251-0/+1
| | | | | | | | | | | | | | | | | | Previously, early outs there were prevented to give the PicturePile a chance to update its visibility or handle invalidations. However, this can be handled a lot sooner than walking over all tiles. If the layer size hasn't changed, there are no invalidations, and the visiblity is the same as the last frame, then early out. With 220 bunnies (from bug link) on an N4: PictureLayer::Update average goes from 0.065ms to 0.023ms LayerTreeHost::UpdateLayers average goes from 1.233ms to 0.877ms BUG=322207 Review URL: https://codereview.chromium.org/81953004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237136 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of https://codereview.chromium.org/69123002/rogerta@chromium.org2013-11-251-55/+30
| | | | | | | | | | | | Reason for revert: This CL caused a regression in sizes bots, see https://chromeperf.appspot.com/report?masters=Chromium&bots=chromium-rel-linux&tests=sizes%2Fchrome-si&checked=all&start_rev=236784&end_rev=237073 TBR=enne@chromium.org,tomhudson@chromium.org,wiltzius@chromium.org,danakj@chromium.org,jamesr@chromium.org,vivekg@chromium.org,siva.gunturi@samsung.com NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/85753003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237075 0039d316-1c4b-4281-b951-d872f2087c98
* Generic version of caching cc switches to avoid searching of switches on ↵siva.gunturi@samsung.com2013-11-251-30/+55
| | | | | | | | | | | | | | | | | | each function call CC functions like CheckImplSidePaintingStatus will cycle through all the switches every time the function is called. Initial patch is avoiding it only for IsImplSidePaintingEnabled. So we need a generic way for all the switches, for future use. This patch provides a one time initialization of all the switches in its first encounter (InitializeSwitchesIfRequired) and later on will just read the updated data of the corresponding switches, when required. Declared a seperate structure for holding the switch enable/disable data and saving memory by using bit fields. BUG=313193 TEST=None; no behavior changes; Review URL: https://codereview.chromium.org/69123002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237068 0039d316-1c4b-4281-b951-d872f2087c98
* Add animated bounds to AsValue data for a LayerImplvollick@chromium.org2013-11-132-0/+13
| | | | | | | | BUG=None Review URL: https://codereview.chromium.org/64123007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234834 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add --cc-rebaseline-pixeltests command line flag.danakj@chromium.org2013-10-312-0/+4
| | | | | | | | | | | | | When present, pixel tests write their output instead of reading it. This allows rebaselining tests without requiring a recompile of the code. R=enne BUG= Review URL: https://codereview.chromium.org/48733009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231965 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid unnecessary sqrt calls in ComputeTransform2dScaleComponents.aelias@chromium.org2013-10-281-0/+7
| | | | | | | | | | | | | | | This method performed 2 sqrt calls for every layer during CalcDrawProperties. In most cases, only the main diagonal has nonzero values and the sqrt() call can be optimized out. I measured a 20% win in CalcDrawPropsImplTest.TenTen on Nexus 4. NOTRY=true BUG=311472 Review URL: https://codereview.chromium.org/47403002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231339 0039d316-1c4b-4281-b951-d872f2087c98
* Remember value of IsImplSidePaintingEnabledtomhudson@chromium.org2013-10-281-1/+8
| | | | | | | | | | | | | | | | | Command line arguments are constant at runtime, but the function cc::switches::IsImplSidePaintingEnabled() does two searches through the list of arguments every time it's called, and it's called every time we record a SkPicture. With this patch, the function remembers the value determined by the first call and avoids repeating the searches on subsequent calls. BUG=311248 R=nduca@chromium.org,skyostil@chromium.org Review URL: https://codereview.chromium.org/43463003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231314 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Change precision of ComputeClippedPointForEdgeenne@chromium.org2013-10-122-7/+9
| | | | | | | | | | | | I suspect this cast/function call is the cause of the performance issue in the associated bug. Keeping this in double precision is unnecessary. BUG=303811 Review URL: https://codereview.chromium.org/26594010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228330 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add parition to ScopedPtrVector.vmpstr@chromium.org2013-10-092-0/+40
| | | | | | | | | | | | | | | | | | | | | | This patch adds the equivalent of std::partition to ScopedPtrVector. This can be used to achieve a similar idiom to the following. v.erase(std::remove_if(v.begin(), v.end(), Predicate), v.end()) remove_if isn't appropriate for ScopedPtrVector, since it doesn't guarantee that all of the elements will still be in the container, but partition can do roughly the same thing (with the exception that the predicate has to be the negative version of remove_if one). If v is a ScopedPtrVector, usage would be v.erase(v.partition(WhatToKeepPredicate), v.end()); R=enne@chromium.org Review URL: https://codereview.chromium.org/26497005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227796 0039d316-1c4b-4281-b951-d872f2087c98
* Add --disable-compositor-touch-hit-testing flagrbyers@chromium.org2013-10-082-0/+5
| | | | | | | | | | | | | Plumb the flag to blink and the compositor. Disable by default in Android webview for now. Depends on blink CL: https://src.chromium.org/viewvc/blink?view=rev&revision=158956 BUG=303945 Review URL: https://codereview.chromium.org/25904004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227511 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Simply invalidation regions after each union.vmpstr@chromium.org2013-10-031-10/+1
| | | | | | | | | | | | | This patch makes the region simplification happen after each union, to make sure that if there are a lot of invalidations, the performance doesn't degrade too much. BUG=303757 R=enne@chromium.org Review URL: https://codereview.chromium.org/25828004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226853 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Update invalidation perftest to clean up released tiles.vmpstr@chromium.org2013-09-271-2/+4
| | | | | | | | | | | | | | The tiles are actually being correctly cleaned up at the end of the test, but it seems that it accumulates quite a few of them and times out at the end. This patch ensures that all of the tiles are cleaned up after each invalidate run. R=reveman@chromium.org BUG=298999 Review URL: https://codereview.chromium.org/24487007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225666 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Make tile manager responsible for tile's lifetime.vmpstr@chromium.org2013-09-261-0/+63
| | | | | | | | | | | | This patch is somewhat proof-of-concept to make ManageTiles be the only spot where tiles can be deleted. This allows all function calls between two ManageTiles calls to assume that the state has not changed. BUG= Review URL: https://codereview.chromium.org/24331009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225389 0039d316-1c4b-4281-b951-d872f2087c98
* Fix compilation and ui_unittests with float transformsenne@chromium.org2013-09-254-30/+30
| | | | | | | | | | | | | | This change also cleans up the use of gfx::Transform::get/setDouble (in favor of get/set) at callsites to prepare for changing SkMScalar from double to float. BUG=269817 Originally Committed/Reverted: https://src.chromium.org/viewvc/chrome?view=rev&revision=224725 Review URL: https://chromiumcodereview.appspot.com/23811009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225130 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 224725 "Fix compilation and ui_unittests with float trans..."sky@chromium.org2013-09-234-30/+30
| | | | | | | | | | | | | | | | | | | | | Reverting as caused perf regression because of new static initializers. > Fix compilation and ui_unittests with float transforms > > This change also cleans up the use of gfx::Transform::get/setDouble > (in favor of get/set) at callsites to prepare for changing SkMScalar > from double to float. > > BUG=269817 > > Review URL: https://chromiumcodereview.appspot.com/23811009 TBR=enne@chromium.org Review URL: https://codereview.chromium.org/23537065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224732 0039d316-1c4b-4281-b951-d872f2087c98
* Fix compilation and ui_unittests with float transformsenne@chromium.org2013-09-234-30/+30
| | | | | | | | | | | | This change also cleans up the use of gfx::Transform::get/setDouble (in favor of get/set) at callsites to prepare for changing SkMScalar from double to float. BUG=269817 Review URL: https://chromiumcodereview.appspot.com/23811009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224725 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Reland r233830. "Adding support for RGBA_4444 tile textures". r223830 ↵kaanb@chromium.org2013-09-192-0/+4
| | | | | | | | | | had a bug in async_pixel_transfer_manager_egl.cc that wasn't directly related to the 4444 support. This patch includes the rest of the files in r223830. Changes to async_pixel_transfer_manager_egl.cc have been moved to the separate patch after fixing the bug: https://codereview.chromium.org/23533067/ BUG=272539 Review URL: https://chromiumcodereview.appspot.com/23447048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224040 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Adding support for RGBA_4444 tile textures"tomhudson@google.com2013-09-182-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8e6d15826280b9f11a28060b5b2d2bbef17d15bc (r223830; http://crrev.com/21159007). Although the 4444 textures work on S4, they break on N7v2 and N10. (We've got inconsistent reports about N4.) Passing --disable-4444-textures isn't sufficient to fix the problems. ilevy@ points out that the commit bot is using GN, so could easily have missed this breakage. We're hoping to switch to N4, but in this case there's no guarantee that that would have caught it either. Perhaps the main patch can be landed in pieces next time? From N7: E/chromium(32513): [ERROR:gles2_cmd_decoder.cc(5770)] [.RenderCompositor-0x783c9880]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering or is not 'texture complete' From N10: I/chromium( 2104): [INFO:CONSOLE(0)] "[.WebGLRenderingContext]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering or is not 'texture complete'", source: file:///sdcard/clanktemp/index.html (0) R=skyostil@chromium.org TBR=kaanb@chromium.org BUG=245774,272539 Review URL: https://codereview.chromium.org/24219002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223871 0039d316-1c4b-4281-b951-d872f2087c98
* Adding support for RGBA_4444 tile textureskaanb@chromium.org2013-09-182-0/+4
| | | | | | | | BUG=245774,272539 Review URL: https://chromiumcodereview.appspot.com/21159007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223830 0039d316-1c4b-4281-b951-d872f2087c98
* Expose LCD text setting to about:flags.alokp@chromium.org2013-09-122-0/+23
| | | | | | | | BUG=287900 Review URL: https://chromiumcodereview.appspot.com/23578029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222903 0039d316-1c4b-4281-b951-d872f2087c98