Commit bbe4a1b0 authored by Jonathan Backer's avatar Jonathan Backer Committed by Commit Bot

Add latency info for SkDDL output path

This fixes instrumentation relied on by rendering.desktop telemetry
tests.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: Ibfdb788359a873f7eba83a678a903d0aab8f9b19
Reviewed-on: https://chromium-review.googlesource.com/c/1288715Reviewed-by: default avatarSadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600870}
parent 43eaa184
...@@ -189,17 +189,21 @@ void SkiaOutputSurfaceImplOnGpu::FinishPaintCurrentFrame( ...@@ -189,17 +189,21 @@ void SkiaOutputSurfaceImplOnGpu::FinishPaintCurrentFrame(
void SkiaOutputSurfaceImplOnGpu::SwapBuffers(OutputSurfaceFrame frame) { void SkiaOutputSurfaceImplOnGpu::SwapBuffers(OutputSurfaceFrame frame) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(sk_surface_); DCHECK(sk_surface_);
base::TimeTicks swap_start, swap_end;
if (!gpu_service_->is_using_vulkan()) { if (!gpu_service_->is_using_vulkan()) {
if (!gl_context_->MakeCurrent(gl_surface_.get())) { if (!gl_context_->MakeCurrent(gl_surface_.get())) {
LOG(FATAL) << "Failed to make current."; LOG(FATAL) << "Failed to make current.";
// TODO(penghuang): Handle the failure. // TODO(penghuang): Handle the failure.
} }
swap_start = base::TimeTicks::Now();
OnSwapBuffers(); OnSwapBuffers();
gl_surface_->SwapBuffers(frame.need_presentation_feedback gl_surface_->SwapBuffers(frame.need_presentation_feedback
? buffer_presented_callback_ ? buffer_presented_callback_
: base::DoNothing()); : base::DoNothing());
swap_end = base::TimeTicks::Now();
} else { } else {
#if BUILDFLAG(ENABLE_VULKAN) #if BUILDFLAG(ENABLE_VULKAN)
swap_start = base::TimeTicks::Now();
OnSwapBuffers(); OnSwapBuffers();
auto backend = sk_surface_->getBackendRenderTarget( auto backend = sk_surface_->getBackendRenderTarget(
SkSurface::kFlushRead_BackendHandleAccess); SkSurface::kFlushRead_BackendHandleAccess);
...@@ -216,10 +220,17 @@ void SkiaOutputSurfaceImplOnGpu::SwapBuffers(OutputSurfaceFrame frame) { ...@@ -216,10 +220,17 @@ void SkiaOutputSurfaceImplOnGpu::SwapBuffers(OutputSurfaceFrame frame) {
DidSwapBuffersComplete(params); DidSwapBuffersComplete(params);
CreateSkSurfaceForVulkan(); CreateSkSurfaceForVulkan();
swap_end = base::TimeTicks::Now();
#else #else
NOTREACHED(); NOTREACHED();
#endif #endif
} }
for (auto& latency : frame.latency_info) {
latency.AddLatencyNumberWithTimestamp(
ui::INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT, swap_start, 1);
latency.AddLatencyNumberWithTimestamp(
ui::INPUT_EVENT_LATENCY_FRAME_SWAP_COMPONENT, swap_end, 1);
}
} }
void SkiaOutputSurfaceImplOnGpu::FinishPaintRenderPass( void SkiaOutputSurfaceImplOnGpu::FinishPaintRenderPass(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment