Issue metadata
Sign in to add a comment
|
13.6% regression in angle_perftests at 541975:542049 |
||||||||||||||||||||||
Issue descriptionSee the link to graphs below.
,
Mar 10 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/1685c6da440000
,
Mar 10 2018
,
Mar 11 2018
📍 Found a significant difference after 1 commit. https://pinpoint-dot-chromeperf.appspot.com/job/1685c6da440000 Roll src/third_party/angle/ 19fa1c6f8..e8a93c6ed (3 commits) by angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com https://chromium.googlesource.com/chromium/src/+/bdb3104733f57f58963321f20e079bea4eab8cb4 Understanding performance regressions: http://g.co/ChromePerformanceRegressions
,
Mar 12 2018
James, I think this is probably related to your buffer binding changes. Can you investigate?
,
Mar 12 2018
Also filed issue 820977 about the pinpoint job not recursing into third_party/angle.
,
Mar 13 2018
Looks like the major reason for the slowdown in Bindings_gl_100_objects_allocated_every_iteration is that I added the three loops here: https://cs.chromium.org/chromium/src/third_party/angle/src/libANGLE/State.cpp?l=1448&rcl=64e5ed2abd8a4cc77d3647e4b245db57a8c42ae5 Before, we weren't checking those binding points when detaching buffers. For the other tests, it's simply the overhead of doing more refcounting, which these microbenchmarks exercise a lot. For WebGL it's necessary for spec compliance. If you think it's necessary I can add some checks to see whether it's a WebGL context or not before doing the refcounting.
,
Mar 13 2018
Maybe you could add an early out if the ref count == 0? It should be this in many cases where the app deletes an unbound buffer.
,
Mar 13 2018
The following revision refers to this bug: https://chromium.googlesource.com/angle/angle/+/4d9d483936e6e845f24e851d1cf288bb37bfaf1c commit 4d9d483936e6e845f24e851d1cf288bb37bfaf1c Author: James Darpinian <jdarpinian@chromium.org> Date: Tue Mar 13 22:34:45 2018 Optimize buffer deletion by returning early if buffer is not bound. This improves angle_perftests bindings_gl_100_objects_allocated_every_iteration by over 30%. Bug: 820723 Change-Id: Icfaa0f54f7c61db6475948e3a95296f37ab4f7dc Reviewed-on: https://chromium-review.googlesource.com/961302 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> [modify] https://crrev.com/4d9d483936e6e845f24e851d1cf288bb37bfaf1c/src/libANGLE/Buffer.cpp [modify] https://crrev.com/4d9d483936e6e845f24e851d1cf288bb37bfaf1c/src/libANGLE/State.cpp [modify] https://crrev.com/4d9d483936e6e845f24e851d1cf288bb37bfaf1c/src/libANGLE/Context.cpp [modify] https://crrev.com/4d9d483936e6e845f24e851d1cf288bb37bfaf1c/src/libANGLE/State.h [modify] https://crrev.com/4d9d483936e6e845f24e851d1cf288bb37bfaf1c/src/libANGLE/Buffer.h [modify] https://crrev.com/4d9d483936e6e845f24e851d1cf288bb37bfaf1c/src/libANGLE/Context.h
,
Mar 13 2018
,
Mar 14 2018
Can confirm graph has recovered: https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICQ0uOw5AgM |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by 42576172...@developer.gserviceaccount.com
, Mar 10 2018