-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] Conditionally set command debug info. #44274
Conversation
bdero
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recall this coming up before, and we decided to keep the labels at the time. But that was at a time when none of the labels were dynamically generated.
I don't have a strong opinion about this, but @chinmaygarde might have thoughts.
| namespace impeller { | ||
|
|
||
| #ifdef IMPELLER_DEBUG | ||
| #define DEBUG_COMMAND_INFO(obj, arg) obj.label = arg; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Prefix with Impeller?
|
Perhaps we can have something like impeller::DebugLabel or something that turns itself off in certain modes. That way, we won't have to use macros everywhere. |
|
TBH I kind of like the macros because its guaranteed to work, otherwise we get a compile time warning, plus command size is fully shrunk. We could create a impeller::DebugLabel class that discards its string on construction. Maybe that would be more useful if we want to toggle this on or off? |
|
Yeah, I was thinking of something similar https://godbolt.org/z/cGzWT418G. Also, the debug label could only copy the string out for dynamically allocated strings. When we want absolutely no debug labels, we can ifdef out everything and the struct size is zero. To be clear, we can do this later. Just want to make sure we are utilizing all tricks we can to ensure we have maximum debuggability. If we get into the habit of getting rid of these labels, we'll find these are too expensive when we need them. |
chinmaygarde
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just LGTMing this now to unblock. We can rework debug labels later at any point.
…132522) flutter/engine@56a0e27...785b249 2023-08-14 amirpanahandeh@yahoo.com Update CompositionAwareMixin to correctly compute composingBase in Web engine (flutter/engine#44139) 2023-08-14 stuartmorgan@google.com Add application:openURLs: forwarding on macOS (flutter/engine#44689) 2023-08-14 skia-flutter-autoroll@skia.org Roll Skia from a4377099b25a to 69ea58157190 (1 revision) (flutter/engine#44692) 2023-08-14 chillers@google.com Update embedder_semantics_update.h imports to include flutter namespace (flutter/engine#44670) 2023-08-14 skia-flutter-autoroll@skia.org Roll Dart SDK from 3295a353980a to d445f5a18876 (1 revision) (flutter/engine#44691) 2023-08-14 dnfield@google.com Revert "Make run_tests.py assert that the ios test dylib is at least as new as libFlutter.dylib" (flutter/engine#44690) 2023-08-14 skia-flutter-autoroll@skia.org Roll Skia from 1cf6f71c8120 to a4377099b25a (1 revision) (flutter/engine#44688) 2023-08-14 skia-flutter-autoroll@skia.org Roll Fuchsia Mac SDK from JKTVoxVrHjZjBaxG4... to uIGMbDkXoIcpqWjgR... (flutter/engine#44687) 2023-08-14 jonahwilliams@google.com [Impeller] Conditionally set command debug info. (flutter/engine#44274) 2023-08-14 kjlubick@users.noreply.github.com Migrate more GL calls of GrBackend* (flutter/engine#44682) Also rolling transitive DEPS: fuchsia/sdk/core/mac-amd64 from JKTVoxVrHjZj to uIGMbDkXoIcp 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 chinmaygarde@google.com,rmistry@google.com,zra@google.com 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
If IMPELLER_DEBUG is not defined (release mode), then remove the cmd label strings and additional encoding debug info.
If IMPELLER_DEBUG is not defined (release mode), then remove the cmd label strings and additional encoding debug info.