| <!-- |
| 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> |