|
|
Created:
4 years ago by Saman Sami Modified:
4 years ago CC:
chromium-reviews, cc-bugs_chromium.org Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionGetting rid of CompositorFrameMetadata::satisfies_sequences
This CL helps unify the way we destroy surface references.
We currently have two code paths for satisfying a surface sequence.
One is through calling the satisfy callback, and the other one is through
populating satisfies_sequences in CompositorFrameMetadata and letting
Surface::QueueFrame take care of it. Eventually they both do
the same thing: they call SurfaceManager::DidSatisfySequences. This CL
gets rid of satisfies_sequences in CompositorFrameMetadata and from now
on the only way to satisfy a sequence is through the callback. This
is a necessary change because we are phasing out SurfaceSequence and
exposing it in CompositorFrameMetadata is not a good idea.
BUG=659598
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Committed: https://crrev.com/d0de6cf72a25d789a507d6eb904a8f1ae314d00b
Cr-Commit-Position: refs/heads/master@{#439043}
Patch Set 1 #
Total comments: 1
Patch Set 2 : test #Patch Set 3 : windows #Patch Set 4 : remove satisfies_sequences #Patch Set 5 : referenced surfaces #
Total comments: 2
Patch Set 6 : test #
Total comments: 3
Patch Set 7 : x #Patch Set 8 : x #Patch Set 9 : nits #Patch Set 10 : x #Patch Set 11 : x #Patch Set 12 : x #Patch Set 13 : up #Patch Set 14 : x #
Total comments: 2
Patch Set 15 : x #
Total comments: 1
Patch Set 16 : up #Patch Set 17 : x #Messages
Total messages: 120 (98 generated)
Description was changed from ========== Using satisfy callback in SatisfySwapPromise::DidSwap ========== to ========== Using satisfy callback in SatisfySwapPromise::DidSwap CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
The CQ bit was checked by samans@chromium.org to run a CQ dry run
The CQ bit was unchecked by samans@chromium.org
The CQ bit was checked by samans@chromium.org to run a CQ dry run
The CQ bit was unchecked by samans@chromium.org
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Using satisfy callback in SatisfySwapPromise::DidSwap CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Using satisfy callback in SatisfySwapPromise::DidSwap CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
samans@chromium.org changed reviewers: + fsamuel@chromium.org, jbauman@chromium.org
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_...) linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
https://codereview.chromium.org/2537943002/diff/1/cc/layers/surface_layer.cc File cc/layers/surface_layer.cc (right): https://codereview.chromium.org/2537943002/diff/1/cc/layers/surface_layer.cc#... cc/layers/surface_layer.cc:30: satisfy_callback_.Run(sequence_); I think this runs on the compositor thread whereas DidNotSwap runs on main? Not sure.
On 2016/11/30 15:35:28, Fady Samuel wrote: > https://codereview.chromium.org/2537943002/diff/1/cc/layers/surface_layer.cc > File cc/layers/surface_layer.cc (right): > > https://codereview.chromium.org/2537943002/diff/1/cc/layers/surface_layer.cc#... > cc/layers/surface_layer.cc:30: satisfy_callback_.Run(sequence_); > I think this runs on the compositor thread whereas DidNotSwap runs on main? Not > sure. This runs on the compositor thread, but DidNotSwap can run on either thread. This call actually happens before the swap IPC (it needs to be able to modify the frame metadata) so we might need to post a task to do the satisfy after the draw actually happens.
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_...)
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Using satisfy callback in SatisfySwapPromise::DidSwap CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_...)
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences We are transitioning from SurfaceSequences to SurfaceReferences, and this should help. satisfies_sequences was not widely used in the codebase. It was pretty much solely used in SurfaceLayer, and I replaced its usage with a satisfy callback. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences We are transitioning from SurfaceSequences to SurfaceReferences, and this should help. satisfies_sequences was not widely used in the codebase. It was pretty much solely used in SurfaceLayer, and I replaced its usage with a satisfy callback. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences We are transitioning from SurfaceSequences to SurfaceReferences, and this should help. satisfies_sequences was not widely used in the codebase. It was pretty much solely used in SurfaceLayer, and I replaced it with a satisfy callback. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
samans@chromium.org changed reviewers: + danakj@chromium.org, dcheng@chromium.org
samans@chromium.org changed reviewers: - jbauman@chromium.org
@dcheng cc/ipc @danakj everything else in cc/
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_...)
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
samans@chromium.org changed reviewers: + jbauman@chromium.org
https://codereview.chromium.org/2537943002/diff/80001/cc/layers/surface_layer.cc File cc/layers/surface_layer.cc (right): https://codereview.chromium.org/2537943002/diff/80001/cc/layers/surface_layer... cc/layers/surface_layer.cc:23: SurfaceSequence sequence, nit: const SurfaceSequence& sequence
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
ipc lgtm https://codereview.chromium.org/2537943002/diff/80001/cc/layers/surface_layer.cc File cc/layers/surface_layer.cc (right): https://codereview.chromium.org/2537943002/diff/80001/cc/layers/surface_layer... cc/layers/surface_layer.cc:28: main_task_runner_(main_task_runner) {} NIt: std::move() this
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
I'm having a hard time saying if this breaks anything, esp just not calling DidSatisfySequences. I think jbauman should look.
It would be nice to explain in the CL description perhaps why this change is okay. Like I can see that DidSatisfy is called in the satisfy callback which will now be used and wasn't before. But that happens at a different time.. when is it and can u justify that it's as good/better/correct? https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... File cc/layers/surface_layer.cc (right): https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... cc/layers/surface_layer.cc:40: satisfy_callback_.Run(sequence_); I can't help but notice this is running the callback directly without posting it. From what I can tell this works because the only user in the renderer (where the compositor is threaded) is canvas which only sends something over mojo IPC when it runs this callback. But I think you should be consistent here, either both run directly or both post. Perhaps both run directly is fine for now.. https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... cc/layers/surface_layer.cc:127: std::unique_ptr<SatisfySwapPromise> satisfy( can u change this to auto and base::MakeUnique while u'r changing it
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
lgtm if you post to the main thread (don't need to post to the same thread first) in DidNotSwap On 2016/12/08 21:39:19, danakj_OOO_and_slow wrote: > It would be nice to explain in the CL description perhaps why this change is > okay. Like I can see that DidSatisfy is called in the satisfy callback which > will now be used and wasn't before. But that happens at a different time.. when > is it and can u justify that it's as good/better/correct? > > https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... > File cc/layers/surface_layer.cc (right): > > https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... > cc/layers/surface_layer.cc:40: satisfy_callback_.Run(sequence_); > I can't help but notice this is running the callback directly without posting > it. From what I can tell this works because the only user in the renderer (where > the compositor is threaded) is canvas which only sends something over mojo IPC > when it runs this callback. But I think you should be consistent here, either > both run directly or both post. Perhaps both run directly is fine for now.. Yeah, looks like this is actually broken with offscreen canvas, because the mojo interface is bound to the main thread and shouldn't be run from the compositor thread. So we need to change both. > > https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... > cc/layers/surface_layer.cc:127: std::unique_ptr<SatisfySwapPromise> satisfy( > can u change this to auto and base::MakeUnique while u'r changing it
On 2016/12/08 22:14:49, jbauman wrote: > lgtm rs lgtm for ownerythings
https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... File cc/layers/surface_layer.cc (left): https://codereview.chromium.org/2537943002/diff/100001/cc/layers/surface_laye... cc/layers/surface_layer.cc:30: metadata->satisfies_sequences.push_back(sequence_.sequence); DCHECK(main_task_runner_->BelongsToCurrentThread()); would be helpful here to clarify.
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences We are transitioning from SurfaceSequences to SurfaceReferences, and this should help. satisfies_sequences was not widely used in the codebase. It was pretty much solely used in SurfaceLayer, and I replaced it with a satisfy callback. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...)
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_compile_dbg on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_comp...)
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Patchset #12 (id:220001) has been deleted
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...)
Patchset #15 (id:300001) has been deleted
https://codereview.chromium.org/2537943002/diff/280001/cc/layers/surface_laye... File cc/layers/surface_layer.cc (right): https://codereview.chromium.org/2537943002/diff/280001/cc/layers/surface_laye... cc/layers/surface_layer.cc:51: base::ThreadTaskRunnerHandle::Get()->PostTask( Not a huge fan of this, but if jbauman@ is OK with it then so am I.
https://codereview.chromium.org/2537943002/diff/280001/cc/layers/surface_laye... File cc/layers/surface_layer.cc (right): https://codereview.chromium.org/2537943002/diff/280001/cc/layers/surface_laye... cc/layers/surface_layer.cc:51: base::ThreadTaskRunnerHandle::Get()->PostTask( On 2016/12/14 05:03:06, Fady Samuel wrote: > Not a huge fan of this, but if jbauman@ is OK with it then so am I. Hm.. this will ofc wait for a fresh callstack, but it is pretty fragile as it depends on behaviour of unrelated implementation details. It should have a test that verifies that doing a post will run the task after the swap is done on that thread. Another option would be DidSwap => WillSwap (and DidNotSwap => WillNotSwap) and then add a new DidSwap that is actually after. Then its less magical and spelled out with APIs.
On 2016/12/14 16:17:21, danakj_OOO_and_slow wrote: > https://codereview.chromium.org/2537943002/diff/280001/cc/layers/surface_laye... > File cc/layers/surface_layer.cc (right): > > https://codereview.chromium.org/2537943002/diff/280001/cc/layers/surface_laye... > cc/layers/surface_layer.cc:51: base::ThreadTaskRunnerHandle::Get()->PostTask( > On 2016/12/14 05:03:06, Fady Samuel wrote: > > Not a huge fan of this, but if jbauman@ is OK with it then so am I. > > Hm.. this will ofc wait for a fresh callstack, but it is pretty fragile as it > depends on behaviour of unrelated implementation details. It should have a test > that verifies that doing a post will run the task after the swap is done on that > thread. > > Another option would be DidSwap => WillSwap (and DidNotSwap => WillNotSwap) and > then add a new DidSwap that is actually after. Then its less magical and spelled > out with APIs. +1 I like the idea of renaming DidSwap => WillSwap, DidNotSwap => WillNotSwap as a separate mechanical CL first, then introducing DidSwap, and DidNotSwap as necessary in this CL. APIs that do what their names suggest is always a good thing :-)
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. BUG=659598 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ==========
samans@chromium.org changed reviewers: + dtrainor@chromium.org, jam@chromium.org
dtrainor@chromium.org: Please review changes in blimp/ and ui/android jam@chromium.org: Please review changes in content/
blimp/ and ui/android lgtm
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Patchset #15 (id:320001) has been deleted
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
lgtm with nit https://codereview.chromium.org/2537943002/diff/340001/content/browser/render... File content/browser/renderer_host/delegated_frame_host.cc (right): https://codereview.chromium.org/2537943002/diff/340001/content/browser/render... content/browser/renderer_host/delegated_frame_host.cc:55: DCHECK(manager); nit: remove this, it's not necessary. in release builds, it does nothing. in debug builds, the line below will crash immediately which is just as useful of a signal
The CQ bit was checked by samans@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_...)
The CQ bit was checked by samans@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from dcheng@chromium.org, danakj@chromium.org, jbauman@chromium.org, dtrainor@chromium.org, jam@chromium.org Link to the patchset: https://codereview.chromium.org/2537943002/#ps380001 (title: "x")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 380001, "attempt_start_ts": 1481857594115000, "parent_rev": "a722a9d9beb7562596abd8bdeca8167c0aee50ab", "commit_rev": "4f41f96c59ca7b0d3d9c2d41db407335fe9e2103"}
Message was sent while issue was closed.
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. BUG=659598 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. BUG=659598 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2537943002 ==========
Message was sent while issue was closed.
Committed patchset #17 (id:380001)
Message was sent while issue was closed.
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. BUG=659598 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2537943002 ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. BUG=659598 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Committed: https://crrev.com/d0de6cf72a25d789a507d6eb904a8f1ae314d00b Cr-Commit-Position: refs/heads/master@{#439043} ==========
Message was sent while issue was closed.
Patchset 17 (id:??) landed as https://crrev.com/d0de6cf72a25d789a507d6eb904a8f1ae314d00b Cr-Commit-Position: refs/heads/master@{#439043}
Message was sent while issue was closed.
A revert of this CL (patchset #17 id:380001) has been created in https://codereview.chromium.org/2585543003/ by ksakamoto@chromium.org. The reason for reverting is: Suspected cause of ChromiumOS compile failure. https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%... .
Message was sent while issue was closed.
On 2016/12/16 06:54:09, Kunihiko Sakamoto wrote: > A revert of this CL (patchset #17 id:380001) has been created in > https://codereview.chromium.org/2585543003/ by mailto:ksakamoto@chromium.org. > > The reason for reverting is: Suspected cause of ChromiumOS compile failure. > https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%... > . The real culprit was https://codereview.chromium.org/2578893003/. Relanding this.
Message was sent while issue was closed.
On 2016/12/16 08:01:09, Kunihiko Sakamoto wrote: > On 2016/12/16 06:54:09, Kunihiko Sakamoto wrote: > > A revert of this CL (patchset #17 id:380001) has been created in > > https://codereview.chromium.org/2585543003/ by mailto:ksakamoto@chromium.org. > > > > The reason for reverting is: Suspected cause of ChromiumOS compile failure. > > > https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%... > > . > > The real culprit was https://codereview.chromium.org/2578893003/. Relanding > this. Relanded at https://codereview.chromium.org/2583803002/
Message was sent while issue was closed.
Description was changed from ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy references to surfaces. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback which is given to the reference holder, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame do the rest of the work. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way for satisfying a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. BUG=659598 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Committed: https://crrev.com/d0de6cf72a25d789a507d6eb904a8f1ae314d00b Cr-Commit-Position: refs/heads/master@{#439043} ========== to ========== Getting rid of CompositorFrameMetadata::satisfies_sequences This CL helps unify the way we destroy surface references. We currently have two code paths for satisfying a surface sequence. One is through calling the satisfy callback, and the other one is through populating satisfies_sequences in CompositorFrameMetadata and letting Surface::QueueFrame take care of it. Eventually they both do the same thing: they call SurfaceManager::DidSatisfySequences. This CL gets rid of satisfies_sequences in CompositorFrameMetadata and from now on the only way to satisfy a sequence is through the callback. This is a necessary change because we are phasing out SurfaceSequence and exposing it in CompositorFrameMetadata is not a good idea. BUG=659598 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Committed: https://crrev.com/d0de6cf72a25d789a507d6eb904a8f1ae314d00b Cr-Commit-Position: refs/heads/master@{#439043} ========== |