Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@bdero
Copy link
Member

@bdero bdero commented Jul 18, 2023

Weekend project! Press C to capture in the Aiks playground.

Decided to finally give this a go and attempt to relieve some of the print debugging/mindfuck around investigation of coverage-related issues lately. :)

Captures:

  • Capture documents from anywhere in Impeller.
  • Easily implement inspectors for those documents.
  • Replay documents with live editing.
  • No overhead when capturing is build time disabled (that's the idea, anyway).
  • Low overhead when capturing is runtime disabled.

Aiks inspector:

  • Outline passes and rendered entities.
  • Identify collapsed passes.
  • Visibly highlight coverage.
  • Live edit scene properties.

Possible future work:

  • Filters!
  • Blend mode property.
  • Pointer + release proc property.
  • Support captures in the DL playground.
  • Text atlas visualization.
  • Multi-frame capture and scrubbing.
  • Menus instead of key bindings?
Screen.Recording.2023-07-18.at.3.08.45.AM.mov

@bdero bdero requested a review from chinmaygarde July 18, 2023 10:41
@bdero bdero self-assigned this Jul 18, 2023
@chinmaygarde
Copy link
Member

whoa

@bdero bdero force-pushed the bdero/capture branch 2 times, most recently from 21df2e1 to c6d2c9a Compare July 20, 2023 21:28
Copy link
Member

@chinmaygarde chinmaygarde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry about the really late review. I was on the fence about the intrusiveness of this but can definitely see the value. Especially as we build on top it. I think we should land and iterate on it and keep evaluating this from time to time.

@bdero bdero force-pushed the bdero/capture branch 3 times, most recently from 5e7e0f0 to 29f58bf Compare August 23, 2023 20:18
@bdero bdero force-pushed the bdero/capture branch 5 times, most recently from f7e1290 to 4a821ec Compare August 24, 2023 00:55
@bdero bdero added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 24, 2023
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 24, 2023
@auto-submit
Copy link
Contributor

auto-submit bot commented Aug 24, 2023

auto label is removed for flutter/engine/43764, due to - The status or check suite Linux linux_host_engine has failed. Please fix the issues identified (or deflake) before re-applying this label.

@bdero bdero added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 24, 2023
@auto-submit auto-submit bot merged commit 3b92bb6 into flutter:main Aug 24, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 24, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Aug 24, 2023
…133224)

flutter/engine@aa98a9d...3b92bb6

2023-08-24 [email protected] [Impeller] Add debug captures and inspector. (flutter/engine#43764)
2023-08-24 [email protected] Roll Skia from e3ee267859a7 to 02eecda395ba (1 revision) (flutter/engine#45042)
2023-08-24 [email protected] Remove a clang-tidy test that launches a full run of clang-tidy (flutter/engine#45033)
2023-08-24 [email protected] Roll Skia from 9d4db3443527 to e3ee267859a7 (1 revision) (flutter/engine#45036)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
bool SolidColorContents::Render(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) const {
auto capture = entity.GetCapture().CreateChild("SolidColorContents");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we IFDEF these out?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's theoretically no need. All this stuff is inlined and should flatten out to zero instructions when the capture is build-time disabled. (I haven't rigorously proven this, mind you)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I'll see it in the profile if its there 😈 - but yeah, no need to worry about it until its a problem !

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm gonna Volkswagen the heck out of our benchmarks, but in a benign way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just add some speedup loops

zanderso added a commit that referenced this pull request Aug 24, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 24, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 24, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Aug 24, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Aug 24, 2023
…133272)

flutter/engine@aa98a9d...965501a

2023-08-24 [email protected] Roll Skia from 8b0fd320865e to b17ee34f3378 (1 revision) (flutter/engine#45073)
2023-08-24 [email protected] Revert Dart SDK to 3.2.0-97.0.dev (flutter/engine#45072)
2023-08-24 [email protected] Manual roll Dart SDK from 87a5a26b25fc to bcad589d5d81 (4 revisions) (flutter/engine#45065)
2023-08-24 [email protected] Roll Fuchsia Mac SDK from P8oeVw3whCGS6pCjL... to jkVyhV_xfb8Mv43xj... (flutter/engine#45068)
2023-08-24 [email protected] Roll Skia from e008ee76b890 to 8b0fd320865e (3 revisions) (flutter/engine#45067)
2023-08-24 [email protected] Remove package linter from DEPS (flutter/engine#45053)
2023-08-24 [email protected] Revert "[Impeller] Add debug captures and inspector." (flutter/engine#45062)
2023-08-24 [email protected] [Impeller] Don't place vertex buffer bindings in the Binding map. (flutter/engine#45040)
2023-08-24 [email protected] Roll Skia from 994d5e03fa1c to e008ee76b890 (1 revision) (flutter/engine#45061)
2023-08-24 [email protected] Revert "[Impeller] add trace events for VkRenderPass and VkFrameBuffeâ�¦ (flutter/engine#45047)
2023-08-24 [email protected] Roll Fuchsia Linux SDK from XoUnFqSvX9mhbXqBJ... to 0kEa4JczTMD0Xus08... (flutter/engine#45060)
2023-08-24 [email protected] Roll Skia from 68700a1a2be9 to 994d5e03fa1c (1 revision) (flutter/engine#45059)
2023-08-24 [email protected] Roll Skia from 13a050278b1a to 68700a1a2be9 (1 revision) (flutter/engine#45058)
2023-08-24 [email protected] Roll Skia from 317f4c2ba2ca to 13a050278b1a (1 revision) (flutter/engine#45054)
2023-08-24 [email protected] Roll Skia from 17c0f4b72fcd to 317f4c2ba2ca (1 revision) (flutter/engine#45051)
2023-08-24 [email protected] Roll Skia from 82472773892d to 17c0f4b72fcd (1 revision) (flutter/engine#45050)
2023-08-24 [email protected] Roll Skia from 02eecda395ba to 82472773892d (1 revision) (flutter/engine#45049)
2023-08-24 [email protected] Roll Fuchsia Mac SDK from vJ6oaubpqgRM2nb1e... to P8oeVw3whCGS6pCjL... (flutter/engine#45046)
2023-08-24 [email protected] Roll Fuchsia Linux SDK from -HcyJtxGxUDcqX-jo... to XoUnFqSvX9mhbXqBJ... (flutter/engine#45044)
2023-08-24 [email protected] Manual roll Dart SDK from ab417bc74bb1 to 87a5a26b25fc (4 revisions) (flutter/engine#45043)
2023-08-24 [email protected] [Impeller] Add debug captures and inspector. (flutter/engine#43764)
2023-08-24 [email protected] Roll Skia from e3ee267859a7 to 02eecda395ba (1 revision) (flutter/engine#45042)
2023-08-24 [email protected] Remove a clang-tidy test that launches a full run of clang-tidy (flutter/engine#45033)
2023-08-24 [email protected] Roll Skia from 9d4db3443527 to e3ee267859a7 (1 revision) (flutter/engine#45036)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from -HcyJtxGxUDc to 0kEa4JczTMD0
  fuchsia/sdk/core/mac-amd64 from vJ6oaubpqgRM to jkVyhV_xfb8M

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
bdero added a commit that referenced this pull request Aug 25, 2023
gaaclarke pushed a commit to gaaclarke/engine that referenced this pull request Aug 30, 2023
Weekend project! Press `C` to capture in the Aiks playground.

Decided to finally give this a go and attempt to relieve some of the print debugging/mindfuck around investigation of coverage-related issues lately. :)

Captures:
* Capture documents from anywhere in Impeller.
* Easily implement inspectors for those documents.
* Replay documents with live editing.
* No overhead when capturing is build time disabled (that's the idea, anyway).
* Low overhead when capturing is runtime disabled.

Aiks inspector:
* Outline passes and rendered entities.
* Identify collapsed passes.
* Visibly highlight coverage.
* Live edit scene properties.

Possible future work:
* Filters!
* Blend mode property.
* Pointer + release proc property.
* Support captures in the DL playground.
* Text atlas visualization.
* Multi-frame capture and scrubbing.
* Menus instead of key bindings?

https://github.com/flutter/engine/assets/919017/a7a63e24-f72f-4140-a21e-6ca02a05fc20
gaaclarke pushed a commit to gaaclarke/engine that referenced this pull request Aug 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autosubmit Merge PR when tree becomes green via auto submit App e: impeller

Projects

No open projects
Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants