
This CL introduces PeakGpuMemoryTrackerFactory to refactor PeakGpuMemoryTracker interface and to move the creation of PeakGpuMemoryTracker objects to a content API. PeakGpuMemoryTracker is moved to //components/input to allow Viz to keep track of peak gpu memory in scroll scenarios. Bug: b:346760308 Change-Id: I3351880a0e0b1dd7d2e835d75c62de5272e16e5e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5630399 Reviewed-by: Colin Blundell <blundell@chromium.org> Reviewed-by: Dave Tapuska <dtapuska@chromium.org> Commit-Queue: Aman Verma <amanvr@google.com> Cr-Commit-Position: refs/heads/main@{#1315812}
37 lines
1.4 KiB
C++
37 lines
1.4 KiB
C++
// Copyright 2024 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef CONTENT_COMMON_PEAK_GPU_MEMORY_CALLBACK_H_
|
|
#define CONTENT_COMMON_PEAK_GPU_MEMORY_CALLBACK_H_
|
|
|
|
#include "base/containers/flat_map.h"
|
|
#include "base/functional/callback_forward.h"
|
|
#include "components/input/peak_gpu_memory_tracker.h"
|
|
#include "gpu/ipc/common/gpu_peak_memory.h"
|
|
|
|
namespace content {
|
|
|
|
// Callback provided to the GpuService, which will be notified of the
|
|
// |peak_memory| used since GpuService started tracking GPU memory.
|
|
//
|
|
// This callback reports the peak memory usage in UMA Histograms, categorizing
|
|
// it by the provided |usage| type.
|
|
//
|
|
// Parameters:
|
|
// - |usage|: Indicates the category of GPU memory usage being tracked.
|
|
// - |testing_callback|: (Optional) Closure used by some tests to synchronize
|
|
// with the work done here on the UI thread.
|
|
// - |peak_memory|: The total peak GPU memory usage in bytes.
|
|
// - |allocation_per_source|: A breakdown of the peak memory usage, showing how
|
|
// much was allocated by each source.
|
|
void PeakGpuMemoryCallback(
|
|
input::PeakGpuMemoryTracker::Usage usage,
|
|
base::OnceClosure testing_callback,
|
|
const uint64_t peak_memory,
|
|
const base::flat_map<gpu::GpuPeakMemoryAllocationSource, uint64_t>&
|
|
allocation_per_source);
|
|
} // namespace content
|
|
|
|
#endif // CONTENT_COMMON_PEAK_GPU_MEMORY_CALLBACK_H_
|