From 143b5068bf76453565a571d043aac2df60137a46 Mon Sep 17 00:00:00 2001 From: linruijie Date: Thu, 20 Oct 2022 20:26:14 +0800 Subject: [PATCH 1/2] add skia.debug.trace Signed-off-by: linruijie --- build/skia/BUILD.gn | 9 +++++++++ build/skia/ohos/BUILD.gn | 5 +++++ skia/src/core/SkTraceEventCommon.h | 20 ++++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/build/skia/BUILD.gn b/build/skia/BUILD.gn index bedcda7b..675435e7 100644 --- a/build/skia/BUILD.gn +++ b/build/skia/BUILD.gn @@ -175,6 +175,7 @@ config("skia_deps_include_config") { include_dirs += [ "$libs_root/shared_library/${target_os}_${target_cpu}/include/frameworks/native/libs/nativewindow/include", "$libs_root/shared_library/${target_os}_${target_cpu}/include/frameworks/native/libs/arect/include", + "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter", ] } @@ -942,6 +943,9 @@ template("ace_skia_core") { sources -= [ "$flutter_root/skia/src/ports/SkDebug_android.cpp" ] sources += [ "$flutter_root/skia/src/ports/SkDebug_ohos.cpp" ] external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + if (is_standard_system) { + external_deps += [ "hitrace_native:hitrace_meter" ] + } } } } @@ -1178,6 +1182,10 @@ template("ace_pdf") { sources += [ "$flutter_root/skia/third_party/icu/SkLoadICU.cpp" ] } + if (is_standard_system) { + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] + } + deps = [ "$ace_flutter_engine_root/icu:ace_libicu_$platform", "$ace_flutter_engine_root/sfntly:ace_libsfntly_$platform", @@ -1561,6 +1569,7 @@ template("ace_gpu") { # Ohos or Android platform if (is_standard_system) { public_deps = [ "//foundation/graphic/graphic_2d:libgl" ] + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] if (flutter_feature_skia_small_page_enable) { defines += [ "SK_ENABLE_SMALL_PAGE" ] } diff --git a/build/skia/ohos/BUILD.gn b/build/skia/ohos/BUILD.gn index 5c93a941..fe5c8621 100644 --- a/build/skia/ohos/BUILD.gn +++ b/build/skia/ohos/BUILD.gn @@ -605,6 +605,7 @@ ohos_source_set("skia_core_ohos") { } else { if (is_standard_system) { public_deps = [ "//foundation/graphic/graphic_2d:libgl" ] + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] } else { aosp_deps = [ "shared_library:libEGL", @@ -617,6 +618,9 @@ ohos_source_set("skia_core_ohos") { sources -= [ "$flutter_root/skia/src/ports/SkDebug_android.cpp" ] sources += [ "$flutter_root/skia/src/ports/SkDebug_ohos.cpp" ] external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + if (is_standard_system) { + external_deps += [ "hitrace_native:hitrace_meter" ] + } } # ------------------------------------------------ @@ -946,6 +950,7 @@ ohos_source_set("gpu_ohos") { # Ohos platform if (is_standard_system) { public_deps = [ "//foundation/graphic/graphic_2d:libgl" ] + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] if (flutter_feature_skia_small_page_enable) { defines += [ "SK_ENABLE_SMALL_PAGE" ] } diff --git a/skia/src/core/SkTraceEventCommon.h b/skia/src/core/SkTraceEventCommon.h index 2bf5c826..f362d2b3 100644 --- a/skia/src/core/SkTraceEventCommon.h +++ b/skia/src/core/SkTraceEventCommon.h @@ -154,11 +154,15 @@ private: do { *ret = false; } while (0) #else // !SK_BUILD_FOR_ANDROID_FRAMEWORK +#ifdef SK_BUILD_IN_STANDARD_SYSTEM +#include "hitrace_meter.h" +#endif #define ATRACE_ANDROID_FRAMEWORK(fmt, ...) TRACE_EMPTY // Records a pair of begin and end events called "name" for the current scope, with 0, 1 or 2 // associated arguments. If the category is not enabled, then this does nothing. +#ifdef SK_BUILD_IN_STANDARD_SYSTEM #define TRACE_EVENT0(category_group, name) \ INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name) @@ -168,6 +172,22 @@ private: #define TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) \ INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) +#else +#define TRACE_EVENT0(category_group, name) \ + HitraceScoped _trace(HITRACE_TAG_SKIA_CONTROL, name); \ + INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name) + +#define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \ + HitraceScoped _trace(HITRACE_TAG_SKIA_CONTROL, name); \ + INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val) + +#define TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) \ + HitraceScoped _trace(HITRACE_TAG_SKIA_CONTROL, name); \ + INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) + +#endif + + // Records a single event called "name" immediately, with 0, 1 or 2 associated arguments. If the // category is not enabled, then this does nothing. #define TRACE_EVENT_INSTANT0(category_group, name, scope) \ -- Gitee From ae574a6278efdaec28fbf8d7cfa4497511e2f833 Mon Sep 17 00:00:00 2001 From: linruijie Date: Thu, 20 Oct 2022 20:26:14 +0800 Subject: [PATCH 2/2] add skia.debug.trace Signed-off-by: linruijie --- build/skia/BUILD.gn | 17 ++++++++++++++++- build/skia/ohos/BUILD.gn | 11 +++++++++++ skia/src/core/SkTraceEventCommon.h | 19 +++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/build/skia/BUILD.gn b/build/skia/BUILD.gn index bedcda7b..3711f87b 100644 --- a/build/skia/BUILD.gn +++ b/build/skia/BUILD.gn @@ -928,6 +928,10 @@ template("ace_skia_core") { ] } else { if (is_standard_system) { + include_dirs = [ + "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter" + ] + external_deps = [ "hitrace_native:hitrace_meter" ] public_deps = [ "//foundation/graphic/graphic_2d:libgl" ] } else { aosp_deps = [ @@ -941,7 +945,7 @@ template("ace_skia_core") { if (defined(config.sk_use_hilog) && config.sk_use_hilog) { sources -= [ "$flutter_root/skia/src/ports/SkDebug_android.cpp" ] sources += [ "$flutter_root/skia/src/ports/SkDebug_ohos.cpp" ] - external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + external_deps += [ "hiviewdfx_hilog_native:libhilog" ] } } } @@ -1178,6 +1182,13 @@ template("ace_pdf") { sources += [ "$flutter_root/skia/third_party/icu/SkLoadICU.cpp" ] } + if (is_standard_system) { + include_dirs = [ + "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter" + ] + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] + } + deps = [ "$ace_flutter_engine_root/icu:ace_libicu_$platform", "$ace_flutter_engine_root/sfntly:ace_libsfntly_$platform", @@ -1560,6 +1571,10 @@ template("ace_gpu") { if (!defined(config.disable_gpu) || !config.disable_gpu) { # Ohos or Android platform if (is_standard_system) { + include_dirs = [ + "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter" + ] + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] public_deps = [ "//foundation/graphic/graphic_2d:libgl" ] if (flutter_feature_skia_small_page_enable) { defines += [ "SK_ENABLE_SMALL_PAGE" ] diff --git a/build/skia/ohos/BUILD.gn b/build/skia/ohos/BUILD.gn index 5c93a941..d57e3402 100644 --- a/build/skia/ohos/BUILD.gn +++ b/build/skia/ohos/BUILD.gn @@ -605,6 +605,10 @@ ohos_source_set("skia_core_ohos") { } else { if (is_standard_system) { public_deps = [ "//foundation/graphic/graphic_2d:libgl" ] + include_dirs = [ + "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter" + ] + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] } else { aosp_deps = [ "shared_library:libEGL", @@ -617,6 +621,9 @@ ohos_source_set("skia_core_ohos") { sources -= [ "$flutter_root/skia/src/ports/SkDebug_android.cpp" ] sources += [ "$flutter_root/skia/src/ports/SkDebug_ohos.cpp" ] external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + if (is_standard_system) { + external_deps += [ "hitrace_native:hitrace_meter" ] + } } # ------------------------------------------------ @@ -946,6 +953,10 @@ ohos_source_set("gpu_ohos") { # Ohos platform if (is_standard_system) { public_deps = [ "//foundation/graphic/graphic_2d:libgl" ] + include_dirs = [ + "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter" + ] + defines += [ "SK_BUILD_IN_STANDARD_SYSTEM" ] if (flutter_feature_skia_small_page_enable) { defines += [ "SK_ENABLE_SMALL_PAGE" ] } diff --git a/skia/src/core/SkTraceEventCommon.h b/skia/src/core/SkTraceEventCommon.h index 2bf5c826..5670edd9 100644 --- a/skia/src/core/SkTraceEventCommon.h +++ b/skia/src/core/SkTraceEventCommon.h @@ -154,11 +154,27 @@ private: do { *ret = false; } while (0) #else // !SK_BUILD_FOR_ANDROID_FRAMEWORK +#ifdef SK_BUILD_IN_STANDARD_SYSTEM +#include "hitrace_meter.h" +#endif #define ATRACE_ANDROID_FRAMEWORK(fmt, ...) TRACE_EMPTY // Records a pair of begin and end events called "name" for the current scope, with 0, 1 or 2 // associated arguments. If the category is not enabled, then this does nothing. +#ifdef SK_BUILD_IN_STANDARD_SYSTEM +#define TRACE_EVENT0(category_group, name) \ + HitraceScoped _trace(HITRACE_TAG_SKIA_CONTROL, name); \ + INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name) + +#define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \ + HitraceScoped _trace(HITRACE_TAG_SKIA_CONTROL, name); \ + INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val) + +#define TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) \ + HitraceScoped _trace(HITRACE_TAG_SKIA_CONTROL, name); \ + INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) +#else #define TRACE_EVENT0(category_group, name) \ INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name) @@ -168,6 +184,9 @@ private: #define TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) \ INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) +#endif + + // Records a single event called "name" immediately, with 0, 1 or 2 associated arguments. If the // category is not enabled, then this does nothing. #define TRACE_EVENT_INSTANT0(category_group, name, scope) \ -- Gitee