summaryrefslogtreecommitdiffstats
path: root/tools/metrics
diff options
context:
space:
mode:
authorvollick@chromium.org <vollick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-16 21:22:51 +0000
committervollick@chromium.org <vollick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-16 21:22:51 +0000
commit05ba53c15fe575acc97b880c76c8848bb293a3d7 (patch)
tree85509b4612c2ab2e479e6f125c177c0c6af54073 /tools/metrics
parentef7e5d6977942d65fad34407eca0ef9fabb9fbef (diff)
downloadchromium_src-05ba53c15fe575acc97b880c76c8848bb293a3d7.zip
chromium_src-05ba53c15fe575acc97b880c76c8848bb293a3d7.tar.gz
chromium_src-05ba53c15fe575acc97b880c76c8848bb293a3d7.tar.bz2
Scroll on main if impl-hit testing isn't guaranteed to be correct
It often happens that we have composited layers with holes. Sometimes we'll try and interact through the hole (we might, say, want to scroll something back there). The cc machinery isn't currently smart enough to figure out exactly what got hit, so when we detect that our hit testing result might be inaccurate we fall back to main thread scrolling. Here are the specifics on how I determine if me might have hit a "holey" occluder. I find two starting layers: 1) The first layer below the viewport point. 2) The first scrolling layer below the viewport point. If we haven't hit an interfering occluder, the first scrolling layer we should reach when we walk up from 1) is 2). If we find some other layer, things have likely gone wonky, so we bail. I've also added stats so that we can track how often we fall back to main thread scrolling because we couldn't figure out what was going on. R=enne@chromium.org BUG=364090 Review URL: https://codereview.chromium.org/238803005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264306 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/metrics')
-rw-r--r--tools/metrics/histograms/histograms.xml18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index edaef6f..dc1d908 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -20948,6 +20948,17 @@ Therefore, the affected-histogram name has to have at least one dot in it.
</summary>
</histogram>
+<histogram name="Renderer4.CompositorScrollHitTestResult"
+ enum="CompositorScrollResult">
+ <owner>vollick@chromium.org</owner>
+ <summary>
+ It's possible for compositor hit testing to determine conclusively that
+ compositor thread scrolling can or cannot be done. It's also possible that
+ the hit testing result is inconclusive. We would like to see the I-don't-
+ know result as little as possible. This histogram tracks the ratios.
+ </summary>
+</histogram>
+
<histogram name="Renderer4.CompositorThreadImplDrawDelay" units="milliseconds">
<owner>wiltzius@chromium.org</owner>
<summary>
@@ -31212,6 +31223,13 @@ Therefore, the affected-histogram name has to have at least one dot in it.
<int value="2" label="Will use composited scrolling"/>
</enum>
+<enum name="CompositorScrollResult" type="int">
+ <int value="0" label="ScrollOnMainThread"/>
+ <int value="1" label="ScrollStarted"/>
+ <int value="2" label="ScrollIgnored"/>
+ <int value="3" label="ScrollUnknown"/>
+</enum>
+
<enum name="CompositorType" type="int">
<int value="0" label="Software compositor"/>
<int value="1" label="GPU compositor"/>