blob: 82ec6ee00e82504e6d2ce50abdcc66159da092e7 [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of GPU histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please send CLs to chromium-metrics-reviews@google.com rather than to specific
individuals. These CLs will be automatically reassigned to a reviewer within
about 5 minutes. This approach helps the metrics team to load-balance incoming
reviews. Googlers can read more about this at go/gwsq-gerrit.
-->
<histogram-configuration>
<histograms>
<histogram name="GPU.AcceleratedSurfaceRefreshRate" units="hz"
expires_after="M97">
<owner>vmiura@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Refresh rate of the display in Hz. This is recorded every time we present a
frame.
</summary>
</histogram>
<histogram name="GPU.ANGLE.Buffer11CPUMemoryMB" units="MB"
expires_after="2020-05-10">
<owner>cwallez@chromium.org</owner>
<summary>
The sum of the size of the CPU-side memory allocations of Buffer11's copies
(vs. GPU memory allocations). These allocations are used when modifying the
buffer data on the CPU or when transfering to GPU memory via DMA.
</summary>
</histogram>
<histogram name="GPU.ANGLE.D3D11CreateDeviceError" enum="Hresult"
expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
An extended Windows error code returned from D3D11CreateDevice on error when
ANGLE's D3D backend is in use. Can be almost any valid HRESULT or DXGI error
code, which are listed at
https://msdn.microsoft.com/en-us/library/windows/desktop/bb509553.aspx.
</summary>
</histogram>
<histogram name="GPU.ANGLE.D3D11FeatureLevel" enum="D3DFeatureLevel"
expires_after="2022-01-02">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The maxmium supported (or currently requested) Direct3D feature level in
D3D11 ANGLE. We support as low as 9.3, and as high as 11.1, though Chrome
should only use 10.0+ for D3D11. Gives an indication of how new a user's
video card is, what features it supports, and it's general speed tier.
Recorded on D3D device initialization, loss, or reset when ANGLE's D3D
backend is in use.
</summary>
</histogram>
<histogram name="GPU.ANGLE.D3D11InitializeResult" enum="D3D11InitializeResult"
expires_after="2022-01-02">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The result from initializing a D3D11 device in ANGLE. Can be success, or one
of several error codes which indicate different reasons for failing.
Recorded on D3D11 device initialization when ANGLE's D3D backend is in use.
</summary>
</histogram>
<histogram name="GPU.ANGLE.D3D9InitializeResult" enum="D3D9InitializeResult"
expires_after="2021-10-31">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The result from initializing a D3D9 device in ANGLE. Can be success, or one
of several error codes which indicate different reasons for failing.
Recorded on D3D9 device initialization when ANGLE's D3D backend is in use.
</summary>
</histogram>
<histogram name="GPU.ANGLE.D3DCompileMS" units="ms" expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The time ANGLE spends calling the D3D shader compiler. Tracks total time we
spend compiling shaders on startup and during Chrome's lifetime. Recorded on
D3D shader compilation when ANGLE's D3D backend is in use.
</summary>
</histogram>
<histogram name="GPU.ANGLE.DisplayInitializeMS" units="ms"
expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
Time ANGLE spends in eglInitialize, where it spins up a Renderer. This can
gives us insight into how much time we're spending initializing the GPU.
</summary>
</histogram>
<histogram name="GPU.ANGLE.ProgramCache.BinaryCacheHitTimeUS"
units="microseconds" expires_after="M85">
<owner>jmadill@chromium.org</owner>
<summary>
The time to load a gpu program from the program cache.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="GPU.ANGLE.ProgramCache.BinaryCacheMissTimeUS"
units="microseconds" expires_after="M85">
<owner>jmadill@chromium.org</owner>
<summary>
The time to link a gpu program.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="GPU.ANGLE.ProgramCache.CacheResult"
enum="ANGLEProgramCacheResult" expires_after="M85">
<owner>jmadill@chromium.org</owner>
<summary>
If a successfully linked program was found in the GPU program cache during a
program link call, and if the hit was originally loaded from disk.
</summary>
</histogram>
<histogram name="GPU.ANGLE.ProgramCache.LoadBinarySuccess"
enum="BooleanSuccess" expires_after="2021-08-29">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
Records if the call to load a cached binary was successful. Calls are made
on shader creation and linking. This can legitimately fail if the driver
wants chrome to re-link and re-cache the gpu program.
</summary>
</histogram>
<histogram name="GPU.ANGLE.ProgramCache.ProgramBinarySizeBytes" units="bytes"
expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
Records the size of program binaries loaded into the gpu program cache.
Programs are loaded into the cache upon use in draw and dispatch calls.
</summary>
</histogram>
<histogram name="GPU.ANGLE.SupportsDXGI1_2" enum="BooleanSupported"
expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
Windows computers running Windows 8+, or running Windows 7 with a platform
update, support the newer version of DXGI. This update also indicates the
computer is capable of running Direct3D 11.1 if the hardware supports it.
Recorded on D3D11 device initialization when ANGLE's D3D backend is in use.
</summary>
</histogram>
<histogram name="GPU.AppContainer.EnableState"
enum="GPUAppContainerEnableState" expires_after="2020-07-31">
<owner>forshaw@chromium.org</owner>
<owner>wfh@chromium.org</owner>
<summary>
On Windows 10 version RS1 and above the GPU can be sandboxed using an
AppContainer. This is recorded every time the GPU sandbox is initialized and
enabling the AppContainer is requested, such as through a command line
option. The recorded value can indicate that the AppContainer was disabled
due to an incompatible configuration or the GPU process had previously
crashed resulting in the AppContainer being forcefully disabled.
</summary>
</histogram>
<histogram name="GPU.AppContainer.Status" enum="LaunchErrorCodes"
expires_after="2020-10-11">
<owner>forshaw@chromium.org</owner>
<owner>wfh@chromium.org</owner>
<summary>
On Windows 10 version RS1 and above the GPU can be sandboxed using an
AppContainer. This indicates the status when initializing the sandbox
profile during process creation.
</summary>
</histogram>
<histogram name="GPU.AtExitSurfaceCount" units="units" expires_after="M77">
<owner>vmiura@chromium.org</owner>
<summary>
The number of surfaces that the GPU process was rendering to right before
exiting. This should be equal to the number of tabs (both visible and
hidden) rendering via the compositor.
</summary>
</histogram>
<histogram name="GPU.BlacklistFeatureTestResults"
enum="GPUBlocklistFeatureTestResults" expires_after="M89">
<obsolete>
Replaced by GPU.BlocklistFeatureTestResults in M89.
</obsolete>
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which a GPU feature is
allowed/blacklisted/disabled.
</summary>
</histogram>
<histogram name="GPU.BlacklistFeatureTestResultsWindows2"
enum="GPUBlocklistFeatureTestResultsWindows2" expires_after="M89">
<obsolete>
Removed in Oct 2020.
</obsolete>
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which a GPU feature is
allowed/blacklisted/disabled in various Windows sub-versions.
</summary>
</histogram>
<histogram name="GPU.BlacklistTestResultsPerDisabledEntry"
enum="GPUBlocklistTestResultPerEntry" expires_after="M85">
<obsolete>
Removed before M86.
</obsolete>
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which a disabled blacklist entry is
matched.
</summary>
</histogram>
<histogram name="GPU.BlacklistTestResultsPerEntry"
enum="GPUBlocklistTestResultPerEntry" expires_after="M89">
<obsolete>
Replaced by GPU.BlocklistTestResultsPerEntry in M89.
</obsolete>
<owner>vmiura@chromium.org</owner>
<summary>
Counts number of browser invocations for which the GPU process is blocked
due to a blocklist entry match.
</summary>
</histogram>
<histogram name="GPU.BlocklistFeatureTestResults"
enum="GPUBlocklistFeatureTestResults" expires_after="2021-12-01">
<owner>vmiura@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Counts number of browser invocations for which a GPU feature is
allowed/blocklisted/disabled.
</summary>
</histogram>
<histogram name="GPU.BlocklistTestResultsPerEntry"
enum="GPUBlocklistTestResultPerEntry" expires_after="2021-12-01">
<owner>vmiura@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Counts number of browser invocations for which the GPU process is blocked
due to a blocklist entry match.
</summary>
</histogram>
<histogram name="GPU.CollectContextGraphicsInfo" units="microseconds"
expires_after="M77">
<owner>vmiura@chromium.org</owner>
<summary>
The time that the GPU process spends collecting driver information during
startup.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="GPU.CompositingMode" enum="CompositingMode"
expires_after="never">
<owner>kylechar@chromium.org</owner>
<summary>
Records what compositing mode (software, GL, etc.) Chrome is using every
five minutes. This is the default compositing mode that most windows will
use. There are some window types (eg. menus on some platforms) that always
use software compositing and ignore the default.
</summary>
</histogram>
<histogram name="GPU.ContextLost" enum="ContextLostReason"
expires_after="2021-12-05">
<owner>sievers@chromium.org</owner>
<summary>
The reason a GPU command buffer context of a given type was lost.
</summary>
</histogram>
<histogram name="GPU.ContextMemory" units="MB" expires_after="2020-09-13">
<obsolete>
Obsoleted since 2020/10/15. Unused and expired. Replaced by
Memory.Gpu.PrivateMemoryFootprint, Memory.GPU.PeakMemoryUsage, and
Memory.GPU.PeakMemoryAllocationSource.
</obsolete>
<owner>ericrk@chromium.org</owner>
<summary>The amount of memory used by a GL Context.</summary>
</histogram>
<histogram name="GPU.D3D11_B8G8R8A8_RenderTargetSupport" enum="BooleanSuccess"
expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>Whether D3D11 supports B8G8R8A8 format for render targets.</summary>
</histogram>
<histogram name="GPU.D3D11_B8G8R8A8_Texture2DSupport" enum="BooleanSuccess"
expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>Whether D3D11 supports B8G8R8A8 format for 2D textures.</summary>
</histogram>
<histogram name="GPU.D3D11FeatureLevel" enum="D3D11FeatureLevel"
expires_after="2021-12-01">
<owner>sadrul@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Records the highest D3D_FEATURE_LEVEL available, collected in the info
collection GPU process, once per UMA ping. This is Windows platform only.
</summary>
</histogram>
<histogram name="GPU.D3D12FeatureLevel" enum="D3D12FeatureLevel"
expires_after="2021-12-01">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The maximum D3D12 feature level supported in the gpu drivers. It is recorded
in the browser process 120 seconds after the browser launch.
</summary>
</histogram>
<histogram name="GPU.D3D12HighestShaderModel" enum="D3DShaderModel"
expires_after="2022-01-07">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The maximum supported D3D shader model version on a D3D12 device. It is
recorded in the browser process 120 seconds after the browser launch.
</summary>
</histogram>
<histogram name="GPU.D3DShaderModel" enum="ShaderModel"
expires_after="2021-08-29">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
ANGLE's currently active D3D shader model version. Logged once every startup
of the GPU process, on Windows only. Note that Shader Models 2 and 3 map to
D3D9 with ANGLE, and 4+ map to D3D11 ANGLE.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.ApprovedPresentDuration" units="ms"
expires_after="2022-01-03">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
If the system approves a swap chain's custom present duration request, this
is the approved custom present duration. If the swap chain's custom present
duration request is not approved, this is zero.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.CompositionMode"
enum="DxgiFramePresentationMode" expires_after="M92">
<obsolete>
Obsoleted after M92. Unused and expired. Replaced by
GPU.DirectComposition.CompositionMode2.VideoOrCanvas.
</obsolete>
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
How the Desktop Window Manager presented Chrome's DirectComposition layers
to the screen.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.CompositionMode.MainBuffer"
enum="DxgiFramePresentationMode" expires_after="M92">
<obsolete>
Obsoleted after M92. Unused and expired. Replaced by
GPU.DirectComposition.CompositionMode2.MainBuffer.FullDamage and
GPU.DirectComposition.CompositionMode2.MainBuffer.PartialDamage.
</obsolete>
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
How the Desktop Window Manager presented Chrome's main DirectComposition
layer to the screen.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.CompositionMode2.MainBuffer.{Damage}"
enum="DxgiFramePresentationMode" expires_after="2021-12-31">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
How the Desktop Window Manager presented Chrome's main DirectComposition
layer to the screen using {Damage}. Only recorded on Windows.
</summary>
<token key="Damage">
<variant name="FullDamage" summary="full damage"/>
<variant name="PartialDamage" summary="partial damage"/>
</token>
</histogram>
<histogram name="GPU.DirectComposition.CompositionMode2.VideoOrCanvas"
enum="DxgiFramePresentationMode" expires_after="2021-12-31">
<owner>sunnyps@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
How the Desktop Window Manager presented Chrome's DirectComposition layers
of video or canvas elements to the screen. Only recorded on Windows.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.CreateSwapChainForComposition"
enum="Hresult" expires_after="2021-10-04">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
HRESULT return value of IDXGIFactory2::CreateSwapChainForComposition.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.CreateVideoProcessorEnumerator"
enum="Hresult" expires_after="2021-07-09">
<obsolete>
Removed 07/09/2021. CreateVideoProcessorEnumerator rarely fails.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
HRESULT return value of ID3D11VideoDevice::CreateVideoProcessorEnumerator in
Direct Composition InitializeVideoProcessor.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.DCLayer.YUVOverlayCount"
units="overlays" expires_after="2021-12-12">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The number of YUV overlays we are going to present in each frame if the
number is not 0. Recorded when the overlay processor is called for drawing a
frame.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.DCLayerResult.Texture"
enum="DCLayerResult" expires_after="2021-12-12">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Recorded for each texture quad (on overlay processing) the reason it was or
wasn't put in an overlay.
</summary>
</histogram>
<histogram base="true" name="GPU.DirectComposition.DCLayerResult.Video"
enum="DCLayerResult" expires_after="2022-02-01">
<!-- Name completed by histogram_suffixes name="GPU.ProtectedVideoType" -->
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Recorded for each quad (on overlay processing) with protected video type the
reason it was or wasn't put in an overlay.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.DcompDeviceCreateSurface" enum="Hresult"
expires_after="2021-10-04">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
HRESULT return value of IDCompositionDevice2::CreateSurface.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.DecodeSwapChainCreationResult"
enum="Hresult" expires_after="M76">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Result of calling CreateDecodeSwapChainForCompositionSurfaceHandle. Recorded
when decode swap chain is created.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.DecodeSwapChainNotUsedReason"
enum="DecodeSwapChainNotUsedReason" expires_after="M76">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The reason decode swap chain wasn't used to present a video frame. Recorded
on each present. See also GPU.DirectComposition.VideoPresentationMode.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.FramesSinceColorSpaceChange"
units="frames" expires_after="2021-06-15">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
How many frames since the last time the layer color format was changed.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.HardwareOverlaysSupported"
enum="BooleanOverlaySupported" expires_after="2021-10-01">
<owner>magchen@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
True if the GPU driver supports hardware overlays. Recorded during Chrome
GPU initialization and each time the overlay caps change.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.IsUnderlay" enum="BooleanUnderlay"
expires_after="2021-11-28">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Recorded for each video quad during the video playback whether it is an
underlay or an overlay
</summary>
</histogram>
<histogram name="GPU.DirectComposition.NumPendingFrames" units="frames"
expires_after="2020-10-11">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Number of presented frames for which presentation queries haven't completed.
Recorded on each vblank.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.OverlayFormatUsed3" enum="DXGI_FORMAT"
expires_after="2021-12-12">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Which overlay format was chosen for YUV overlays. Recorded once per GPU
process launch only if hardware overlays are supported.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.OverlaysSupported"
enum="BooleanOverlaySupported" expires_after="2021-10-04">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>True if Chrome will try to use DirectComposition overlays.</summary>
</histogram>
<histogram name="GPU.DirectComposition.OverlaysUsed" enum="BooleanOverlayUsage"
expires_after="2021-05-26">
<obsolete>
Removed 05/2021. The data has been collected.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>sunnyps@chromium.org</owner>
<summary>
Whether or not a frame displays an overlay. Recorded when
DCLayerTree::CommitAndClearPendingOverlays() is called.
</summary>
</histogram>
<histogram base="true" name="GPU.DirectComposition.SwapChainCreationResult2"
enum="Hresult" expires_after="2019-05-31">
<!-- Name completed by histogram_suffixes name="GPU.DirectComposition.OverlayFormat" -->
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Whether creating swap chain for overlay format succeeded. Recorded once per
swap chain creation.
</summary>
</histogram>
<histogram base="true" name="GPU.DirectComposition.SwapChainCreationResult3"
enum="Hresult" expires_after="2021-10-04">
<!-- Name completed by histogram_suffixes name="GPU.ProtectedVideoType" -->
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Whether creating swap chain for protected video succeeded. Recorded once per
swap chain creation.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.SwapChainFormat3" enum="DXGI_FORMAT"
expires_after="2020-12-31">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
What format was used for each overlay swap chain on each swap buffers.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.UploadVideoImages.CreateCopyTexture"
enum="Hresult" expires_after="2021-07-09">
<obsolete>
Removed 07/09/2021. CreateTexture2D for a copy texture rarely fails.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
HRESULT return value of ID3D11Device::CreateTexture2D in Direct Composition
UploadVideoImages for creating a copy texture.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.UploadVideoImages.CreateStagingTexture"
enum="Hresult" expires_after="2021-07-09">
<obsolete>
Removed 07/09/2021. CreateTexture2D for a staging texture rarely fails.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
HRESULT return value of ID3D11Device::CreateTexture2D in Direct Composition
UploadVideoImages for creating a staging texture.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.VideoDeviceCreateVideoProcessor"
enum="Hresult" expires_after="2021-07-09">
<obsolete>
Removed 07/09/2021. CreateVideoProcessor rarely fails.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
HRESULT return value of ID3D11VideoDevice::CreateVideoProcessor in Direct
Composition InitializeVideoProcessor.
</summary>
</histogram>
<histogram name="GPU.DirectComposition.VideoPresentationMode"
enum="DirectCompositionVideoPresentationMode" expires_after="2022-01-02">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
What code path was used to present a video frame. Recorded on each present.
</summary>
</histogram>
<histogram name="GPU.DoLinkProgramTime" units="ms" expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The time we spend in GLES2DecoderImpl::DoLinkProgram. Related to how much
time we spend compiling shaders during startup.
</summary>
</histogram>
<histogram name="GPU.DriverBugTestResultsPerEntry"
enum="GpuDriverBugWorkaroundEntry" expires_after="never">
<!-- expires-never: For monitoring new driver bugs. -->
<owner>vmiura@chromium.org</owner>
<owner>kbr@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
For every entry in the gpu driver bug list that is hit on a machine, this
records the id. Entry 0 is the total number of times that data is recorded.
It should be recorded whenever new GPU information is received: on startup,
whenever a GPU process launches, and whenever the active GPU changes.
</summary>
</histogram>
<histogram name="GPU.EGLDisplayType" enum="EGLDisplayType"
expires_after="2021-12-01">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>The display type used to ask for an EGLDisplay.</summary>
</histogram>
<histogram name="GPU.EnsureWorkVisibleDuration" units="microseconds"
expires_after="2022-04-01">
<owner>alemate@chromium.org</owner>
<owner>magchen@chromium.org</owner>
<owner>oshima@chromium.org</owner>
<summary>
Records the duration of EnsureWorkVisible GPU call. Since it's blocking UI
thread we want to measure it, and this histogram must be active as long as
this call is still blocking.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution.
</summary>
</histogram>
<histogram name="GPU.EnsureWorkVisibleDurationLowRes" units="ms"
expires_after="2022-04-01">
<owner>alemate@chromium.org</owner>
<owner>magchen@chromium.org</owner>
<owner>oshima@chromium.org</owner>
<summary>
Records the duration of EnsureWorkVisible GPU call. Since it's blocking UI
thread we want to measure it, and this histogram must be active as long as
this call is still blocking.
This is a sister histogram to GPU.EnsureWorkVisibleDuration. The former is
our target goal. However it's custom buckets do not have enough granularity
to measure improvement steps. This metric will instead cap at 5s, and allow
the buckets to give us better visibility into the 15ms-250ms interval
ranges. We will use this one until we improve the blocking call.
</summary>
</histogram>
<histogram name="GPU.Error" enum="GLError" expires_after="2020-06-28">
<owner>zmo@chromium.org</owner>
<owner>vmiura@chromium.org</owner>
<summary>The error states generated by OpenGL calls.</summary>
</histogram>
<histogram name="GPU.FenceSupport" enum="BooleanAvailable" expires_after="M77">
<owner>reveman@chromium.org</owner>
<summary>
Whether GLFence support is available. Recorded each time a new context group
is initialized and extensions are detected.
</summary>
</histogram>
<histogram name="GPU.GLImplementation" enum="GLImplementation"
expires_after="2021-12-05">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Records the OpenGL implementation mode. Recorded during GPU process
initilization.
</summary>
</histogram>
<histogram name="GPU.GpuBlockedBetweenSwapsUs2" units="microseconds"
expires_after="2020-12-01">
<obsolete>
Removed in Nov 2020 (available as local histogram for telemetry runs).
</obsolete>
<owner>vasilyt@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
This metric recorded only with --enable-gpu-blocked-time flag. This is
logged once per frame if the output surface provides timing information. It
measures the time Gpu Main thread was blocked (difference between wall time
and cpu time) during tasks execution for currect frame. Only reported when
there is single surface swap in the same vsync interval. Only reported for
platforms supporting high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.GPUChannelHostWaitTime2" units="ms"
expires_after="2020-11-18">
<obsolete>
Used by GPU watchdog V2 finch. Obsolete since 11/18/2020.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The wait time between the IPC message sent from the GPU channel host and the
event sync from the GPU process. If the wait time takes longer than 120
seconds, 120 seconds will be recoreded.
</summary>
</histogram>
<histogram name="GPU.GPUChannelHostWaitTime3" units="microseconds"
expires_after="2021-12-01">
<obsolete>
No longer used as of Jun 2021.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The wait time between the IPC message sent from the GPU channel host and the
event sync from the GPU process. This is the time the browser UI thread
spends blocked. Recorded only for users with high-resolution clocks.
</summary>
</histogram>
<histogram name="GPU.GpuCount" units="gpus" expires_after="2021-12-01">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
The number of GPUs a device has, excluding software renderers. Recorded when
GPU process launches and sends GPUInfo to browser process.
</summary>
</histogram>
<histogram name="GPU.GPUInitializationTime.V2" units="ms"
expires_after="2020-12-15">
<obsolete>
Removed 12/2020. Moved to GPU.GPUInitializationTime.V3.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The time between the GPU process starts and the GPU Info is collected at GPU
process startup and recorded in browser process when this piece info is sent
back to browser process. The range is between 200ms and 5s.
</summary>
</histogram>
<histogram name="GPU.GPUInitializationTime.V3" units="ms"
expires_after="2021-12-15">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The time between the GPU process starts and the GPU Info is collected at GPU
process startup and recorded in browser process when this piece info is sent
back to browser process. The range is between 5ms and 5s.
</summary>
</histogram>
<histogram name="GPU.GPUProcessDetailedExitStatus"
enum="ProcessDetailedExitStatus" expires_after="2020-05-03">
<owner>wnwen@chromium.org</owner>
<summary>
Breakdown of exit status for gpu processes. Only recorded on Android.
</summary>
</histogram>
<histogram name="GPU.GPUProcessExitCode" enum="GPUProcessExitCode"
expires_after="2021-12-01">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Counts for the exit codes returned by the GPU process when it terminated.
</summary>
</histogram>
<histogram name="GPU.GPUProcessInitialized" enum="BooleanSuccess"
expires_after="2021-01-03">
<owner>vmiura@chromium.org</owner>
<summary>
Whether the GPU process successfully initialized or failed and then exitted
normally.
</summary>
</histogram>
<histogram name="GPU.GPUProcessLaunchTime" units="ms"
expires_after="2021-11-14">
<owner>vmiura@chromium.org</owner>
<summary>
Startup time of the GPU process as measured by the GPU process host.
</summary>
</histogram>
<histogram name="GPU.GPUProcessTerminationOrigin" enum="GpuTerminationOrigin"
expires_after="2019-08-14">
<owner>rjkroege@chromium.org</owner>
<owner>msisov@igalia.com</owner>
<summary>
The reason a GPU process is terminated. It works only when
TERMINATION_STATUS_PROCESS_WAS_KILLED TerminationStatus is set. The goal of
this histogram is to get spikes of the above mentioned case when
Ozone/Wayland terminates the GPU process due to invalid data it received if
any.
</summary>
</histogram>
<histogram name="GPU.GPUProcessTerminationStatus2" enum="GpuTerminationStatus"
expires_after="2021-12-12">
<owner>vmiura@chromium.org</owner>
<summary>
Counts for each time the GPU Process Host detects the process dies.
</summary>
</histogram>
<histogram name="GPU.HardwareAccelerationModeEnabled" enum="BooleanEnabled"
expires_after="2021-12-01">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Records if GPU hardware acceleration is explicitly disabled by the user.
Recorded when the browser process launches.
</summary>
</histogram>
<histogram name="GPU.HasDiscreteGpu" enum="HasDiscreteGpu"
expires_after="2021-12-01">
<owner>sadrul@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Records whether the system has a discrete GPU, collected in the info
collection GPU process, once per UMA ping. This is Windows platform only.
</summary>
</histogram>
<histogram name="GPU.InitializeOneOffMediumTime" units="ms"
expires_after="2022-01-02">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The time that the GPU process spends in initializing the GL surface, and
collecting graphics information. Records times up to three minutes.
</summary>
</histogram>
<histogram name="GPU.IntelGpuGeneration" enum="IntelGpuGeneration"
expires_after="2021-12-12">
<owner>sadrul@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Records the highest Intel GPU generation of the system using the GPU info
collected at GPU process startup time, once per UMA ping.
</summary>
</histogram>
<histogram name="GPU.IntelGpuSeriesType" enum="IntelGpuSeriesType"
expires_after="2021-12-12">
<owner>sunnyps@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Records user device's GPU series type. Only recorded on Windows platform at
GPU process launch time. Only meaningful with Intel GPUs.
</summary>
</histogram>
<histogram name="GPU.IOSurface.CATransactionTime" units="ms"
expires_after="2020-08-23">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took to update the CALayer tree and commit the transaction.
This is often affected by IOSurface paging.
</summary>
</histogram>
<histogram name="GPU.IOSurface.CreateTime" units="ms"
expires_after="2021-12-19">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took for a call to IOSurfaceCreate to complete.
</summary>
</histogram>
<histogram name="GPU.IOSurface.GLFlushTime" units="ms" expires_after="M85">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took for a call to glFlush to complete. This is often
affected by IOSurface paging.
</summary>
</histogram>
<histogram name="GPU.IOSurface.TexImageTime" units="ms"
expires_after="2021-12-05">
<owner>ccameron@chromium.org</owner>
<summary>
The time that it took for a call to CGLTexImageIOSurface2D to complete.
</summary>
</histogram>
<histogram name="GPU.MaxMSAASampleCount" units="samples"
expires_after="2020-07-06">
<owner>senorblanco@chromium.org</owner>
<summary>
The maximum number of multisampled anti-aliasing (MSAA) samples per pixel
that the user's GPU can render.
</summary>
</histogram>
<histogram name="GPU.MultiGpu.AMD" enum="AMDDeviceId"
expires_after="2021-12-01">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
AMD device IDs from multi-gpu devices. Recorded when GPU process launches
and sends GPUInfo to browser process.
</summary>
</histogram>
<histogram name="GPU.MultiGpu.Nvidia" enum="NvidiaDeviceId"
expires_after="2021-12-01">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Nvidia device IDs from multi-gpu devices. Recorded when GPU process launches
and sends GPUInfo to browser process.
</summary>
</histogram>
<histogram name="GPU.OopRaster.GlyphCacheMiss"
enum="OopRasterGlyphCacheMissType" expires_after="2021-12-19">
<owner>khushalsagar@chromium.org</owner>
<summary>
During OutOfProcess(Oop) raster, the renderer generates and sends the
requisite glyph data for rasterizing a tile with the serialized paint
commands. If the data for any glyph is missing, the GPU process attempts to
use a fallback glyph from the cache. This records each time we encounter a
cache miss on the GPU and whether we could use a fallback.
</summary>
</histogram>
<histogram name="GPU.Output.ColorSpace" enum="DXGI_COLOR_SPACE_TYPE"
expires_after="2020-10-11">
<obsolete>
Will be replaced with a platform agnostic version. Removed Oct 2020.
</obsolete>
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Records the output color space of the monitor as reported by Windows.
Recorded once for each monitor when the gpu process starts. If monitor
enumeration fails, this metric will not be provided.
</summary>
</histogram>
<histogram name="GPU.Output.HDR" enum="Boolean" expires_after="2021-12-12">
<owner>hubbe@chromium.org</owner>
<owner>media-dev@chromium.org</owner>
<summary>
Records if any connected monitor is HDR capable. Recorded when the gpu
process starts. Only recorded on Windows as of M-61. If monitor enumeration
fails, this metric will not be provided.
</summary>
</histogram>
<histogram name="GPU.PassthroughDoLinkProgramTime" units="ms"
expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
The time we spend in GLES2DecoderPassthroughImpl::DoLinkProgram. Related to
how much time we spend compiling shaders during startup.
</summary>
</histogram>
<histogram name="GPU.PreferredGLImplementation" enum="GLImplementation"
expires_after="2021-08-01">
<owner>jonahr@google.com</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Records the platform-preferred OpenGL implementation mode. Recorded during
GPU process initilization in gl::GetRequestedGLImplementation.
</summary>
</histogram>
<histogram name="GPU.ProcessLifetimeEvents.DisplayCompositor"
enum="GPUProcessLifetimeEvent" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
Recorded once for every GPU process launch and crash when GPU process is
started for the display compositor with software compositing. Crash buckets
are based on crash count for disabling features. No hardware acceleration
and no SwiftShader WebGL will be run.
</summary>
</histogram>
<histogram name="GPU.ProcessLifetimeEvents.HardwareAccelerated"
enum="GPUProcessLifetimeEvent" expires_after="2021-11-21">
<owner>vmiura@chromium.org</owner>
<summary>
Recorded once for every GPU process launch and crash when GPU process is
started for hardware accelerated GPU compositing and/or WebGL. Crash buckets
are based on crash count for disabling features. With OOP-D enabled the
display compositor also runs in the GPU process.
</summary>
</histogram>
<histogram name="GPU.ProcessLifetimeEvents.SwiftShader"
enum="GPUProcessLifetimeEvent" expires_after="2021-11-07">
<owner>vmiura@chromium.org</owner>
<summary>
Recorded once for every GPU process launch and crash when GPU process is
started for SwiftShader WebGL. Crash buckets are based on crash count for
disabling features. With OOP-D enabled the display compositor with software
compositing will also run as part of the GPU process.
</summary>
</histogram>
<histogram name="GPU.ProgramCache.BinaryCacheHitTime" units="microseconds"
expires_after="M77">
<owner>vmiura@chromium.org</owner>
<summary>
The time to load a gpu program from the program cache.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="GPU.ProgramCache.BinaryCacheMissTime" units="microseconds"
expires_after="M77">
<owner>vmiura@chromium.org</owner>
<summary>
The time to link a gpu program.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="GPU.ProgramCache.CacheHit" enum="BooleanSuccess"
expires_after="2021-06-30">
<owner>jonahr@google.com</owner>
<owner>angle-team@google.com</owner>
<summary>
If a successfully linked program was found in the GPU program cache during a
program link call.
</summary>
</histogram>
<histogram name="GPU.ProgramCache.CompilationCacheHitTime" units="microseconds"
expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The time to check the program cache that we've already compiled the shader.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="GPU.ProgramCache.CompilationCacheMissTime"
units="microseconds" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The time to compile a shader.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
<histogram name="GPU.RenderableFormat.{FORMAT_TYPE}" enum="Boolean"
expires_after="2021-09-15">
<owner>zmo@chromium.org</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Whether or not a {FORMAT_TYPE} fbo is complete and renderable.
</summary>
<token key="FORMAT_TYPE">
<variant name="R11F_G11F_B10F.FLOAT" summary="R11F_G11F_B10F/FLOAT"/>
<variant name="R16F.FLOAT" summary="R16F/FLOAT"/>
<variant name="R32F.FLOAT" summary="R32F/FLOAT"/>
<variant name="RG16F.FLOAT" summary="RG16F/FLOAT"/>
<variant name="RG32F.FLOAT" summary="RG32F/FLOAT"/>
<variant name="RGB32F.FLOAT" summary="RGB32F/FLOAT"/>
<variant name="RGBA16F.FLOAT" summary="RGBA16F/FLOAT"/>
<variant name="RGBA16F.HALF_FLOAT" summary="RGBA16F/HALF_FLOAT"/>
<variant name="RGBA32F.FLOAT" summary="RGBA32F/FLOAT"/>
</token>
</histogram>
<histogram name="GPU.RequestedGLImplementation" enum="GLImplementation"
expires_after="2021-08-01">
<owner>jonahr@google.com</owner>
<owner>graphics-dev@chromium.org</owner>
<summary>
Records the user-requested OpenGL implementation mode. Recorded during GPU
process initilization in gl::GetRequestedGLImplementation.
</summary>
</histogram>
<histogram name="GPU.Sandbox.InitializedSuccessfully" enum="BooleanSuccess"
expires_after="2020-08-30">
<owner>vmiura@chromium.org</owner>
<owner>wfh@chromium.org</owner>
<summary>
Whether or not the GPU sandbox properly initialized. Failures are typically
platform- and driver-specific (e.g. driver creating threads on Linux).
</summary>
</histogram>
<histogram name="GPU.Scheduler.RunTaskTime" units="microseconds"
expires_after="2021-12-12">
<owner>kylechar@chromium.org</owner>
<owner>chrome-gpu-metrics@google.com</owner>
<summary>
Records the wall time taken for each GPU scheduler task to run. The time
delta starts when the GPU scheduler pops the task off the task queue and
finishes when the task has completed. Only recorded for clients with high
resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Scheduler.TaskDependencyTime" units="microseconds"
expires_after="2022-03-31">
<owner>berlu@chromium.org</owner>
<owner>chrome-gpu-metrics@google.com</owner>
<summary>
Records the wall time taken spent by each GPU scheduler task waiting on it's
dependencies to resolve. The time delta starts when the waiting fence is
added and finishes when the last fence is removed. Only recorded for clients
with high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Scheduler.TaskSchedulingDelayTime" units="microseconds"
expires_after="2022-03-31">
<owner>berlu@chromium.org</owner>
<owner>chrome-gpu-metrics@google.com</owner>
<summary>
Records the wall time taken spent by each GPU scheduler task waiting on to
be scheduled once all its dependencies have been resolved. The time delta
starts when the last waiting fence is passed and stops when the tasks starts
running. If the schedulers is working properly, for a high priority task,
this metric should be minimal. Only recorded for clients with high
resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Scheduler.ThreadSuspendedTime" units="microseconds"
expires_after="2022-03-31">
<owner>berlu@chromium.org</owner>
<owner>chrome-gpu-metrics@google.com</owner>
<summary>
Records the wall time taken between calls to schedule the task run and the
actual run of the task. Ideally this should always be as close to 0 as
possible. Only recorded for clients with high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.setIsAcceleratedCompositingActive"
enum="GPUsetIsAcceleratedCompositingActive" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
Counts activation and deactivation of accelerated compositing.
</summary>
</histogram>
<histogram name="GPU.ShaderLoadPrefixOK" enum="BooleanMatched"
expires_after="M77">
<owner>ericrk@chromium.org</owner>
<summary>
Whether or not the shader prefix loaded from disk matched the expected
prefix for the data and system configuration. False indicates either disk
corruption or a system configuration change, and should be rare.
</summary>
</histogram>
<histogram name="GPU.SharedImage.ContentConsumed" enum="BooleanMatched"
expires_after="2021-08-09">
<owner>penghuang@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
Whether or not the content of a SharedImage is consumed. False indicates the
content of a SharedImage is never used due to destroying the SharedImage or
writing new content to it before using it.
</summary>
</histogram>
<histogram name="GPU.SharedImageManager.TimeToAcquireLock" units="microseconds"
expires_after="2020-08-12">
<owner>samans@chromium.org</owner>
<owner>viz-team-wat@google.com</owner>
<summary>
Time it took to acquire the lock in SharedImageManager. Recorded only when
the manager is thread-safe. Ignores clients with no high-resolution clock.
</summary>
</histogram>
<histogram name="GPU.SoftwareRendering" enum="BooleanSoftwareRendering"
expires_after="2021-12-12">
<owner>sadrul@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Collects whether Chrome uses software renderer or hardware GPU 20 seconds
after Chrome starts, and records this value once per UMA ping. This value is
not re-collected at each recording time because GPU process could crash for
various reasons and fall back to software rendering. This value is intended
to reflect device capabilities rather than the current state.
</summary>
</histogram>
<histogram name="GPU.Stage3DFieldTrial" enum="BooleanEnabled"
expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
Records whether a client was selected for the Stage3D on XP field trial or
not.
</summary>
</histogram>
<histogram name="GPU.SupportsDX12" enum="BooleanSupported"
expires_after="2021-12-01">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
This metric shows whether the GPU supports D3D12. It is recorded in the
browser process 120 seconds after the browser launch.
</summary>
</histogram>
<histogram name="GPU.SurfaceOwner.AImageReader.AcquireImageResult"
enum="MediaStatus" expires_after="2018-11-25">
<owner>vikassoni@chromium.org</owner>
<summary>
Counts the error code which is returned when AImageReader api call
acquireLatestImageAsync fails.
</summary>
</histogram>
<histogram name="GPU.SwapTimeUs" units="microseconds"
expires_after="2021-12-12">
<owner>vasilyt@chromium.org</owner>
<owner>backer@chromium.org</owner>
<summary>
This is logged once per frame if the output surface provides timing
information. It measures the time of SwapBuffers call. Only reported when
there is single surface swap in the same vsync interval. Only reported for
platforms supporting high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.TextureRG" enum="BooleanAvailable" expires_after="M77">
<owner>reveman@chromium.org</owner>
<summary>
Whether RG texture support is available. Recorded each time a new context
group is initialized and extensions are detected.
</summary>
</histogram>
<histogram name="GPU.Vulkan.CreateExternalVkSemaphore" units="microseconds"
expires_after="2021-08-09">
<obsolete>
Removed in M91
</obsolete>
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
The amount of time required to create an external VkSemaphore. Only reported
for platforms supporting high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Vulkan.GetVkSemaphoreHandle" units="microseconds"
expires_after="2021-04-04">
<obsolete>
Removed in M91
</obsolete>
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
The amount of time required to get a file handle from a VkSemaphore. Only
reported for platforms supporting high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Vulkan.ImportSemaphoreGLPerSwapBuffers" units="units"
expires_after="2021-08-09">
<obsolete>
Removed in M91
</obsolete>
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>The number of semaphores imported into GL per frame.</summary>
</histogram>
<histogram name="GPU.Vulkan.ImportVkSemaphoreHandle" units="microseconds"
expires_after="2021-08-09">
<obsolete>
Removed in M91
</obsolete>
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
The amount of time required to import a VkSemaphore from a file handle. Only
reported for platforms supporting high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Vulkan.ImportVkSemaphoreIntoGL" units="microseconds"
expires_after="2021-08-09">
<obsolete>
Removed in M91
</obsolete>
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
The amount of time required to import a VkSemaphore into GL. Only reported
for platforms supporting high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Vulkan.PipelineCache.LoadCacheHit" enum="BooleanCacheHit"
expires_after="2022-01-02">
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
Shows if we had a vkPipelineCache entry in cache when skia requested it.
Recorded each time skia loads vkPipelineCache entry from the GrShaderCache.
</summary>
</histogram>
<histogram name="GPU.Vulkan.PipelineCache.PopulatedCacheUsage"
enum="VkPipelinePopulatedCacheEntryUsage" expires_after="2021-10-31">
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
Shows if the populated from disk cache entry was used by skia or discarded
and why. Recorded when cache entry that was read from disk is either loaded
by skia, overwriten by skia or discarded by GrShaderCache.
</summary>
</histogram>
<histogram name="GPU.Vulkan.PipelineCache.Size" units="KB"
expires_after="2022-01-02">
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
Size of stored VkPipelineCache in kb. Recorded every time we store a
pipeline cache item. Currently happens when gpu goes idle after we stored or
loaded new shader.
</summary>
</histogram>
<histogram name="GPU.Vulkan.PipelineCache.StoreDuration" units="microseconds"
expires_after="2022-01-02">
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
Duration of storeVkPipelineCacheData in Skia, this includes chromium side
GrShaderCache::store. Recorded even if data didn't fit into the cache. Only
reported for platforms supporting high resolution clocks.
</summary>
</histogram>
<histogram name="GPU.Vulkan.PipelineCache.vkCreateGraphicsPipelines"
units="microseconds" expires_after="2022-01-02">
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
Duration of vkCreateGraphicsPipelines call. Recorded every time Skia creates
graphics pipeline. Only reported for platforms supporting high resolution
clocks.
</summary>
</histogram>
<histogram name="GPU.Vulkan.QueueSubmitPerSwapBuffers" units="units"
expires_after="2021-08-09">
<owner>backer@chromium.org</owner>
<owner>penghuang@chromium.org</owner>
<owner>vasilyt@chromium.org</owner>
<summary>
The number of vkQueueSubmit() calls per SwapBuffers. It is recorded when
SwapBuffers() call is completed or skipped.
</summary>
</histogram>
<histogram name="GPU.WaitForVBlankErrorCode" enum="WaitForVBlankErrorCode"
expires_after="M85">
<owner>stanisc@chromium.org</owner>
<summary>
Whether WaitForVBlank operation has been successful or failed with one of
the errors prompting a backup delay based v-sync mechanism. Recorded each
time a new GPU v-sync signal is generated.
</summary>
</histogram>
<histogram name="GPU.WatchdogThread.Event" enum="GpuWatchdogThreadEvent"
expires_after="2021-11-07">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Recorded for each time the GPU watchdog thread starts, crashes and ends.
This includes data from both watchdog V1 and V2.
</summary>
</histogram>
<histogram name="GPU.WatchdogThread.ExtraThreadTime" units="# timeouts"
expires_after="2021-10-04">
<!-- Name completed by histogram_suffixes name="GPU.WatchdogStage" -->
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
The number of extra timeouts the GPU main thread needs to make any progress
after the first watchdog timeout.
</summary>
</histogram>
<histogram name="GPU.WatchdogThread.ExtraThreadTime.NumOfUsers"
units="# timeouts" expires_after="2021-10-04">
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Records the number of the watchdog timeout functions being entered at each
timeout after allowing the GPU to finish the current job with extra thread
time. If the user decides to quite Chrome, the recorded count would decrease
at the next timeout.
</summary>
</histogram>
<histogram name="GPU.WatchdogThread.Timeout" enum="GpuWatchdogTimeoutEvent"
expires_after="2021-11-21">
<!-- Name completed by histogram_suffixes name="GPU.WatchdogStage" -->
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Recorded timeout events when the GPU watchdog V2 enters OnWatchdogTimeout.
</summary>
</histogram>
<histogram name="GPU.WatchdogThread.WaitTime" units="ms"
expires_after="2020-11-18">
<obsolete>
Used for an experiment only. Removed 11/2020.
</obsolete>
<!-- Name completed by histogram_suffixes name="GPU.WatchdogStage" -->
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Record the wait time in OnWatchdogTimeout() for the GPU main thread to make
any progress.
</summary>
</histogram>
<histogram name="GPU.WatchdogThread.WaitTime.NumOfUsers" units="seconds"
expires_after="2020-11-18">
<obsolete>
Used for an experiment only. Removed 11/2020.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Recorded every second in a 60-second loop that the watchdog was still
running after allowing the GPU to complete the current job within 60
seconds. If any of the users decided to quit Chrome, the recorded count
would decrease at the next second.
</summary>
</histogram>
<histogram name="GPU.WatchdogThread.WaitTime.ProgressAfterWait" units="seconds"
expires_after="2020-11-18">
<obsolete>
Used for an experiment only. Removed 11/2020.
</obsolete>
<owner>magchen@chromium.org</owner>
<owner>zmo@chromium.org</owner>
<summary>
Recorded the time the GPU main thread makes any progress after allowing the
GPU to complete the current job within 60 seconds.
</summary>
</histogram>
<histogram name="GPU.WebGraphicsContext3D_Init_CanLoseContext"
enum="GPUWebGraphicsContext3D_Init_CanLoseContext" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
Counts of context initialization that succeed or fail based on combinations
of attributes requiring canRecoverFromContextLoss and devices that report
can_lose_context. Failing Init is desired when a device can not guarantee it
won't fail for a user that can not handle failures, e.g. DX9 on WinXP used
by Canvas2D'
</summary>
</histogram>
<histogram name="GPU.WinSAT.GamingScore" units="units" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The WinSAT (Windows System Assessment Tool) gaming graphics score. It is in
the range 1.0-5.9 on Vista, 1.0-7.9 on Win7 and 1.0-9.9 on Win8. 0
represents a failure to get the score. This is collected each time Chrome is
launched.
</summary>
</histogram>
<histogram name="GPU.WinSAT.GamingScore2" units="units" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The WinSAT (Windows System Assessment Tool) gaming graphics score, scaled by
10x. It is in the range 10-59 on Vista, 10-79 on Win7 and 10-99 on Win8. 0
represents a failure to get the score. This is collected each time Chrome is
launched.
</summary>
</histogram>
<histogram name="GPU.WinSAT.GraphicsScore" units="units" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The WinSAT (Windows System Assessment Tool) graphics score. It is in the
range 1.0-5.9 on Vista, 1.0-7.9 on Win7 and 1.0-9.9 on Win8. 0 represents a
failure to get the score. This is collected each time Chrome is launched.
</summary>
</histogram>
<histogram name="GPU.WinSAT.GraphicsScore2" units="units" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The WinSAT (Windows System Assessment Tool) graphics score, scaled by 10x.
It is in the range 10-59 on Vista, 10-79 on Win7 and 10-99 on Win8. 0
represents a failure to get the score. This is collected each time Chrome is
launched.
</summary>
</histogram>
<histogram name="GPU.WinSAT.HasResults" enum="BooleanSuccess"
expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
A boolean representing whether or not we succeeded in getting the system's
WinSAT scores. This is collected each time Chrome is launched.
</summary>
</histogram>
<histogram name="GPU.WinSAT.OverallScore" units="units" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The WinSAT (Windows System Assessment Tool) overall system score. This is
the minimum of all the individual subscores. It is in the range 1.0-5.9 on
Vista, 1.0-7.9 on Win7 and 1.0-9.9 on Win8. 0 represents a failure to get
the score. This is collected each time Chrome is launched.
</summary>
</histogram>
<histogram name="GPU.WinSAT.OverallScore2" units="units" expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The WinSAT (Windows System Assessment Tool) overall system score, scaled by
10x. This is the minimum of all the individual subscores. It is in the range
10-59 on Vista, 10-79 on Win7 and 10-99 on Win8. 0 represents a failure to
get the score. This is collected each time Chrome is launched.
</summary>
</histogram>
<histogram name="GPU.WinSAT.ReadResultsFileTime" units="microseconds"
expires_after="M85">
<owner>vmiura@chromium.org</owner>
<summary>
The amount of time it takes to read the WinSAT results. This is collected
each time Chrome is launched.
Warning: This metric may include reports from clients with low-resolution
clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
will cause this metric to have an abnormal distribution. When considering
revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
solution.
</summary>
</histogram>
</histograms>
</histogram-configuration>