New issue
Advanced search Search tips

Issue 878966 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Cap the number of client-side entries in gpu::ClientFontManager and gpu::ClientTransferCache.

Project Member Reported by khushals...@chromium.org, Aug 29

Issue description

The gpu::ClientFontManager and gpu::ClientTransferCache are 2 users of the discardable handle system that have tracking data structures with caching on the GPU service and tracking for discardable handles mapping to these entries.

Currently the pattern of eviction in these client side data structures is to evict the tracking if locking an entry fails. Since the attempt to lock is only made when an entry is reused, this could potentially grow these tracking structures unbounded. We should have a cap beyond which the client proactively checks whether any entry was deleted to remove it from its tracking.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 31

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/cf33b1b1cff343288c592e42f3154db780b02c4e

commit cf33b1b1cff343288c592e42f3154db780b02c4e
Author: Khushal <khushalsagar@chromium.org>
Date: Fri Aug 31 16:54:18 2018

fonts: Cap the max number of entries in server side glyph cache tracking

The SkStrikeServer maintains a map of SkGlyphCacheState to track the
cache for a strike on the client. This entry is evicted only on a
failure to lock, which means that the map can potentially grow unbounded
if entries are not reused after eviction.

Make sure we check that they are deleted after some limit.

R=herb@google.com

Bug:878966
Change-Id: I4adb06c35661049328f6e0bde52fb1c774d0c29b
Reviewed-on: https://skia-review.googlesource.com/150443
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>

[modify] https://crrev.com/cf33b1b1cff343288c592e42f3154db780b02c4e/src/core/SkRemoteGlyphCache.h
[modify] https://crrev.com/cf33b1b1cff343288c592e42f3154db780b02c4e/src/core/SkRemoteGlyphCache.cpp
[modify] https://crrev.com/cf33b1b1cff343288c592e42f3154db780b02c4e/tests/SkRemoteGlyphCacheTest.cpp

Project Member

Comment 2 by bugdroid1@chromium.org, Aug 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f406bd5cb2a02810305c8d7b67b3cc85ad7c5a55

commit f406bd5cb2a02810305c8d7b67b3cc85ad7c5a55
Author: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Fri Aug 31 19:00:11 2018

Roll src/third_party/skia 7ed0eae0cd13..9951cbf4ca79 (58 commits)

https://skia.googlesource.com/skia.git/+log/7ed0eae0cd13..9951cbf4ca79


git log 7ed0eae0cd13..9951cbf4ca79 --date=short --no-merges --format='%ad %ae %s'
2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms a6687f8b4d51..80e0493eab5f (1 commits)
2018-08-31 mtklein@google.com update CPU feature macros in src/opts
2018-08-31 khushalsagar@chromium.org fonts: Cap the max number of entries in server side glyph cache tracking
2018-08-31 brianosman@google.com Add support for gray + colorspace to SkCodec
2018-08-31 herb@google.com Extract SkGlyphRunListPainter from SkGlyphRun.*
2018-08-31 mtklein@google.com Reland "standardize macro checks in SkRasterPipeline_opts"
2018-08-31 ethannicholas@google.com fixed uninitialized memory use in arithmetic effect
2018-08-31 bsalomon@google.com Make GrSemaphore a GrGpuResource
2018-08-31 mtklein@google.com Revert "standardize macro checks in SkRasterPipeline_opts"
2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms 018002b16a8a..a6687f8b4d51 (1 commits)
2018-08-31 michaelludwig@google.com Refactor 'in uniform' CPP code generation
2018-08-31 fmalita@chromium.org [skottie] SkTArray begone
2018-08-31 benjaminwagner@google.com Move gbr-gl config from GTX1070 to QuadroP400.
2018-08-31 kjlubick@google.com [PathKit] Remove experimental- from package names
2018-08-31 mtklein@google.com update SkPreConfig a little
2018-08-31 mtklein@google.com standardize macro checks in SkRasterPipeline_opts
2018-08-31 csmartdalton@google.com Revert "ccpr: Implement stroking with fine triangle strips"
2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-08-31 kjlubick@google.com [PathKit] Move from experimental to modules
2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-08-31 egdaniel@google.com Add support for switching family queues in vulkan.
2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms b116880ba8e8..018002b16a8a (1 commits)
2018-08-31 mtklein@google.com Revert "update SkPaint size sanity check"
2018-08-31 csmartdalton@google.com ccpr: Implement stroking with fine triangle strips
2018-08-31 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms 5ac66b04c9e3..b116880ba8e8 (1 commits)
2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-08-31 robertphillips@google.com Fix Fuchsia roll
2018-08-31 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-08-31 angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/angle2 1bf963b62929..fd1621076a74 (1 commits)
2018-08-31 swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/swiftshader 62cfbb9c7876..5fb5e817a20d (1 commits)
2018-08-30 swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/swiftshader 4bbff9eb88c1..62cfbb9c7876 (2 commits)
2018-08-30 angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/angle2 44b2c0b1d349..1bf963b62929 (1 commits)
2018-08-30 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-08-30 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-08-30 skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll skia/third_party/skcms 6b324dbdf772..5ac66b04c9e3 (1 commits)
2018-08-30 mtklein@google.com Another manual ANGLE roll
2018-08-30 bungeman@google.com Detect when a FreeType glyph doesn't have a path.
2018-08-30 michaelludwig@google.com Support input color argument to process() function in sksl .fp files
2018-08-30 michaelludwig@google.com Remove GrTextureStripAtlas, textured gradients use independent textures
2018-08-30 swiftshader-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/swiftshader 60f8662dc0ef..4bbff9eb88c1 (1 commits)
2018-08-30 herb@google.com Remove drawPosText from SkDevice
2018-08-30 herb@google.com Reland "Check that mask to path fallback happens"
2018-08-30 angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com Roll third_party/externals/angle2 ddc41208c15f..e1037e9be377 (5 commits)
2018-08-30 michaelludwig@google.com Improve inputColor handling in fragment processor implementations.
2018-08-30 herb@google.com Remove drawPosText from svg
2018-08-30 herb@google.com Remove drawPosText_asPath - more dead code
2018-08-30 kjlubick@google.com [Skottie] Fallback to portable font manager
2018-08-30 hcm@google.com Update Skia milestone to 71
2018-08-30 bsalomon@google.com Some GrSemaphore cleanup
2018-08-30 robertphillips@google.com Suppress addition of changeListeners during DDL recording
2018-08-30 herb@google.com Remove drawPosText support for SkBitmapDevice
2018-08-30 ethannicholas@google.com converted arithmetic FP to new FP structure
2018-08-30 robertphillips@google.com Always force GPU generated masks be top left (take 2)
2018-08-30 caryclark@skia.org remove scaling from pathops
2018-08-30 recipe-roller@chromium.org Roll recipe dependencies (trivial).
2018-08-30 egdaniel@google.com Fix vulkan validation layer ordering.
2018-08-30 mtklein@google.com roll ANGLE w/ GN update
2018-08-30 kjlubick@google.com Add FuzzPathop to oss-fuzz


Created with:
  gclient setdep -r src/third_party/skia@9951cbf4ca79

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:878966, chromium:876767 , chromium:878195 
TBR=stephana@chromium.org

Change-Id: I27daf0f7bd593680846006414e16f44b47182f8d
Reviewed-on: https://chromium-review.googlesource.com/1199688
Reviewed-by: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#588104}
[modify] https://crrev.com/f406bd5cb2a02810305c8d7b67b3cc85ad7c5a55/DEPS

I've landed the fix for these for ClientFontManager. What's remaining is ClientTransferCache.
Project Member

Comment 4 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9cf39c65e0d51d1a1059de77dd32ee0869730253

commit 9cf39c65e0d51d1a1059de77dd32ee0869730253
Author: Khushal <khushalsagar@chromium.org>
Date: Tue Sep 04 17:54:59 2018

gpu: Evict discardable entries from ClientFontManager.

Implement the skia API for checking whether an entry has been deleted on
the service and use it to clear any tracking for discardable handles.

R=ericrk@chromium.org

Bug: 878966
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: If599507c77c747910b3ac0b5a4da1db5a66388d9
Reviewed-on: https://chromium-review.googlesource.com/1196018
Reviewed-by: Eric Karl <ericrk@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588582}
[modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_discardable_manager.cc
[modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_discardable_manager.h
[modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_font_manager.cc
[modify] https://crrev.com/9cf39c65e0d51d1a1059de77dd32ee0869730253/gpu/command_buffer/client/client_font_manager.h

Sign in to add a comment