-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] Conditionally set command debug info. #44274
Conversation
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.
@@ -25,6 +25,12 @@ | |||
|
|||
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. |
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 [email protected] Update CompositionAwareMixin to correctly compute composingBase in Web engine (flutter/engine#44139) 2023-08-14 [email protected] Add application:openURLs: forwarding on macOS (flutter/engine#44689) 2023-08-14 [email protected] Roll Skia from a4377099b25a to 69ea58157190 (1 revision) (flutter/engine#44692) 2023-08-14 [email protected] Update embedder_semantics_update.h imports to include flutter namespace (flutter/engine#44670) 2023-08-14 [email protected] Roll Dart SDK from 3295a353980a to d445f5a18876 (1 revision) (flutter/engine#44691) 2023-08-14 [email protected] 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 [email protected] Roll Skia from 1cf6f71c8120 to a4377099b25a (1 revision) (flutter/engine#44688) 2023-08-14 [email protected] Roll Fuchsia Mac SDK from JKTVoxVrHjZjBaxG4... to uIGMbDkXoIcpqWjgR... (flutter/engine#44687) 2023-08-14 [email protected] [Impeller] Conditionally set command debug info. (flutter/engine#44274) 2023-08-14 [email protected] 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 [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
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.