Skip to content

Commit d964d66

Browse files
authored
Merge pull request #1598 from emutavchi/wpe-2.48-ftrace
Improve ftrace tracing support
2 parents 2f0e26e + 0cf5fcc commit d964d66

13 files changed

Lines changed: 441 additions & 41 deletions

File tree

Source/ThirdParty/ANGLE/CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,12 @@ set(ANGLE_SOURCES
9090
src/libANGLE/capture/serialize_mock.cpp
9191
)
9292

93+
if (USE_LINUX_FTRACE)
94+
list(APPEND ANGLE_DEFINITIONS
95+
ANGLE_ENABLE_DEBUG_TRACE=1
96+
)
97+
endif()
98+
9399
if (WIN32)
94100
# FIXME: DX11 support will not compile if this preprocessor definition is set
95101
# DirectX Documentation is setting that version to 0x700 but there is no
@@ -120,8 +126,8 @@ set(zlib_wrapper_sources
120126
)
121127

122128
set(angle_gl_enum_utils
123-
"src/libANGLE/gl_enum_utils.cpp"
124-
"src/libANGLE/gl_enum_utils_autogen.cpp"
129+
"src/common/gl_enum_utils.cpp"
130+
"src/common/gl_enum_utils_autogen.cpp"
125131
)
126132

127133
WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
@@ -140,6 +146,7 @@ if (USE_ANGLE_EGL OR ENABLE_WEBGL)
140146
${libangle_image_util_headers}
141147
${xxhash_sources}
142148
${zlib_wrapper_sources}
149+
${angle_gl_enum_utils}
143150
)
144151
target_include_directories(ANGLE PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES})
145152
target_compile_definitions(ANGLE PRIVATE

Source/ThirdParty/ANGLE/include/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ if (ENABLE_WEBGL)
4747
)
4848
endif ()
4949

50+
if (USE_LINUX_FTRACE)
51+
set(platform_headers ${includes})
52+
list(FILTER platform_headers INCLUDE REGEX "platform/PlatformMethods.h")
53+
54+
WEBKIT_COPY_FILES(ANGLEPlatformHeaders
55+
DESTINATION ${ANGLE_FRAMEWORK_HEADERS_DIR}/ANGLE
56+
FILES ${platform_headers}
57+
)
58+
endif()
59+
5060
# Cocoa expects headers in an ANGLE directory
5161
WEBKIT_COPY_FILES(GLSLANGHeaders
5262
DESTINATION ${ANGLE_FRAMEWORK_HEADERS_DIR}/ANGLE

Source/ThirdParty/skia/CMakeLists.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -850,12 +850,14 @@ add_library(Skia STATIC
850850
src/sksl/transform/SkSLEliminateDeadLocalVariables.cpp
851851
src/sksl/transform/SkSLEliminateEmptyStatements.cpp
852852
src/sksl/transform/SkSLEliminateUnreachableCode.cpp
853+
src/sksl/transform/SkSLEliminateUnnecessaryBraces.cpp
853854
src/sksl/transform/SkSLFindAndDeclareBuiltinFunctions.cpp
854855
src/sksl/transform/SkSLFindAndDeclareBuiltinStructs.cpp
855856
src/sksl/transform/SkSLFindAndDeclareBuiltinVariables.cpp
856857
src/sksl/transform/SkSLHoistSwitchVarDeclarationsAtTopLevel.cpp
857858
src/sksl/transform/SkSLRenamePrivateSymbols.cpp
858859
src/sksl/transform/SkSLReplaceConstVarsWithLiterals.cpp
860+
src/sksl/transform/SkSLReplaceSplatCastsWithSwizzles.cpp
859861
src/sksl/transform/SkSLRewriteIndexedSwizzle.cpp
860862

861863
src/utils/SkCharToGlyphCache.cpp
@@ -871,6 +873,9 @@ add_library(Skia STATIC
871873
src/utils/SkShaderUtils.cpp
872874
src/utils/SkShadowTessellator.cpp
873875
src/utils/SkShadowUtils.cpp
876+
src/utils/SkJSON.cpp
877+
src/utils/SkParse.cpp
878+
src/utils/SkEventTracer.cpp
874879

875880
src/opts/SkOpts_hsw.cpp
876881
src/opts/SkOpts_skx.cpp
@@ -962,7 +967,6 @@ target_compile_definitions(Skia PUBLIC
962967
SK_DISABLE_LEGACY_IMAGE_READBUFFER
963968
SK_DISABLE_LEGACY_INIT_DECODERS
964969
SK_DISABLE_LEGACY_PNG_WRITEBUFFER
965-
SK_DISABLE_TRACING
966970
SK_DISABLE_WEBGL_INTERFACE
967971

968972
SK_ENABLE_PRECOMPILE
@@ -975,6 +979,12 @@ target_compile_definitions(Skia PUBLIC
975979
SK_RELEASE
976980
)
977981

982+
if (NOT USE_LINUX_FTRACE)
983+
target_compile_definitions(Skia PUBLIC
984+
SK_DISABLE_TRACING
985+
)
986+
endif()
987+
978988
#
979989
# This saves some reference churning and ctor/dtor calls in the
980990
# implementation of the sk_sp<> smart pointer template. It needs to

Source/WTF/wtf/SystemTracing.h

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ inline void tracePoint(TracePointCode code, uint64_t data1 = 0, uint64_t data2 =
211211
UNUSED_PARAM(data3);
212212
UNUSED_PARAM(data4);
213213
#elif USE(LINUX_FTRACE)
214-
SystemTracingFTrace::instance().tracePoint(code, data1);
214+
SystemTracingFTrace::instance().tracePoint(code, data1, data2, data3, data4);
215215
UNUSED_PARAM(data2);
216216
UNUSED_PARAM(data3);
217217
UNUSED_PARAM(data4);
@@ -420,6 +420,39 @@ enum WTFOSSignpostType {
420420
#define WTFBeginSignpostAlwaysWithTimeDelta(pointer, name, timeDelta, ...) WTFBeginSignpostWithTimeDelta((pointer), name, (timeDelta), ##__VA_ARGS__)
421421
#define WTFEndSignpostAlwaysWithTimeDelta(pointer, name, timeDelta, ...) WTFEndSignpostWithTimeDelta((pointer), name, (timeDelta), ##__VA_ARGS__)
422422
423+
#elif USE(LINUX_FTRACE)
424+
425+
#define WTFEmitSignpostWithPhase(phase, pointer, name, format, ...) \
426+
do { \
427+
if (SystemTracingFTrace::isEnabled()) \
428+
SystemTracingFTrace::instance().addMark( \
429+
phase, std::span(_STRINGIFY(name)), \
430+
"p=%p" format, \
431+
reinterpret_cast<const void*>(pointer) \
432+
__VA_OPT__(,) __VA_ARGS__); \
433+
} while (0)
434+
435+
#define WTFEmitSignpost(pointer, name, ...) \
436+
WTFEmitSignpostWithPhase('I', pointer, name, __VA_OPT__(",") __VA_ARGS__) \
437+
438+
#define WTFBeginSignpost(pointer, name, ...) \
439+
WTFEmitSignpostWithPhase('B', pointer, name, __VA_OPT__(",") __VA_ARGS__) \
440+
441+
#define WTFEndSignpost(pointer, name, ...) \
442+
WTFEmitSignpostWithPhase('E', pointer, name, __VA_OPT__(",") __VA_ARGS__) \
443+
444+
#define WTFEmitSignpostAlways(pointer, name, ...) WTFEmitSignpost((pointer), name, ##__VA_ARGS__)
445+
#define WTFBeginSignpostAlways(pointer, name, ...) WTFBeginSignpost((pointer), name, ##__VA_ARGS__)
446+
#define WTFEndSignpostAlways(pointer, name, ...) WTFEndSignpost((pointer), name, ##__VA_ARGS__)
447+
448+
#define WTFEmitSignpostWithTimeDelta(pointer, name, timeDelta, ...) WTFEmitSignpost((pointer), name, ##__VA_ARGS__)
449+
#define WTFBeginSignpostWithTimeDelta(pointer, name, timeDelta, ...) WTFBeginSignpost((pointer), name, ##__VA_ARGS__)
450+
#define WTFEndSignpostWithTimeDelta(pointer, name, timeDelta, ...) WTFEndSignpost((pointer), name, ##__VA_ARGS__)
451+
452+
#define WTFEmitSignpostAlwaysWithTimeDelta(pointer, name, ...) WTFEmitSignpost((pointer), name, ##__VA_ARGS__)
453+
#define WTFBeginSignpostAlwaysWithTimeDelta(pointer, name, ...) WTFBeginSignpost((pointer), name, ##__VA_ARGS__)
454+
#define WTFEndSignpostAlwaysWithTimeDelta(pointer, name, ...) WTFEndSignpost((pointer), name, ##__VA_ARGS__)
455+
423456
#else
424457
425458
#define WTFEmitSignpost(pointer, name, ...) do { } while (0)

0 commit comments

Comments
 (0)