summaryrefslogtreecommitdiffstats
path: root/cc/scheduler
Commit message (Collapse)AuthorAgeFilesLines
* cc: Schedule a late deadline when swap throttled, allow rescheduling.sunnyps2014-12-086-91/+133
| | | | | | | | | | | | | If the renderer is swap throttled, the scheduler should wait until a swap ack and then reschedule the deadline if necessary. This is to avoid cases where we trigger the deadline too early and don't draw in that frame. BUG=437932 Review URL: https://codereview.chromium.org/775893006 Cr-Commit-Position: refs/heads/master@{#307329}
* cc: Fix incorrect deadline for low-latency mode.sunnyps2014-12-051-4/+1
| | | | | | | | | | | The deadline for low-latency mode should be one frame interval off. It was accidentally set to be an immediate deadline. BUG=421923 Review URL: https://codereview.chromium.org/777353003 Cr-Commit-Position: refs/heads/master@{#307065}
* Enable scheduler main thread low latency mode for SingleThreadProxy.weiliangc2014-12-041-2/+1
| | | | | | | | | | In STP, turn on main thread low latency mode. Remove ui::compositor turn on for this mode since it's now duplicated. Remove duplicated unittests since now all test running STP would use this mode. Review URL: https://codereview.chromium.org/778643008 Cr-Commit-Position: refs/heads/master@{#306922}
* Add a new scheduler mode main thread should always be low latency.weiliangc2014-12-036-8/+197
| | | | | | | | | | | | | | In this mode scheduler completes a full cycle of BeginMainFrame, Commit, Activate, and Draw before starts on next cycle. For SingleThreadProxy, this also means that BeginMainFrame and Commit would be atomic action. Add tests in LayerTreeHostTest for single thread non-impl side painting with this mode. BUG=421923 Review URL: https://codereview.chromium.org/695283005 Cr-Commit-Position: refs/heads/master@{#306621}
* cc: Adding creation location to debug BeginFrameArgs objects.mithro2014-12-024-107/+146
| | | | | | | | | | | | | | | | | | | | This allows easy tracing of a BeginFrameArgs object back to the BeginFrameSource that created it. This is very useful as we have multiple BeginFrameSources in the system now. The Primary / Background sources being a perfect example. While location tracking is highly optimised (as it is used in every base::Bind calls) it doubles the size of BeginFrameArgs objects. Hence we only enable location tracking in debug builds. In release builds we make sure to never create the Location objects in the first place, so no extra strings are found in the binary. This can be checked with the strings tool. BUG=346230 DEPS=742683002 Review URL: https://codereview.chromium.org/735723005 Cr-Commit-Position: refs/heads/master@{#306326}
* cc: Prevent retro frames from being discarded too early.sunnyps2014-11-262-33/+169
| | | | | | | | | | | | Retro frames should not be discarded if there's a possibility that they can be drawn. This CL also adds tests for the expiration logic of retro frames. BUG=413484 Review URL: https://codereview.chromium.org/577833002 Cr-Commit-Position: refs/heads/master@{#305873}
* cc: Add SetChildrenNeedBeginFrames() & SendBeginFramesToChildren()simonhong2014-11-216-7/+114
| | | | | | | | | | | | | | This cl is preparation for unified BeginFrame in cc layer. This implements handling of forwarding_begin_frames_to_children in cc. And this forwarding is not yet propagated to content layer. R=brianderson@chromium.org BUG=372086 TEST=cc_unittests Review URL: https://codereview.chromium.org/723713003 Cr-Commit-Position: refs/heads/master@{#305226}
* cc: Small BeginFrameArgs cleanup.mithro2014-11-212-12/+10
| | | | | | | | | | | | | | | | | | * Rename BeginFrameArgs::CreateTyped to BeginFrameArgs::Create and remove other versions. * The other constructors where not used anywhere. * The non-typed version was accidentally being used to create a SYNCHRONOUS BeginFrameArgs. * Fixed testing methods to understand type information. * Create method for converting the type enum to string. BUG=346230 Review URL: https://codereview.chromium.org/742683002 Cr-Commit-Position: refs/heads/master@{#305218}
* cc: Fix flaky LayerTreeHostContextTestLostContextWhileUpdatingResourcesdanakj2014-11-141-1/+2
| | | | | | | | | | | | | Grab the front of the retro frames stack and pop it before calling BeginImplFrame, so we don't try to pop from an empty stack after exiting BeginImplFrame. R=brianderson BUG=384582 Review URL: https://codereview.chromium.org/731653002 Cr-Commit-Position: refs/heads/master@{#304288}
* SetNeedsRedraw directly when updating a visible tile.danakj2014-11-145-158/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes the UpdateVisibleTiles scheduler state, instead if the current set of raster tasks starts with a visible tile, we optimistically call SetNeedsRedraw() at the start of each impl frame to cause us to try and draw. At draw time we UpdateVisibleTiles in the tile manager to collect any completed tasks. To handle other cases, whenever a visible tile is completed, we call SetNeedsRedraw() in addition to setting damage on the layer. Last, when NotifyReadyToDraw() happens, we have a complete frame, so we can stop optimistically calling SetNeedsRedraw() at the start of each impl frame. This allows us to remove the full viewport damage when ending a pinch gesture. This change adds 2 integration unit tests for pinch zoom. The first ensures that when a pinch ends we don't leave blurry tiles on the screen, but update them to ideal. The second ensures we continuously try to draw while we have an incomplete frame. BUG=427423 Review URL: https://codereview.chromium.org/671653005 Cr-Commit-Position: refs/heads/master@{#304147}
* cc: Remove readability/inheritance exception for linter in cc.danakj2014-11-141-6/+6
| | | | | | | | | | | And make cc/ all linter clean. R=enne BUG=422353 Review URL: https://codereview.chromium.org/720323002 Cr-Commit-Position: refs/heads/master@{#304136}
* cc: Introduce forward_begin_frames_to_children and ↵simonhong2014-11-114-50/+83
| | | | | | | | | | | | | | | | | | | | | | use_external_begin_frame_source This flag is added into the LayerTreeSettings and SchedulerSettings. This is a small piece of unified BeginFrame scheduling. forward_begin_frames_to_children will be true when scheduler acts as a BeginFrame publisher for child Scheduler. begin_frame_scheduling_enabled is replaced with use_external_begin_frame_source for more descriptive. Also, same default value to use_external_begin_frame_source is used on LayerTreeSettings and SchedulerSettings for less confusing. This is dependent on https://codereview.chromium.org/619843002/. R=brianderson@chromium.org BUG=372086 Review URL: https://codereview.chromium.org/696413003 Cr-Commit-Position: refs/heads/master@{#303743}
* cc: Make separate interface for BeginFrame ipc from OutputSurfacesimonhong2014-11-115-53/+75
| | | | | | | | | | | | Decouple BeginFrame message from OutputSurface and creates new interface. R=danakj@chromium.org, brianderson@chromium.org, skyostil@chromium.org, piman@chromium.org, boliu@chromium.org BUG=416760 TEST=cc_unittests, content_unittests Review URL: https://codereview.chromium.org/619843002 Cr-Commit-Position: refs/heads/master@{#303715}
* cc: ReadyToDraw notifications.ernstm2014-11-112-0/+6
| | | | | | | | | | | | Send notifications when all visible tiles on the active tree are ready to draw. R=enne@chromium.org,reveman@chromium.org,brianderson@chromium.org,vmpstr@chromium.org BUG=426501 Review URL: https://codereview.chromium.org/672283003 Cr-Commit-Position: refs/heads/master@{#303706}
* Moving background animation ticking from LayerTreeHostImpl into the Scheduler.mithro2014-11-105-20/+16
| | | | | | | | | | | | | | | | Background ticking currently happens in the LayerTreeHostImpl, this makes it very hard to preserve the monotonicity guarantee needed by frame times. http://crrev.com/267783004 set up the scheduler to become the source of background ticks and this CL makes use of that functionality. BUG=345459 Committed: https://crrev.com/4df3c4366015739a7c6b6c1539a8d7c9198e38ef Cr-Commit-Position: refs/heads/master@{#302757} Committed: https://crrev.com/185438b3e5e3f43ce2996da0022f510fbe193a6e Cr-Commit-Position: refs/heads/master@{#303423} Review URL: https://codereview.chromium.org/595973002 Cr-Commit-Position: refs/heads/master@{#303467}
* Revert of Moving background animation ticking from LayerTreeHostImpl into ↵mithro2014-11-105-16/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the Scheduler. (patchset #10 id:480001 of https://codereview.chromium.org/595973002/) Reason for revert: Reverting because it breaks the following interactive_ui_tests; * InterruptedAutoStartEnrollment * LoginUIVisible * PRE_InterruptedAutoStartEnrollment * PRE_LoginUIVisible The failure log is; [27898:27924:1109/213628:FATAL:layer_animation_controller.cc(215)] Check failed: last_tick_time_ != base::TimeTicks(). #0 0x7f92b9beb75e base::debug::StackTrace::StackTrace() #1 0x7f92b9c7ec82 logging::LogMessage::~LogMessage() #2 0x7f92b8cdafc4 cc::LayerAnimationController::UpdateState() #3 0x7f92b8fe9474 cc::LayerTreeHostImpl::UpdateAnimationState() #4 0x7f92b902ecf4 cc::ThreadProxy::DrawSwapInternal() #5 0x7f92b902f542 cc::ThreadProxy::ScheduledActionDrawAndSwapIfPossible() #6 0x7f92b902f59c cc::ThreadProxy::ScheduledActionDrawAndSwapIfPossible() #7 0x7f92b8f83324 cc::Scheduler::DrawAndSwapIfPossible() #8 0x7f92b8f80541 cc::Scheduler::ProcessScheduledActions() #9 0x7f92b8f7f54d cc::Scheduler::OnBeginImplFrameDeadline() Original issue's description: > Moving background animation ticking from LayerTreeHostImpl into the Scheduler. > > Background ticking currently happens in the LayerTreeHostImpl, this makes it very hard to preserve the monotonicity guarantee needed by frame times. http://crrev.com/267783004 set up the scheduler to become the source of background ticks and this CL makes use of that functionality. > > BUG=345459 > > Committed: https://crrev.com/4df3c4366015739a7c6b6c1539a8d7c9198e38ef > Cr-Commit-Position: refs/heads/master@{#302757} > > Committed: https://crrev.com/185438b3e5e3f43ce2996da0022f510fbe193a6e > Cr-Commit-Position: refs/heads/master@{#303423} TBR=danakj@chromium.org,brianderson@chromium.org,skyostil@chromium.org,ajuma@chromium.org NOTREECHECKS=true NOTRY=true BUG=345459 Review URL: https://codereview.chromium.org/713783002 Cr-Commit-Position: refs/heads/master@{#303426}
* Moving background animation ticking from LayerTreeHostImpl into the Scheduler.mithro2014-11-105-20/+16
| | | | | | | | | | | | | Background ticking currently happens in the LayerTreeHostImpl, this makes it very hard to preserve the monotonicity guarantee needed by frame times. http://crrev.com/267783004 set up the scheduler to become the source of background ticks and this CL makes use of that functionality. BUG=345459 Committed: https://crrev.com/4df3c4366015739a7c6b6c1539a8d7c9198e38ef Cr-Commit-Position: refs/heads/master@{#302757} Review URL: https://codereview.chromium.org/595973002 Cr-Commit-Position: refs/heads/master@{#303423}
* Revert of Moving background animation ticking from LayerTreeHostImpl into ↵mithro2014-11-055-16/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the Scheduler. (patchset #9 id:460001 of https://codereview.chromium.org/595973002/) Reason for revert: Reverting because of failure here http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29 Will investigate tomorrow. Original issue's description: > Moving background animation ticking from LayerTreeHostImpl into the Scheduler. > > Background ticking currently happens in the LayerTreeHostImpl, this makes it very hard to preserve the monotonicity guarantee needed by frame times. http://crrev.com/267783004 set up the scheduler to become the source of background ticks and this CL makes use of that functionality. > > BUG=345459 > > Committed: https://crrev.com/4df3c4366015739a7c6b6c1539a8d7c9198e38ef > Cr-Commit-Position: refs/heads/master@{#302757} TBR=danakj@chromium.org,brianderson@chromium.org,skyostil@chromium.org,ajuma@chromium.org NOTREECHECKS=true NOTRY=true BUG=345459 Review URL: https://codereview.chromium.org/698413002 Cr-Commit-Position: refs/heads/master@{#302763}
* Moving background animation ticking from LayerTreeHostImpl into the Scheduler.mithro2014-11-055-20/+16
| | | | | | | | | | Background ticking currently happens in the LayerTreeHostImpl, this makes it very hard to preserve the monotonicity guarantee needed by frame times. http://crrev.com/267783004 set up the scheduler to become the source of background ticks and this CL makes use of that functionality. BUG=345459 Review URL: https://codereview.chromium.org/595973002 Cr-Commit-Position: refs/heads/master@{#302757}
* Making scheduler run ANIMATE after a COMMIT (instead of LayerTreeHostImpl).mithro2014-10-273-1/+52
| | | | | | | | | | | | | | | | This moves the logic from the LayerTreeHostImpl into the scheduler which means only ScheduledActionAnimate now updates animation state. The further extends the work in http://crrev.com/206793003 BUG=346230 Committed: https://crrev.com/7fa5729cf6ac490cc3b257b7eb8093dcd1285e3a Cr-Commit-Position: refs/heads/master@{#298396} Review URL: https://codereview.chromium.org/621823003 Cr-Commit-Position: refs/heads/master@{#301358}
* Standardize usage of virtual/override/final in cc/dcheng2014-10-215-83/+73
| | | | | | | | | BUG=417463 TBR=enne@chromium.org Review URL: https://codereview.chromium.org/645853008 Cr-Commit-Position: refs/heads/master@{#300439}
* Disable scheduler deadline task on battery power in Windowssunnyps2014-10-167-11/+254
| | | | | | | | | | | | | | On windows the timer resolution on battery power is quite low (15 ms). The scheduler should take this into account while posting it's deadline task - otherwise it risks giving way too much time to the main thread which means frame rate is reduced by half in the worst case. BUG=407182 Review URL: https://codereview.chromium.org/554973002 Cr-Commit-Position: refs/heads/master@{#299984}
* cc: Replace > > with >>danakj2014-10-161-1/+1
| | | | | | | | R=enne Review URL: https://codereview.chromium.org/662473003 Cr-Commit-Position: refs/heads/master@{#299809}
* Attempt to fix flaky ChromeOS test timeouts.kustermann2014-10-143-55/+27
| | | | | | | | | | | | | | | | | | | | | | | | | Bisecting the UserAddingScreenTest.ScreenVisibility test timeouts seems to have identified the causing CL. This reverts the causing CL 4c6917e303938f0be7beb244abdfbf4723c2162f -- "cc:: Remove SwapAck throttling from Scheduler." and enables tests again: reverts 497a57a9b9c372cd58e3e1261d79916e4ca247c2 -- "Disable flaky timeout InlineLoginUIBrowserTest.DifferentStorageId on linux" reverts ffc3747adcd49ca0185670dd6bc78078b4721544 -- "Disable WebViewAPITest.AcceptTouchEvents on Linux." reverts efbbf859cec94c1a8d671499d190158fbdce3599 -- "Disabling UserImageManagerTest.SaveUserImageFromProfileImage.". reverts f827c03bbf5971e2f24e32bd90ce4c40f5ee8f1c -- "Disable SharedOptionsTest.ScreenLockPreferencePrimary." reverts 6e402f141ae341c5df18ca81e892089c47fae54f -- "Disable PreferencesTest.MultiProfiles." reverts d65f70589ef04c62678b3e96d674689cbd3fd0c2 -- "Disable NetworkPortalDetectorImplBrowserTest.InSessionDetection." BUG=423332,423094,423077,423053,423015,422998,422868 TBR=orglofch Review URL: https://codereview.chromium.org/655783002 Cr-Commit-Position: refs/heads/master@{#299468}
* Revert of Making scheduler run ANIMATE after a COMMIT (instead of ↵loislo2014-10-143-52/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | LayerTreeHostImpl). (patchset #4 id:50001 of https://codereview.chromium.org/621823003/) Reason for revert: Some sites become "unresponsive" i.e. they work but have no ui changes. and the user need to switch between tabs in order of getting the actual page. Original issue's description: > Making scheduler run ANIMATE after a COMMIT (instead of LayerTreeHostImpl). > > This moves the logic from the LayerTreeHostImpl into the scheduler which means > only ScheduledActionAnimate now updates animation state. > > The further extends the work in http://crrev.com/206793003 > > BUG=346230 > > Committed: https://crrev.com/7fa5729cf6ac490cc3b257b7eb8093dcd1285e3a > Cr-Commit-Position: refs/heads/master@{#298396} TBR=ajuma@chromium.org,skyostil@google.com,brianderson@chromium.org,danakj@chromium.org,skyostil@chromium.org,mithro@mithis.com NOTREECHECKS=true NOTRY=true BUG=346230 Review URL: https://codereview.chromium.org/653013002 Cr-Commit-Position: refs/heads/master@{#299441}
* Make EXPECT_ACTION_UPDATE_STATE failure output easier to understand.mithro2014-10-131-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Changes; ------------------------------------------------------------------------------- Value of: state.NextAction() Actual: 1 Expected: SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT Which is: 8 ------------------------------------------------------------------------------- to ------------------------------------------------------------------------------- Value of: SchedulerStateMachine::ActionToString(state.NextAction()) Actual: "ACTION_NONE" Expected: SchedulerStateMachine::ActionToString( SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT) Which is: "ACTION_DRAW_AND_SWAP_ABORT" ------------------------------------------------------------------------------- BUG=416749 Review URL: https://codereview.chromium.org/639963006 Cr-Commit-Position: refs/heads/master@{#299282}
* Only trace frame sources when explicitly asked.mithro2014-10-091-3/+10
| | | | | | | | | | | Otherwise, tracing disabled-by-default-cc.debug.scheduler ends up saving full layer tree dumps. BUG=420607 Review URL: https://codereview.chromium.org/644643002 Cr-Commit-Position: refs/heads/master@{#298850}
* Make BeginFrameSourceMultiplexer::AsValueInto use (Begin/End)Array tracing ↵mithro2014-10-091-2/+3
| | | | | | | | | | functions. Didn't know these functions existed originally. Review URL: https://codereview.chromium.org/637913004 Cr-Commit-Position: refs/heads/master@{#298849}
* cc:: Remove SwapAck throttling from Scheduler.orglofch2014-10-073-27/+55
| | | | | | | | | | | | | | | | A previous patch applied these changes but was reverted because it appeared to make WebRtcBrowserTest.EstablishAudioVideoCallAndVerifyUnmutingWorks flaky. The test has been marked as flaky for other reasons so adding the change back in. BUG=311213 Review URL: https://codereview.chromium.org/597673008 Cr-Commit-Position: refs/heads/master@{#298502}
* Making scheduler run ANIMATE after a COMMIT (instead of LayerTreeHostImpl).mithro2014-10-073-1/+52
| | | | | | | | | | | | | This moves the logic from the LayerTreeHostImpl into the scheduler which means only ScheduledActionAnimate now updates animation state. The further extends the work in http://crrev.com/206793003 BUG=346230 Review URL: https://codereview.chromium.org/621823003 Cr-Commit-Position: refs/heads/master@{#298396}
* replace OVERRIDE and FINAL with override and final in cc/mostynb2014-10-065-69/+69
| | | | | | | | BUG=417463 Review URL: https://codereview.chromium.org/628443002 Cr-Commit-Position: refs/heads/master@{#298271}
* fix typo of ConvertableToTraceFormatkouhei2014-10-011-1/+1
| | | | | | | | BUG=None Review URL: https://codereview.chromium.org/618963003 Cr-Commit-Position: refs/heads/master@{#297589}
* Refactoring the way begin frame sources inside scheduler work.mithro2014-09-307-352/+1855
| | | | | | | | | | | | | | This change; * Makes non-vsync aligned rendering just another begin frame source. * Makes it easier to add vsync/begin frame stabilisation / filtering in the future. This CL no longer moves background ticking into the scheduler rather than the LayerTreeHostImpl, that will occur in a later CL. BUG=345459 Review URL: https://codereview.chromium.org/267783004 Cr-Commit-Position: refs/heads/master@{#297389}
* cc: Activate when going invisible.vmpstr2014-09-292-7/+46
| | | | | | | | | | | | | | | | | This patch ensures that we always activate when we become invisible. The reason being is that when we come back to being visible again, we don't need to rasterize both active and pending trees. We can just rasterize what used to be the pending tree. Since we set RequiresHighResToDraw on becoming visible, this also ensures that we don't checkerboard on becoming visible. BUG=410000, 417598 R=danakj, enne, brianderson Review URL: https://codereview.chromium.org/605823002 Cr-Commit-Position: refs/heads/master@{#297303}
* cc:: Remove main_frame_before_draw_enabled from scheduler settings.orglofch2014-09-296-152/+11
| | | | | | | | | | | The flag is set on all platforms and adds uneeded complexity to the scheduler. BUG=418368 Review URL: https://codereview.chromium.org/609003002 Cr-Commit-Position: refs/heads/master@{#297217}
* cc: Add trace events to track main thread latency modebrianderson2014-09-272-2/+15
| | | | | | | | | | | | This will make easy to tell when the main thread is in a high latency mode without having to infer based on the surrounding context. BUG=none Review URL: https://codereview.chromium.org/561043002 Cr-Commit-Position: refs/heads/master@{#297110}
* Small adjustment of tracing for discarded retro frames.mithro2014-09-191-7/+13
| | | | | | | | | | | | Changes the trace to output to include; * How much the deadline was missed by. * The full BeginFrameArgs that was dropped. BUG=346230 Review URL: https://codereview.chromium.org/579083002 Cr-Commit-Position: refs/heads/master@{#295631}
* Adding AsValueInto to scheduler.mithro2014-09-174-8/+13
| | | | | | | | | | | Also makes the scheduler state machine output use the scheduler Now() value so the output is identical on every run during tests. BUG=380889 Review URL: https://codereview.chromium.org/576013002 Cr-Commit-Position: refs/heads/master@{#295251}
* New features include;mithro2014-09-103-134/+133
| | | | | | | | | | | | | | | | | | | | * Actually running the tasks in the ordered you asked! * Allow running only pending tasks, all tasks until idle, to a given time or for a given period. * Allow stopping of running tasks on *any* arbitrary condition. No longer will your tasks stop working when someone adds a new task or changes the task order! * Task runner intimately connected to time and controls Now(). Supports both automatic management and manual control. This change makes it possible for the scheduler_unit tests to be 100% deterministic. It also allows them to be more flexible and less brittle. BUG=380889 Review URL: https://codereview.chromium.org/387493002 Cr-Commit-Position: refs/heads/master@{#294059}
* cc: Be less aggressive about scheduling for scroll handlersskyostil2014-09-046-26/+29
| | | | | | | | | | | | | | | | | | | | | | | | A previous patch changed the scheduling policy so that scroll handlers get more of a chance of completing in the same frame as the scroll update ("best effort sync scrolling"). It turns out this went a little too far by fully disabling prefer smoothness mode in the presense of scroll handlers. For instance, this caused us to start synchronously waiting for asynchronous texture upload completion, leading to skipped frames. This patch adjusts the logic so that scroll handlers are still given an opportunity to complete within the same frame (i.e., the deadline isn't triggered early), but the tree activation policy is to prefer existing content over new content. We also rename the smoothness mode in the scheduler to "impl latency takes priority" to make its purpose clearer. BUG=404267 Review URL: https://codereview.chromium.org/522903002 Cr-Commit-Position: refs/heads/master@{#293369}
* cc: Use Scheduler::BeginFrame() in SingleThreadProxysimonhong2014-09-042-22/+16
| | | | | | | | | | | | | | | | | Proxy should use BeginFrame() to request new BeginFrame instead of BeginImplFrame(). The scheduler turns BeginFrames into BeginImplFrames or BeginRetroFrames as necessary to make sure we don't start a new BeginImplFrame before the previous deadline. Some of public methods that are only used by itself moved into the private. R=brianderson@chromium.org BUG=NONE TEST=cc_unittests Review URL: https://codereview.chromium.org/536123002 Cr-Commit-Position: refs/heads/master@{#293259}
* Add more logging to cc scheduler to debug RAF frame loss.zmo2014-09-033-2/+20
| | | | | | | | | | BUG=393331 TEST=bots R=brianderson@chromium.org Review URL: https://codereview.chromium.org/533973002 Cr-Commit-Position: refs/heads/master@{#293046}
* Add a bunch of vlogs to RAF related calls in chrome.zmo2014-08-301-0/+2
| | | | | | | | | | | | | | | This is to figure out which link in RAF is broken to cause flakiness. My current guess is the compositor scheduler issue, and these logs can confirm. BUG=393331 TEST=bots R=kbr@chromium.org TBR=brianderson@chromium.org Review URL: https://codereview.chromium.org/516663004 Cr-Commit-Position: refs/heads/master@{#292735}
* Remove implicit conversions from scoped_refptr to T* in cc/dcheng2014-08-263-6/+6
| | | | | | | | | | | This patch was generated by running the rewrite_scoped_refptr clang tool on a Linux build. BUG=110610 Review URL: https://codereview.chromium.org/502203003 Cr-Commit-Position: refs/heads/master@{#291833}
* cc: Disable all synthetic BeginFrame testsbrianderson@chromium.org2014-08-221-6/+11
| | | | | | | | | | BUG=380889 R=vmpstr Review URL: https://codereview.chromium.org/470803007 Cr-Commit-Position: refs/heads/master@{#291477} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291477 0039d316-1c4b-4281-b951-d872f2087c98
* Make SingleThreadProxy a SchedulerClientenne@chromium.org2014-08-222-20/+22
| | | | | | | | | | | | | | | | | | All compositors that use SingleThreadProxy are left calling composite synchronously and now pass a flag to indicate that this is their intention. This patch doesn't remove synchronous composite, but now makes it mutually exclusive with scheduling. Only cc unittests are exercising this code at this point, although it also unifies a lot of the code for CompositeImmediately with the scheduled path. BUG=329552, 287250 Review URL: https://codereview.chromium.org/134623005 Cr-Commit-Position: refs/heads/master@{#291451} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291451 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Make SingleThreadProxy a SchedulerClient"enne@chromium.org2014-08-132-22/+20
| | | | | | | | | | | | | | This reverts commit r288866 because of crashes. Old patch: https://codereview.chromium.org/134623005/ NOTRY=true TBR=danakj@chromium.org,boliu@chromium.org,piman@chromium.org,ben@chromium.org BUG=402943,403400 Review URL: https://codereview.chromium.org/475483002 Cr-Commit-Position: refs/heads/master@{#289395} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289395 0039d316-1c4b-4281-b951-d872f2087c98
* Fix failing (flaky) LayerTreeHostTestLCDNotification test.danakj@chromium.org2014-08-133-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | This test failed with impl-side painting because PictureLayer did not skip commits caused by invalidating the layer during Update. Meanwhile, this CL has some changes that changed the flaky failures into always-failures. The change is to make the ThreadProxy::CommitPendingForTesting check not only if a main frame is in progress, but also if one will happen in the future. The failure was flaky because the commit would be requested but not happen immediately when impl-side painting was on due to activation (if the machine was suitably loaded at the time). I renamed CommitPendingForTesting to MainFrameWillHappenForTesting because "CommitPending" is a specific notion in the public API of the scheduler and I didn't want to confuse these two. R=ajuma, brianderson, enne BUG=402449, 397120 Review URL: https://codereview.chromium.org/462803002 Cr-Commit-Position: refs/heads/master@{#289165} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289165 0039d316-1c4b-4281-b951-d872f2087c98
* Make SingleThreadProxy a SchedulerClientenne@chromium.org2014-08-123-21/+25
| | | | | | | | | | | | | | | | | This makes ui::Compositor no longer in charge of scheduling commits and draws, deferring it to cc::Scheduler. Other compositors that use SingleThreadProxy are left calling composite synchronously and now pass a flag to indicate that this is their intention. This patch doesn't remove synchronous composite, but now makes it mutually exclusive with scheduling. BUG=329552, 287250 Review URL: https://codereview.chromium.org/134623005 Cr-Commit-Position: refs/heads/master@{#288866} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288866 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Make SingleThreadProxy a SchedulerClient ↵tkent@chromium.org2014-08-073-25/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/134623005/) Reason for revert: Broke some layout tests Original issue's description: > Make SingleThreadProxy a SchedulerClient > > This makes ui::Compositor no longer in charge of > scheduling commits and draws, deferring it to cc::Scheduler. > > Other compositors that use SingleThreadProxy are left calling composite > synchronously and now pass a flag to indicate that this is their > intention. This patch doesn't remove synchronous composite, but now > makes it mutually exclusive with scheduling. > > BUG=329552, 287250 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=287950 NOTRY=true NOTREECHECKS=true TBR=enne@chromium.org Review URL: https://codereview.chromium.org/447133002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287968 0039d316-1c4b-4281-b951-d872f2087c98