diff --git a/BUILD.gn b/BUILD.gn
index 78cb5dc..497af01 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -589,6 +589,7 @@
   executable("skslc") {
     defines = [
       "SKSL_STANDALONE",
+      "SK_DISABLE_TRACING",
       "SK_ENABLE_SPIRV_VALIDATION",
     ]
     sources = [
diff --git a/src/core/SkTraceEventCommon.h b/src/core/SkTraceEventCommon.h
index 01b8a72..db46692 100644
--- a/src/core/SkTraceEventCommon.h
+++ b/src/core/SkTraceEventCommon.h
@@ -64,6 +64,7 @@
 #define ATRACE_ANDROID_FRAMEWORK(fmt, ...) TRACE_EMPTY
 #define ATRACE_ANDROID_FRAMEWORK_ALWAYS(fmt, ...) TRACE_EMPTY
 #define TRACE_EVENT0(cg, n) TRACE_EMPTY
+#define TRACE_EVENT0_ALWAYS(cg, n) TRACE_EMPTY
 #define TRACE_EVENT1(cg, n, a1n, a1v) TRACE_EMPTY
 #define TRACE_EVENT2(cg, n, a1n, a1v, a2n, a2v) TRACE_EMPTY
 #define TRACE_EVENT_INSTANT0(cg, n, scope) TRACE_EMPTY
@@ -142,6 +143,8 @@
 // associated arguments. In the framework, the arguments are ignored.
 #define TRACE_EVENT0(category_group, name) \
     SkAndroidFrameworkTraceUtil __trace(name)
+#define TRACE_EVENT0_ALWAYS(category_group, name) \
+    SkAndroidFrameworkTraceUtilAlways __trace_always(name)
 #define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \
     SkAndroidFrameworkTraceUtil __trace(name)
 #define TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) \
@@ -197,6 +200,9 @@
 #define TRACE_EVENT0(category_group, name) \
   INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name)
 
+#define TRACE_EVENT0_ALWAYS(category_group, name) \
+  INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name)
+
 #define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \
   INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val)
 
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
index 6fc86ed..cb14885 100644
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
@@ -52,7 +52,7 @@
                                                const GrProgramDesc& desc,
                                                const GrProgramInfo& programInfo,
                                                const GrGLPrecompiledProgram* precompiledProgram) {
-    ATRACE_ANDROID_FRAMEWORK_ALWAYS("shader_compile");
+    TRACE_EVENT0_ALWAYS("skia.gpu", "shader_compile");
     GrAutoLocaleSetter als("C");
 
     // create a builder.  This will be handed off to effects so they can use it to add
@@ -260,7 +260,7 @@
         this->computeCountsAndStrides(programID, primProc, false);
         usedProgramBinaries = true;
     } else if (cached) {
-        ATRACE_ANDROID_FRAMEWORK_ALWAYS("cache_hit");
+        TRACE_EVENT0_ALWAYS("skia.gpu", "cache_hit");
         SkReadBuffer reader(fCached->data(), fCached->size());
         SkFourByteTag shaderType = GrPersistentCacheUtils::GetType(&reader);
 
@@ -322,7 +322,7 @@
         }
     }
     if (!usedProgramBinaries) {
-        ATRACE_ANDROID_FRAMEWORK_ALWAYS("cache_miss");
+        TRACE_EVENT0_ALWAYS("skia.gpu", "cache_miss");
         // Either a cache miss, or we got something other than binaries from the cache
 
         /*
@@ -443,7 +443,7 @@
         this->bindProgramResourceLocations(programID);
 
         {
-            ATRACE_ANDROID_FRAMEWORK_ALWAYS("driver_link_program");
+            TRACE_EVENT0_ALWAYS("skia.gpu", "driver_link_program");
             GL_CALL(LinkProgram(programID));
             if (checkLinked) {
                 if (!this->checkLinkStatus(programID, errorHandler, sksl, glsl)) {
diff --git a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
index 9793e2b..eb32e2e 100644
--- a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
@@ -57,7 +57,7 @@
                                     const SkSL::String& glsl,
                                     GrGpu::Stats* stats,
                                     GrContextOptions::ShaderErrorHandler* errorHandler) {
-    ATRACE_ANDROID_FRAMEWORK_ALWAYS("driver_compile_shader");
+    TRACE_EVENT0_ALWAYS("skia.gpu", "driver_compile_shader");
     const GrGLInterface* gli = glCtx.glInterface();
 
     // Specify GLSL source to the driver.
diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp
index a6d6cac..68f8986 100644
--- a/src/sksl/SkSLCompiler.cpp
+++ b/src/sksl/SkSLCompiler.cpp
@@ -1426,7 +1426,7 @@
         String text,
         const Program::Settings& settings,
         const std::vector<std::unique_ptr<ExternalFunction>>* externalFunctions) {
-    ATRACE_ANDROID_FRAMEWORK("SkSL::Compiler::convertProgram");
+    TRACE_EVENT0("skia.gpu", "SkSL::Compiler::convertProgram");
 
     SkASSERT(!externalFunctions || (kind == ProgramKind::kGeneric));
 
@@ -1714,7 +1714,7 @@
 }
 
 bool Compiler::toGLSL(Program& program, OutputStream& out) {
-    ATRACE_ANDROID_FRAMEWORK("SkSL::Compiler::toGLSL");
+    TRACE_EVENT0("skia.gpu", "SkSL::Compiler::toGLSL");
     AutoSource as(this, program.fSource.get());
     GLSLCodeGenerator cg(fContext.get(), &program, this, &out);
     bool result = cg.generateCode();
