CommandBufferProxyImpl::flushed_release_flush_id_ can increase in size indefinitely |
|||||||||
Issue descriptionIt looks like the raster worker threads keep doing CommandBufferProxyImpl::OrderingBarrier, which can insert an entry into flushed_release_flush_id_, but for some reason those aren't being cleared out properly. That can cause the size of that datastructure to balloon as Chrome runs for a while.
,
Aug 5 2016
+piman@ I can't see any use of flushed_release_flush_id_ other than updating it. Maybe it isn't really required?
,
Aug 8 2016
It is used in UpdateVerifiedReleases - the map is used to keep track of what we have flushed but not yet verified, so that we can know if we need to do the round trip in IsFenceSyncFlushReceived
,
Aug 9 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c5faeccf26cc5e05407c6375231aef4e736138f9 commit c5faeccf26cc5e05407c6375231aef4e736138f9 Author: jbauman <jbauman@chromium.org> Date: Tue Aug 09 21:50:31 2016 Clear old verified flush IDs when doing OrderingBarrier. If a command buffer generates sync tokens but doesn't validate them (letting a different command buffer in the same stream do that), then its queue of unverified flush ids will grow without bound. It can clear them out with little overhead by checking which ones are verified after every GpuChannelHost::OrderingBarrier call. BUG= 635051 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2222663002 Cr-Commit-Position: refs/heads/master@{#410840} [modify] https://crrev.com/c5faeccf26cc5e05407c6375231aef4e736138f9/gpu/ipc/client/command_buffer_proxy_impl.cc [modify] https://crrev.com/c5faeccf26cc5e05407c6375231aef4e736138f9/gpu/ipc/client/gpu_channel_host.cc [modify] https://crrev.com/c5faeccf26cc5e05407c6375231aef4e736138f9/gpu/ipc/client/gpu_channel_host.h
,
Aug 15 2016
,
Aug 15 2016
Your change meets the bar and is auto-approved for M53 (branch: 2785)
,
Aug 15 2016
Please merge your change by today 5:00 PM PT if possible so we can take it in for next week this release. Thank you.
,
Aug 15 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9987bc7fb26e0807237f31cf33d6b7729714542b commit 9987bc7fb26e0807237f31cf33d6b7729714542b Author: John Bauman <jbauman@chromium.org> Date: Mon Aug 15 21:33:00 2016 Clear old verified flush IDs when doing OrderingBarrier. If a command buffer generates sync tokens but doesn't validate them (letting a different command buffer in the same stream do that), then its queue of unverified flush ids will grow without bound. It can clear them out with little overhead by checking which ones are verified after every GpuChannelHost::OrderingBarrier call. BUG= 635051 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2222663002 Cr-Commit-Position: refs/heads/master@{#410840} (cherry picked from commit c5faeccf26cc5e05407c6375231aef4e736138f9) Review URL: https://codereview.chromium.org/2241253003 . Cr-Commit-Position: refs/branch-heads/2785@{#609} Cr-Branched-From: 68623971be0cfc492a2cb0427d7f478e7b214c24-refs/heads/master@{#403382} [modify] https://crrev.com/9987bc7fb26e0807237f31cf33d6b7729714542b/gpu/ipc/client/command_buffer_proxy_impl.cc [modify] https://crrev.com/9987bc7fb26e0807237f31cf33d6b7729714542b/gpu/ipc/client/gpu_channel_host.cc [modify] https://crrev.com/9987bc7fb26e0807237f31cf33d6b7729714542b/gpu/ipc/client/gpu_channel_host.h
,
Aug 15 2016
,
Sep 7 2016
Still may be broken in some circumstances.
,
Sep 8 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0f79f41c428a89593c81deaf5bbbd952b80195d6 commit 0f79f41c428a89593c81deaf5bbbd952b80195d6 Author: jbauman <jbauman@chromium.org> Date: Thu Sep 08 02:20:33 2016 Validate all flush IDs if the unvalidated list gets too long. The browser process normally never needs to validate sync tokens unless it's returning resources to a renderer, so it's possible the highest verified flush ID will almost never be updated and the list of unvalidated flush IDs will grow indefinitely. Force a validation if that happens to avoid wasting memory. BUG= 635051 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2318933005 Cr-Commit-Position: refs/heads/master@{#417168} [modify] https://crrev.com/0f79f41c428a89593c81deaf5bbbd952b80195d6/gpu/ipc/client/command_buffer_proxy_impl.cc [modify] https://crrev.com/0f79f41c428a89593c81deaf5bbbd952b80195d6/gpu/ipc/client/command_buffer_proxy_impl.h
,
Sep 8 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0f79f41c428a89593c81deaf5bbbd952b80195d6 commit 0f79f41c428a89593c81deaf5bbbd952b80195d6 Author: jbauman <jbauman@chromium.org> Date: Thu Sep 08 02:20:33 2016 Validate all flush IDs if the unvalidated list gets too long. The browser process normally never needs to validate sync tokens unless it's returning resources to a renderer, so it's possible the highest verified flush ID will almost never be updated and the list of unvalidated flush IDs will grow indefinitely. Force a validation if that happens to avoid wasting memory. BUG= 635051 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2318933005 Cr-Commit-Position: refs/heads/master@{#417168} [modify] https://crrev.com/0f79f41c428a89593c81deaf5bbbd952b80195d6/gpu/ipc/client/command_buffer_proxy_impl.cc [modify] https://crrev.com/0f79f41c428a89593c81deaf5bbbd952b80195d6/gpu/ipc/client/command_buffer_proxy_impl.h
,
Sep 15 2016
|
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by jbau...@chromium.org
, Aug 5 2016