blob: 34080d0c77eb9c67cab6fbbb646d1275d6b62fa4 [file] [log] [blame] [view]
Graphite's `Context` now provides an interface to report the GPU time spent processing a recording. The client provides
a different finished proc of type `skgpu::graphite::GpuFinishedWithStatsProc` using
`skgpu::graphite::InsertRecordingInfo::fFinishedWithStatsProc` and sets the flag
`skgpu::graphite::InsertRecordingInfo::fGpuStatsFlag` to `skgpu::GpuStatsFlags::kElapsedTime`. The new callback takes a
new struct, `skgpu::GpuStats`, which has an `elapsedTime` field that will indicate the amount of GPU time used by the
recording. This is implemented for the Dawn backend only. In WASM on WebGPU the reported time excludes any GPU transfers
that occur before the first render/compute pass or after the last pass because of limitations in the WebGPU timestamp
query API.
`GrDirectContext` provides a similar interface to report the GPU time spent in a flush. The client uses a new callback
type, `GrGpuFinishedWithStatsProc` and sets the same flag on `GrFlushInfo`. This is implemented for GL
(including GLES and WebGL).