summaryrefslogtreecommitdiffstats
path: root/cc
Commit message (Collapse)AuthorAgeFilesLines
* cc: Combine analysis and rasterenne@chromium.org2014-01-0713-149/+85
| | | | | | | | | | | | | | | | | | This changes the analysis of PicturePiles from optimistic (hoping to save raster work by checking if a rastered bitmap would be a solid color) to pessimistic (assuming most bitmaps are not solid colors and just checking afterwards). It does this by rastering to both an AnalysisCanvas and a normal SkCanvas via SkNWayCanvas and then checking the results afterwards. R=reveman@chromium.org, senorblanco@chromium.org BUG=310796 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=234641 Review URL: https://codereview.chromium.org/63443003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243268 0039d316-1c4b-4281-b951-d872f2087c98
* replace deprecated SkScalarRound/Floor/Ceil calls with more explicit variantsreed@google.com2014-01-061-1/+1
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/122443005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243175 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Improve worker pool performance by using std:make_heap instead of ↵reveman@chromium.org2014-01-021-26/+30
| | | | | | | | | | | | | | | | | std:priority_queue. This reduces the complexity of building a new "ready to run" queue in WorkerPool::SetTaskGraph() from O(N·log(N)) to O(N). This refactor is also useful for supporting shared worker threads as it makes it easy to reuse the compare function and maintain a heap of ready to run task namespaces. BUG=246546 Review URL: https://codereview.chromium.org/123113002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242833 0039d316-1c4b-4281-b951-d872f2087c98
* Remove some LatencyInfo merging code pathmiletus@chromium.org2014-01-023-9/+9
| | | | | | | | | | | | | | | | | | | 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
* Pass cancelable callback to gpu::ContextSupport::SignalQuery() in GLRenderersergeyu@chromium.org2013-12-261-1/+4
| | | | | | | | | | | | | Previously GLRenderer was creating a CancelableCallback when executing a readback request, but still was passing the non-cancelable closure to gpu::ContextSupport::SignalQuery(). This leads to crashes when GLRendeder is destroyed while there are pending readback requests. R=ccameron@chromium.org Review URL: https://codereview.chromium.org/121333002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242561 0039d316-1c4b-4281-b951-d872f2087c98
* Update uses of Value in android_webview, apps, ash, cc to use the base:: ↵avi@chromium.org2013-12-214-8/+8
| | | | | | | | | | | | namespace. BUG=88666 TEST=no change TBR=ben@chromium.org Review URL: https://codereview.chromium.org/118293005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242292 0039d316-1c4b-4281-b951-d872f2087c98
* Add a new target to build gfx test support files.tfarina@chromium.org2013-12-201-1/+1
| | | | | | | | | | BUG=299841 TEST=cc_unittests, ui_unittests R=ben@chromium.org, danakj@chromium.org Review URL: https://codereview.chromium.org/119473004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242213 0039d316-1c4b-4281-b951-d872f2087c98
* Lock touchscreen flings to the first layer scrolled by the flingjdduke@chromium.org2013-12-203-45/+57
| | | | | | | | | | | | | | | The current conditional fling scroll bubbling logic in LayerTreeHostImpl is less than perfect, and leads to scenarios where fling scrolls continue bubbling after the user would expect. Instead, simply lock the fling scroll updates to the first layer that scrolls after the fling begins. This allows both seamless flings after touch-scrolling across layers and finer control over when such flings terminate. BUG=328217 Review URL: https://codereview.chromium.org/114723005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242186 0039d316-1c4b-4281-b951-d872f2087c98
* Use the GL in process bindings directly in cc_unittestsjamesr@chromium.org2013-12-2013-141/+329
| | | | | | | | | | | This binds cc_unittests to the GL in process command buffer bindings directly instead of relying on the setup in webkit/common/gpu. BUG=181120 Review URL: https://codereview.chromium.org/105303003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242005 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "cc: Added tile bundles"vmpstr@chromium.org2013-12-2029-1633/+528
| | | | | | | | | | | | | | | This reverts commit 24835e9056711da23091ce0116e7ca41d1bdf279. Revert "cc: Reset tiling size upon destruction." This reverts commit 86b1819ea0f9e1ff666b89835957ab1ad68ef706. BUG=329682 R=enne Review URL: https://codereview.chromium.org/98113005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241994 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Defer first OutputSurface creation until client is readysievers@google.com2013-12-1912-93/+164
| | | | | | | | | | | | | | | | Remove the |first_output_surface| which was not used before the client signals ready. This allows the client to wait before creating a graphics context until the gpu thread and client channel are set up. BUG=270179,329739 R=danakj@chromium.org, jamesr@chromium.org, jochen@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=238458 Review URL: https://codereview.chromium.org/85693007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241897 0039d316-1c4b-4281-b951-d872f2087c98
* Increase the minimum GPU memory limit on Macccameron@chromium.org2013-12-191-3/+7
| | | | | | | | | | | | | | | | | | | | | | Increase the minimum GPU memory limit for a renderer from 64MB to 128MB. The Mac's memory policy will not actually use the full amount of memory, unless the page requires that much to render content on the screen (in which case, jank due to paging is better than missing content). Make the prioritized resource manager more aggressively free unused textures when the memory policy indicates that GPU memory should be used sparingly. Without this change, the amount of memory spent holding on to spare textures to recycle would double. Move the definition of the priority cutoff to the same location as all other platform dependent variables. BUG=318877 Review URL: https://codereview.chromium.org/98073011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241769 0039d316-1c4b-4281-b951-d872f2087c98
* Move geometric types to a separate, more lightweight target.ben@chromium.org2013-12-182-0/+4
| | | | | | | | | R=sky@chromium.org http://crbug.com/327489 Review URL: https://codereview.chromium.org/109433013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241649 0039d316-1c4b-4281-b951-d872f2087c98
* Update ETC1PixelRef to use new SkPixelRef constructor.halcanary@google.com2013-12-183-18/+8
| | | | | | | | | | | This change was missed in commit 8a945ed4 / codereview 108273004 / svn @239832. BUG= Review URL: https://codereview.chromium.org/116573004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241647 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Simplify raster task completion notification logicskyostil@chromium.org2013-12-182-1/+11
| | | | | | | | | | | | | | | | Previously the pixel buffer raster worker pool used a combination of polling and explicit notifications from the raster worker pool to decide when to tell the client about the completion of 1) all tasks or 2) the subset of tasks required for activation. This patch simplifies the logic by only triggering the notification based on the OnRasterTasksFinished and OnRasterTasksRequiredForActivationFinished calls from the worker pool. BUG=307841 Review URL: https://codereview.chromium.org/99873007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241569 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Clear delegated layer's current resources when deleting childsievers@google.com2013-12-172-0/+82
| | | | | | | | | | | | | | This fixes a crash in ResourceProvider::DeclareUsedResourcesFromChild() when we set invalid frame and try to reuse the last frame's resources in DelegatedRendererLayerImpl::SetFrameData(), but those were actually lost. BUG=270179 R=danakj@chromium.org, piman@chromium.org Review URL: https://codereview.chromium.org/108663006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241368 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Prevent infinite calls of advance_commit_state_timer_ timer.qsr@chromium.org2013-12-171-6/+14
| | | | | | | | | | | | advance_commit_state_timer_ should only run when the scheduler is waiting for the commit state, so disable the timer in ProcessScheduledActions if it is not the right state. BUG=328326 Review URL: https://codereview.chromium.org/115373002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241229 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use 1024x1024 tiles for gpu rasterized layers.ernstm@chromium.org2013-12-175-10/+68
| | | | | | | | | R=nduca@chromium.org, enne@chromium.org BUG=325475 Review URL: https://codereview.chromium.org/112263002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241199 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Fix incorrect RecalculateRasterScale edge casesenne@chromium.org2013-12-173-2/+53
| | | | | | | | | | | | | | | | | | | | In certain cases, RecalculateRasterScales could pick an incorrect raster content scale during pinch: (1) If the layer is created during pinch, the raster content scale is initially zero and so creating additional scales relative to zero is not meaningful. Instead, initialize to the ideal to start with. (2) Every layer has a minimum content scale (based on its bounds). It never makes sense to create a tiling at a scale lower than this scale (as it will cause one texture dimension to be <1), and so clamp scales to that value. BUG=276988 Review URL: https://codereview.chromium.org/114293005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241145 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use Skia information about whether pictures have bitmapsenne@chromium.org2013-12-173-1/+6
| | | | | | | | | | | This information allows us to early out of functions around gathering and iterating through pixel refs. BUG=316196 Review URL: https://codereview.chromium.org/115273003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241103 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Stop needlessly converting rect/rectf in update tile prioritiesvmpstr@chromium.org2013-12-141-1/+1
| | | | | | | | | | | | | This patch ensures that view_rect is rectf to begin with, since all of the places in that file that use it convert it to rectf implicitly BUG=326991 R=danakj Review URL: https://codereview.chromium.org/106763006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240840 0039d316-1c4b-4281-b951-d872f2087c98
* Implicitly ensure backbuffer creation on drawjamesr@chromium.org2013-12-132-6/+0
| | | | | | | | | | | | Instead of having a special IPC channel to ensure a backbuffer is allocated for a given GL context, we can create it implicitly on the first draw attempt into FBO 0. If this fails, the context is considered lost. BUG=181120 Review URL: https://codereview.chromium.org/112303002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240797 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Reset tiling size upon destruction.vmpstr@chromium.org2013-12-132-0/+46
| | | | | | | | | | | | | | | | | | | | | Since bundles are shared, if at any point a tiling is deleted, we have to make sure we clear the tiles on the current tree for that tiling. If we don't, we can run into a situation where a tiling is deleted (and still exists on the twin at the same scale), then when we sync we create a new tiling with bundles coming from the twin. However, since the new tiling bounds are initially empty, we try to create all the tiles in the interest rect. Since the tiling already existed on the twin, it might already have the tiles on the current tree. BUG=328044 R=enne Review URL: https://codereview.chromium.org/103693007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240744 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Layer::PushPropertiesTo perf testvmpstr@chromium.org2013-12-132-0/+121
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds a push properties to perf test. Sample run on z620: $ ./out/Release/cc_perftests --gtest_filter="LayerPerf*" Note: Google Test filter = LayerPerf* [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. [----------] 1 test from LayerPerfTest [ RUN ] LayerPerfTest.PushPropertiesTo *RESULT push_properties_to: props_changed= 4428753.5 runs/s *RESULT push_properties_to: props_didnt_change= 6691176.5 runs/s [ OK ] LayerPerfTest.PushPropertiesTo (6001 ms) [----------] 1 test from LayerPerfTest (6001 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. (6001 ms total) [ PASSED ] 1 test. R=enne, danakj Review URL: https://codereview.chromium.org/110453003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240617 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Only use advance_commit_state_timer_ when a commit is pendingbrianderson@chromium.org2013-12-131-14/+16
| | | | | | | | BUG=327198 Review URL: https://codereview.chromium.org/108183004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240599 0039d316-1c4b-4281-b951-d872f2087c98
* Add GL entry points for DiscardBackbufferCHROMIUMjamesr@chromium.org2013-12-132-5/+2
| | | | | | | | | | | | This adds and uses a GL command buffer command for DiscardBackbufferCHROMIUM instead of having a WebGraphicsContext3D entry point + common/ IPC message. This is used to deallocate, if possible, the backbuffer when no longer in use. BUG=181120 Review URL: https://codereview.chromium.org/104823005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240583 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Include analysis in raster benchmark costsenne@chromium.org2013-12-138-16/+60
| | | | | | | | | | | | | | | | | | Insert analysis costs into the raster benchmark. This will make it possible to combine analysis and raster into a single step and be confident that it will not regress the total costs of rastering a tile. ATTN perf sheriffs: this will regress benchmarks because it is doing more work, but it is a more accurate representation of the work that gets done per unit of raster work. This should be treated as a "perf rebaseline" and not as a regression. R=vmpstr@chromium.org BUG=none Review URL: https://codereview.chromium.org/74713006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240540 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Prevent use after free of LayerImpl that had a copy request.danakj@chromium.org2013-12-123-14/+85
| | | | | | | | | | | | | | | | LayerImpls register themselves on the LayerTreeImpl when they have a copy request, but they were failing to unregister when they were destroyed before doing the copy. This left them in the list, causing us to try take the copy requests off a destroyed layer. Tests: LayerTreeHostCopyRequestTestDestroyBeforeCopy R=enne@chromium.org, piman@chromium.org, enne, piman BUG=309777,326617 Review URL: https://codereview.chromium.org/100163005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240491 0039d316-1c4b-4281-b951-d872f2087c98
* use SkImageInfo parameter for SkPixelRef constructorreed@google.com2013-12-122-10/+16
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/102063005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240426 0039d316-1c4b-4281-b951-d872f2087c98
* Split the hole punching logic from GOOGLE_TV #ifdef into VIDEO_HOLEqinmin@chromium.org2013-12-123-12/+12
| | | | | | | | | | | | This CL splits the hole punching logic into another ifdef, so that the code can be reused by different parties and can be easily managed See discussion: https://groups.google.com/a/google.com/forum/#!topic/chrome-gpu/eIM1RwarUmk BUG=323157 Review URL: https://codereview.chromium.org/110683002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240365 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Don't cancel poll_for_draw_triggers_closure_ too early.brianderson@chromium.org2013-12-127-15/+35
| | | | | | | | | | | | | | | | Previously, the second poll event would always get canceled before it has a chance to be run. Existing tests have been modified to abort multiple commits in a row. Although these don't fail without this patch, they are only passing because of distant side-effects that happen to result in a third poll event being scheduled. BUG=327859 Review URL: https://codereview.chromium.org/102643009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240336 0039d316-1c4b-4281-b951-d872f2087c98
* Remove WebGraphicsContext3D references from cc/layersjamesr@chromium.org2013-12-116-17/+24
| | | | | | | | BUG=181120 Review URL: https://codereview.chromium.org/109853002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240200 0039d316-1c4b-4281-b951-d872f2087c98
* Convert cc::GeometryBinding over to GLES2Interfacejamesr@chromium.org2013-12-113-82/+81
| | | | | | | | BUG=181120 Review URL: https://codereview.chromium.org/108353007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240076 0039d316-1c4b-4281-b951-d872f2087c98
* Convert cc resource system over to GLES2Interfacejamesr@chromium.org2013-12-1112-539/+704
| | | | | | | | BUG=181120 Review URL: https://codereview.chromium.org/105103004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240074 0039d316-1c4b-4281-b951-d872f2087c98
* Use GLES2Interface in GLRendererjamesr@chromium.org2013-12-114-512/+665
| | | | | | | | | | | | | | | | | | | | This ports GLRenderer to (almost) exclusively use GLES2Interface as the context type instead of WebGraphicsContext3D. The remaining users within gl_renderer.cc are being addressed in parallel patches. Many callers outside of gl_renderer.cc still use the WebGraphicsContext3D type, so GLRenderer still exposes a pointer of that type. They'll be migrated piece by piece. Since this patch changes the line length of many lines due to changing the context pointer type from "context_" to "gl_" and changing the length of some of the context functions, I've clang-format'd the whole file. BUG=181120 R=danakj@chromium.org Review URL: https://codereview.chromium.org/105553003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240041 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Unifies LayerTreeHost::SetNeedsUpdateLayers and SetNeedsAnimate"loislo@chromium.org2013-12-1113-58/+81
| | | | | | | | | | | | | | | This reverts commit 807f55ecb7ece39b25866405125d7e58b4bad9f2. It broke 33 layout tests. http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Blink&tests=compositing/clip-change.html,compositing/geometry/foreground-offset-change.html,compositing/iframes/fixed-position-iframe.html,compositing/iframes/repaint-after-losing-scrollbars.html,compositing/iframes/scroll-grandchild-iframe.html,compositing/img-layer-grow.html,compositing/layer-creation/fixed-position-scroll.html,compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html,compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html,compositing/overflow/repaint-after-losing-scrollbars.html,compositing/repaint/newly-composited-on-scroll.html,compositing/repaint/newly-composited-repaint-rect.html,compositing/repaint/page-scale-repaint.html,compositing/repaint/requires-backing-repaint.html,compositing/repaint/shrink-layer.html,compositing/rtl/rtl-overflow-invalidation.html,compositing/video-frame-size-change.html,css3/filters/filter-change-repaint-composited.html,css3/filters/filter-change-repaint.html,css3/filters/filter-repaint-composited-fallback-crash.html,css3/filters/filter-repaint-composited-fallback.html,fast/canvas/webgl/webgl-composite-modes-repaint.html,fast/repaint/block-selection-gap-in-composited-layer.html,fast/sub-pixel/transformed-iframe-copy-on-scroll.html,virtual/gpu/compositedscrolling/overflow/do-not-paint-outline-into-composited-scrolling-contents.html,virtual/gpu/compositedscrolling/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html,virtual/gpu/compositedscrolling/overflow/repaint-after-losing-scrollbars.html,virtual/gpu/fast/canvas/canvas-composite-fill-repaint.html,virtual/gpu/fast/canvas/canvas-incremental-repaint-2.html,virtual/gpu/fast/canvas/canvas-incremental-repaint.html,virtual/gpu/fast/canvas/canvas-resize-after-paint-without-layout.html,virtual/gpu/fast/canvas/setWidthResetAfterForcedRender.html,virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html BUG=none TBR=trchen@chromium.org Review URL: https://codereview.chromium.org/111893011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240038 0039d316-1c4b-4281-b951-d872f2087c98
* Unifies LayerTreeHost::SetNeedsUpdateLayers and SetNeedsAnimatetrchen@chromium.org2013-12-1113-81/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [2/2] Unifies LayerTreeHost::SetNeedsUpdateLayers and SetNeedsAnimate They basically do the same thing except that SetNeedsAnimate makes the next commit non-cancellable. However there is really no reason why SetNeedsAnimate need to enforce a commit even if no tiles are updated and no layer properties changed. SetNeedsAnimate is thus merged into SetNeedsUpdateLayers. The proper use of it is when there are potential layout/tile changes, we can use it to defer calculation until the next frame. A commit will be scheduled but can be cancelled if no updates are needed after calculation. This part of the patch changes code behavior slightly. SingleThreadProxy::SetNeedsUpdateLayers was originally implemented as RenderWidget::ScheduleComposite but now it is RenderWidget::ScheduleAnimation. ThreadProxy::SetNeedsAnimate was non-cancellable but is now cancellable. [1/2] Cleanup RenderWidget::scheduleComposite/scheduleAnimation scheduleComposite has been renamed to ScheduleComposite as it is no longer a part of WebWidgetClient API. scheduleAnimation has been renamed to ScheduleAnimation. The semantics is to schedule a composite and also (potentially) animating WebWidget. A new WebWidgetClient API scheduleUpdate has been added, to replace the old scheduleAnimation. The semantics is to notify the embedder that something in the WebWidget may change in 0 seconds. (i.e. it is allowed to be called during a redraw, in such case another redraw will be scheduled after frame delay. This part of the patch should not change code behavior. BUG=316929 R=danakj,jamesr,piman Review URL: https://codereview.chromium.org/68893031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240008 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Use a rectf manhattan distance for update tile prioritiesvmpstr@chromium.org2013-12-111-6/+6
| | | | | | | | | | | | In order to not regress performance when switching to an int version of manhattan distance, we should use rectf version. BUG=326991 R=enne Review URL: https://codereview.chromium.org/107713005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239961 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Make BrowserCompositorInvalidateLayerTreePerfTest change mailbox.danakj@chromium.org2013-12-111-0/+8
| | | | | | | | | | | | | | | | | | | The BrowserCompositorInvalidateLayerTreePerfTest test is meant to simulate a renderer scrolling (ie changing its contents constantly) from the perspective of the browser, by updating a texture mailbox continuously. However, it seems to not be doing so any more. This has the test contiunously SetNeedsCommit() and changes the mailbox on each commit as intended. Depends on https://codereview.chromium.org/107243002/ R=clholgat@chromium.org, enne, powei@chromium.org BUG= Review URL: https://codereview.chromium.org/107523003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239959 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove dead function declarationenne@chromium.org2013-12-101-2/+0
| | | | | | | | | R=jamesr@chromium.org BUG=none Review URL: https://codereview.chromium.org/110873005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239911 0039d316-1c4b-4281-b951-d872f2087c98
* Removed unnecessary forward declarations.alokp@chromium.org2013-12-101-4/+0
| | | | | | Review URL: https://codereview.chromium.org/109483011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239907 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Add PRESUBMIT rule to ban using cc:: inside of namespace cc {...}danakj@chromium.org2013-12-1054-352/+373
| | | | | | | | | | | | | | | | | | | 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
* cc: Added invalidation frequency for picture pile.vmpstr@chromium.org2013-12-108-34/+232
| | | | | | | | | | | | | | | | This patch keeps track of the invalidation frequency of each of the picture pile grid cells. When the invalidation goes over a certain threshold (0.75) and the grid cell is further than specified amount of pixels from the viewport (512), then the cell is not re-recorded. For a cell that was previously skipped, either frequency dropping below the threshold or it coming closer than 512 pixels will cause it to re-record again. BUG=254320 Review URL: https://codereview.chromium.org/106393003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239893 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Fix cc_perftests DenseBrowerUIpowei@chromium.org2013-12-101-9/+31
| | | | | | | | | | | | | | | Continuation of https://codereview.chromium.org/77453012 EndTest() is called before TextureMailbox gets cleaned up, which causes the test to crash in Debug. This patch adds a clean-up stage to the test where additional commits are queued to clean up the TextureMailbox. Also moved TextureMailbox creation to the main thread. BUG=310218 Review URL: https://codereview.chromium.org/107243002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239867 0039d316-1c4b-4281-b951-d872f2087c98
* Support for drawing a debug border around animated layersavallee@chromium.org2013-12-1010-1/+68
| | | | | | | | | | | | | | | | | | | | | | 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
* Always use the SkPixelRef constructor that takes SkImageInfo, as the older ↵reed@google.com2013-12-103-12/+42
| | | | | | | | | | | | form is DEPRECATED and needs to go away soon (so skia can rely on the info) BUG= Review URL: https://codereview.chromium.org/108273004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239832 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Remove DeviceViewport and DeviceClip from the RendererClientdanakj@chromium.org2013-12-1017-559/+705
| | | | | | | | | | | | | | | | | Now the client only contains a method that is needed to be run on LayerTreeHostImpl, no getters exist. Instead all values are pushed into the renderer. Some cleanups in GLRenderer unittests and the pixel tests has resulted. Since gl_renderer_unittest file changed so dramatically anyway, I did a clang-format on the whole file. R=aelias@chromium.org, enne@chromium.org, enne BUG= Review URL: https://codereview.chromium.org/108653003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239802 0039d316-1c4b-4281-b951-d872f2087c98
* Pipe SwapBuffers call{,backs} through ContextSupportjamesr@chromium.org2013-12-1013-181/+94
| | | | | | | | | | | | | | | | | | This plumbs the SwapBuffers calls and callbacks through the gpu::ContextSupport interface instead of WGC3D. There are two production paths for the callbacks - using Echo and using View IPCs. The former is used everywhere except for single-threaded mac and guest plugin mode. This implements the Echo path directly in GLES2Implementation and leaves the implementation of the non-Echo path in WGC3DCommandBufferImpl. We'll still have to clean that up to avoid having to allocate a WGC3D, but this at least gets rid of the API dependencies from cc. R=piman BUG=181120 Review URL: https://codereview.chromium.org/59233007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239685 0039d316-1c4b-4281-b951-d872f2087c98
* Use bit fields inside cc to reduce memory usage.vivek.vg@samsung.com2013-12-106-59/+57
| | | | | | | | | | | | | | | | | | | | Using bitfields we get the memory usage as follows +-----+---------------------------+------------------------+---------+ |.No..|.Class/Structure/File......|.Size.of.object.(bytes).|.Memory..| |.....|...........................+------------------------+.Reduced.| |.....|...........................|...Before..|...After....|.........| +-----+---------------------------+-----------+------------+---------+ |..1..|.cc::Layer.................|......840..|.....824....|......16.| +-----+---------------------------+-----------+------------+---------+ |..2..|.cc::LayerImpl.............|......880..|.....864....|......16.| +-----+---------------------------+-----------+------------+---------+ |..3..|.cc::RenderSurfaceImpl.....|......408..|.....400....|.......8.| +-----+---------------------------+-----------+------------+---------+ Review URL: https://codereview.chromium.org/102733006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239682 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Allow 'overflow: hidden' layers to be scrolled again.sadrul@chromium.org2013-12-103-20/+7
| | | | | | | | | | | | Disabling scroll of 'overflow: hidden' layers break sites when user zooms in. So allow scrolling such layers until a better fox for panning in zoomed content is available. BUG=322223 R=aelias@chromium.org Review URL: https://codereview.chromium.org/109343003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239675 0039d316-1c4b-4281-b951-d872f2087c98