Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Issue 1995873002: Mozart: Improve tracing and backpressure. (Closed)

Created:
4 years, 7 months ago by jeffbrown
Modified:
4 years, 7 months ago
Reviewers:
abarth, mikejurka
CC:
mojo-reviews_chromium.org, qsr+mojo_chromium.org
Base URL:
git@github.com:domokit/mojo.git@master
Target Ref:
refs/heads/master
Project:
mojo
Visibility:
Public.

Description

Mozart: Improve tracing and backpressure. Refactored the GPU Output to clarify the separation of concerns between the output and rasterizer classes. GpuOutput maintains the queue of frames to draw and keeps track of how many frames are outstanding. GpuRasterizer manages the GL context and issues the actual drawing commands. Simplified the policy for dropping frames so it only happen in one spot in the compositor. The compositor maintains a queue of drawn frames awaiting finish. When that queue's size exceeds the maximum allowable pipeline depth (configurable using the --pipeline-depth argument) a pending frame will be discarded. Added more trace events to help understand the behavior of the compositor. Normalized the nomenclature for different stages in composition. They are now called... - Present: accept and validate scene updates published by apps - Snapshot: resolve scene dependencies and capture the state of the scene graph for traversal - Paint: record drawing commands for a frame (as an SkPicture) - Submit: enqueue a frame to be rasterized - Draw: rasterize the frame There's still much to be improved here. BUG= R=mikejurka@google.com Committed: https://chromium.googlesource.com/external/mojo/+/f36e23b2e279ce47c7cd0e2149048dd9b1b5af4e

Patch Set 1 #

Total comments: 26

Patch Set 2 : address review comments #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+558 lines, -364 lines) Patch
M services/gfx/compositor/backend/gpu_output.h View 1 2 chunks +57 lines, -42 lines 2 comments Download
M services/gfx/compositor/backend/gpu_output.cc View 1 1 chunk +239 lines, -101 lines 0 comments Download
M services/gfx/compositor/backend/gpu_rasterizer.h View 3 chunks +41 lines, -29 lines 0 comments Download
M services/gfx/compositor/backend/gpu_rasterizer.cc View 8 chunks +51 lines, -93 lines 0 comments Download
M services/gfx/compositor/compositor_engine.h View 1 1 chunk +19 lines, -2 lines 0 comments Download
M services/gfx/compositor/compositor_engine.cc View 1 6 chunks +52 lines, -18 lines 0 comments Download
M services/gfx/compositor/graph/nodes.h View 6 chunks +19 lines, -19 lines 0 comments Download
M services/gfx/compositor/graph/nodes.cc View 11 chunks +25 lines, -25 lines 0 comments Download
M services/gfx/compositor/graph/scene_content.h View 1 chunk +2 lines, -2 lines 0 comments Download
M services/gfx/compositor/graph/scene_content.cc View 1 chunk +2 lines, -3 lines 0 comments Download
M services/gfx/compositor/graph/snapshot.h View 2 chunks +4 lines, -5 lines 0 comments Download
M services/gfx/compositor/graph/snapshot.cc View 3 chunks +5 lines, -6 lines 0 comments Download
M services/gfx/compositor/render/render_frame.h View 2 chunks +27 lines, -12 lines 0 comments Download
M services/gfx/compositor/render/render_frame.cc View 2 chunks +15 lines, -7 lines 0 comments Download

Messages

Total messages: 12 (2 generated)
jeffbrown
4 years, 7 months ago (2016-05-19 00:13:46 UTC) #2
abarth
https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.h File services/gfx/compositor/backend/gpu_output.h (right): https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.h#newcode45 services/gfx/compositor/backend/gpu_output.h:45: int64_t wait_time; Should these be base::TimeTicks?
4 years, 7 months ago (2016-05-19 00:49:57 UTC) #3
mikejurka
https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.cc File services/gfx/compositor/backend/gpu_output.cc (right): https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.cc#newcode23 services/gfx/compositor/backend/gpu_output.cc:23: constexpr uint32_t kMaxPipelineDepth = 10u; why should we ever ...
4 years, 7 months ago (2016-05-19 23:26:19 UTC) #4
jeffbrown
https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.cc File services/gfx/compositor/backend/gpu_output.cc (right): https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.cc#newcode23 services/gfx/compositor/backend/gpu_output.cc:23: constexpr uint32_t kMaxPipelineDepth = 10u; On 2016/05/19 23:26:18, mikejurka ...
4 years, 7 months ago (2016-05-20 01:09:48 UTC) #5
mikejurka
we didn't necessarily need to add a "bool drawn" member, i just meant to document ...
4 years, 7 months ago (2016-05-20 01:49:23 UTC) #6
jeffbrown
can haz lgtm? https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.cc File services/gfx/compositor/backend/gpu_output.cc (right): https://codereview.chromium.org/1995873002/diff/1/services/gfx/compositor/backend/gpu_output.cc#newcode291 services/gfx/compositor/backend/gpu_output.cc:291: : frame(frame), submit_time(submit_time), draw_time(0), wait_time(0) {} ...
4 years, 7 months ago (2016-05-20 19:31:36 UTC) #7
mikejurka
lgtm
4 years, 7 months ago (2016-05-20 19:40:31 UTC) #8
mikejurka
but would appreciate a comment on whether we absolutely need shared_ptrs for FrameData
4 years, 7 months ago (2016-05-20 19:41:17 UTC) #9
mikejurka
On 2016/05/20 19:41:17, mikejurka wrote: > but would appreciate a comment on whether we absolutely ...
4 years, 7 months ago (2016-05-20 19:42:26 UTC) #10
jeffbrown
4 years, 7 months ago (2016-05-20 20:17:48 UTC) #12
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as
f36e23b2e279ce47c7cd0e2149048dd9b1b5af4e (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698